Pages: 1 2 [3]   Go Down
Print
Author Topic: Prove 25/2/08  (Read 7182 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
atrix0ne
Forumista
***
Offline Offline

Posts: 607


homo faber fortunae suae


« Reply #30 on: 25-02-2009, 21:43:06 »

non capisco qualè la sua valutazione,sec voi sbagliando qualkosa lieve 18 lo dà?
Logged

Acicatena86
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 404


See full me now who neon


« Reply #31 on: 26-02-2009, 23:29:20 »

Questo è l'esercizio dell'aero, secondo voi è giusto?

Code:
    while (A[m][n]>=0) {......
..................
}
   


Ma  invece di fare così ,perchè non mettevi un bel

Code:
while(! (A[m][n]<=0)
  ??

Così evitavi quegli inutili break, che al prof non piacciono tanto 


Logged
Dhavamba
Apprendista Forumista
**
Offline Offline

Posts: 286


« Reply #32 on: 27-02-2009, 07:29:35 »

Quote
Così evitavi quegli inutili break, che al prof non piacciono tanto 


Quelo che dici tu è sbagliato, perchè anche se cambio quel while, quando l'aereo fà lo spostamento di sinistra non ha nessuno fermo e fà anche lo stesso il movimento di sopra e sotto (e se nel movimento di sinistra andasse verso un uragano o un aereoporto?)

Ora che ci penso, al poso del break potevo fare un bel return, no?
Logged
Crasher
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 417



« Reply #33 on: 27-02-2009, 09:48:48 »

Ora che ci penso, al poso del break potevo fare un bel return, no?
Esattamente...
Cmq sono usciti i vostri risultati...
Logged

Diventa ciò che sei nato per essere
ShiShi
Apprendista Forumista
**
Offline Offline

Gender: Female
Posts: 256



« Reply #34 on: 12-03-2009, 19:36:41 »

Scrivo in questo stesso post, mi sembra il più adatto.
Ho rifatto tutte e quattro le prove. Qualcuno sa dirmi se sono corrette?
Compilano ed eseguono credo perfettamente ciò che viene richiesto, ma magari c'è qualche imperfezione o qualcosa che mi è sfuggito.

Primo
Code:
/*Scrivere un metodo che prenda in input una matrice A di float, e restituisca il numero di
elementi bilanciati di A. Un elemento x di A si dice bilanciato se la sequenza ordinata
formata dai due elementi immediatamente a sinistra di x, l'elemento x e i due elementi
immediatamente a destra di x, è in ordine non-crescente.
N.B. : Gli elementi che non hanno sufficienti "vicini" non devono essere considerati.*/

public class Esame {
    public static void main (String [] args) {
         float [][] A = {{5,4,3,2,1},
                          {1,1,1,1,1},
                          {1,1,1,1,1},
                          {10,9,8,7,6},
                          {1,1,1,1,1}};
            System.out.println (metodo (A));
        }

public static int metodo (float [][]A) {
    int bilanciati = 0;
    for (int r=0; r<A.length; r++) {
        for (int c=2; c<A[0].length-2; c+=2) {
    if ((A[r][c] > A [r][c+1]) && (A[r][c+1] > A [r][c+2]) && (A[r][c] < A [r][c-1]) && (A[r][c-1] < A [r][c-2]))
        bilanciati++;
    }
 }
return bilanciati;
 }
}

Secondo

Code:
/*Scrivere un metodo che prenda in input un array bidimensionale frastagliato A di stringhe,
e restituisca una stringa ottenuta concatenando i penultimi caratteri di tutte le stringhe
in A contenute nella colonna completa più a destra*/

public class Esame2 {
    public static void main (String [] args) {
        String[][]A = {{"abcd","efgh"},
                        {"mno", "pqrst", "il"},
                        {"uvz", "wy", "abcd"}};
            System.out.println (metodo (A));
        }

public static String metodo (String [][]A) {
    String tmp = "";
    int max = A[0].length;
    for (int r=0; r<A.length; r++)
            if (A[r].length < max)
                max = A[r].length;
        for (int r1=0; r1<A.length; r1++) {
    tmp+= A[r1][max-1].charAt(A[r1][max-1].length()-2);
        }
  return tmp;
 }
}

Terzo

Code:
/*Un aereo si muove in una superficie toroidale rappresentata da una matrice S di nxn interi
occupando di volta in volta una posizione di S. L'aereo si sposta alternando un movimento
orizzontale da sinistra a destra ad uno verticale dal'alto in basso; se l'aereo si trova
nella posizione (i,j) l'ampiezza dello spostamento successivo è data da S[i,j] se quest'ultimo è positivo.
Se S[i,j] contiene valore zero si tratta di un aeroporto in cui l'aereo atterra, se contiene un
valore negativo si tratta di un tifone che fa precipitare l'aereo. Scrivere un metodo che prenda
in input S e restituisca il numero di spostamenti compiuti da un aereo cha parte dal centro di S.*/

public class Esame3 {
    public static void main (String [] args) {
         int [][] A = {{1,2,9,2,1},
                        {0,1,0,4,3},
                        {2,1,1,2,1},
                        {2,2,2,1,2},
                        {1,1,0,1,1}};
            System.out.println (metodo (A));
        }
       
public static int metodo (int [][] A) {
    int volo = 0;
    int tmp = 1;
    int r= A.length/2;
    int c = A.length/2;
        while (A[r][c] > 0) {
            volo++;
        if(tmp==1) {
            tmp--;
                  if (r<A.length-1 && r+A[r][c]<A.length)
                      r+=A[r][c];
                  else
                      if(A[r][c]==1)
                      r=0;
                  else
                      r=(r+A[r][c])-(A.length);
            }
        else
            tmp++;
                  if (c<A.length-1 && c+A[r][c]<A.length)
                      c+=A[r][c];
                  else
                      if(A[r][c]==1)
                      c=0;
                  else
                      c=(c+A[r][c])-(A.length);           
    }
    return volo;
    }
}

Quarto

Code:
/*Scrivere 1 metodo che prenda in input un array A di byte, e restituisca un array bidimensionale
frastagliato B di stringhe la cui lunghezza delle righe è data dai valori di A.
Si riempia B con delle stringhe casuali da 5 a 8 caratteri in cui ogni singolo carattere
è 'p' con probabilità 2/3, 'a' con probabilità 1/6 e 'k' con probabilità 1/6.*/

public class Esame4 {
     public static void main (String [] args) {
         byte [] A = {1,2,3,4,};
         String [][] B;
         B=metodo(A);
          for (int r=0; r<B.length; r++) {
               System.out.println("");
                  for (int c=0; c<B[r].length; c++)
            System.out.print (B[r][c]+"|");
           }
        }
       
public static String [][] metodo (byte [] A) {
    String [][] B = new String[A.length][];   
    String tmp = "";
    for (int i=0; i<A.length; i++) {
        B[i] = new String [A[i]];
            for (int c=0; c<B[i].length; c++) {
                B[i][c]= "";
                    for (int h= (int)(Math.random()*8+5); h>0; h--) {
                       int prova = (int)(Math.random()*6+1);
        if (prova <= 4)
                B[i][c] += 'p';
        if (prova == 5)
            B[i][c] += 'a';
        else
            B[i][c] += 'k';
    }
        }
}
    return B;
    }
}
Logged
Pages: 1 2 [3]   Go Up
Print
Jump to: