Prof. Dr. Franz Schweiggert Institut für Angewandte Informationsverarbeitung 13. Dezember 2006
Norbert Heidenbluth und Ralph GuderleiBlatt 9


Uni Logo



Allgemeine Informatik I (WS 2006/2007)


Abgabetermin: 20. Dezember 2006

1 Reguläre Ausdrücke auswerten (4 Punkte)

Gegeben sei der reguläre Ausdruck:
 ^a[a-z]*z$
Schreiben Sie ein Java-Programm, welches eine Zeichenkette von der Standard-Eingabe liest und überprüft, ob die eingegebene Zeichenkette dem regulären Ausdruck entspricht. Das Ergebnis der Überprüfung soll auf der Standard-Ausgabe ausgegeben werden. Die Eingabe der Zeichenkette soll durch ein Newline ($\backslash$n) beendet werden, das Programm muss nur eine Zeichenkette verarbeiten können.

Für die Lösung der Aufgabe dürfen keine Variablen vom Typ String verwendet werden.

2 Und schon wieder ein endlicher Automat(6 Punkte)

Sie erinnern Sich ja sicher noch an den Automaten von Blatt 5, Aufgabe 1, der folgende formale Sprache beschrieben hatte:

Die formale Sprache $L$ über dem Vokabular $V = \{0,1\}$ sei verbal wie folgt definiert:
$L = \{$ alle mit '1' beginnenden, nichtleeren Zeichenfolgen über $V$, bei denen die Anzahl der unmittelbar aufeinanderfolgenden Einsen '1' gerade und die Anzahl der unmittelbar aufeinanderfolgenden Nullen '0' ungerade ist $\}$

Implementieren Sie einen endlichen Automaten, der überprüft, ob ein eingegebenes Wort zu der oben definierten Sprache gehört. Jedes Wort wird durch ein Newline ($\backslash$n) abgeschlossen. Ihr Programm soll auch mehrere nacheinander eingegebene Wörter (also Zeilen) überprüfen können.

Überprüfen Sie Ihr Programm. Dabei sollen Sie darauf achten, dass durch eine geeignete Wahl von Eingaben jede Anweisung Ihres Programms mindestens einmal ausgeführt wird.

Viel Erfolg!



Norbert Heidenbluth 2006-12-13