<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=217.61.192.163</id>
	<title>Wikipedia (Deutsch) – Lokale Kopie - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=217.61.192.163"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php/Spezial:Beitr%C3%A4ge/217.61.192.163"/>
	<updated>2026-06-26T22:09:45Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=WHILE-Programm&amp;diff=65037</id>
		<title>WHILE-Programm</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=WHILE-Programm&amp;diff=65037"/>
		<updated>2023-07-23T09:38:30Z</updated>

		<summary type="html">&lt;p&gt;217.61.192.163: ,&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;WHILE-Programme&#039;&#039;&#039; spielen in der [[Theoretische Informatik|Theoretischen Informatik]] eine Rolle, insbesondere in Zusammenhang mit [[Berechenbarkeit]].&lt;br /&gt;
&lt;br /&gt;
== Eigenschaften ==&lt;br /&gt;
* [[Random Access Machine|RAM-berechenbar]], [[Turing-Berechenbarkeit|Turing-berechenbar]], [[GOTO-Programm|GOTO-berechenbar]] und WHILE-berechenbar sind äquivalent&lt;br /&gt;
* [[LOOP-Programm|LOOP-berechenbar]] &amp;lt;math&amp;gt; \varsubsetneq &amp;lt;/math&amp;gt; WHILE-berechenbar&lt;br /&gt;
* [[Kleenesche Normalform]] (Jedes WHILE-Programm kommt auch nur mit einer [[While-Schleife]] aus)&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
WHILE-Programme haben folgende [[Syntax]] in modifizierter [[Backus-Naur-Form]]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{array}{lrl}&lt;br /&gt;
P &amp;amp; ::= &amp;amp; x_i := x_j + c \\&lt;br /&gt;
  &amp;amp;   | &amp;amp; x_i := x_j - c \\&lt;br /&gt;
  &amp;amp;   | &amp;amp; P;P \\&lt;br /&gt;
  &amp;amp;   | &amp;amp; \mathrm{LOOP} \, x_i \, \mathrm{DO}  \, P \, \mathrm{END} \\&lt;br /&gt;
  &amp;amp;   | &amp;amp; \mathrm{WHILE} \, x_i \ne 0 \, \mathrm{DO} \, P \, \mathrm{END}&lt;br /&gt;
