Pages: 1 [2] 3   Go Down
Print
Author Topic: PRIMA SOLUZIONE ALL'ESAME DI OGGI  (Read 8039 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
pippo
Apprendista Forumista
**
Offline Offline

Posts: 150



« Reply #15 on: 07-04-2009, 19:49:06 »

si infatti, è più efficiente con 4 for
Logged
atrix0ne
Forumista
***
Offline Offline

Posts: 607


homo faber fortunae suae


« Reply #16 on: 07-04-2009, 21:08:42 »

il secondo cm lo avete fatto??
Logged

Daréios89
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.679


La musica è la forma d'arte suprema.


« Reply #17 on: 07-04-2009, 22:10:22 »

Ragazzi, io tempo di non averlo superato, dopo tutti quei post..  I
Ci aggiorniamo ragazzi.
Logged

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

Posts: 607


homo faber fortunae suae


« Reply #18 on: 07-04-2009, 22:13:45 »

quanti for hai fatto per ogni eser?
Logged

Daréios89
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.679


La musica è la forma d'arte suprema.


« Reply #19 on: 07-04-2009, 22:20:52 »

per il primo 5, per l'altro....aimè.....uno solo..  cry
Logged

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

Posts: 607


homo faber fortunae suae


« Reply #20 on: 07-04-2009, 23:14:18 »

ok allora ci rivedremo a giugno tutti e 2 ok pc
Logged

djjeck
Matricola
*
Offline Offline

Gender: Male
Posts: 89


Ho una donna nuda per avatar. Non c'era di meglio.


WWW
« Reply #21 on: 08-04-2009, 00:50:26 »

Maggiore del massimo? Non uguale?

Mannaggia, ecco il mio metodo corretto
Code:
public class PerimetroEMassimo{
/*
Scrivere un metodo che prenda in input una matrica A di float,
e restituisca un boolean che indicihi se la somma degli elementi del perimetro di A
è maggiore del massimo in A.
 */
  public static boolean perimetroUgualeAlMassimo(float[][] A,float...vars){
    return A.length==0||A[0].length==0?true:(vars.length==0)?perimetroUgualeAlMassimo(A,0,0,0,A[0][0]):(vars[0]==A.length)?(vars[2]>vars[3]):perimetroUgualeAlMassimo(A,vars[0]+(vars[1]==A[(int)vars[0]].length-1?1:0),vars[1]==A[(int)vars[0]].length-1?0:vars[1]+1,vars[2]+(vars[0]==0||vars[1]==0||vars[0]==A.length-1||vars[1]==A[(int)vars[0]].length-1?A[(int)vars[0]][(int)vars[1]]:0),Math.max(vars[3],A[(int)vars[0]][(int)vars[1]]));
  }
  public static void main(String[] args){
    System.out.println(perimetroUgualeAlMassimo(new float[][]{{1,1,1,1},{1,10,0,1},{1,1,1,1}}));
    System.out.println(perimetroUgualeAlMassimo(new float[][]{{1,1,1,1},{1,11,0,1},{1,1,1,1}}));
  }
}
Logged
Serginho21
Guest
« Reply #22 on: 08-04-2009, 12:41:37 »

secondo voi quando li metterà i risultati il prof?
Logged
ShiShi
Apprendista Forumista
**
Offline Offline

Gender: Female
Posts: 256



« Reply #23 on: 08-04-2009, 14:27:49 »

Questo è il mio primo:

Code:
public class Cancella2 {
     public static void main(String [] args) {
   float [][] A={{1, 1, 1, 1, 1},
                  {1, 2, 4, 0, 1},
                  {1, 2, 3, 2, 1},
                  {1, 1, 1, 1, 1}};
        System.out.println (metodo (A));
     }

static boolean metodo (float [][]A) {
    float tmp=0;
    float max=0;
    float somma=0;
    boolean prova = false;
    for(int r=0; r<A.length; r++)
       for(int c=0; c<A[0].length-2; c++) {
           somma+= A[r][0] + (A[r][A[0].length]) + A[0][c+1] + A[A[0].length][c+1];
           if (A[r][c]>tmp) {
               max=A[r][c];
               tmp=A[r][c];
           }
       if (somma > max)
           prova = true;
        }
        return prova;
   }
}

