Pages: [1]   Go Down
Print
Author Topic: Array frastagliati?  (Read 5514 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Luxandro
Apprendista Forumista
**
Offline Offline

Posts: 307



« on: 12-12-2010, 09:55:27 »

Salve!  

Svolgendo gli esercizi riguardanti la prima prova degli anni precedenti, ho notato che spesse volte sono presenti gli array frastagliati.

Qualcuno sa dirmi se c'è la possibilità di "beccarli" nella prima prova di giovedi o meno??    boh


Da quello che ho capito sono array bidimensionali aventi la seconda dimensione variabile

Quindi vi chiedo: essendo che la seconda dimensione varia al variare della prima è corretto scorrere un array bidimensionale frastagliato nel seguente modo?

Code:
public String[][] metodo(String[][] S)
{
for(int i=0;i<S.length;i++)
{
for(int j=0;j<S[i].length;j++)
{

« Last Edit: 12-12-2010, 11:38:48 by Luxandro » Logged

"Quando non stai guardando è come un'onda. Quando guardi è come una particella!"
Daréios89
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.679


La musica è la forma d'arte suprema.


« Reply #1 on: 12-12-2010, 11:38:00 »

Quote
Qualcuno sa dirmi se c'è la possibilità di "beccarli" nella prima prova di giovedi o meno??

Quando ho fatto gli esami io anni fa si, erano due metodi, il primo su matrici normali, l' altro su quelle frastagliate.

Quote
Da quello che ho capito sono array bidimensionali aventi la seconda dimensione variabile

Quindi vi chiedo: essendo che la seconda dimensione varia al variare della prima è corretto scorrere un array bidimensionale frastagliato nel seguente modo?

Code:public String[][] metodo(String[][] S)
{
   for(int i=0;i<S.length;i++)
   {
      for(int j=0;j<S.length;j++)
      {   
 
 


Esatto è proprio questo il modo di scorrerlo, perchè per ogni riga devi verificare se ci sono tutte le colonne, quindi per ogni colonna imponi che l' indice di j sia minore di S.length; Cioè se la lunghezza di j è minore della lunghezza della riga vuol dire che stiamo scorrendo un elemento presente, altrimenti c' è un "buco".
Logged

"Utilizzare sempre de l'Hôpital.....è come andare a caccia di farfalle con un bazooka".
Luxandro
Apprendista Forumista
**
Offline Offline

Posts: 307



« Reply #2 on: 12-12-2010, 11:38:56 »

Ho svolto il seguente esercizio, ma non capisco come si verifica se ci sono stringhe mancanti   boh

Code:
/* Scrivere un metodo che prenda in input un array bidimensionale frastagliato A di Stringhe e restituisca un boolean che indichi
se esiste in A una colonna contenente una stringa e la sua proiezione (Attenzione alle stringhe mancanti!). La proiezione di una stringa
s è la stringa s' ottenuta sostituendo ogni carattere in s con il carattere successivo(o precedente).
Es s="depg" s'="cdof"*/

public boolean Proiezione(String[][] A)
{
for(int j=0;j<A.length;j++)
{
boolean trovato=false;
for(int i=0;(i<A[j].length-1)&&(!trovato);i++)
{
int x=A[i][j].length();
if(A[i+1][j].length()==x)
{
char c[x]=A[i][j].toCharArray(); char c1[x]=A[i+1][j].toCharArray();
for(int z=0,int y=0;int k=0;(z<x)&&(!trovato);z++)
{
if(c[z]+1==c1[z])
y++;
else if(c[z]==c1[z]+1)
k++;
if((y==x)||(k==x))
{
trovato=true;
return trovato;
}
}
}
}
}
return trovato;
}
« Last Edit: 12-12-2010, 11:44:55 by Luxandro » Logged

"Quando non stai guardando è come un'onda. Quando guardi è come una particella!"
Daréios89
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.679


La musica è la forma d'arte suprema.


« Reply #3 on: 12-12-2010, 12:08:03 »

Allora, non ho controllato la logica del programma perchè non ho tempo, devo studiare altro.
Però...intanto credo che delle cose che non vanno siano:

Code:
//char c[x]=A[i][j].toCharArray(); char c1[x]=A[i+1][j].toCharArray();
//char c1[x]=A[i+1][j].toCharArray();

Il metodo toCharArray cosa fa? Restituisce un array di caratteri se non sbaglio, quindi la dichiarazione è sbagliata....

Code:
char[] c=A[i][j].toCharArray();
char[] c1=A[i+1][j].toCharArray();

Così dovrebbe andare....

Nel ciclo for ho notato una serie di assegnazioni, non si può fare, anche perchè la sintassi del for impone di usare il punto e virgola e non la virgola.
Dunque, ti conviene usare il for per z, e inizializzare a 0 quelle variabili poco prima che inizi il for...

Dimenticavo che il controllo se la stringa c'è o meno lo fai a

Code:
for(int j=0;j<A.length;j++)
{
boolean trovato=false;
for(int i=0;(i<A[j].length-1)&&(!trovato);i++)

Sei sicuro che vada bene

Code:
i<A[j].length-1
?

Il booleano va messo fuori dal for, perchè devi sapere che ogni cosa che dichiari all' interno dei cicli si perde alla fine del ciclo, dunque se metti dentro il for il booleano, fuori il metodo non lo troverà!
« Last Edit: 12-12-2010, 12:12:52 by Daréios » Logged

"Utilizzare sempre de l'Hôpital.....è come andare a caccia di farfalle con un bazooka".
Luxandro
Apprendista Forumista
**
Offline Offline

Posts: 307



« Reply #4 on: 12-12-2010, 12:41:58 »

Quote
Dimenticavo che il controllo se la stringa c'è o meno lo fai a
Code:
for(int j=0;j<A.length;j++)
{
boolean trovato=false;
for(int i=0;(i<A[j].length-1)&&(!trovato);i++)
{

quindi in pratica la sto già controllando con il secondo for  ok

Quote
Sei sicuro che vada bene?
Code:
i<A[j].length-1

credo di si perchè il testo dice
Quote
...restituisca un boolean che indichi se esiste in A una colonna contenente una stringa e la sua proiezione

quindi conviene scorrere la matrice per colonne e verificare il boolean ad ogni colonna.
length-1 perchè ad ogni iterazione la controllo la stringa con quella che si trova nella riga successiva, quindi le righe devono ciclare una volta in meno.

Quote
Il booleano va messo fuori dal for, perchè devi sapere che ogni cosa che dichiari all' interno dei cicli si perde alla fine del ciclo, dunque se metti dentro il for il booleano, fuori il metodo non lo troverà!

Hai perfettamente ragione!  testate
« Last Edit: 12-12-2010, 12:47:09 by Luxandro » Logged

"Quando non stai guardando è come un'onda. Quando guardi è come una particella!"
Vivynz
Forumista Eroico
*****
Offline Offline

Gender: Female
Posts: 2.033


File reality.sys corrupted, Reboot Universe? Y/N


« Reply #5 on: 12-12-2010, 12:58:26 »

Quote
Nel ciclo for ho notato una serie di assegnazioni, non si può fare, anche perchè la sintassi del for impone di usare il punto e virgola e non la virgola.
Certo che si può fare..!Stiamo attenti a ciò che diciamo...
Logged

L'odrine delle lttere dnetro una praorla non è ipmortatne, la sloa cosa ipmortatne è che la pmria e l'utlima ltteera sinao nel potso giutso. Il rseto può essree in un dsiodrine più totlae e voi ptoerte smerpe lggeree sneza porblmea.
Luxandro
Apprendista Forumista
**
Offline Offline

Posts: 307



« Reply #6 on: 12-12-2010, 13:07:23 »

Quote
Nel ciclo for ho notato una serie di assegnazioni, non si può fare, anche perchè la sintassi del for impone di usare il punto e virgola e non la virgola.
Certo che si può fare..!Stiamo attenti a ciò che diciamo...

Credo che dareios si riferisse al fatto che ogni dichiarazione di variabile deve terminare con ";", ma dato che ";" all'interno di un for indica il passaggio dall'assegnazione alla condizione non si puo dichiarare (nel modo che ho che ho fatto io) piu' di una variabile all'interno delle condizioni dello stesso for. E' possibile, invece, fare piu assegnazioni.
Ad esempio ---> for(i=0,z=0,j=0;.......;.......)    se sono già state dichiarate all'esterno del for

Probabilmente avrei potuto fare una cosa del tipo ---> for(int i=0,z=0,j=0;.....;....)

Cmq cosi il codice dovrebbe essere corretto   yoh
Code:
public boolean Proiezione(String[][] A)
{
boolean trovato;
for(int j=0;j<A.length;j++)
{
trovato=false;
for(int i=0;(i<A[j].length-1)&&(!trovato);i++)
{
int x=A[i][j].length();
if(x==A[i+1][j].length())
{
char[] c=A[i][j].toCharArray(); char[] c1=A[i+1][j].toCharArray();
for(int z=0,y=0,k=0;(z<x)&&(!trovato);z++)
{
if(c[z]+1==c1[z])
y++;
else if(c[z]==c1[z]+1)
k++;
if((y==x)||(k==x))
{
trovato=true;
return trovato;
}
}
}
}
}
return trovato;
}
« Last Edit: 12-12-2010, 13:14:02 by Luxandro » Logged

"Quando non stai guardando è come un'onda. Quando guardi è come una particella!"
Daréios89
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.679


La musica è la forma d'arte suprema.


« Reply #7 on: 12-12-2010, 13:12:57 »

Quote
Credo che dareios si riferisse al fatto che ogni dichiarazione di variabile deve terminare con ";", ma dato che ";" all'interno di un for indica il passaggio dall'assegnazione alla condizione non si puo dichiarare piu' di una variabile all'interno delle condizioni dello stesso for. E' possibile, invece, fare piu assegnazioni.

 
Logged

"Utilizzare sempre de l'Hôpital.....è come andare a caccia di farfalle con un bazooka".
Vivynz
Forumista Eroico
*****
Offline Offline

Gender: Female
Posts: 2.033


File reality.sys corrupted, Reboot Universe? Y/N


« Reply #8 on: 12-12-2010, 13:24:32 »

Quote
Credo che dareios si riferisse al fatto che ogni dichiarazione di variabile deve terminare con ";", ma dato che ";" all'interno di un for indica il passaggio dall'assegnazione alla condizione non si puo dichiarare piu' di una variabile all'interno delle condizioni dello stesso for. E' possibile, invece, fare piu assegnazioni.
detta così è ok Smiley
Logged

L'odrine delle lttere dnetro una praorla non è ipmortatne, la sloa cosa ipmortatne è che la pmria e l'utlima ltteera sinao nel potso giutso. Il rseto può essree in un dsiodrine più totlae e voi ptoerte smerpe lggeree sneza porblmea.
ɹǝǝ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 #9 on: 12-12-2010, 14:53:48 »

Attenzione, vi siete ingarbugliati con i quote!!! boh
Credo che dareios si riferisse al fatto che ogni dichiarazione di variabile deve terminare con ";", ma dato che ";" all'interno di un for indica il passaggio dall'assegnazione alla condizione non si puo dichiarare piu' di una variabile all'interno delle condizioni dello stesso for. E' possibile, invece, fare piu assegnazioni.
detta così è ok Smiley
È possibile fare più assegnazioni E contemporaneamente dichiarare più variabili, ma con una leggera precisazione.

Nella parte di inizializzazione del ciclo for ci possono stare solo due tipi di cose:
1) tipo var1 = val1, var2 = val2, ..., varN = valN
oppure
2) var1 = val1, var2 = val2, ..., varN = valN

Nel caso 1), tutte le variabili vari non devono già esistere nello scope (altrimenti si avrà errore di compilazione simbolo già definito) e, quindi, saranno tutte dello stesso tipo tipo e tutte dichiarate esistenti solo dentro al for;
nel caso 2) le variabili devono esistere già nello scope (altrimenti si avrà errore di compilazione simbolo non definito) e possono avere tipo diverso.

Per quanto riguarda il tuo codice, Luxandro, devi fare attenzione al fatto che l'array è potenzialmente frastagliato; questo vuol dire che un eventuale ciclo sulle colonne dovrà fermarsi sull'ultima colonna in assoluto, e questo indice massimo di colonna lo devi calcolare con un ciclo apposito sulle righe, dentro cui, se è il caso, aggiorni il max indice con il max appena considerato.

Poi, nel secondo ciclo interno a quello sulle colonne, cioè quello sulle righe, dovrai prestare attenzione che la riga considerata abbia effettivamente la colonna considerata esternamente (un banale if sarà sufficiente), e solo in tal caso accingerti a leggere il valore di tale colonna (per la riga considerata ).
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
Luxandro
Apprendista Forumista
**
Offline Offline

Posts: 307



« Reply #10 on: 12-12-2010, 16:00:43 »

Quote
Per quanto riguarda il tuo codice, Luxandro, devi fare attenzione al fatto che l'array è potenzialmente frastagliato; questo vuol dire che un eventuale ciclo sulle colonne dovrà fermarsi sull'ultima colonna in assoluto, e questo indice massimo di colonna lo devi calcolare con un ciclo apposito sulle righe, dentro cui, se è il caso, aggiorni il max indice con il max appena considerato.

Perdona la mia ignoranza, ma questa "verifica" non la fa ogni volta che cambia colonna??
Code:
for(int j=0;j<A.length;j++)
{
for(int i=0;(i<A[j].length-1)&&(!trovato);i++)
{

la condizione del secondo for ---> i<A[j].length-1  è dipendente dalla condizione del primo for, quindi dovrebbe controllare ad ogni cambio di colonna il numero di righe (e quindi la dimensione) della colonna in questione....



Quote
Poi, nel secondo ciclo interno a quello sulle colonne, cioè quello sulle righe, dovrai prestare attenzione che la riga considerata abbia effettivamente la colonna considerata esternamente (un banale if sarà sufficiente), e solo in tal caso accingerti a leggere il valore di tale colonna (per la riga considerata  ).

Quindi nel seguente codice dove e come inseriresti l'if di controllo??  boh

Code:
/* Scrivere un metodo che prenda in input un array bidimensionale frastagliato A di Stringhe e restituisca un boolean che indichi
se esiste in A una colonna contenente una stringa e la sua proiezione (Attenzione alle stringhe mancanti!). La proiezione di una stringa
s è la stringa s' ottenuta sostituendo ogni carattere in s con il carattere successivo(o precedente).
Es s="depg" s'="cdof"*/

public boolean Proiezione(String[][] A)
{
boolean trovato;
for(int j=0;j<A.length;j++)
{
trovato=false;
for(int i=0;(i<A[j].length-1)&&(!trovato);i++)
{
int x=A[i][j].length();
if(x==A[i+1][j].length())
{
char[] c=A[i][j].toCharArray(); char[] c1=A[i+1][j].toCharArray();
int y=0,k=0;
for(int z=0;(z<x)&&(!trovato);z++)
{
if(c[z]+1==c1[z])
y++;
else if(c[z]==c1[z]+1)
k++;
if((y==x)||(k==x))
{
trovato=true;
return trovato;
}
}
}
}
}
return trovato;
}
« Last Edit: 12-12-2010, 16:02:58 by Luxandro » Logged

"Quando non stai guardando è come un'onda. Quando guardi è come una particella!"
ɹǝǝ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 #11 on: 12-12-2010, 16:36:38 »

Eh, infatti il tuo codice è sbagliato, perché fa così:

per ogni riga
    per ogni colonna
        se la stringa all'incrocio tra riga e colonna e quella appena sotto
        (contigua nella colonna, senza essere sicuro che esista tra l'altro)
        hanno lo stesso numero di caratteri
             verifica se una delle due è proiezione dell'altra
                  in tal caso restituisci vero

Quindi l'errore principale è che confronti solo stringhe consecutive (in una colonna), sempre che quella sotto esista (se non esiste riceverai un bel ArrayIndexOutOfBoundsException non previsto boh !).

Ma questo errore è causato da uno più grave, e cioè il fatto che hai ciclato per righe inizialmente, piuttosto che per colonne.

Ti faccio vedere come va impostato un problema in cui intuitivamente bisogna ciclare per prima cosa sulle colonne, sapendo che non tutte le righe hanno lo stesso numero di colonne :
Code:
    public boolean ProiezioneReversengineer (String [][] A)
    {
        int maxColonna = 0;
       
        //cerca l'indice di colonna massimo
        for (int i = 0; i < A.length; i++)
            maxColonna = Math.max (maxColonna, A [i].length);
       
        boolean ciStaBeneFinora = false;                                                //prevediamo un fallimento della ricerca
                                                                             
        for (int c = 0; c < maxColonna; c++)                                            //per ogni colonna
            for (int r1 = 0; r1 < A.length - 1 && !ciStaBeneFinora; r1++)               //per ogni coppia (r1, r2) di righe ove r1<r2 (qui scegliamo r1)
                if (c < A [r1].length)                                                  //se entrambe le colonna hanno la stringa alla rispettiva riga r-esima (qui controlliamo la riga r1)
                    for (int r2 = r1 + 1; r2 < A.length && !ciStaBeneFinora; r2++)      //per ogni coppia (r1, r2) di righe ove r1<r2 (qui scegliamo r2)
                        if (c < A [r2].length)                                          //se entrambe le colonna hanno la stringa alla rispettiva riga r-esima (qui controlliamo la riga r2)
                            if (A [r1][c] != null && A [r2][c] != null &&               //se le stringhe esistono veramente e hanno la stessa lunghezza
                                A [r1][c].length () == A [r1][c].length ())             //(questo controllo è lecito, anche se una delle stringhe fosse null, poichè in Java AND è cortocircuitato)
                            {
                                char [] s1 = A [r1][c].toCharArray ();                  //estrapoliamo una versione array di char di A [r1][c] per veloci controlli successivi
                                char [] s2 = A [r2][c].toCharArray ();                  //estrapoliamo una versione array di char di A [r2][c] per veloci controlli successivi

                                ciStaBeneFinora = true;                                 //prima controlliamo se A [r2][c] è proiezione di A [r1][c] e supponiamo una successo nella ricerca
                                for (int k = 0; k < s1.length && ciStaBeneFinora; k++) 
                                    if (s2 [k] != s1 [k] + 1)
                                        ciStaBeneFinora = false;
                               
                                if (!ciStaBeneFinora)                                   //se la ricerca non ha dato l'esito positivo sperato
                                {
                                    ciStaBeneFinora = true;                             //controlliamo se A [r1][c] è proiezione di A [r2][c] e supponiamo una successo nella ricerca
                                    for (int k = 0; k < s1.length && ciStaBeneFinora; k++)
                                        if (s1 [k] != s2 [k] + 1)
                                            ciStaBeneFinora = false;
                                }
                            }
        return ciStaBeneFinora; //se ci sta bene finora, cioè fino alla fine del codice, allora ci sta bene definitivamente :D
    }
L'indentazione è corretta (anche quella dei commenti che sono elegantemente accorpati da una certa colonna identica in poi), solo che questo forum mostra il codice con un font proporzionato (non monospaziato)  testate.

La cosa bella di questo codice è che c'è un'unico punto in cui viene restituito un valore, ed è esattamente alla fine.
Qualora la ricerca abbia dato esito positivo, in un numero di passi pari al numero di for annidati (quindi costante) si torna al livello più esterno da qualsiasi ciclo (grazie alla variabile ciStaBeneFinora, dal nome azzeccatissimo [Emoticon] Asd!).
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
Luxandro
Apprendista Forumista
**
Offline Offline

Posts: 307



« Reply #12 on: 12-12-2010, 20:41:15 »

Ho chiarito molti aspetti riguardo l'utilizzo dei metodi e dei cicli. Mi resta un ultimo dubbio riguardante la verifica della dimensione di un array frastagliato.

Una dimensione è data da NomeVett.length, mentre la seconda dimensione deve essere verificata ogni ciclo.
La mia domanda è la seguente: Basta fare un for che calcola il massimo numero di colonne ad ogni iterazione del primo for in questo modo?
Code:
for (int g=0;i<A.length;i++)
      maxColonna=Math.max(maxColonna,A[g].length);

o bisogna mettere un if che controlli che la dimensione della riga sia maggiore dell'indice della colonna?
Code:
for (int c = 0; c < maxColonna; c++)                                   
            for (int r1 = 0; r1 < A.length - 1; r1++)   
                if (c < A [r1].length)                                             
                    for (int r2 = r1 + 1; r2 < ; r2++)

forse l'if si mette quando si deve controllare una riga con la sua successiva e non si è sicuri dell'esistenza di quest'ultima 

Prendiamo come riferimento il seguente esercizio

Code:
/* Scrivere un metodo che prenda in input un array bidimensionale frastagliato A di stringhe, e restituisca
un boolean che indichi se esistono due righe compatibili in A. Due righe r1 ed r2 si dicono compatibili se esiste
una stringa in r1 e contemporaneamente la sua inversa r2*/

public boolean Compatibili(String[][] A)
{
int maxColonna=0;
        
        for (int g=0;i<A.length;i++)
            maxColonna=Math.max(maxColonna,A[g].length);

for(int i=0;i<A.length;i++)
{
for(int j=0;j<maxColonna;j++)
{
int x=A[i][j].length();
char[] c=A[i][j].toCharArray();char[] c1=new char[x];

for(int a=0,b=x;(a<x)&&(b>0);a++,b--)
c1[a]=c[b];
String A1="";A1=c1.toString();

for(int k=i+1;k<A.length-1;k++)
{
for(int z=0;z<A[i].length;z++)
{
if(A1.equals(A[k][z]))
return true;
}
}
}
}
return false;
}

PS.: L'esercizio è svolto in fretta e furia  [Emoticon] Asd quindi ciò che vi chiedo, se possibile, è una semplice spiegazione sul ciclo di verifica della seconda dimensione dell'array frastagliato, più che il corretto svolgimento dell'esercizio  

Grazie in anticipo!!  
« Last Edit: 13-12-2010, 09:36:13 by Luxandro » Logged

"Quando non stai guardando è come un'onda. Quando guardi è come una particella!"
Pages: [1]   Go Up
Print
Jump to: