"In der Vorlesung haben sie Turingmaschinen kennengelernt. Die wesentlichen Bestandteile einer Turingmaschine sind eine Menge von Zuständen, eine Übergangsfunktion und ein Band. In dieser Aufgabe wollen wir uns mit einem schwächeren Berechnungsmodel beschäftigen; dem endlichen Automaten. Wie Turingamschinen entscheidet ein endlicher Automat, ob ein Wort zu einer Sprache gehört oder nicht. Wir schränken uns auf Sprache über dem Alphabet ∑={a,b} ein. Wie eine Turingmaschine besteht ein endlicher Automat aus eine Menge von Zuständen und einer Übergangsfunktion. Allerdings kann ein endlicher Automat ein Eingabwort nur einmal von links nach rechts lesen. Er verfügt also über kein Band, auf dem er sich beliebig bewegen kann. Ein endlicher Automat hat einen Startzustand. Eine Teilmenge der Zuständen sind akzeptierende Zustände. Befindet sich ein endlicher Automat nach dem Lesen eines Eingabewortes in einem akzeptierenden Zustand, wird das Wort akzeptiert.
[an dieser Stelle ist ein Beispiel mit Zeichnung und zwei Wörtern, mit denen man überprüft ob der Automat in den endlichen Zustand kommt]
In dieser Aufgabe soll ein endlicher Automat in Java implementiert werden. Dazu repräsentiert die Klasse Zustand einen Zustand eines endlichen Automaten zusammen mit der Übergangsfunktion. Um die Übergangsfunktion darzustellen, soll ein Zustand zwei Zeiger vom Typ Zustand enthalten: aNext und bNext. Der Zeiger aNext soll auf den Folgezustand zeigen, für den Fall, dass ein a gelesen wird, analog für den Zeiger bNext. [Infos für die andern Teilaufgaben bzgl weiterer Methoden und Klassen]
[Das ist der einleitende Text gewesen mit Erläuterungen für die anderen Teilaufgaben]
a) Der folgende Code-Ausschnitt soll den Gebrauch der Klassen verdeutliche. Zeichnen Sie den Automaten der im Code-Ausschnitt erzeugt wird. Benutzen Sie Notationen wie in Abbildung 1 [gemeint sind zb S1,etc] Zustände sind beschriftete Kreise. Die Übergangsfunktion stellen Sie als beschriftete Pfeile dar. Kennzeichnen Sie den Startzustand mit einem zusätzlichen Pfeil und einen akzeptieren Zustand durch einen Doppelkreis.
[hier kommt der oben beschriebene Code]"