\end{array}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auf das LOOP-Konstrukt in dieser Definition kann auch verzichtet werden, ohne dass die Menge der WHILE-berechenbaren Funktionen kleiner wird.&lt;br /&gt;
Schließlich kann jeder LOOP-Ausdruck durch ein WHILE emuliert werden. Allerdings hat ein Verzicht auf das LOOP zur Folge, dass nicht mehr alle WHILE-Programme in&lt;br /&gt;
[[Kleenesche Normalform]] gebracht werden können.&lt;br /&gt;
&lt;br /&gt;
=== Erklärung der Syntax ===&lt;br /&gt;
&lt;br /&gt;
Ein WHILE-Programm &#039;&#039;P&#039;&#039; besteht aus den Symbolen &#039;&#039;WHILE&#039;&#039;, &#039;&#039;LOOP&#039;&#039;, &#039;&#039;DO&#039;&#039;, &#039;&#039;END&#039;&#039;, :=, +, -, ;, &amp;lt;math&amp;gt;\ne&amp;lt;/math&amp;gt;, einer Anzahl Variablen &amp;lt;math&amp;gt;x_1, x_2, ...&amp;lt;/math&amp;gt; sowie beliebigen Konstanten &#039;&#039;c&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Es sind nur vier verschiedene Anweisungen erlaubt, nämlich&lt;br /&gt;
&lt;br /&gt;
* die Zuweisung einer Variablen durch eine weitere Variable, vermehrt um eine Konstante, etwa&lt;br /&gt;
::&amp;lt;math&amp;gt;x_3:=x_4+10&amp;lt;/math&amp;gt;&lt;br /&gt;
* oder vermindert um eine Konstante, etwa&lt;br /&gt;
::&amp;lt;math&amp;gt;x_5:=x_6-300&amp;lt;/math&amp;gt;&lt;br /&gt;
* eine LOOP-Anweisung, die zu Beginn den Wert einer Variablen überprüft und ein WHILE-Programm entsprechend oft wiederholt, etwa&lt;br /&gt;
::&amp;lt;math&amp;gt;\mathrm{LOOP} \quad x_7 \quad \mathrm{DO} \quad x_7:=x_7+1 \quad\mathrm{END}&amp;lt;/math&amp;gt;&lt;br /&gt;
Zu beachten ist, dass bei LOOP eine Änderung des Variablenwertes im zu wiederholenden Teilprogramm keine Auswirkung auf die Anzahl der Wiederholungen dieses Teilprogramms hat.&lt;br /&gt;
* eine WHILE-Anweisung, die eine Variable auf ungleich Null abfragt und ein WHILE-Programm zwischen DO und END enthält, etwa&lt;br /&gt;
::&amp;lt;math&amp;gt;\mathrm{WHILE} \quad x_8 \ne 0 \quad \mathrm{DO} \quad x_8:=x_8+1 \quad\mathrm{END}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anweisungen sind für sich genommen bereits vollständige WHILE-Programme. Des Weiteren ist die&lt;br /&gt;
* Aneinanderreihung von WHILE-Programmen, jeweils getrennt durch ein Semikolon, etwa&lt;br /&gt;
::&amp;lt;math&amp;gt;x_9:=x_9+3; \quad x_{10}:=x_9-2&amp;lt;/math&amp;gt;&lt;br /&gt;
wieder ein WHILE-Programm.&lt;br /&gt;
&lt;br /&gt;
=== Allgemein ===&lt;br /&gt;
Jede WHILE-berechenbare Funktion ist [[GOTO-Programm|GOTO-berechenbar]] und umgekehrt sowie turingberechenbar.&lt;br /&gt;
&lt;br /&gt;
Mit &amp;lt;math&amp;gt;\mathrm{WHILE}&amp;lt;/math&amp;gt; wird ferner die Menge aller WHILE-Programme gemäß obiger Definition bezeichnet.&lt;br /&gt;
&lt;br /&gt;
== Kleenesche Normalform für WHILE-Programme ==&lt;br /&gt;
&lt;br /&gt;
Jede WHILE-berechenbare Funktion kann durch ein WHILE-Programm mit nur einer WHILE-Schleife berechnet werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beweis:&#039;&#039;&#039; Sei &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; ein beliebiges WHILE-Programm. Wir formen &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; zunächst, wie im Abschnitt „Simulation durch GOTO-Programme“ dieses Artikels beschrieben, um, um ein äquivalentes GOTO-Programm &amp;lt;math&amp;gt;P&#039;&amp;lt;/math&amp;gt; zu erhalten. Anschließend formen wir &amp;lt;math&amp;gt;P&#039;&amp;lt;/math&amp;gt; den Anweisungen im Abschnitt „Simulation durch WHILE-Programm“ im Artikel [[GOTO-Programm]] folgend in ein äquivalentes WHILE-Programm &amp;lt;math&amp;gt;P&#039;&#039;&amp;lt;/math&amp;gt; um. Hierbei ist zu beachten, dass die für diese Konstruktion notwendigen IF THEN END Anweisungen durch LOOPs simuliert werden können. Per Konstruktion hat &amp;lt;math&amp;gt;P&#039;&#039;&amp;lt;/math&amp;gt; nur eine WHILE-Schleife.&lt;br /&gt;
&lt;br /&gt;
== Konsequenzen ==&lt;br /&gt;
&lt;br /&gt;
Die einfach beweisbare Tatsache, dass jedes [[GOTO-Programm]] in ein WHILE-Programm überführt werden kann und umgekehrt, hat zur Konsequenz, dass man beweisen kann, dass ein beliebiges [[Pascal (Programmiersprache)|Pascal]]-Programm die gleichen Leistungen erbringen kann wie ein beliebiges [[BASIC]]-Programm. Außerdem zeigt sie, dass man jedes Programm auch strukturiert programmieren kann, ohne „[[Spaghetticode]]“ zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
== Simulation durch GOTO-Programm ==&lt;br /&gt;
&lt;br /&gt;
Ein jedes WHILE-Programm&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathrm{WHILE} \quad x_2 \ne 0 \quad\mathrm{DO} \quad P \quad\mathrm{END}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kann durch das folgende GOTO-Programm simuliert werden:&lt;br /&gt;
&lt;br /&gt;
 M1: IF x2 = 0 THEN GOTO M2;&lt;br /&gt;
     P;&lt;br /&gt;
     GOTO M1;&lt;br /&gt;
 M2: ...&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[LOOP-Programm]]&lt;br /&gt;
