Files
uni/ws2019/ipi/uebungen/cpp_headers/TM.cc
T

29 lines
577 B
C++

// Konstruiere die TM mit Programm und Band
TM::TM (Programm& p, Band& b) : prog(p), band(b)
{
q=p.Anfangszustand();
}
// einen Schritt machen
void TM::Schritt ()
{
// lese Bandsymbol
char s = band.lese();
// schreibe Band
if (prog.Richtung(q,s)==Programm::links)
band.schreibe_links(prog.Ausgabe(q,s));
else
band.schreibe_rechts(prog.Ausgabe(q,s));
// bestimme Folgezustand
q = prog.Folgezustand(q,s);
}
// Ist Endzustand erreicht?
bool TM::Endzustand ()
{
if (q==prog.Endzustand()) return true; else return false;
}