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ì:
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...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; } }
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

ed ho qualche problema con la soluzione proposta in classe dal docente.
Rispondi quotando