Folge 21.1: Eine Stackmaschine

Schritt 1 - Stacks

In der Folge 15 hatten wir uns mit dem ADT Stack beschäftigt, und Sie haben hoffentlich die Übung 15.1 erfolgreich absolviert. Wenn nicht, besorgen Sie sich bitte von Ihren Mitschülern eine funktionierende Klasse Stack.

Schritt 2 - Stackmaschinen

Informieren Sie sich auf der Theorieseite "Stackmaschinen" darüber,

a) was eine Stackmaschine ist

b) wie eine Stackmaschine arbeitet

c) wie man eine Stackmaschine implementiert

Übung 21.1 (4 Punkte)

Besorgen Sie sich eine funktionierende Klasse Stack und erstellen Sie dann eine Tochterklasse Stackmaschine, welche die vier Methoden add(), sub(), mul() und div() zur Verfügung stellt. Diese vier Methoden sollen genauso arbeiten, wie im Theorieteil Stackmaschinen beschrieben wurde. Außerdem benötigt Ihre Stackmaschine noch eine show()-Methode, damit Sie unabhängig vom Objektinspektor die Klasse testen können. Wenn die Mutterklasse Stack, die Sie sich besorgt haben, bereits eine funktionierende show()-Methode besitzt, müssen Sie hier nichts mehr programmieren.

Erstellen Sie dann eine konsolenorientierte Klasse Test (also kein Applet), die Ihre Stackmaschine testet. Diese Test-Klasse könnte z.B. folgenden Code enthalten:

maschine = new Stackmaschine();
maschine.push(4);
maschine.push(3.14);
maschine.add();
maschine.push(8);
maschine.push(2.71);
maschine.sub();
maschine.mul();
maschine.show();


Übung 21.2 (3 Punkte)

Berechnen Sie mit Hilfe Ihrer Stackmaschine das Ergebnis folgenden Ausdrucks:

(3 + 5.1) / (6.7 - 3.2/4.5)

Wandeln Sie Ihr Testprogramm dazu entsprechend um. Das korrekte Endergebnis lautet: 1.3525

Sollten Sie etwas anderes herausbekommen, so funktioniert (a) Ihre Klasse Stackmaschine nicht korrekt (wahrscheinlich ein Fehler bei sub() oder div() ), oder ihre Klasse Test enthält (b) falsche Befehle oder (c) korrekte Befehle in falscher Reihenfolge.


Weiter mit Teil 2 der Folge 21

Diese HTML-Seite wurde erstellt von Ulrich Helmich am 20. Juli 2006 und geringfügig überarbeitet am 4. März 2008.




(C) Ulrich Helmich, März 2008

Sie sind Besucher Nr. seit dem Erreichen der 10-Millionen-Marke am 21.01.2010