* [[GOTO-Programm]]&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* {{Literatur| Autor=[[Uwe Schöning]]| Titel=Theoretische Informatik – kurz gefasst| Auflage=5| Verlag=Spektrum Akademischer Verlag| Ort=Heidelberg| Kapitel=2.3 LOOP-, WHILE und GOTO-Berechenbarkeit| ISBN=978-3-8274-1824-1}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Berechenbarkeitstheorie]]&lt;/div&gt;</summary>
		<author><name>217.61.192.163</name></author>
	</entry>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=GOTO-Programm&amp;diff=65039</id>
		<title>GOTO-Programm</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=GOTO-Programm&amp;diff=65039"/>
		<updated>2023-07-23T09:34:42Z</updated>

		<summary type="html">&lt;p&gt;217.61.192.163: ,&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;GOTO-Programme&#039;&#039;&#039; sind spezielle [[Computerprogramm|Programme]] mit einer sehr einfachen [[Syntax]]. Dennoch spielen sie in Zusammenhang mit [[Berechenbarkeit]] eine große Rolle für die [[theoretische Informatik]], insbesondere weil sich zeigen lässt, dass jede [[Turing-Berechenbarkeit|Turing-berechenbare]] Funktion GOTO-berechenbar ist.&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
GOTO-Programme haben folgende [[Syntax]] in modifizierter [[Backus-Naur-Form]]:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;P ::= M_1 : A; ... ; M_k : A&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;A ::= x_i := x_j + c \, | x_i := x_j - c \, | \, \mathrm{GOTO} \, M_i \, | \, \mathrm{IF} \, x_i = c \, \mathrm{THEN} \, \mathrm{GOTO} \, M_j \, | \, \mathrm{STOP}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;M_1, ..., M_k&amp;lt;/math&amp;gt; sind Marken (k ∈ ℕ)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;GOTO&amp;lt;/math&amp;gt; ist die Menge aller GOTO-Programme gemäß obiger Definition.&lt;br /&gt;
&lt;br /&gt;
Jede GOTO-berechenbare Funktion ist [[WHILE-Programm|WHILE-berechenbar]] und umgekehrt.&lt;br /&gt;
&lt;br /&gt;
Jede Turing-berechenbare Funktion ist GOTO-berechenbar und umgekehrt.&lt;br /&gt;
&lt;br /&gt;
=== Erklärung der Syntax ===&lt;br /&gt;
Jedes GOTO-Programm &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; besteht aus einer Anzahl von Anweisungen &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt;, getrennt mit jeweils einem Semikolon. Vor jeder Anweisung befindet sich eine (eindeutige) Marke &amp;lt;math&amp;gt;M_1,\ M_2,\ \dots&amp;lt;/math&amp;gt;, gefolgt von einem Doppelpunkt.&lt;br /&gt;
&lt;br /&gt;
GOTO-Programme haben eine endliche Anzahl von Variablen &amp;lt;math&amp;gt;x_1,\ x_2,\ \dots&amp;lt;/math&amp;gt; und Konstanten &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt;. Es sind nur fünf verschiedene Anweisungen erlaubt:&lt;br /&gt;
* Zuweisung einer Variablen durch eine weitere (dieselbe oder eine andere) Variable, vermehrt um eine Konstante, etwa&lt;br /&gt;
::&amp;lt;math&amp;gt;x_1 := x_2+3&amp;lt;/math&amp;gt;&lt;br /&gt;
* oder vermindert um eine Konstante, etwa&lt;br /&gt;
::&amp;lt;math&amp;gt;x_3 := x_3-1&amp;lt;/math&amp;gt;.&lt;br /&gt;
* eine Sprunganweisung&lt;br /&gt;
::&amp;lt;math&amp;gt;\mathrm{GOTO} \quad M_4&amp;lt;/math&amp;gt;&lt;br /&gt;
* eine bedingte Sprunganweisung, wobei eine Variable auf Gleichheit mit einer Konstanten abgefragt wird, etwa&lt;br /&gt;
::&amp;lt;math&amp;gt;{\rm IF} \quad x_4 = 45 \quad {\rm THEN} \quad {\rm GOTO} \quad M_5&amp;lt;/math&amp;gt;&lt;br /&gt;
* und die STOP-Anweisung&lt;br /&gt;
::&amp;lt;math&amp;gt;{\rm STOP}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Konsequenz ==&lt;br /&gt;
Man kann formal beweisen, dass jedes [[GOTO]]-Programm auch durch ein äquivalentes [[Pascal (Programmiersprache)|Pascal]]-, [[C (Programmiersprache)|C]]-, [[C++]]- oder [[Java (Programmiersprache)|Java]]-Programm dargestellt werden kann, und umgekehrt.&lt;br /&gt;
&lt;br /&gt;
== Beispiele ==&lt;br /&gt;
&lt;br /&gt;
=== Addition zweier Variablen ===&lt;br /&gt;
Das folgende GOTO-Programm berechnet die Summe &amp;lt;math&amp;gt;x_1 + x_2&amp;lt;/math&amp;gt; von zwei nicht-negativen Zahlen &amp;lt;math&amp;gt;x_1, x_2&amp;lt;/math&amp;gt; und speichert diese in die Variable &amp;lt;math&amp;gt;x_3&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;math&amp;gt;M_1:&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;x_3:=x_1&amp;lt;/math&amp;gt;;&lt;br /&gt;
  &amp;lt;math&amp;gt;M_2:&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;x_4:=x_2&amp;lt;/math&amp;gt;;&lt;br /&gt;
  &amp;lt;math&amp;gt;M_3:&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;{\rm IF} \ x_4 = 0 \ {\rm THEN} \ {\rm GOTO} \ M_{7}&amp;lt;/math&amp;gt;;&lt;br /&gt;
  &amp;lt;math&amp;gt;M_4:&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;x_3:=x_3+1&amp;lt;/math&amp;gt;;&lt;br /&gt;
  &amp;lt;math&amp;gt;M_5:&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;x_4:=x_4-1&amp;lt;/math&amp;gt;;&lt;br /&gt;
  &amp;lt;math&amp;gt;M_6:&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;\mathrm{GOTO} \quad M_3&amp;lt;/math&amp;gt;;&lt;br /&gt;
  &amp;lt;math&amp;gt;M_7:&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;STOP&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Multiplikation zweier Variablen ===&lt;br /&gt;
