SAI ||
Wintersemester 1997/98 ||
Entwicklung objekt-orientierter Bibliotheken ||
Übungen
Übungen zu Entwicklung objekt-orientierter Bibliotheken
Blatt 2 (24. 10. - 31. 10. 1997)
Aufgabe 4 (20 Punkte)
Schreiben Sie ein Oberon-Modul für das Rechnen mit Booleschen
Ausdrücken.
Die Datenstruktur sollte Bäume aus folgenden Elementen darstellen
können:
-
den Konstanten TRUE und FALSE,
-
Booleschen Variablen, identifiziert durch einen kleinen ganzzahligen Index,
-
der NOT-Funktion,
-
den binären Operationen AND, OR und
XOR.
Das Modul soll Prozeduren zur Verfügung stellen, um solche
Ausdrücke aufzubauen, und eine Funktion, die einen Ausdruck mit einer
konkreten Belegung der Variablen berechnet.
Hierfür ist es zweckmäßig, einen Parameter vom Typ
SET zu verwenden.
Die Datenstruktur für Ausdrücke soll als abstrakter Datentyp
realisiert werden.
Schreiben Sie ein zweites Oberon-Modul, mit dem man solche Ausdrücke
einlesen kann.
Dazu wird folgende Eingabesyntax empfohlen:
0 |
steht für FALSE |
1 |
steht für TRUE |
Kleinbuchstaben |
stehen für Variablen |
- |
steht für NOT |
* |
steht für AND |
+ |
steht für OR |
/ |
steht für XOR (exklusives Oder) |
Ein Ausdruck wird in Polnischer Notation eingegeben, d.h., die
Operatoren gehen den Operanden voran.
Beispiel:
+ * a b * - a c |
steht für: (a AND b) OR ((NOT a) AND c) |
Ergänzen Sie die beiden Module durch ein Hauptprogramm, mit dem Sie
alle Funktionen testen können.
SAI ||
Wintersemester 1997/98 ||
Entwicklung objekt-orientierter Bibliotheken ||
Übungen
Martin Hasch, Oktober 1997