ah ok...Originariamente inviato da andbin
Sì, con l'unica precisazione da fare: gli indici partono da 0, quindi le colonne sono 0 e 1.
Ok...ora però ho qualche altro problema con la seconda parte dell'esame...sigh![]()
Il testo del secondo esercizio(che si ricollega al primo esercizio) dice:
Io l'ho pensato così: creo un'interface chiamata CollConMinimo che al suo interno contiene solamente un metodo abstract calcolaMinimo()codice:Problema 2. Sia data la classe InsiemeDiFrazioni che rappresenta e gestisce insiemi di frazioni. Della classe InsiemeDiFrazioni viene fornita la specifica, descritta come segue: public class InsiemeDiFrazioni { /** OVERVIEW: implementa un tipo di dati astratto i cui elementi appartengono all’insieme V={ {f1, f2, ...., fn}: ogni elemento fi è una frazione, cioè, una coppia di interi relativamente primi}; gli oggetti istanza di questa classe sono mutabili; l’insieme vuoto è rappresentabile mediante questa classe. */ /** EFFECTS: crea l’oggetto corrispondente ad un insieme vuoto di frazioni */ public InsiemeDiFrazioni() { .... } /** REQUIRES: x != null ed x non contenuto in this EFFECTS: inserisce x in this MODIFIES: this */ public void inserisci(Frazione x) { .... } /** REQUIRES: x != null EFFECTS: se x è contenuto in this restituisce true, altrimenti restituisce false */ public boolean contiene(Frazione x) { .... } /** REQUIRES: this != insieme vuoto EFFECTS: restituisce la frazione in this il cui valore è più vicino ad x */ public Object get(double x) { .... } /** REQUIRES: x != null e x this != insieme vuoto EFFECTS: rimuove x da this se x è contenuto in this MODIFIES: this */ public void rimuovi(Frazione x) { .... } public String toString() { .... } } Si consideri, infine, una classe di test per le due classi sopra descritte che contenga, oltre al metodo main, il metodo getFirst che prende come parametro, indifferentemente, un InsiemeDiFrazioni o un Dizionario (classe da definire al problema 1) e che estrae dalla collezione ricevuta come parametro l’elemento che risulta primo rispetto all’ordinamento definito, rispettivamente, nell’insieme delle frazioni e nell’insieme { parola-traduzione}, cioè: · un oggetto f1 di tipo Frazione precede un oggetto f2 di tipo Frazione se f1.getValore() < f2.getValore() dove double getValore() è un metodo definito nella classe Frazione; · una coppia parola1-traduzione1 precede una coppia parola2-traduzione2 se parola1 precede lessicograficamente parola2. Si richiede il progetto e l’implementazione del metodo getFirst e di tutte le entità Java coinvolte.
Poi creo altre due classi: una classe che chiamo DizionarioConMinimo che estende Dizionario precedentemente definita ed implementa CollConMinimo. Ed un'altra classe chiamata InsiemediFrazioniConMinimo che sempre estende la classe InsiemeDiFrazioni di cui mi è stata fornita la specifica ed implementa l''interfaccia CollConMinimo.
Per DizionarioConMinimo dovrebbe bastare questo codice, l'unica cosa è che dovrei implementare il metodo get nella classe Dizionario ma vabbè quello è un attimo:
Invece mi impippo nello scrivere il metodo calcolaMinimo per InsiemeDiFrazioniConMinimo in quanto dalla specifica non ho metodi per accedere agli oggetti della collezione di frazioni...qualche idea?codice:public class DizionarioConMinimo extends Dizionario implements CollConMinimo{ // Ereditarietà multipla public DizionarioConMinimo(String[][] x){ super(x); // Invoca il costruttore della classe padre Dizionario passandogli la matrice di stringhe x } public Object calcolaMinimo(){ int i = 1; boolean b = true; String s; try{ s = get(0) }catch(IndiceErratoException e){} while(b){ // Finchè b è true try{ // Prova ad eseguire if(i.get(i).compare(s) < 0) // Se l'i-esima stringa precede lessicograficamente la stringa contenuta in s s = get(i); // Metti la stringa all'i-esimo posto in s }catch(IndiceErratoException e){b = false;} // Quando viene sollevata l'eccezione imposta b a false per terminare il ciclo i++; // Incrementa i per passare all'elemento successivo } return s; // Restituisci la stringa calcolata } }
Poi vabbè per la classe di Test richiesta posso fare
Mi date una mano?codice:public class Test{ public Object getFirst(CollConMinimo c){ return c.calcolaMin(); } }
Tnx

Rispondi quotando