faecher:informatik:oberstufe:adt:set:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
faecher:informatik:oberstufe:adt:set:start [05.11.2021 09:53] – [Erarbeitung] Mareike Nutzfaecher:informatik:oberstufe:adt:set:start [15.11.2021 07:15] (aktuell) – [Erarbeitung] Mareike Nutz
Zeile 9: Zeile 9:
 Und folgende Methoden: Und folgende Methoden:
   * Konstruktor ''Set()'' – erzeugt eine leere Menge   * Konstruktor ''Set()'' – erzeugt eine leere Menge
-  * ''einfuegen(wert: int)'' – fügt den Wert wert in die Menge ein, falls er noch nicht vorhanden ist +  * ''einfuegen(wert: int)'' – fügt den Wert ''wert'' in die Menge ein, falls er noch nicht vorhanden ist 
-  * ''entfernen(wert: int)'' – entfernt den Wert wert aus der Menge, falls er vorhanden ist; andernfalls wird die Menge nicht verändert.+  * ''entfernen(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''.   * ''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ück   * ''anzahl(): int'' – gibt die Anzahl der Elemente in der Menge zurück
   * ''istLeer(): boolean'' – gibt ''true'' zurück, wenn die Menge leer ist, sonst ''false''.   * ''istLeer(): boolean'' – gibt ''true'' zurück, wenn die Menge leer ist, sonst ''false''.
-  * ''schnittmenge(s: Set): Set'' – gibt eine Menge zurück, die genau die Elemente enthält, die in dieser Menge und in ''s'' enthalten sind. +  * ''schnittmenge(s: Set): Set'' – ??? 
-  * ''vereinigungsmenge(s: Set): Set'' – gibt eine Menge zurück, die genau die Element enthält, die in dieser Menge oder in ''s'' oder in beiden enthalten sind. +  * ''vereinigungsmenge(s: Set): Set'' – ??? 
-  * ''differenz(s: Set): Set'' – gibt eine Menge zurück, die genau die Elemente enthält, die in dieser Menge, aber nicht in ''s'' enthalten sind.+  * ''differenz(s: Set): Set'' – ???
   * ''untermenge(s: Set): boolean'' – gibt ''true'' zurück, wenn jedes Element dieser Menge in ''s'' enthalten ist   * ''untermenge(s: Set): boolean'' – gibt ''true'' zurück, wenn jedes Element dieser Menge in ''s'' enthalten ist
   * ''gleich(s: Set): boolean'' – gibt ''true'' zurück, wenn diese Menge und ''s'' die gleichen Elemente enthält; sonst ''false''.   * ''gleich(s: Set): boolean'' – gibt ''true'' zurück, wenn diese Menge und ''s'' die gleichen Elemente enthält; sonst ''false''.
Zeile 22: Zeile 22:
  
 ===== Erarbeitung ===== ===== Erarbeitung =====
-Arbeite mit der Vorlage von **LINK** und bearbeite nachfolgende Aufgaben.+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.
  
 ----  ---- 
 {{:aufgabe.png?nolink  |}} {{:aufgabe.png?nolink  |}}
-=== (A1) Funktionalität der Versionen === +=== (A1) Funktionalität der Varianten === 
-In der Vorlage sind zwei verschiedene Versionen zu finden. Der Quellcode ist nicht einsehbar. Finde heraus, ob beide Versionen die gleiche Funktionalität aufweisen. Erstelle dazu Beispielobjekte.+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.
  
 ----  ---- 
 {{:aufgabe.png?nolink  |}} {{:aufgabe.png?nolink  |}}
 === (A2) Operationen mit Mengen === === (A2) Operationen mit Mengen ===
-Wähle nun eine der beiden Versionen in der Vorlage aus und nutze sie für diese Aufgabe+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
-  Erstelle ein Set M = {19, 23, 1, 11, 10, 33, 9, 42, 17} und ein Set N = {10, 7, 11, 19, 2, 23, 42, 37}. Finde heraus was die Methoden ''schnittmenge(s)'', ''vereinigungsmenge(s)''und ''differenz(s)'' machen. Beschreibe die Funktionalität für das gegebene Beispiel sowie den allgemeinen Fall (schriftlich). +  Erstelle ein Set M = {19, 23, 1, 11, 10, 33, 9, 42, 17} und ein Set N = {10, 7, 11, 19, 2, 23, 42, 37}. Finde heraus was die Methoden ''schnittmenge(s)'', ''vereinigungsmenge(s)''und ''differenz(s)'' machen. Beschreibe die Funktionalität für das gegebene Beispiel sowie den allgemeinen Fall (schriftlich). 
-  Die Operation ''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. +  - Ist die Reihenfolge der eingefügten Elemente relevant? Prüfe mithilfe passender Beispielmengen. 
-++++ Tipp1 |+  - Die Operation ''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
 +  - Vergleiche die Operationen des ADT Set mit denen anderer ADTs. Welche Gemeinsamkeiten und v.a. welche Unterschiede fallen dir auf? 
 + 
 + 
 + 
 +----  
 +{{:aufgabe.png?nolink  |}} 
 +=== (A3) Verschiedene Varianten schneiden === 
 +  * Erstelle je ein Set beider Varianten und inspiziere die erstellten Objekte.  
 +  * Dann schneide die beiden Sets miteinander und erstelle aus dem Schnitt ein neues Objekt (Methode anwenden -> Hole -> neues Objekt benennen).  
 +  * Betrachte dein Ergebnis mithilfe von ''alsArray()'' und indem du es inspzierst. Wie wird dein Ergebnis dargestellt? Beschreibe. 
 +  * Beschreibe auch, was passiert, wenn du die beiden Sets anders herum schneidest. In welcher Form wird dein Ergebnis nun dargestellt? 
 +  * Begründe deine Beobachtung mithilfe der bisher erlernten Konzepte. 
 + 
 +----  
 + 
 +=== Tipps === 
 +  
 +Hier findest du Tipps zu den einzelnen Aufgaben, sofern du sie benötigst. 
 +++++ Tipp A2.1 | 
 +Mengen können auch in dieser Form dargestellt werden. Übertrage eine Skizze in dein Heft und ordne die Elemente der Mengen M und N den entsprechenden Stellen zu. Welche Abbildung passt zu welcher Operation? 
 +{{ :faecher:informatik:oberstufe:adt:set:schnittdifferenzvereinigung.png?600 |}} 
 +++++ 
 +++++ Tipp A2.2| 
 +Was passiert bei ''gleich(s)''? 
 +++++ 
 +++++ Tipp1 A2.3 |
 Wann gibt ''untermenge(s)'' ''true'' und wann ''false'' zurück? Wann gibt ''untermenge(s)'' ''true'' und wann ''false'' zurück?
 ++++ ++++
-++++ Tipp2 |+++++ Tipp2 A2.3 |
 Was passiert wenn du statt ''Set1.untermenge(Set2)'' die beiden Sets miteinander vertauscht? Was passiert wenn du statt ''Set1.untermenge(Set2)'' die beiden Sets miteinander vertauscht?
 ++++ ++++
-++++ Tipp3 |+++++ Tipp3 A2.3 |
 Was passiert wenn ''Set1'' und ''Set2'' identisch sind? Was passiert wenn ''Set1'' und ''Set2'' identisch sind?
 ++++ ++++
- +++++ Tipp A2.4 |
-  * Vergleiche die Operationen des ADT Sets mit anderen Datenstrukturen (Liste, Array, ...). Welche Gemeinsamkeiten und v.a. welche Unterschiede fallen dir auf? +
-++++ Tipp |+
 Was passiert bei ''einfuegen(wert)''? Was passiert bei ''einfuegen(wert)''?
 ++++ ++++
-  * Ist die Reihenfolge der eingefügten Elemente relevant? Prüfe mithilfe passender Beispielmengen. +++++ Tipp A3 |
-++++ Tipp +
-Was passiert bei ''gleich(s)''? +
-++++ +
- +
-----  +
-{{:aufgabe.png?nolink  |}} +
-=== (A3) Verschiedene Varianten schneiden === +
-  * Erstelle je ein Set beider Varianten. Schneide diese beiden Sets miteinander. Beschreibe was passiert. Was passiert, wenn du sie anders herum schneidest? +
-++++ Tipp | +
-In welcher Variante liegt das Ergebnis vor? +
-++++ +
-  * Warum ist das so? Begründe deine Beobachtung. +
-++++ Tipp |+
 Abstraktion Abstraktion
 ++++ ++++
  
 +===== Hintergrund =====
 +
 +  * [[.implementationen:start|Die Set-Implementationen im Detail]]
 +
 +=== Material ===
 + 
 {{simplefilelist>:faecher:informatik:oberstufe:adt:set:*}} {{simplefilelist>:faecher:informatik:oberstufe:adt:set:*}}
 +
 +
  • faecher/informatik/oberstufe/adt/set/start.1636105986.txt.gz
  • Zuletzt geändert: 05.11.2021 09:53
  • von Mareike Nutz