&lt;br /&gt;
Das folgende Programm berechnet das Produkt &amp;lt;math&amp;gt;x_1 \cdot x_2&amp;lt;/math&amp;gt; von zwei nicht-negativen Zahlen &amp;lt;math&amp;gt;x_1, x_2&amp;lt;/math&amp;gt; und speichert dieses in die Variable &amp;lt;math&amp;gt;x_3&amp;lt;/math&amp;gt;.&lt;br /&gt;
Da wir schon ein Programm zur Implementierung der Addition zweier Variablen haben, verwenden wir diese, um eine Implementierung der Multiplikation zu entwickeln.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;math&amp;gt;M_1:&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;x_3:=0&amp;lt;/math&amp;gt;;&lt;br /&gt;
  &amp;lt;math&amp;gt;M_2:&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;x_4:=x_2&amp;lt;/math&amp;gt;;&lt;br /&gt;
  &amp;lt;math&amp;gt;M_3:&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;{\rm IF} \quad x_4 = 0 \quad {\rm THEN} \quad {\rm GOTO} \quad M_{7}&amp;lt;/math&amp;gt;;&lt;br /&gt;
  &amp;lt;math&amp;gt;M_4:&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;x_4 := x_4 - 1&amp;lt;/math&amp;gt;;&lt;br /&gt;
  &amp;lt;math&amp;gt;M_5:&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;x_3 := x_3+x_1&amp;lt;/math&amp;gt;;&lt;br /&gt;
  &amp;lt;math&amp;gt;M_6:&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;\mathrm{GOTO} \quad M_3&amp;lt;/math&amp;gt;;&lt;br /&gt;
  &amp;lt;math&amp;gt;M_7:&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;STOP&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
Hier ist zu beachten, dass &amp;lt;math&amp;gt;M_5:&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;x_3 := x_3+x_1&amp;lt;/math&amp;gt; formal kein gültiges GOTO-Programm ist, sondern durch ein entsprechendes GOTO-Programm für die Addition ersetzt werden muss.&lt;br /&gt;
Führt man diese Ersetzung durch, erhält man folgendes GOTO-Programm für die Multiplikation von zwei nicht-negativen Zahlen &amp;lt;math&amp;gt;x_1, x_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;math&amp;gt;M_1:&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;x_3:=0&amp;lt;/math&amp;gt;;&lt;br /&gt;
  &amp;lt;math&amp;gt;M_2:&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;x_4:=x_2&amp;lt;/math&amp;gt;;&lt;br /&gt;
  &amp;lt;math&amp;gt;M_3:&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;{\rm IF} \quad x_4 = 0 \quad {\rm THEN} \quad {\rm GOTO} \quad M_{10}&amp;lt;/math&amp;gt;;&lt;br /&gt;
  &amp;lt;math&amp;gt;M_4:&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;x_4 := x_4 - 1&amp;lt;/math&amp;gt;;&lt;br /&gt;
  &amp;lt;math&amp;gt;M_5:&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;x_5:=x_1&amp;lt;/math&amp;gt;;&lt;br /&gt;
  &amp;lt;math&amp;gt;M_6:&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;{\rm IF} \quad x_5 = 0 \quad {\rm THEN} \quad {\rm GOTO} \quad M_{3}&amp;lt;/math&amp;gt;;&lt;br /&gt;
  &amp;lt;math&amp;gt;M_7:&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;x_3:=x_3+1&amp;lt;/math&amp;gt;;&lt;br /&gt;
  &amp;lt;math&amp;gt;M_8:&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;x_5:=x_5-1&amp;lt;/math&amp;gt;;&lt;br /&gt;
  &amp;lt;math&amp;gt;M_9:&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;\mathrm{GOTO} \quad M_6&amp;lt;/math&amp;gt;;&lt;br /&gt;
  &amp;lt;math&amp;gt;M_{10}:&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;STOP&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
