Pages: 1 [2]   Go Down
Print
Author Topic: Esercizio prima parte  (Read 3250 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
atrix0ne
Forumista
***
Offline Offline

Posts: 607


homo faber fortunae suae


« Reply #15 on: 21-02-2009, 16:19:46 »

cosa devo mettere x sistemare il mio programma??
Logged

atrix0ne
Forumista
***
Offline Offline

Posts: 607


homo faber fortunae suae


« Reply #16 on: 21-02-2009, 16:27:36 »

r1=2?
Logged

Root
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 474



« Reply #17 on: 21-02-2009, 16:29:11 »

Quello che intende dire Vivynz e che tu, cominciando a controllare gli elementi della riga r+1, controlli gli elementi della riga adiacente ad r. Devi dunque iniziare da r+2 (stando attendo a non uscire fuori dai limiti del vettore).

Salut
Dario

ti avevo già risposto
Logged

Passa a jabber!
http://jabber.org (il servizio)
http://pidgin.im (il client)

(c'era una volta) www.mytwocent.it
Condividi le tue conoscenze!

linux registered user #449678
atrix0ne
Forumista
***
Offline Offline

Posts: 607


homo faber fortunae suae


« Reply #18 on: 21-02-2009, 16:43:44 »

Questo è il codice corretto:
Code:
/*Scrivere un metodo che prenda in input un array bidimensionale frastagliato A di long, e restituisca
un boolean che indichi se esistono due righe non consecutive in A contenenti rispettivamente due
elementi uguali (anche in colonne differenti).*/
  public class provissima
  {
  public static boolean metodo(long [][]A)
    {
 int r,c,r1,c1=0;
    for(r=0;r<A.length-1;r++)
      {
      for(c=0;c<A[r].length;c++)
        {
        for(r1=r+2;r1<A.length;r1++)
          {
          for(c1=0;c1<A[r1].length;c1++)
            {
            if(A[r][c]==A[r1][c1] )
              {
              return true;
              }
            }
          }
        }
      }
    return false;
    }
   



public static void main (String [] args){

long [][] S = {          {1,2,3,4,5},
                                         {6, 7, 9},
                                         {10, 11, 12,13},
                                         {6,15, 14},
                                         {17,18,19,20} };


System.out.println(metodo(S));
}
}
Logged

Root
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 474



« Reply #19 on: 21-02-2009, 16:50:01 »

Questo è il codice corretto:
Code:
/*Scrivere un metodo che prenda in input un array bidimensionale frastagliato A di long, e restituisca
un boolean che indichi se esistono due righe non consecutive in A contenenti rispettivamente due
elementi uguali (anche in colonne differenti).*/
  public class provissima
  {
  public static boolean metodo(long [][]A)
    {
 int r,c,r1,c1=0;
    for(r=0;r<A.length-1;r++)
      {
      for(c=0;c<A[r].length;c++)
        {
        for(r1=r+2;r1<A.length;r1++)
          {
          for(c1=0;c1<A[r1].length;c1++)
            {
            if(A[r][c]==A[r1][c1] )
              {
              return true;
              }
            }
          }
        }
      }
    return false;
    }
   



public static void main (String [] args){

long [][] S = {          {1,2,3,4,5},
                                         {6, 7, 9},
                                         {10, 11, 12,13},
                                         {6,15, 14},
                                         {17,18,19,20} };


System.out.println(metodo(S));
}
}

Una miglioria potrebbe essere quella di modificare la condizione del primo for in r<A.length-2.
La penultima riga infatti porterebbe r2 al valore A.length e quindi la condizione su r2 che regola il for fallirebbe ad ogni iterazione del for che controlla c.
Logged

Passa a jabber!
http://jabber.org (il servizio)
http://pidgin.im (il client)

(c'era una volta) www.mytwocent.it
Condividi le tue conoscenze!

linux registered user #449678
atrix0ne
Forumista
***
Offline Offline

Posts: 607


homo faber fortunae suae


« Reply #20 on: 21-02-2009, 17:04:59 »

quindi aggiungere r<A.length potrebbe migliorarlo,ma nel mio caso il professore a quell'esercizio potrebbe darmi punteggio pieno?
Logged

Vivynz
Forumista Eroico
*****
Offline Offline

Gender: Female
Posts: 2.033


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


« Reply #21 on: 22-02-2009, 10:20:41 »

scusate ma
Code:
r<A.length-2
non è una miglioria è necessario...perchè essendo r1=r+2 quando r va a leggere la penultima riga r+2 esce fuori dall'array!
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.
atrix0ne
Forumista
***
Offline Offline

Posts: 607


homo faber fortunae suae


« Reply #22 on: 22-02-2009, 10:53:53 »

si in effetti hai ragione  girl
Logged

Vivynz
Forumista Eroico
*****
Offline Offline

Gender: Female
Posts: 2.033


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


« Reply #23 on: 22-02-2009, 11:42:53 »

 ok
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.
Root
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 474



« Reply #24 on: 22-02-2009, 13:28:53 »

scusate ma
Code:
r<A.length-2
non è una miglioria è necessario...perchè essendo r1=r+2 quando r va a leggere la penultima riga r+2 esce fuori dall'array!
Si, il valore di r2 è maggiore del numero di righe ma la condizione del for

r2<A.length

fallisce miseramente, quindi non si sfora nulla.

Salut
Dario
Logged

Passa a jabber!
http://jabber.org (il servizio)
http://pidgin.im (il client)

(c'era una volta) www.mytwocent.it
Condividi le tue conoscenze!

linux registered user #449678
Pages: 1 [2]   Go Up
Print
Jump to: