Buonasera,
domani ho l'esame di informatica mi sono imbattuto nel seguente esercizio:
definire la classe Tavolo per istanziare tavoli le cui proprietà sono il materiale di cui sono fatti, lunghezza,larghezza e altezza. Definire dei metodi appropriati e un metodo toString per la descrizione testuale di un oggetto tavolo e un metodo equals che verifichi l'uguaglianza tra due tavoli.
Costruire l'oggetto Nodo per rappresentare liste di oggetti Tavolo.
Definire un metodo Nodo trasforma(Tavolo[] t) che, dato un array di tavoli, calcoli e restituisca una strutturacollegata di tavoli ordinati per lunghezza, e a parità di lunghezza per larghezza, e che non copi i tavoli uguali.
Io ho scritto il codice, il problema è che in uscita non stampa nulla:
codice:class Nodo{ Tavolo info; Nodo next; public Nodo(Tavolo s,Nodo l){ this.info=s; this.next=l; } } public class esame2009{ public static void main(String[] args){ Tavolo[] t = new Tavolo[]{new Tavolo("legno",10,3,15),new Tavolo("cemento",12,5,20),new Tavolo("vetro",10,10,40),new Tavolo("legno",10,3,15)}; Nodo v=trasforma(t); while(v!=null){ System.out.println(v.info); v=v.next; } } public static void scambia(Tavolo[] a,int i, int j){ Tavolo temp; temp=a[i]; a[i]=a[j]; a[j]=temp; } public static Tavolo[] ordina(Tavolo[] t){ int i; int j; int k; for(j=0;j<t.length-1;j++){ for(i=1;i<t.length-j;i++){ if(t[i].getLunghezza()<t[i-1].getLunghezza()) scambia(t,i,i-1); else if(t[i].getLunghezza()==t[i-1].getLunghezza()) if(t[i].getLarghezza()<t[i-1].getLarghezza()) scambia(t,i,i-1); } } return t; } public static Nodo trasforma(Tavolo[] t){ Nodo l = new Nodo(t[0],null); Nodo app = l; int i; ordina(t); for(i=1;i<t.length;i++){ app.next=new Nodo(t[i],null); app=app.next; } return eliminatutti(l); } public static Nodo eliminatutti(Nodo l){ while(l!=null){ eliminadoppioni(l.info,l); l=l.next; } return l; } public static void eliminadoppioni(Tavolo s,Nodo l){ Nodo prec=l; Nodo succ=l.next; while(succ!=null){ if(s.equals(l.info)){ prec.next=succ.next; succ=prec.next; } else{ succ=succ.next; prec=prec.next; } } } }
grazie in anticipo per la disponibilità!codice:public class Tavolo{ public String materiale; public int altezza; public int lunghezza; public int larghezza; public Tavolo(String m,int a,int l,int w){ this.materiale=m; this.altezza=a; this.lunghezza=l; this.larghezza=w; } public String getMateriale(){ return this.materiale; } public int getAltezza(){ return this.altezza; } public int getLunghezza(){ return this.lunghezza; } public int getLarghezza(){ return this.larghezza; } public String toString(){ return "Tavolo di "+getMateriale()+" larghezza,altezza,lunghezza:["+getAltezza()+"x"+getLunghezza()+"x"+getLarghezza()+"]"; } public boolean equals(Tavolo q){ return this.getMateriale().equals(q.getMateriale()) && this.getAltezza()==q.getAltezza() && this.getLunghezza()==q.getLunghezza() && this.getLarghezza()==q.getLarghezza(); } }

Rispondi quotando