LOOP, WHILE, GOTO Umwandlungen
LOOP-Programm Grundstruktur:
LOOP (Zählwariable) DO (Anweisung) END
Erklärung:
Die Zählvariable gibt an, wie oft die Anweisung wiederholt werden soll. Die Anweisung kann ein anderes LOOP-Programm (z.B. eine Wertzuweisung) beschreiben.
Beispiel:
x0 := 2; x1 := 1; LOOP x0 DO x1 := x1 + 1 END
->> Führe zwei mal (Wert von Zählvariable x0) durch, dass der Variable x1 die Summe der Variable x1 und der Konstante 1 zugewiesen wird.
WHILE-Programm Grundstruktur:
WHILE (Abbruchbedingung) DO (Anweisung) END
Erklärung:
Solange die Abbruchsbedingung nicht erfüllt ist, soll die Anweisung wiederholt werden. Achtung: Wenn das Erzeugen einer Endlosschleife nicht geplant ist, muss sichergestellt werden, dass die Abbruchsbedingung in der Anweisung erreicht werden kann.
Beispiel:
x0 := 2; WHILE x0 <> 0 DO x1 := x1 + 1; x0 := x0 - 1 END
->> Führe durch solange der Wert der Variable x0 ungleich 0 ist, dass der Variable x1 die Summe der Variable x1 und der Konstante 1 zugewiesen wird und der Variable x0 die Differenz der Variable x0 und der Konstante 1 zugewiesen wird.
GOTO-Programm Grundstruktur:
GOTO (Marker) (Marker) : (Anweisung)
Erklärung:
Springe zum angewiesenen Marker und führe die dort beschriebene Anweisung durch.
Beispiel:
M3: GOTO M2; M1: x0 := 1; M2: x0 := 2;
->> Springe zum Merker M2 und weise der Variable x0 den Wert zwei zu.
Umwandlung LOOP zu WHILE:
LOOP-Programm: LOOP xj DO P END;
Entsprechendes WHILE-Programm: xi := xj; WHILE Xi <> 0 DO xi:= xi - 1; P END
Erklärung: Weise einer Variablen xi den Wert der Zählvariablen xj zu. Setze die Abbruchsbedingung für das WHILE-Programm als xi ungleich 0. Als Anwendung setze eine Sequenz aus der Dekrementierung von xi um 1 und der Anweisung aus dem LOOP-Programm.
Umwandlung WHILE zu GOTO
WHILE-Programm: WHILE xi <> 0 DO P END;
Entsprechendes GOTO-Programm: