Ciao,
stò studiando per un esame che avrò tra poghi giorni :muro: :muro:
ed ho qualche problema con la soluzione proposta in classe dal docente.
Il testo dice:
Si richiede il progetto di un dizionario, ossia un'insieme di associazionei, dove ogni associazione è del tipo PAROLA-TRADUZIONE e sia PAROLA che TRADUZIONE sono stringhe costituite da caratteri alfabetici minuscoli.
E' richiesta l'implementazione del solo operatore traduci() che data una PAROLA restituisce la sua TRADUZIONE.
In classe è stato risolto così:
codice:
/** TIPO ASTRATTO DI DATO:
V = {{<p,t>: p ^ t sono stringhe costituite da caratteri alfabetici minuscoli} *NB: Si tratta di un insieme di insiemi
perchè voglio rappresentare una collezione di associazioni parola-traduzione.
O = { 1) traduci: Data una parola p, se p € Dizionario restituisce la traduzione t
C = 0 (non ci sono costanti significative */
public class Dizionario{
private string [][] d; // Rappresendo le associazioni parola-traduzione mediante una matrice quadrata
/** REQUIRES: Il parametro deve essere un array bidimensionale di n righe e due colonne, interamente popolato da
stringhe di caratteri minuscoli */
public Dizionario(String[][] x){ // COSTRUTTORE
int i,j;
d = new String[x.length]; // Crea un array di stringhe lungo come x (numero righe)
for(i=0; i<x.length; i++){
if(x[i].length != 2) throw new FailureException();
d[i] = new String[2];
for(j=0; j<2; j++){
if(corretto(x[i,j])
d[i][j] = x[i][j];
else throw new FailureException;
}
}
}
/** EFFECTS: Restituisce la traduzione dell'oggetto ricevente
@param: il riferimento ad una oggetto di tipo String
@return: il riferimento ad un oggetto di tipo String */
public String traduci(String p){
int i;
Strint ris = null;
for(i=0; i<d.length; i++)
if(d[i][0] equals(p))
ris = d[i][1];
return ris;
}
}
Praticamente il dizionario viene semplicemente gestito tramite una matrice bidimensionali di n righe e sole due colonne: la prima colonna di ogni rig conterrà una PAROLA e la seconda colonna conterrà la sua TRADUZIONE. Il metodo traduci() è molto semplice...
La cosa che mi crea qualche problema è il costruttore...praticamente prende come parametro una matrice di stringhe e dentro al costruttore viene allocata un'altra matrice di stringhe nel quale viene copiato il parametro...solo che non capisco come lo faccia...
Venendo da C mi pare differente (anche se non tocco C da quasi un annetto)...mi potete illuminare un pochino su cosa sta fecendo esattamente?
Grazie
Andrea