== Simulation durch WHILE-Programm ==&lt;br /&gt;
Ein GOTO-Programm&lt;br /&gt;
 M1: A1; M2: A2; ... Mk: Ak&lt;br /&gt;
kann durch ein [[WHILE-Programm]] der folgenden Form simuliert werden&lt;br /&gt;
 counter := 1;&lt;br /&gt;
 WHILE counter != 0 DO&lt;br /&gt;
   IF counter = 1 THEN B1 END;&lt;br /&gt;
   IF counter = 2 THEN B2 END;&lt;br /&gt;
   ...&lt;br /&gt;
   IF counter = k THEN Bk END;&lt;br /&gt;
   IF counter = k+1 THEN counter := 0 END&lt;br /&gt;
 END&lt;br /&gt;
wobei&lt;br /&gt;
 Bi = xj := xn + c; counter := counter + 1   falls Ai = xj := xn + c&lt;br /&gt;
 Bi = xj := xn - c; counter := counter + 1   falls Ai = xj := xn - c&lt;br /&gt;
 Bi = counter := n                           falls Ai = GOTO Mn&lt;br /&gt;
 Bi = IF xj = c THEN counter := n&lt;br /&gt;
      ELSE counter := counter + 1            falls Ai = IF xj = c THEN GOTO Mn&lt;br /&gt;
      END&lt;br /&gt;
 Bi = counter := 0                           falls Ai = STOP&lt;br /&gt;
&lt;br /&gt;
In WHILE-Programmen gibt es keine IF THEN END Anweisungen, diese können aber mit [[LOOP-Programm#IF THEN ELSE|LOOP]] oder WHILE Schleifen implementiert werden.&lt;br /&gt;
Das folgende Programm simuliert eine &#039;&#039;IF x&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; = c THEN P1 END&#039;&#039; Anweisung, dabei werden drei neue Variablen xn1, xn2, xn3 verwendet.&lt;br /&gt;
&lt;br /&gt;
 x&amp;lt;sub&amp;gt;n1&amp;lt;/sub&amp;gt;:=x&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;-(c-1); x&amp;lt;sub&amp;gt;n2&amp;lt;/sub&amp;gt;:=x&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;-c; x&amp;lt;sub&amp;gt;n3&amp;lt;/sub&amp;gt;:=1;&lt;br /&gt;
 LOOP x&amp;lt;sub&amp;gt;n1&amp;lt;/sub&amp;gt; DO&lt;br /&gt;
   LOOP x&amp;lt;sub&amp;gt;n2&amp;lt;/sub&amp;gt; DO&lt;br /&gt;
      x&amp;lt;sub&amp;gt;n3&amp;lt;/sub&amp;gt;:=0&lt;br /&gt;
   END;&lt;br /&gt;
   LOOP x&amp;lt;sub&amp;gt;n3&amp;lt;/sub&amp;gt; DO&lt;br /&gt;
      P1&lt;br /&gt;
   END&lt;br /&gt;
 END&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Sprunganweisung]] (GOTO)&lt;br /&gt;
* [[LOOP-Programm]]&lt;br /&gt;
* [[WHILE-Programm]]&lt;br /&gt;
* [[µ-Rekursion]]&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* {{Literatur| Autor=[[Uwe Schöning]]| Titel=Theoretische Informatik – kurz gefasst| Auflage=5| Verlag=Spektrum Akademischer Verlag| Ort=Heidelberg| Kapitel=2.3 LOOP-, WHILE und GOTO-Berechenbarkeit| ISBN=978-3-8274-1824-1}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Berechenbarkeitstheorie|Gotoprogramm]]&lt;/div&gt;</summary>
		<author><name>217.61.192.163</name></author>
	</entry>
</feed>