restructure and add ipi texs
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
// Eine Klasse, die das Programm einer
|
||||
// Turingmaschine realisiert.
|
||||
// Zustaende sind vom Typ int
|
||||
// Bandalphabet ist der Typ char
|
||||
// Anfangszustand ist Zustand in der ersten Zeile
|
||||
// Endzustand ist Zustand in der letzten Zeile
|
||||
class Programm {
|
||||
public:
|
||||
// Symbole fuer links/rechts
|
||||
enum R {links,rechts};
|
||||
|
||||
// Erzeuge leeres Programm
|
||||
Programm ();
|
||||
|
||||
// definiere Zustandsuebergaenge
|
||||
// Mit Angabe des Endzustandes ist die
|
||||
// Programmierphase beendet
|
||||
void zeile (int q_ein, char s_ein,
|
||||
char s_aus, R richt, int q_aus);
|
||||
void zeile (int endzustand);
|
||||
|
||||
// lese Zustandsuebergang in Abhaengigkeit
|
||||
// von akt. Zustand und gelesenem Symbol
|
||||
char Ausgabe (int zustand, char symbol);
|
||||
R Richtung (int zustand, char symbol);
|
||||
int Folgezustand (int zustand, char symbol);
|
||||
|
||||
// Welcher Zustand ist Anfangszustand
|
||||
int Anfangszustand ();
|
||||
|
||||
// Welcher Zustand ist Endzustand
|
||||
int Endzustand ();
|
||||
|
||||
private:
|
||||
// Finde die Zeile zu geg. Zustand/Symbol
|
||||
// Liefere true, falls so eine Zeile gefunden
|
||||
// wird, sonst false
|
||||
bool FindeZeile(int zustand, char symbol);
|
||||
|
||||
enum {N=1000}; // maximale Anzahl Uebergaenge
|
||||
int zeilen; // Anzahl Zeilen in Tabelle
|
||||
bool fertig; // Programmierphase beendet
|
||||
int Qaktuell[N]; // Eingabezustand
|
||||
char eingabe[N]; // Eingabesymbol
|
||||
char ausgabe[N]; // Ausgabesymbol
|
||||
R richtung[N]; // Ausgaberichtung
|
||||
int Qfolge[N]; // Folgezustand
|
||||
int letztesQ; // Merke Eingabe und Zeilen-
|
||||
int letzteEingabe;// nummer des letzten Zu-
|
||||
int letzteZeile; // griffes.
|
||||
} ;
|
||||
Reference in New Issue
Block a user