Home > Informatik > Stufe Q1

11.1 Zielsetzung und erster Entwurf

Teil 1 - Teil 2

Zielsetzung und erste Schritte

Wir wollen ein kleines Programm schreiben, das Ihnen beim Lernen von englischen Vokabeln helfen soll. Zunächst erstellen wir eine Klasse Vokabel, deren Objekte dazu dienen, eine Vokabel (= deutsches Wort / englisches Wort) zu speichern. Anschließend erstellen wir eine Datenstruktur, die hunderte solcher Vokabel-Objekte verwaltet, eine Klasse VokabelListe.

Schritt 1 - Die Klasse Vokabel

Zunächst einmal benötigen wir eine Klasse, die eine Vokabel repräsentiert. Nennen wir diese Klasse doch einfach Vokabel. Die Objekte diese Klasse sollen dann in einem Array oder einer ArrayList oder ein anderen geeigneten Datenstruktur gespeichert werden. Aber das ist dann die Aufgabe einer anderen, übergeordneten Klasse, um die wir uns später kümmern.

Übung 11.1-1 (PC, 0 Punkte + 2)

Erstellen Sie eine solche Klasse, die eine Vokabel repräsentiert. Eine Vokabel besteht aus einem deutschen Begriff und dem entsprechenden englischen Begriff. Die Klasse soll außerdem eine Methode zum Anzeigen des Wortpaares in der Konsole besitzen.

Experten können auch gleich eine Methode zum Anzeigen in einem Applet ergänzen. In diesem Fall müssten Sie das Test-Applet allerdings auch selbst programmieren (dann 2 Punkte).

Vollständige Lösung

Schritt 2 - Eine Vokabelliste

Wie bereits angedeutet, ist der nächste Schritt die Erzeugung einer Klasse, welche in der Lage ist Hunderte oder gar Tausende solcher Vokabeln zu speichern. In der Stufe EF haben wir uns mit Arrays beschäftigt, die in den Augen mancher Informatiklehrer ja völlig veraltet sind und "eigentlich verboten gehören" (ich zitiere hier nur einen Kollegen). Vielleicht ist an dieser Argumentation ja sogar etwas dran, dennoch werde ich in meinem Kurs nicht auf Arrays verzichten.

Übung 11.1-2 (PC, 5 Punkte + 2)

Erstellen Sie eine Klasse Vokabelliste, die maximal 100 solcher Vokabel-Objekte in einem Array speichert. Außerdem soll diese Klasse eine Methode zum Hinzufügen einer neuen Vokabel sowie eine Methode zum Ausgeben der gesamten Liste besitzen.

Experten implementieren eine zweite Methode zum Ausgeben, die in der Lage ist, die Vokabeln in einem Applet anzuzeigen (dann zusätzlich 2 Punkte).

Lösungsbeispiel (unvollständig)

Schritt 3 - Übersetzung suchen

Wir wollen jetzt eine Funktion zum Suchen einer Übersetzung programmieren. Gegeben ist der deutsche Begriff, gesucht wird die englische Übersetzung.

Prinzipielles Vorgehen
  1. Wir geben den deutschen Begriff als String ein.
  2. Dann werden die Vokabeln der Liste der Reihe nach durchsucht. Wenn der eingegebene String mit dem String-Attribut dt einer Vokabel übereinstimmt, dann ist die Suche beendet.
  3. In diesem Fall wird das Attribut eng der gefundenen Vokabel ausgegeben. Andernfalls wird mit der Suche weitergemacht.
  4. Sind wir mit der Suche bei der letzten Vokabel des Arrays angekommen und haben die Vokabel nicht gefunden, wird eine entsprechende Fehlermeldung erzeugt.
Implementierung
Übung 11-1-3 (PC, 3 Punkte + 4)

Ergänzen Sie die Klasse Vokabelliste um eine entsprechende Suchmethode. Der einzige Parameter dieser Methode soll die deutsche Vokabel sein. Der Rückgabewert dieser sondierenden Methode (!) ist dann der korrekte englische Begriff. Sollte die Vokabel nicht im Array enthalten sein, soll "nicht vorhanden" oder ein entsprechender String als Ergebnis zurückgeliefert werden.

Experten implementieren die Suchmethode wie oben angegeben, schreiben dann aber ein Applet, in das der deutsche Begriff eingegeben werden kann und das dann darunter oder daneben den englischen Begriff zeigt, nachdem man auf einen entsprechenden Button geklickt hat. Zum Einlesen von Text in einem Applet eignet sich die Klasse TextField sehr gut. Wenn Sie diese Aufgabe lösen, erhalten Sie 4 zusätzliche Punkte.

Lösungsbeispiel (nicht ganz vollständig)

Schritt 4 - Vokabeln sortieren

Die Methode zum Anzeigen der Vokabeln funktioniert schon ganz gut, nur leider werden die Vokabeln in der Reihenfolge angezeigt, in der sie in den Array aufgenommen wurden - völlig ungeordnet also.

Übung 11-1-4 (PC, 5 Punkte + 3)

Ändern Sie diesen unhaltbaren Zustand, indem Sie zwei Methoden

public void sortierenDeutsch()

public void sortierenEnglisch()

schreiben, welche den Array nach dem deutschen bzw. englischen Begriffen aufsteigend sortieren.

Experten schreiben ein Applet mit mehreren Buttons; zwei Buttons dienen dann zum Aufrufen der beiden Methoden zum Sortieren. Die Vokabeln sollten dann untereinander ausgegeben werden können. Dafür gibt es maximal 3 weitere Punkte.

Lösungshinweise (keine Lösung!) sowie eine weitere Zusatzaufgabe für die Experten.

 

Und weiter mit Teil 2 dieser Folge...