Pages: [1]   Go Down
Print
Author Topic: Un esercizio che ho pensato io...mi aiutereste?  (Read 631 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: 15-06-2009, 10:37:12 »

L'esercizio consiste nell'ordinare lessicograficamente una matrice S, e non riesco a capire l'errore...
mi dà eccezione alla riga 52...

Code:
//Scrivere un metodo che prenda in input una matrice S e restituisca la stessa matrice ORDINATA lessicograficamente

class Exmio2
{
public static void main(String [] args)
{
String [][] S={{"bello","buono","veloce"},
                    {"semplice","mostro","idolo"},
    {"lugubre","amaranto","lepre"}};
   
    String [][] D=metodo(S);
   
    for(int r=0; r<D.length; r++)
    {
    for(int c=0; c<D[r].length; c++)
    System.out.print(D[r][c]+" ");
    System.out.println();
    }
}


public static String[][] metodo(String[][] S)
{
String tmp="";

String [][] D=new String[S.length][S[0].length];

for(int r=0; r<S.length; r++)
for(int c=0; c<S[r].length; c++)
D[r][c]=S[r][c];



for(int i=0; i<D.length*D[0].length; i++)
{
int ordina=0;

for(int r=0; r<D.length; r++)
{
for(int c=0; c<D[r].length; c++)
{
for(int r1=0; r1<D.length; r1++)
{
for(int c1=0; c1<D[r1].length; c1++)
{
if(c==c1 && r==r1 && c==D[r].length-1 && c1==D[r1].length-1) //Esce dal ciclo se cofronta la colonna finale con la stessa
break;
if(r==r1&& c==c1) //se sono uguali le colonne incrementa la colonna del confronto
c1++;
if(D[r][c].compareTo(D[r1][c1])>0)
tmp=D[r][c];
D[r][c]=D[r1][c1];
D[r][c+1]=tmp;
}
}

}

}
}
return D;
}
}
Logged

"Utilizzare sempre de l'Hôpital.....è come andare a caccia di farfalle con un bazooka".
fabliux
Guest
« Reply #1 on: 15-06-2009, 11:56:36 »

l'ho svolto così...e sembra fuzionare...
Code:
//Scrivere un metodo che prenda in input una matrice S e restituisca la stessa matrice ORDINATA lessicograficamente

class Exmio2
{
public static void main(String [] args)
{
String [][] S={{"bello","buono","veloce"},
                    {"semplice","mostro","idolo"},
    {"lugubre","amaranto","lepre"}};
   
    String [][] D=metodo(S);
   
    for(int r=0; r<D.length; r++)
    {
    for(int c=0; c<D[r].length; c++)
    System.out.print(D[r][c]+" ");
    System.out.println();
    }
}


public static String[][] metodo(String[][] S)
{
String temp="";
String out[][]=new String[S.length][];
for(int i=0;i<S.length;i++)
{
for(int r=0;r<S.length;r++)
{
out[i]=new String[S[i].length];
for(int j=0;j<S[i].length;j++)
{
for(int  c=0;c<S[r].length;c++)
{
if(S[r][c].compareTo(S[i][j])>0)
{
temp=S[r][c];
S[r][c]=S[i][j];
S[i][j]=temp;
}
}
}
}
}
return S;
}
}
Logged
Daréios89
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.679


La musica è la forma d'arte suprema.


« Reply #2 on: 15-06-2009, 17:07:24 »

Si funziona grazie, però non serve a niente dichiarare un nuovo array out.....
Logged

"Utilizzare sempre de l'Hôpital.....è come andare a caccia di farfalle con un bazooka".
Pages: [1]   Go Up
Print
Jump to: