Homepage  Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum


.dsy:it. .dsy:it. Archive > Didattica > Corsi N - Z > Programmazione
 
[Capra] Secondo progettino
Clicca QUI per vedere il messaggio nel forum
johnnyd
Ciao ragazzi, come vi è andato il secondo compitino?
io ho appena finito di testarlo ed ho fatto un paio di errori.. ve lo posto sperando vi possa tornare utile... Ciauz

---- Classe Insieme
code:
public class Insieme { private final static int MAX = 100000; public boolean[] elenco = new boolean[MAX]; //qui ho fatto un errore, mettendo MAX - 1 mi da un errore riguarda il numero di elementi dell'array /** Costruttore senza parametri, crea un insieme vuoto */ public Insieme() { for (int i = 0; i < MAX; i++){ this.elenco[i] = false; } } //Costruttore con parametro che crea una copia dell'insieme passato public Insieme(Insieme copia){ for (int i = 0; i < MAX; i++){ this.elenco[i] = copia.elenco[i]; } } //Metodo per l'inserimento di un intero all'interno dell'insieme public boolean inserisci(int elemento){ if (elemento >= MAX) { return false; } else { elenco[elemento] = true; return true; } } //Metodo che ritorna vero se l'elemento passato è contenuto nell'array di booelan public boolean contiene(int elemento){ if(this.elenco [elemento]) return true; else return false; } //Metodo che restituisce true se l'insieme è vuoto public boolean vuoto(){ boolean trovato = false; for (int i = 0; i < MAX; i++) { if (this.elenco[i]){ trovato = true; //qui ho fatto un errore utilizzando il break, non so perchè ma nell'if non me lo prende //return trovato; //break; } else { trovato = false; } } return trovato; } //Metodo che fa l'unione public Insieme unione(Insieme altro) { Insieme union = new Insieme(); for(int i = 0; i < MAX; i++){ if (this.elenco[i] || altro.elenco[i]) union.inserisci(i); } return union; } //Metodo che fa l'intersezione public Insieme inters(Insieme altro) { Insieme inters = new Insieme(); for (int i = 0; i < MAX; i++){ if(this.elenco[i] && altro.elenco[i]) inters.inserisci(i); } return inters; } //Metodo che fa la differenza public Insieme diff(Insieme altro){ Insieme differenza = new Insieme(); for (int i = 0; i < MAX; i++){ if (this.elenco[i] && !altro.elenco[i]) differenza.inserisci(i); } return differenza; } //Metodo che da il numero di elementi inseriti public int card() { int count = 0; for (int i = 0; i < MAX; i++) if(this.elenco[i]) count++; return count; } //Metodo per la stampa dell'insieme toString public String toString(){ String testo = "Elementi di questo insieme: \n"; int count = 0; for (int i = 0; i < MAX; i++){ if (this.elenco[i]){ testo += "\t " + i; count++; } if (count == 5) testo += "\n"; } return testo; } //Metodo equals per vedere se due insiemi sono uguali public boolean equals(Insieme altro){ boolean trovato = false; for (int i = 0; i < MAX; i++) { if (this.elenco[i] && altro.elenco[i]) trovato = true; else trovato = false; } return trovato; } }


Classe ProvaInsieme
Qui ho usato i meto di più interessanti (per modo di dire) :D
code:
public class ProvaInsieme { public static void main(String [] args) { //Dichiaro due oggetti di tipo insieme vuoti Insieme insieme_a = new Insieme(); Insieme insieme_b = new Insieme(); insieme_a.inserisci(1); insieme_a.inserisci(2); insieme_a.inserisci(4); insieme_b.inserisci(2); insieme_b.inserisci(4); insieme_b.inserisci(5); System.out.println(insieme_a); System.out.println(insieme_b); Insieme insieme_c = new Insieme(); insieme_c = insieme_a.unione(insieme_b); System.out.println(insieme_c); Insieme insieme_d = new Insieme(); insieme_d = insieme_a.inters(insieme_b); System.out.println(insieme_d); Insieme insieme_e = new Insieme(); insieme_e = insieme_a.diff(insieme_b); System.out.println(insieme_e); Insieme insieme_f = new Insieme(insieme_a); System.out.println(insieme_a); System.out.println("Numero di elementi dell'insieme a: " + insieme_a.card()); System.out.println("Insieme a è uguale all'insieme b?: " + insieme_a.equals(insieme_b)); } }

Powered by: vbHome (lite) v4.1 and vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento |Licenze | Thanks | Syndacate