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