<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Simulation einer Turingmaschine!! Hilfe!! Dringend!]]></title><description><![CDATA[<p>Ich simuliere mit eine Turingmaschine, die aus einer Datei input.txt (z.B. &quot;BB10001000BB&quot;) 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?</p>
<pre><code class="language-cpp">class konfiguration
{
public:
	char zustand;
	char element;
	char schritt;
};

#include&lt;fstream.h&gt;

konfiguration div2tm(char zustand, char element)
{
	konfiguration u;
	if (zustand=='0' &amp;&amp; element=='B')
	{
		u.zustand='0';
		u.element=element;
		u.schritt='R';
	}
	if (zustand=='1'||zustand=='0' &amp;&amp; element=='1'||element=='0')
	{
		u.zustand='1';
		u.element=element;
		u.schritt='R';
	}
	if (zustand=='1' &amp;&amp; element=='B')
	{
		u.zustand='2';
		u.element=element;
		u.schritt='L';
	}
	if (zustand=='2' &amp;&amp; element=='0')
	{
		u.zustand='3';
		u.element='B';
		u.schritt='L';
	}
	if (zustand=='2' &amp;&amp; element=='1')
	{
		u.zustand='4';
		u.element='B';
		u.schritt='L';
	}
	if (zustand=='2' &amp;&amp; element=='B')
	{
		u.zustand='2';
		u.element=element;
		u.schritt='L';
	}
	if (zustand=='3' &amp;&amp; element=='0'||element=='1')
	{
		u.zustand='3';
		u.element=element;
		u.schritt='L';
	}
	if (zustand=='3' &amp;&amp; element=='B')
	{
		u.zustand='e';
		u.element=element;
		u.schritt='N';
	}
	if (zustand=='4' &amp;&amp; element=='0'||element=='1')
	{
		u.zustand='4';
		u.element='B';
		u.schritt='L';
	}
	if (zustand=='4' &amp;&amp; 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*)&amp;(u.element),1);
	if (u.schritt=='L')
	{
		(*is).seekp(-1,ios::cur);
		(*is).read((char*)&amp;neues_element,1);
		uebergangsfunktion(is, u.zustand,neues_element);
		return 1;
	}
	if (u.schritt=='R')
	{
		(*is).seekp(1,ios::cur);
		(*is).read((char*)&amp;neues_element,1);
		uebergangsfunktion(is, u.zustand,neues_element);
		return 1;
	}
	if (u.schritt=='N')
	{
		(*is).seekp(0,ios::cur);
		(*is).read((char*)&amp;neues_element,1);
		uebergangsfunktion(is, u.zustand,neues_element);
		return 1;
	}

}

int main()
    {
		char element;
		int x;
        fstream is;
		is.open(&quot;c://input.txt&quot;,ios::in|ios::out);
		is.read((char*) &amp; element, sizeof(char));
		is.seekp(-1,ios::cur);
		x = uebergangsfunktion(&amp;is,'0',element);
		if (x==0)
			cout &lt;&lt; &quot;Fehlerhafte Eingabe&quot;;
        is.close();
    }
</code></pre>
<p>&lt;edit&gt;Bitte Code-Tags verwenden!&lt;/edit&gt;</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/129606/simulation-einer-turingmaschine-hilfe-dringend</link><generator>RSS for Node</generator><lastBuildDate>Wed, 26 Aug 2026 06:50:31 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/129606.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 14 Dec 2005 21:11:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Simulation einer Turingmaschine!! Hilfe!! Dringend! on Thu, 15 Dec 2005 11:57:53 GMT]]></title><description><![CDATA[<p>Ich simuliere mit eine Turingmaschine, die aus einer Datei input.txt (z.B. &quot;BB10001000BB&quot;) 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?</p>
<pre><code class="language-cpp">class konfiguration
{
public:
	char zustand;
	char element;
	char schritt;
};

#include&lt;fstream.h&gt;

konfiguration div2tm(char zustand, char element)
{
	konfiguration u;
	if (zustand=='0' &amp;&amp; element=='B')
	{
		u.zustand='0';
		u.element=element;
		u.schritt='R';
	}
	if (zustand=='1'||zustand=='0' &amp;&amp; element=='1'||element=='0')
	{
		u.zustand='1';
		u.element=element;
		u.schritt='R';
	}
	if (zustand=='1' &amp;&amp; element=='B')
	{
		u.zustand='2';
		u.element=element;
		u.schritt='L';
	}
	if (zustand=='2' &amp;&amp; element=='0')
	{
		u.zustand='3';
		u.element='B';
		u.schritt='L';
	}
	if (zustand=='2' &amp;&amp; element=='1')
	{
		u.zustand='4';
		u.element='B';
		u.schritt='L';
	}
	if (zustand=='2' &amp;&amp; element=='B')
	{
		u.zustand='2';
		u.element=element;
		u.schritt='L';
	}
	if (zustand=='3' &amp;&amp; element=='0'||element=='1')
	{
		u.zustand='3';
		u.element=element;
		u.schritt='L';
	}
	if (zustand=='3' &amp;&amp; element=='B')
	{
		u.zustand='e';
		u.element=element;
		u.schritt='N';
	}
	if (zustand=='4' &amp;&amp; element=='0'||element=='1')
	{
		u.zustand='4';
		u.element='B';
		u.schritt='L';
	}
	if (zustand=='4' &amp;&amp; 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*)&amp;(u.element),1);
	if (u.schritt=='L')
	{
		(*is).seekp(-1,ios::cur);
		(*is).read((char*)&amp;neues_element,1);
		uebergangsfunktion(is, u.zustand,neues_element);
		return 1;
	}
	if (u.schritt=='R')
	{
		(*is).seekp(1,ios::cur);
		(*is).read((char*)&amp;neues_element,1);
		uebergangsfunktion(is, u.zustand,neues_element);
		return 1;
	}
	if (u.schritt=='N')
	{
		(*is).seekp(0,ios::cur);
		(*is).read((char*)&amp;neues_element,1);
		uebergangsfunktion(is, u.zustand,neues_element);
		return 1;
	}

}

int main()
    {
		char element;
		int x;
        fstream is;
		is.open(&quot;c://input.txt&quot;,ios::in|ios::out);
		is.read((char*) &amp; element, sizeof(char));
		is.seekp(-1,ios::cur);
		x = uebergangsfunktion(&amp;is,'0',element);
		if (x==0)
			cout &lt;&lt; &quot;Fehlerhafte Eingabe&quot;;
        is.close();
    }
</code></pre>
<p>&lt;edit&gt;Bitte Code-Tags verwenden!&lt;/edit&gt;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/942377</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/942377</guid><dc:creator><![CDATA[Georg82]]></dc:creator><pubDate>Thu, 15 Dec 2005 11:57:53 GMT</pubDate></item><item><title><![CDATA[Reply to Simulation einer Turingmaschine!! Hilfe!! Dringend! on Wed, 14 Dec 2005 21:14:42 GMT]]></title><description><![CDATA[<blockquote>
<p>Kann mir jemand helfen?</p>
</blockquote>
<p>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 <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>ps: toller titel</p>
]]></description><link>https://www.c-plusplus.net/forum/post/942381</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/942381</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Wed, 14 Dec 2005 21:14:42 GMT</pubDate></item><item><title><![CDATA[Reply to Simulation einer Turingmaschine!! Hilfe!! Dringend! on Wed, 14 Dec 2005 21:18:24 GMT]]></title><description><![CDATA[<p>@op<br />
fehler 1: include &lt;fstream&gt;</p>
<p>otze schrieb:</p>
<blockquote>
<p>ps: toller titel</p>
</blockquote>
<p>hey, man weiss wenigstens, worum es geht.<br />
und dass die abgabe morgen ist <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/942387</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/942387</guid><dc:creator><![CDATA[lac-operon]]></dc:creator><pubDate>Wed, 14 Dec 2005 21:18:24 GMT</pubDate></item></channel></rss>