Der abstrakte Datentyp Set repräsentiert im mathematischen Sinne eine Menge. Eine Menge hat folgende Eigenschaften:
Und folgende Methoden:
Set()
– erzeugt eine leere Mengeeinfuegen(wert: int)
– fügt den Wert wert
in die Menge ein, falls er noch nicht vorhanden istentfernen(wert: int)
– entfernt den Wert wert
aus der Menge, falls er vorhanden ist; andernfalls wird die Menge nicht verändert.enthaelt(wert: int): boolean
– gibt true
zurück, wenn wert
in der Menge enthalten ist, sonst false
.anzahl(): int
– gibt die Anzahl der Elemente in der Menge zurückistLeer(): boolean
– gibt true
zurück, wenn die Menge leer ist, sonst false
.schnittmenge(s: Set): Set
– ???vereinigungsmenge(s: Set): Set
– ???differenz(s: Set): Set
– ???untermenge(s: Set): boolean
– gibt true
zurück, wenn jedes Element dieser Menge in s
enthalten istgleich(s: Set): boolean
– gibt true
zurück, wenn diese Menge und s
die gleichen Elemente enthält; sonst false
.Arbeite mit der Vorlage von https://codeberg.org/qg-info-unterricht/bluej-adt-set und bearbeite nachfolgende Aufgaben. Ganz unten findest du Tipps zu den einzelnen Aufgaben, falls du Hinweise benötigst.
In der Vorlage sind zwei verschiedene Varianten implementiert. Der Quellcode ist nicht einsehbar. Finde heraus, ob beide Versionen die gleiche Funktionalität aufweisen. Erstelle dazu Beispielobjekte. Verwende die Methode alsArray()
, um dir die Elemente eines Sets anzuschauen.
Wähle nun eine der beiden Varianten aus der Vorlage aus und löse damit die folgenden Teilaufgaben. Verwende auch hier wieder die Methode alsArray()
, um dir die Elemente eines Sets anzuschauen.
schnittmenge(s)
, vereinigungsmenge(s)
und differenz(s)
machen. Beschreibe die Funktionalität für das gegebene Beispiel sowie den allgemeinen Fall (schriftlich).untermenge(s)
gibt true
zurück, wenn jedes Element dieser Menge in s
enthalten ist. Überprüfe diese Funktionalität, indem du die Operation mit verschiedenen Beispielmengen testest. Achte darauf, dass alle möglichen Fälle abgedeckt sind.
alsArray()
und indem du es inspzierst. Wie wird dein Ergebnis dargestellt? Beschreibe.Hier findest du Tipps zu den einzelnen Aufgaben, sofern du sie benötigst.
Filename | Filesize | Last modified |
---|---|---|
adt_set1.odp | 45.2 KiB | 30.11.2021 15:28 |
schnittdifferenzvereinigung.png | 535.6 KiB | 05.11.2021 10:24 |
schnittvereinigungdifferenz.drawio.png | 568.7 KiB | 05.11.2021 10:17 |
set01.odp | 402.8 KiB | 18.10.2021 18:27 |
set01.pdf | 209.5 KiB | 18.10.2021 18:27 |