/* Tehtävä 1: Aki Reijonen Arvosteluperusteita: - Periytyminen 3p - Pisteitä lähtee jos ei ymmärretty perintää, esim. toistetaan yläluokan toiminnallisuutta tai pidetään perimisen lisäksi jäsenmuuttujana instanssi yläluokasta. - Tässä katsotaan kokonaisuutta - Konstruktorit 2p - Yhdiste/Leikkaus/Erotus 3+3+3p, jokaisessa: - Lievä logiikkavirhe tai muu pieni ongelma -1p - Suurempi ongelma, mutta kuitenkin hyvä yritys -2p - Muokkaa this-oliota eikä palauta kopiota -1p (tästä verotetaan vain kerran) - null-parametriin ei tarvitse varautua eikä myöskään palautettavan joukon alkukoolla ole merkitystä - Pääohjelma 2p - Turhan suppea -1p */ public class KokonaislukujoukkoPlus extends Kokonaislukujoukko { public KokonaislukujoukkoPlus() { super(100); } public KokonaislukujoukkoPlus(int kapasiteetti) { super(kapasiteetti); } public KokonaislukujoukkoPlus yhdiste(KokonaislukujoukkoPlus b) { KokonaislukujoukkoPlus uusi = new KokonaislukujoukkoPlus(); int[] toiset = b.toIntArray(); // tai: for (int i=0; i < toiset.length; i++) { ... for (int alkio: toiset) { uusi.lisää(alkio); } return uusi; } public KokonaislukujoukkoPlus leikkaus(KokonaislukujoukkoPlus b) { KokonaislukujoukkoPlus uusi = new KokonaislukujoukkoPlus(); int[] alkiot = this.toIntArray(); // lisätään kaikki alkiot, jotka kuuluvat myös b:hen for (int alkio: alkiot) { if (b.kuuluu(alkio)) { uusi.lisää(alkio); } } return uusi; } public KokonaislukujoukkoPlus erotus(KokonaislukujoukkoPlus b) { KokonaislukujoukkoPlus uusi = new KokonaislukujoukkoPlus(); int[] alkiot = this.toIntArray(); // lisätään tämän joukon kaikki alkiot, jotka eivät kuulu b:hen for (int alkio: alkiot) { if (!b.kuuluu(alkio)) { uusi.lisää(alkio); } } return uusi; } public static void main(String[] args) { Kokonaislukujoukko parilliset = new Kokonaislukujoukko(4); Kokonaislukujoukko parittomat = new Kokonaislukujoukko(4); for (int i=1; i <= 8; i++) { if (i % 2 == 0) parilliset.lisää(i); else parittomat.lisää(i); } System.out.println(parilliset); // {2,4,6,8} System.out.println(parittomat); // {1,3,5,7} Kokonaislukujoukko kaikki = parilliset.yhdiste(parittomat); System.out.println(kaikki); // {1,2,..,8} System.out.println(kaikki.erotus(parilliset)); // == parittomat System.out.println(kaikki.erotus(parittomat)); // == parilliset System.out.print("Parillisten ja parittomien yhteiset alkiot: "); System.out.println(parilliset.leikkaus(parittomat)); // {} System.out.println("Onko 8 on parillisissa:" + parilliset.kuuluu(8)); parilliset.poista(8); System.out.println("Poistettiin 8, onko vielä 8 parillisissa:" + parilliset.kuuluu(8)); } }