Entwürfe

Praktische Übungen

Aufgabe: Wörterbucher

Listen können mehrere Werte speichern, die über ihre Position in der Liste abrufbar sind. Listen lassen sich also als Abbildungen von Ganzzahlen (die Position) auf beliebige Werte interpretieren.

Eine ähnlich Datenstruktur, die für viele Anwendungszwecke hilfreich ist, stellt das “Wörterbuch” (engl. dictionary oder auch “assoziatives Array”) dar: Ein Wörterbuch speichert wie eine Liste mehrere Werte, die aber nicht über Positionen, sondern über Schlüssel abrufbar sind. Dabei können die Schlüssel einen beliebigen Datentyp haben.

Ein einfaches Beispiel stellt ein Fremdsprachlexikon dar: Hier werden Wörter auf Wörter abgebildet, beispielsweise “Katze” auf “cat”, “Hund” auf “dog” usw. Wenn wir ein englisches Wort wissen möchten, schauen wir beim deutschen Wort nach. Auf die gespeicherten Werte wird hier also über Zeichenketten-Schlüssel zugegriffen. Die deutschen Wörter sind hier die Schlüssel, die englischen die zugeordneten Werte.

Image

Ein Wörterbuch lässt sich mit zwei Listen modellieren: Eine Liste enthält die Schlüssel, die andere die entsprechenden Werte in genau derselben Reihenfolge:

Image

Um nun den Wert für einen Schlüssel abzurufen (z. B. für “Maus”) wird zuerst in der ersten Liste nach der Position des Schlüssels gesucht (hier: Position 5). Anschließend wird der Wert, der an dieser Position in der zweiten Liste steht, ausgegeben (hier: “mouse” an Position 5).

In dieser Aufgabe sollen in Scratch Unterprogramme zu Verwaltung eines solches Wörterbuchs umgesetzt werden. Laden Sie dazu die Projektdatei Wörterbuch.sb3 als Vorlage herunter: Download

Das Objekt “Wörterbuch” besitzt zwei Listen “Schlüssel” und “Werte”, in die bereits ein paar Schlüssel-Werte-Paare eingetragen sind:

Image

Definieren Sie die folgenden Unterprogramme, um Schlüssel-Werte-Paare zum Wörterbuch hinzufügen, abzufragen, zu ändern oder zu löschen:

  • Das Unterprogramm “Eintrag hinzufügen” erhält einen Schlüssel und einen Wert als Parameter. Falls der Schlüssel noch nicht vorkommt, wird das Schlüssel-Werte-Paar eingetragen. Anderenfalls zeigt das Wörterbuch eine Fehlermeldung “Der Schlüssel ist schon vorhanden!” mit dem “sage”-Block an.
    Block
  • Das Unterprogramm “Eintrag abfragen” erhält einen Schlüssel als Parameter. Falls der Schlüssel vorkommt, zeigt das Wörterbuch mit dem “sage”-Block den entsprechenden Wert an. Anderenfalls zeigt das Wörterbuch eine Fehlermeldung “Der Schlüssel ist nicht vorhanden!” an.
    Block
  • Das Unterprogramm “Eintrag ändern” erhält einen Schlüssel und einen Wert als Parameter. Falls der Schlüssel vorkommt, wird der Wert für diesen Schlüssel auf den angegebenen Wert geändert. Anderenfalls zeigt das Wörterbuch eine Fehlermeldung “Der Schlüssel ist nicht vorhanden!” an.
    Block
  • Das Unterprogramm “Eintrag löschen” erhält einen Schlüssel als Parameter. Falls der Schlüssel vorkommt, wird das Schlüssel-Werte-Paar gelöscht. Anderenfalls zeigt das Wörterbuch eine Fehlermeldung “Der Schlüssel ist nicht vorhanden!” an.
    Block
  • Das Unterprogramm “Alle löschen” löscht alle Schlüssel-Werte-Paare aus dem Wörterbuch.
    Block

Zeichenweise Verarbeitung

Aufgabe: TextVerschlüsseln.sb3

Parsen einer Zeichenkette

Aufgabe: FormelAuswerten.sb3

Zeichenkette in Liste aufteilen

Aufgabe: Kommaliste.sb3

Objekte aus Zeichenkette erstellen

Aufgabe: Objektliste.sb3 (benötigt Vorwissen über Objektklone)

Wörter raten

Aufgabe: WörterRaten.sb3 (größere Projektaufgabe, ggf. in Teilaufgaben aufteilen)