Pages: [1]   Go Down
Print
Author Topic: esercizisecondaprova.pdf  (Read 1220 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
ciccio
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 143



« on: 23-01-2009, 16:37:52 »

ciao a tutti!!
Sono nuovo del forum, anche se lo seguo praticamente dall'inizio delle lezioni.
Non posso fare a meno di ringraziarvi tutti, molto spesso mi sono appoggiato a questo forum per risolvere + o - gravi problemi e praticamente sempre con successo!!
Visto che finalmente anchio mi sono iscritto mi sembra giusto, cari colleghi, condividere anche il mio lavoro (per quanto utile possa essere...). Posto dunque il programma che ho appena finito di scrivere e commentare (è il sesto del file "esercizisecondaprova.pdf"; compila e gira):
Code:
/*
Un “dizionario” è un array di stringhe ordinato lessicograficamente in senso crescente. Lo “scan7”
di una stringa S (di lunghezza un multiplo di 7) è una sequenza di stringhe di lunghezza 7 la cui
concatenazione genera S. Scrivere un metodo che prenda in input una stringa S ed un dizionario, e
restituisca un nuovo dizionario aggiornato con tutte le stringhe nello scan7 di S.
Si supponga che non esistano stringhe ripetute. Non è possibile utilizzare metodi di ordinamento.
*/

class Es6
{
public static String[] creaScan7 (String S)
{
String[] scan7 = new String[S.length()/7]; // crea l'array scan7 le cui dimensioni variano al variare di S

int x = 0;
for (int i = 0; i < scan7.length; i++)  //assegna ad ogni posizione di scan7 la rispettiva sottostringa di S
{
scan7[i] = S.substring(x , x+7);
x += 7;
}
return scan7;
}

public static String[] metodo (String S, String[] dizionario)
{
String[] scan7 = creaScan7(S); //crea l'array scan7 che contiene la stringa S divisa in stringhe di lunghezza 7

String[] nuovoDiz = new String[dizionario.length + scan7.length]; //crea il nuovo dizionario che conterrà il vecchio + le nuove stringhe

System.arraycopy (dizionario, 0, nuovoDiz, 0, dizionario.length); // copia il vecchio dizionario nel nuovo

int ultimo = dizionario.length; // puntatore della prima posizione libera nel nuovo dizionario

for (int i = 0; i < scan7.length; i++) // iterazione dell'array scan7
{
if (scan7[i].compareTo(nuovoDiz[ultimo-1]) > 0) // controlla se scan7 è l'elemento + grande del dizionario
{
nuovoDiz[ultimo] = scan7[i]; // nel caso copia scan7[i] nell' ultima posizione del dizionario
ultimo++;
continue;
}
if (scan7[i].compareTo(nuovoDiz[0]) < 0) // controlla se scan7[i] è l'elemento + piccolo del dizionario
{
for (int k = ultimo; k > 0; k--) // nel caso fa slittare l'intero dizionario di una posizione avanti
nuovoDiz[k] = nuovoDiz[k-1];
nuovoDiz[0] = scan7[i]; // e copia scan7[i] nella prima posizione del dizionario
ultimo++;
continue;
}
for (int j = 0; j < ultimo-1; j++) // iterazione dell'array dizionario, dalla prima alla penultima posizione occupata
{ //penultima in quanto l' ultima viene controllata alla riga 36
if (scan7[i].compareTo(nuovoDiz[j]) > 0 && scan7[i].compareTo(nuovoDiz[j+1]) < 0) // controlla se scan7[i] è compreso fra due elementi
{ //del dizionario
for (int k = ultimo; k > j+1; k--) //nel caso fa slittare il dizionario di una posizione avanti, a partire
nuovoDiz[k] = nuovoDiz[k-1];   // dall'elemento che si andrà a sostituire
nuovoDiz[j+1] = scan7[i]; // e copia scan7[i] nel dizionario al posto dell'elemento più grande (che è stato fatto slittare)
ultimo++;
break;
}
}
}
return nuovoDiz;
}

public static void main(String[] args)
{
String [] dizionario = {"cane", "ciao", "lago", "toro"};
String S = "cementominossearnoldozingaroernesto";

String [] newDiz = metodo (S, dizionario);
for (int i = 0; i < newDiz.length; i++)
System.out.println (newDiz[i]);
}
}

ne posterò altri man mano che ne scrivo...ne approfitto per chiedere: ma qualcuno ha degli esercizi di uml già svolti?? questa settimana non sono potuto venire a lezione e non so nemmeno se il prof ne ha fatti in aula. Mi farebbero veramente comodo, grazie.
« Last Edit: 23-01-2009, 16:51:45 by ciccio » Logged

"Non importa quanto vai piano, l' importante è che non ti fermi" (CONFUCIO)
Fr3d3R!K
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.463



« Reply #1 on: 23-01-2009, 20:37:27 »

ciao ciccio benvenuto nel forum! Per quanto riguarda gli esercizi di UML ho già postato i link in altri topic dove veniva fatta richiesta di questi esercizi, se gironzoli un pò (soprattutto nel vecchio forum) li trovi. Intanto i link che avevo io li rimetto anche qui:
http://www.dmi.unict.it/u2/index.php?option=com_joomlaboard&Itemid=34&func=view&id=45580&catid=6
http://www.dmi.unict.it/u2//index.php?option=com_joomlaboard&Itemid=34&func=view&id=24487&catid=6
http://www.dmi.unict.it/u2/index.php?option=com_joomlaboard&Itemid=34&func=view&id=44974&catid=6
Saluti e buono studio!
Logged

Search Button, CODE Tag, Google & Italian language are your friends! Use Them!
ciccio
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 143



« Reply #2 on: 23-01-2009, 21:06:23 »

ciao ciccio benvenuto nel forum! Per quanto riguarda gli esercizi di UML ho già postato i link in altri topic dove veniva fatta richiesta di questi esercizi, se gironzoli un pò (soprattutto nel vecchio forum) li trovi. Intanto i link che avevo io li rimetto anche qui:
http://www.dmi.unict.it/u2/index.php?option=com_joomlaboard&Itemid=34&func=view&id=45580&catid=6
http://www.dmi.unict.it/u2//index.php?option=com_joomlaboard&Itemid=34&func=view&id=24487&catid=6
http://www.dmi.unict.it/u2/index.php?option=com_joomlaboard&Itemid=34&func=view&id=44974&catid=6
Saluti e buono studio!

ciao Fr3d3R!K e grazie per l'ascolto. solo ho il dubbio che la prova di laboratorio di quest'anno si svolga in maniera diversa rispetto agli anni scorsi...dubbio che in realtà ho già postato in questo topic e al quale in realtà ha già risposto Antoniods. Tu puoi confermare?
Logged

"Non importa quanto vai piano, l' importante è che non ti fermi" (CONFUCIO)
Fr3d3R!K
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.463



« Reply #3 on: 23-01-2009, 21:35:58 »

per quelli da 12 crediti la prova sarà con "qualcosa in più" a detta del professore, ma fondamentalmente uguale agli anni passati (sempre la stessa cosa dovrà essere fatta ).
Logged

Search Button, CODE Tag, Google & Italian language are your friends! Use Them!
Pages: [1]   Go Up
Print
Jump to: