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