Simulation einer Turingmaschine!! Hilfe!! Dringend!
-
Ich simuliere mit eine Turingmaschine, die aus einer Datei input.txt (z.B. "BB10001000BB") eine Zahl n einliest und dann die Zahl n/2 ausgibt, aber nur wenn sie ohne Rest teilbar ist. Sonst wird die Zahl durch Blanks (B) ersetzt. Nun habe ich das hier programmiert, irgendwie funktioniert es aber nicht. Kann mir jemand helfen?
class konfiguration { public: char zustand; char element; char schritt; }; #include<fstream.h> konfiguration div2tm(char zustand, char element) { konfiguration u; if (zustand=='0' && element=='B') { u.zustand='0'; u.element=element; u.schritt='R'; } if (zustand=='1'||zustand=='0' && element=='1'||element=='0') { u.zustand='1'; u.element=element; u.schritt='R'; } if (zustand=='1' && element=='B') { u.zustand='2'; u.element=element; u.schritt='L'; } if (zustand=='2' && element=='0') { u.zustand='3'; u.element='B'; u.schritt='L'; } if (zustand=='2' && element=='1') { u.zustand='4'; u.element='B'; u.schritt='L'; } if (zustand=='2' && element=='B') { u.zustand='2'; u.element=element; u.schritt='L'; } if (zustand=='3' && element=='0'||element=='1') { u.zustand='3'; u.element=element; u.schritt='L'; } if (zustand=='3' && element=='B') { u.zustand='e'; u.element=element; u.schritt='N'; } if (zustand=='4' && element=='0'||element=='1') { u.zustand='4'; u.element='B'; u.schritt='L'; } if (zustand=='4' && element=='B') { u.zustand='e'; u.element=element; u.schritt='N'; } return u; } int uebergangsfunktion (fstream*is, char zustand, char element) { konfiguration u; char neues_element; u = div2tm(zustand, element); if (u.zustand='e') return 1; (*is).write((char*)&(u.element),1); if (u.schritt=='L') { (*is).seekp(-1,ios::cur); (*is).read((char*)&neues_element,1); uebergangsfunktion(is, u.zustand,neues_element); return 1; } if (u.schritt=='R') { (*is).seekp(1,ios::cur); (*is).read((char*)&neues_element,1); uebergangsfunktion(is, u.zustand,neues_element); return 1; } if (u.schritt=='N') { (*is).seekp(0,ios::cur); (*is).read((char*)&neues_element,1); uebergangsfunktion(is, u.zustand,neues_element); return 1; } } int main() { char element; int x; fstream is; is.open("c://input.txt",ios::in|ios::out); is.read((char*) & element, sizeof(char)); is.seekp(-1,ios::cur); x = uebergangsfunktion(&is,'0',element); if (x==0) cout << "Fehlerhafte Eingabe"; is.close(); }<edit>Bitte Code-Tags verwenden!</edit>
-
Kann mir jemand helfen?
ja sicher, wir sind auch die Malteser, die nur darauf warten, deinen code durchzugehen, um auf eigene Faust herausfinden zu können, was nicht funktioniert

ps: toller titel
-
@op
fehler 1: include <fstream>otze schrieb:
ps: toller titel
hey, man weiss wenigstens, worum es geht.
und dass die abgabe morgen ist