Mi da errore

 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
   at Cancella2.metodo(Cancella2.java:18)
   at Cancella2.main(Cancella2.java:Cool

Qualcuno sa dirmi come posso correggerlo?
Se metto A.length-5 non mi da più l'essore però ovviamente non mi ritorna true perchè sballa tutto.


Il secondo invece:
Code:
public class Cancella {
     public static void main(String [] args) {
 String [][]S = {{ "abc" , "defg" , "hi" } ,
                  { "lmn" , "opq"} ,
                  { "rst" , "uvz", "wy"} ,
                  { "jkx" , "?òssss" , "§j"}};
                 
 String [][]S1 = {{ "abc" , "ded" , "hsd" } ,
                  { "lmn" , "opg"} ,
                  { "rst" , "uvd", "wyg"} ,
                  { "jkx" , "?òssss" , "§jgfh"}};
  System.out.println (metodo (S,S1));
  }


static int metodo(String[][] S, String[][] S1) {
int j=-1;
for(int r=0; r<S.length-2; r++) {
    int cont=0;
   for(int c=0; c<S[r].length-2; c++) {
       if(S[c][r].charAt(S[c][r].length()-1) == S1[c][r].charAt(S1[c][r].length()-1))
        cont++;
    if (cont == S[0].length-2)
        j=c;
   }
  }
  return j;
 }
}
compila ed esegue correttatemente, no problem per questo.
Logged
arcotix
Matricola
*
Offline Offline

Posts: 18


« Reply #24 on: 08-04-2009, 18:58:44 »

Code:
public class esercizio1 {
        static boolean metodo(float[][]A)
{
boolean maggiore=false;
float max=0;
float perimetro=0;
for(int r=0;r<A.length;r++)
{
perimetro += A[r][0];
perimetro += A[r][A[A.length-1].length-1];
for(int c=0;c<A[r].length;c++)
{
if(max<A[r][c])
max=A[r][c];
if(r<1)
{
perimetro += A[0][c];
perimetro += A[A.length-1][c];
if(c==0)
{
perimetro =(perimetro - A[0][0])-A[0][A[0].length-1];
perimetro =(perimetro - A[A.length-1][0])-A[A.length-1][A[A.length-1].length-1];

}
}
}
}
if(max>perimetro)
System.out.println(maggiore=true);
else System.out.println(-1);
return maggiore;

}
public static void main(String[]args)
{
float[][]a = {      {1,2,3},
  {8,37,4},
  {7,6,5}};
metodo(a);

}
}
Questo è il mio di primo, come vedete bastano 2 for e alla fine era piuttosto semplice...invece il secondo qualcuno l'ha fatto in modo corretto?
Logged
atrix0ne
Forumista
***
Offline Offline

Posts: 607


homo faber fortunae suae


« Reply #25 on: 08-04-2009, 19:13:18 »

c'e ki ne ha fatti 2,ki 4,ki 6 buuu del primoo
Logged

atrix0ne
Forumista
***
Offline Offline

Posts: 607


homo faber fortunae suae


« Reply #26 on: 08-04-2009, 19:27:35 »

ki è ke sà il testo del secondo eser?
Logged

dani89
Apprendista Forumista
**
Offline Offline

Posts: 254



« Reply #27 on: 09-04-2009, 11:43:26 »

purtroppo anch'io temo di non passare, tuttavia tornato a casa ho trovato le soluzioni, ecco il primo esercizio:
Code:
public class esame1
{
public static boolean metodo (float[][]A)
{
float max=0,per=0;
for (int i=0;i<A.length;i++)
{
for (int j=0;j<A[0].length;j++)
{
if (A[i][j]>max)
max=A[i][j];
}
}
for (int i=0;i<A.length;i++)
{
for (int j=0;j<A[0].length;j++)
{
if (i==0 || i==A.length-1 || j==0 || j==A.length-1)
per+=A[i][j];
}
}
if (per>max)
return true;
return false;
}
public static void main (String[]args)
{
float[][]A={{1.0f,1.0f,1.0f},
                    {1.0f,7.0f,1.0f},
    {1.0f,1.0f,1.0f}};
boolean s=metodo(A);
System.out.println(s);
System.exit(0);
}
}
e il secondo:
Code:
public class esame2
{
public static int metodo (String[][]S,String[][]S2)
{
int cont=0,colonna=-1;
for (int j=0;j<S[0].length;j++)
{
for (int i=0;i<S.length;i++)
{
if(j >= S[i].length)
{
cont++;
if(cont==S.length)
return j;
}
else
{
int voc_1=S[i][j].length()-1;
int voc_2=S2[i][j].length()-1;
if (S[i][j].charAt(voc_1)==S2[i][j].charAt(voc_2))
{
cont++;
if (cont==S.length)
          return j;
}
}
}
cont=0;
}
return colonna;
}
public static void main (String[]args)
{
String[][]S={{"cane","gatto","mango"},
                     {"banana","libro","vetro","giaguaro"},
     {"canarino","torta"},
     {"polpetta","giubotto","chinotto","pantalone","marmitta"},
     {"motore","carpetta","compasso","macchina"}};
String[][]S2={{"mortadelle","gattino","topo"},
                     {"zainetta","liquoro","toro","jiejre"},
     {"costuma","mansel"},
     {"cartellinz","casettc","cervo","mdeome","odueo"},
     {"barche","bingo","canguro","douoje"}};
int num=metodo(S,S2);
System.out.println(num);
System.exit(0);
}
}
Logged
atrix0ne
Forumista
***
Offline Offline

Posts: 607


homo faber fortunae suae


« Reply #28 on: 09-04-2009, 12:25:34 »

cosa hai messo invece nel compito?
Logged

dani89
Apprendista Forumista
**
Offline Offline

Posts: 254



« Reply #29 on: 09-04-2009, 16:30:14 »

nel compito nel primo esercizio ho fatto 2 for in + inutili, e nel secondo ho sbagliato le condizioni x determinare l'ultima vocale, poichè ho usato lo stesso indice x tutte e 2 gli array, quando nei 2 array le parole da confrontare possono essere diverse anche se finiscono con la stessa vocale, ad esempio: gatto,topo.
Logged
Pages: 1 [2] 3   Go Up
Print
Jump to: