.dsy:it.
Show 150 posts per page

.dsy:it. (http://www.dsy.it/forum/)
- Programmazione (http://www.dsy.it/forum/forumdisplay.php?forumid=259)
-- [Capra] Secondo progettino (http://www.dsy.it/forum/showthread.php?threadid=23232)


Posted by johnnyd on 19-12-2005 13:35:

[Capra] Secondo progettino

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)); } }

__________________
My Blog - My Photo Album


All times are GMT. The time now is 14:28.
Show all 1 posts from this thread on one page

Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.