Newsgroup: it.comp.java
Titolo: Per andrea Camilleri

Nel programma che segue hai:
1. definizione di una classe insieme di 10 elementi
2. definizione dei metodi: intersezione, unione,
    differenza simmetrica e stampa
3. input da consolle di due insiemi
4. stampa del risultato
...a ingegneria sicuramente vogliono vedere la tua
implementazione del tipo astratto insieme.
Eccolo...in bocca al lupo
************************************************
package programprovvisorio;
import java.io.*;
// definizione di una classe insieme di dieci elementi da 0 a 9
class InsiemeDieci{
   private int[] elementi;
   InsiemeDieci(){
      elementi = new int[10];
   }
   boolean  estVuoto(){
      for(int i=0;i<10;i++)
         if(elementi[i]!=0)
            return false;
      return true;
   }
   boolean appartiene(int elemento){
      if((elemento<0)||(elemento>9))
         return false;
      return (elementi[elemento]==1);
   }
   void inserisci(int elemento){
      if((elemento<0)||(elemento>9))
         return;
      elementi[elemento]=1;
   }
   void elimina(int elemento){
      if((elemento<0)||(elemento>9))
         return;
      elementi[elemento]=0;
   }
}
public class EsInsieme{
   // metodo che effettua l'unione di due insiemi
   static InsiemeDieci unione(InsiemeDieci a,InsiemeDieci b){
      InsiemeDieci c = new InsiemeDieci();
      for(int i=0;i<10;i++)
         if(a.appartiene(i)||b.appartiene(i))
            c.inserisci(i);
      return c;
   }
   // metodo che effettua l'intersezione dei due insiemi
   static InsiemeDieci intersezione(InsiemeDieci a,InsiemeDieci b){
      InsiemeDieci c = new InsiemeDieci();
      for(int i=0;i<10;i++)
         if(a.appartiene(i)&&b.appartiene(i))
            c.inserisci(i);
      return c;
   }
    // metodo che effettua la differenza simmetrica dei due insiemi
   static InsiemeDieci diffsimmetrica(InsiemeDieci a,InsiemeDieci b){
      InsiemeDieci c = new InsiemeDieci();
      for(int i=0;i<10;i++)
         if((a.appartiene(i)&&!(b.appartiene(i)))||
            (!a.appartiene(i)&&(b.appartiene(i))))
               c.inserisci(i);
      return c;
   }
   //metodo che stampa un insieme
   static void stampaIns(InsiemeDieci a){
      System.out.println("Ecco l\'insieme: ");
      System.out.print("[ ");
      for(int i=0;i<10;i++)
         if(a.appartiene(i))
            System.out.print(i+" ");
      System.out.println(" ]");
   }
   //metodo per l'input di un insieme
   static public InsiemeDieci leggiInsiemi(){
      InsiemeDieci a = new InsiemeDieci();
      BufferedReader br;
      String car;
      int i;
      br = new BufferedReader(new InputStreamReader(System.in));
      System.out.println("\nintroduci il insieme : ");
      try{
         do{
            car = br.readLine();
            i = Integer.parseInt(car);    //errore
            a.inserisci(i);
         }while((i>=0) && (i<=9));
      }catch(IOException io){}
      return a;
   }
   public static void main(String args[]){
      InsiemeDieci a,b,c;
      a = new InsiemeDieci();
      b = new InsiemeDieci();
      c = new InsiemeDieci();
      a = leggiInsiemi();
      b = leggiInsiemi();
      stampaIns(a);
      stampaIns(b);
      c = unione(a,b);
      System.out.println("Unione");
      stampaIns(c);
      c = intersezione(a,b);
      System.out.println("Intersezione:");
      stampaIns(c);
      c = diffsimmetrica(a,b);
      System.out.println("Differenza simmetrica:");
      stampaIns(c);
   }
}
***********************************************

On Sun, 1 Jun 2003 09:44:55 +0200, "IL SANTO" <u...@due.provaCambiomail>
wrote:
NO! pure quà???
:-)))))
ave
giulio
-- 
"show me a sign to a life that shines
one direction into another sheltered peace of mind"
                               skid row
--
gpe...@BLAHlibero.it
rimuovi BLAH per rispondermi
   - God Bless -

 giulio
Nooo!!!
              IL SANTO
p.s.
ahahah! :-) qui siamo seri però :-|
si studia!