Pages: [1]   Go Down
Print
Author Topic: Aiuto esercizio  (Read 1273 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Leo
Matricola
*
Offline Offline

Gender: Male
Posts: 22


« on: 29-01-2012, 18:16:21 »

salve ho un problema
come faccio a sapere qual'è l'indice della colonna completa più a destra di un array frastagliato???
Logged
tobia92
Matricola
*
Offline Offline

Posts: 58



« Reply #1 on: 29-01-2012, 19:10:20 »

l'indice della colonna più a destra ?

dovrebbe essere qualcosa del tipo

for(int i=0;i<array.length;i++)
{
       if(maxcolonna<array[ i ].length)
                 maxcolonna=array[ i ].length;

}

con maxcolonna inizializzato a zero ovviamente

cosi trovi la lunghezza massima delle colonne dell'array, se vuoi l'indice più a destra a questo punto dovresti fare maxcolonna-1  altrimenti ti da index out of bounds.

credo sia giusto 
Logged
ɹǝǝuıƃuǝsɹǝʌǝɹ
Administrator
God of the Forum
*****
Offline Offline

Gender: Male
Posts: 4.474


Più grande è la lotta, e più è glorioso il trionfo


WWW
« Reply #2 on: 29-01-2012, 22:03:40 »

credo sia giusto 
È esattamente l'opposto di come hai detto tu.

La colonna completa più a destra corrisponde alla minima lunghezza fra quelle di tutte le righe, meno \fs{3}1.

Di conseguenza, se esiste una riga con 0 elementi (beh, sì, si possono creare anche array vuoti boh...), tale valore sarà proprio \fs{3}-1.
Logged

La grande marcia della distruzione mentale proseguirà. Tutto verrà negato. Tutto diventerà un credo. È un atteggiamento ragionevole negare l'esistenza delle pietre sulla strada; sarà un dogma religioso affermarla. È una tesi razionale pensare di vivere tutti in un sogno; sarà un esempio di saggezza mistica affermare che siamo tutti svegli. Accenderemo fuochi per testimoniare che due più due fa quattro. Sguaineremo spade per dimostrare che le foglie sono verdi in estate. Non ci resterà quindi che difendere non solo le incredibili virtù e saggezze della vita umana, ma qualcosa di ancora più incredibile: questo immenso, impossibile universo che ci guarda dritto negli occhi. Combatteremo per i prodigi visibili come se fossero invisibili. Guarderemo l'erba e i cieli impossibili con uno strano coraggio. Saremo tra coloro che hanno visto eppure hanno creduto.

In tutto, amare e servire.

  
                            ن                           
I can deal with ads,
I can deal with buffer,
but when ads buffer
I suffer...

...nutrimi, o Signore, "con il pane delle lacrime; dammi, nelle lacrime, copiosa bevanda...

   YouTube 9GAG    anobii  S  Steam T.B.o.I. Wiki [univ] Lezioni private  ʼ  Albo d'Ateneo Unicode 3.0.1
Usa "Search" prima di aprire un post - Scrivi sempre nella sezione giusta - Non spammare - Rispetta gli altri utenti - E ricorda di seguire il Regolamento
tobia92
Matricola
*
Offline Offline

Posts: 58



« Reply #3 on: 29-01-2012, 22:51:55 »

aaah si hai ragione  pray

non so nemmeno io che avevo capito per colonna completa più a destra  testate in quel modo che ho scritto trovi l'indice della colonna più a destra, ma non completa 

quindi per quella completa


mincolonna=array[ 0 ].length;

for(int i=0;i<array.length;i++){
if(mincolonna>array[ i ].length)
mincolonna=array[ i ].length

}

e poi si toglie -1 alla mincolonna.

ora ha senso ?
Logged
ɹǝǝuıƃuǝsɹǝʌǝɹ
Administrator
God of the Forum
*****
Offline Offline

Gender: Male
Posts: 4.474


Più grande è la lotta, e più è glorioso il trionfo


WWW
« Reply #4 on: 29-01-2012, 23:08:17 »

ora ha senso ?
Abbastanza, ma non è ancora corretto, ed è per colpa di questa inizializzazione:
mincolonna=array[0].length;

Per il futuro, anche a beneficio di chi non lo sa, è possibile racchiudere il codice in un'opportuno tag chiamato [CODE], che impedisce che il testo venga processato come tag del forum, invece di sentirsi costretti ad aggiungere spazi attorno agli indici degli array  .
Logged

La grande marcia della distruzione mentale proseguirà. Tutto verrà negato. Tutto diventerà un credo. È un atteggiamento ragionevole negare l'esistenza delle pietre sulla strada; sarà un dogma religioso affermarla. È una tesi razionale pensare di vivere tutti in un sogno; sarà un esempio di saggezza mistica affermare che siamo tutti svegli. Accenderemo fuochi per testimoniare che due più due fa quattro. Sguaineremo spade per dimostrare che le foglie sono verdi in estate. Non ci resterà quindi che difendere non solo le incredibili virtù e saggezze della vita umana, ma qualcosa di ancora più incredibile: questo immenso, impossibile universo che ci guarda dritto negli occhi. Combatteremo per i prodigi visibili come se fossero invisibili. Guarderemo l'erba e i cieli impossibili con uno strano coraggio. Saremo tra coloro che hanno visto eppure hanno creduto.

In tutto, amare e servire.

  
                            ن                           
I can deal with ads,
I can deal with buffer,
but when ads buffer
I suffer...

...nutrimi, o Signore, "con il pane delle lacrime; dammi, nelle lacrime, copiosa bevanda...

   YouTube 9GAG    anobii  S  Steam T.B.o.I. Wiki [univ] Lezioni private  ʼ  Albo d'Ateneo Unicode 3.0.1
Usa "Search" prima di aprire un post - Scrivi sempre nella sezione giusta - Non spammare - Rispetta gli altri utenti - E ricorda di seguire il Regolamento
tobia92
Matricola
*
Offline Offline

Posts: 58



« Reply #5 on: 29-01-2012, 23:19:35 »

ma se non lo inizializzo con la lunghezza delle colonne della riga 0 e lo lascio a zero,il confronto nell'if non funziona.

come si risolve diversamente ?


Logged
ɹǝǝuıƃuǝsɹǝʌǝɹ
Administrator
God of the Forum
*****
Offline Offline

Gender: Male
Posts: 4.474


Più grande è la lotta, e più è glorioso il trionfo


WWW
« Reply #6 on: 30-01-2012, 13:30:24 »

Puoi inizializzarlo con il valore massimo che la variabile mincolonna può avere, cioè con il massimo supportato dal suo tipo, ovvero con la lunghezza massima fra quelle delle righe .
Logged

La grande marcia della distruzione mentale proseguirà. Tutto verrà negato. Tutto diventerà un credo. È un atteggiamento ragionevole negare l'esistenza delle pietre sulla strada; sarà un dogma religioso affermarla. È una tesi razionale pensare di vivere tutti in un sogno; sarà un esempio di saggezza mistica affermare che siamo tutti svegli. Accenderemo fuochi per testimoniare che due più due fa quattro. Sguaineremo spade per dimostrare che le foglie sono verdi in estate. Non ci resterà quindi che difendere non solo le incredibili virtù e saggezze della vita umana, ma qualcosa di ancora più incredibile: questo immenso, impossibile universo che ci guarda dritto negli occhi. Combatteremo per i prodigi visibili come se fossero invisibili. Guarderemo l'erba e i cieli impossibili con uno strano coraggio. Saremo tra coloro che hanno visto eppure hanno creduto.

In tutto, amare e servire.

  
                            ن                           
I can deal with ads,
I can deal with buffer,
but when ads buffer
I suffer...

...nutrimi, o Signore, "con il pane delle lacrime; dammi, nelle lacrime, copiosa bevanda...

   YouTube 9GAG    anobii  S  Steam T.B.o.I. Wiki [univ] Lezioni private  ʼ  Albo d'Ateneo Unicode 3.0.1
Usa "Search" prima di aprire un post - Scrivi sempre nella sezione giusta - Non spammare - Rispetta gli altri utenti - E ricorda di seguire il Regolamento
Leo
Matricola
*
Offline Offline

Gender: Male
Posts: 22


« Reply #7 on: 30-01-2012, 21:56:33 »

quindi mi state dicendo di trovare l'indice della colla piu grande......per poi fare il contrario e trovare cosi l'indice della colonna piu piccola (quest'ultima -1)......il tutto per trovare l'indice della colonna completa???
se è cosi vi ringrazio entrambi... perche inizialmente non riuscivo a metterci mano.. pray
Logged
tobia92
Matricola
*
Offline Offline

Posts: 58



« Reply #8 on: 30-01-2012, 22:08:00 »

Puoi inizializzarlo con il valore massimo che la variabile mincolonna può avere, cioè con il massimo supportato dal suo tipo, ovvero con la lunghezza massima fra quelle delle righe .

quindi per valore massimo intendi, il max valore della lunghezza di r
che è quello che ho fatto nel mio primo post ?

Code:
for(int i=0;i<array.length;i++)
{
       if(maxcolonna<array[i].length)
                 maxcolonna=array[i].length;

}

una volta trovato il max colonna, dici di assegnarlo a min

quindi verrebbe

Code:

mincolonna=maxcolonna;

for(int i=0;i<array.length;i++){
if(mincolonna>array[i].length)
mincolonna=array[i].length;

}       
e a mincolonna togli 1

spero di aver capito bene 
Logged
Pages: [1]   Go Up
Print
Jump to: