Pages: 1 [2]   Go Down
Print
Author Topic: prima prova di oggi?  (Read 4258 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
isuccia89
Apprendista Forumista
**
Offline Offline

Gender: Female
Posts: 481



« Reply #15 on: 30-06-2010, 15:48:19 »

ma qualcuno che ha superato l'esame potrebbe postare le sue soluzioni???

  non è possibile vedere come avete fatto questi esercizi?
Logged

Se incontrerai qualcuno persuaso di saper tutto e di esser capace di far tutto non potrai sbagliare, costui è un imbecille! (Confucio)
gianluca
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 129



« Reply #16 on: 01-07-2010, 12:51:24 »

Quote
Ciao isuccia...

ora sono molto occupato,

La prova non l'ho superata perchè ho sbagliato a copiare dalla brutta... testate [Emoticon] Rosik Asd

Stasera metterò gli esercizi ok? pc

P.S.     Quelli postati da me prima avevano qualche errore... li ho rifatti e sono privi di errori sintattici

Ciauuu
« Last Edit: 01-07-2010, 13:02:54 by gianluca » Logged

*Ho paura di cadere..ma ho anche tanta voglia di volare..questa è la mia contraddizione*
Il Capitano
Apprendista Forumista
**
Offline Offline

Posts: 409


« Reply #17 on: 02-07-2010, 17:45:57 »

Mari_C il tuo esercizio sembra perfetto.Potresti scrivere anche qualche commento?
Grazie

Resto comunque anche io in attesa della soluzione del secondo esercizio

Ciao
Logged
Seferex
Matricola
*
Offline Offline

Gender: Male
Posts: 34



« Reply #18 on: 02-07-2010, 21:04:09 »

Ehm non vorrei rompere le scatole, ma a me non sembra per niente perfetto....

Code:
for(int x=0;x<A.length;x++){
         for(int j=0;j<A[x].length;j++){
            somma1+=A[i][j];
            somma2+=A[i][j];

Già solo questo non va bene ^^"
Dentro le due variabili si ha lo stesso valore...
E' ovvio che nell'if ti darà SEMPRE lo stesso risultato...

Appena posso posto il mio, ma lo ho in un'altro pc, ed ora non posso prenderlo..
« Last Edit: 02-07-2010, 21:35:17 by Seferex » Logged
Il Capitano
Apprendista Forumista
**
Offline Offline

Posts: 409


« Reply #19 on: 03-07-2010, 00:33:05 »

Ehm non vorrei rompere le scatole, ma a me non sembra per niente perfetto....


Ma quale rompere le scatole anzi hai ragione...quanto prima postalo e se puoi anche il secondo
Grazie
Logged
Seferex
Matricola
*
Offline Offline

Gender: Male
Posts: 34



« Reply #20 on: 03-07-2010, 01:55:33 »

Posto il secondo esercizio, dovrebbe essere corretto, ma non ci metterei la mano sul fuoco  

Code:
class eserciziocompito
{
public boolean metodo (String [][] A)
{
boolean trovato=false;
int max=0,i,j,y,z;
for (i=0; i<A.length; i++) //trovo la riga più grande della marice
{
if (A[i].length>max)
max=A[i].length;
}

for (i=0;i<max;i++)            //scorro la matrice
for (j=0;j<A.length;j++)
for (y=j+1;y<A.length;y++) //confronto un elemento della matrice con tutti gli altri
if (j<=A[i].length-1 && y<=A[i].length-1) //verifico che la stringa esista
for(z=0; z<A[i][j].length(); z++) //verifico che la stringa sia una proiezione
if(A[i][j].charAt(z)!=A[i][y].charAt(z)+1)
{
z=A[i][j].length();
trovato=false;
}
else trovato=true;
if(trovato==true)
return true;
else return false;
}
}

N.B.
In questa parte del codice:

Code:
for(z=0; z<A[i][j].length(); z++) //verifico che la stringa sia una proiezione
if(A[i][j].charAt(z)!=A[i][y].charAt(z)+1)
z=A[i][j].length();
trovato=false;
}

Si dovrebbe mettere un while, sono troppo pigro per correggerlo ora (sono le 3 di notte xD)
Ovviamente se trovate errori ditelo Wink

Domani vedo se riesco a postare il primo

EDIT:

Questo invece è il primo esercizio:

Code:
class esercizio
{
public boolean metodo (long [][] A, byte [] S)
{
int i,j,a;
boolean trovato=false;
for (i=0;i<S.length;i++)
for (j=i+1;j<S.length;j++)
{
long somma1=0;
long somma2=0;
trovato=false;

for (a=0;a<A[0].length;a++)
{
somma1+=somma1+A[S[i]][a];
somma2+=somma2+A[S[j]][a];
}
if (somma1==somma2)
trovato=true;
}
if (trovato==true)
return true;
return false;
}


}
« Last Edit: 04-07-2010, 16:49:30 by Seferex » Logged
nocs
Matricola
*
Offline Offline

Posts: 94



WWW
« Reply #21 on: 06-07-2010, 23:15:10 »

Non sò se può servire ancora dato il ritardo di risposta in ogni caso ecco il 2° esercizio come l'ho svolto..

Code:
public class Esercizio2 {
public static boolean Es2 (String A[][]) {
// calcolo riga più lunga
int max = A[0].length;
for (int i=1;i<A.length;i++)
if (A[i].length > max)
max = A[i].length;

for (int j=0;j<max;j++)
for (int i=0;i<A.length;i++)
for (int k=i+1;k<A.length;k++)
{
if ((A[i].length > j) && (A[k].length > j))
{
String tmp = "";
for (int x=0;x<A[i][j].length();x++)
tmp += (char) (A[i][j].charAt(x)+1); // prendo il successivo carattere ASCII

if (tmp.equals(A[k][j]))
return true;

}
}
return false;
}

public static void main(String[] args) {
String A [][] = {{"ercaz","sfag","array"},{"fsdb{","exercise","xsafjw","tkfnrfien"},{"bmfttjp","geek","sparc"}};
boolean found = Es2(A);
System.out.println(found);

}

}
Logged
Seferex
Matricola
*
Offline Offline

Gender: Male
Posts: 34



« Reply #22 on: 07-07-2010, 09:52:06 »

Per esperienza personale (mi è costato 5 punti nel vecchio compito)
Mai mettere un return durante un ciclo for, mi riferisco a questo:

Code:
for (int x=0;x<A[i][j].length();x++)
tmp += (char) (A[i][j].charAt(x)+1); // prendo il successivo carattere ASCII

if (tmp.equals(A[k][j]))
return true;
Logged
nocs
Matricola
*
Offline Offline

Posts: 94



WWW
« Reply #23 on: 07-07-2010, 16:28:28 »

Bhè il testo non lo diceva che non è possibile utilizzare la return all'interno dei cicli, in questo caso è utilizzata per uscire subito dal metodo appena trova la sua proiezione non ti interessa sapere quante ce ne siano o fare prima tutti i controlli, in ogni caso non vorrei peccare di presunzione ma credo sia giusto!
Logged
Seferex
Matricola
*
Offline Offline

Gender: Male
Posts: 34



« Reply #24 on: 08-07-2010, 01:10:07 »

Forse sono stato io il presuntuoso con quel reply, è solo che sono rimasto molto scottato l'ultima volta (sarei passato se non fosse stato per quell'errore)

Però ipotizza che una stringa sia "ciao" e quella che controlli è "dlbpaaa" ti ritorna cmq true... Quando ovviamente non dovrebbe ^^" perchè appena legge "dlbp" si ferma, vede che è quello che cerca, e si "mangia" gli altri 3 caratteri

Correggimi pure se sbaglio 
« Last Edit: 08-07-2010, 01:24:25 by Seferex » Logged
nocs
Matricola
*
Offline Offline

Posts: 94



WWW
« Reply #25 on: 08-07-2010, 12:34:39 »

Se vuoi capirlo meglio fai una print di controllo alla String tmp, ad essa vengono concatenati tutti i caratteri aumentati di 1 nella tabella ASCII, fatta quella operazione c'e' il controllo con il metodo equals() che se le due stringhe confrontate non sono uguali non entra nel suo blocco d'istruzioni (in questo caso la semplice return) . Non sò se la spiegazione è giusta in ogni caso appena ho 5minuti riguardo il codice e faccio un paio di prove..
Logged
Seferex
Matricola
*
Offline Offline

Gender: Male
Posts: 34



« Reply #26 on: 08-07-2010, 23:20:59 »

Mi sono spiegato male mi sa ^^"
Allora, ovviamente se non sono uguali non entra nel controlla, e fin qui ci siamo... Però se la stringa è uguale fino ad un certo punto, ti da un return sbagliato.... Ti rifaccio un esempio.
Ipotiziamo che abbiamo la stringa " a b c d " dovrebbe ritornare true se la stringa è uguale a " b c d e "
Se però la stringa è uguale a " b c d e a a a" ti ritorna cmq true, quando ovviamente non dovrebbe...
Questo perchè fa il controllo, vede che è uguale ed esce dal ciclo senza continuarlo...
Spero di essermi spiegato meglio ^^"
Cmq fidati, non voglio fare il saputone (anche perchè ho ancora molto da imparare), ma evita di mettere i return all'interno di cicli ^^
Logged
nocs
Matricola
*
Offline Offline

Posts: 94



WWW
« Reply #27 on: 08-07-2010, 23:50:47 »

Continuo a non capire.. l'ho provato nel codice l'esempio che hai riportato tu ma mi ritorna "false" come pensavo provalo tu magari io non l'ho ben afferrato ,  il codice è quello. Per la return ok! accetto il consiglio c'è sempre da imparare..
Logged
Seferex
Matricola
*
Offline Offline

Gender: Male
Posts: 34



« Reply #28 on: 09-07-2010, 14:18:31 »

Probabilmente sono io un cane a spiegare xD o ancora peggio non ho capito niente ahahahah  testate
Logged
Pages: 1 [2]   Go Up
Print
Jump to: