Pages: [1]   Go Down
Print
Author Topic: Esercizio già postato da qualcuno...  (Read 861 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Daréios89
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.679


La musica è la forma d'arte suprema.


« on: 20-02-2009, 20:27:55 »

Ho fatto anche io questo esercizio, come vi sembra, funziona???
A me non funziona se aggiungo nel'array una riga in più...

Alla fine leggete la mia domanda


Code:
/*Scrivere un metodo che prenda come parametro un array bidimensionale int e restituisca un boolean
se colonne consecutive hanno un numero in comune anche*/

class colonnecontigue
{
public static void main(String[] args)
{
      int [][] A={{1,2,3,4},
                      {5,6,7,8},
      {9,10,11,12},
      {13,14,15,16}};
     
      System.out.println(verifica(A));
}
     
public static boolean verifica(int[][] A)
{
boolean esiste=true;


for (int k=0; k<(A[0].length-1); k++)
{
for (int r=0; r<A[0].length; r++)
{
for (int r1=0; r1<A[0].length; r1++)
{
if (A[r][k]==A[r1][k+1])
return esiste;
    }
   
    }
   
    }
    return false;
    }
   
    }


    Ma volevo capire perchè deve essere .length-1?
Forse perchè facendo la scanzione l'ultima colonna coincide con k+1 quindi k si ferma alla penultima e diviene length-1?   
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 #1 on: 20-02-2009, 22:46:42 »

allora c'è qualcosa da sistemare..
1)non è necessario creare la variabile esiste!dove hai messo:
Code:
return esiste;
puoi mettere benissimo
Code:
return true;
in ogni caso questo non comprometteva il funzionamento del codice!
2)nei cicli for delle righe:
Code:
for (int r=0; r<A[0].length; r++)
{
       for (int r1=0; r1<A[0].length; r1++)
       {
dovrebbe essere invece:
Code:
for (int r=0; r<A.length; r++)
{
       for (int r1=0; r1<A.length; r1++)
       {
3)si mette .length-1 proprio per il motivo che hai detto tu!perchè se k si fermasse all'ultima riga k+1 andrebbe fuori dall'array e si genererebbe una IndexOutOfBoundsException!
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.
Daréios89
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.679


La musica è la forma d'arte suprema.


« Reply #2 on: 21-02-2009, 15:46:00 »

Ora mi funziona però ho sempre un dubbio

nel codice praticamente se ho 3 for del tipo

for .........
    {...........
            for......
                {...........
                       for..........
                            {.......


come funzionano gli incrementi?
Cioè si incrementano le variabili dei cicli dal for più intrerno a quello esterno o viceversa?
Logged

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

Gender: Male
Posts: 1.184


"Il destino non è una catena, ma un volo."[A.B.]


« Reply #3 on: 21-02-2009, 17:57:37 »


Ovviamente dal più interno al più esterno.
Il ragionamento è semplice : se la condizione del for più esterno è verificata entro dentro il for e si presenta il secondo for. Se la condizione di questo è verificata entro dentro e incontro il terzo for.
Quest'ultimo cicla se, e fino a quando, la sua condizione è vera.
Uscendo da quest'ultimo for si ritrorna a quello superiore ( il secondo ), si controlla nuovamente se la condizione è verificata e così via ...
Quindi il programma termina i tre for solo quando la condizione del for più esterno non è più verificata.
Spero di essere stato chiaro...
Logged

"Era d'altronde uno di quegli uomini che amano assistere alla propria vita, ritenendo impropria qualsiasi ambizione a viverla.
Si sarà notato che essi osservano il loro destino nel modo in cui, i più, sono soliti osservare una giornata di pioggia." - Seta,Baricco
Pages: [1]   Go Up
Print
Jump to: