Aufgabe Vorschlag C1 - Aufgabe 7 · Abitur Hessen Informatik LK 2022
Thema: Registermaschine und Berechenbarkeit · Aus der Prüfung LK (2022)
Aufgabenstellung
WHILE-Programme
WHILE-Programme sind ein Berechnungsformalismus, der an traditionelle Programmiersprachen angelehnt ist.
WHILE-Programme bestehen aus:
Variablen (), Konstanten (), Trennsymbolen (),
Operationszeichen () und Schlüsselwörtern ( WHILE, DO, END).
WHILE-Programme sind wie folgt definiert:
Jede Wertzuweisung mit den Variablen und und der Konstanten der Form bzw. ist ein WHILE-Programm.
Falls und WHILE-Programme sind, dann ist auch ein WHILE-Programm.
Falls ein WHILE-Programm ist und eine Variable, dann ist auch WHILE DO END ein WHILE-Programm.
Bei der Wertzuweisung wird der Variablen die Summe der Werte von und zugewiesen. Bei der Wertzuweisung ist dies entsprechend die Differenz, wenn der Wert nicht negativ ist. Ist , wird der Variablen der Wert zugewiesen.
Die Komposition wird so interpretiert, dass zuerst und anschließend ausgeführt wird.
Innerhalb einer WHILE-Schleife WHILE DO END ist das Programm solange wiederholt auszuführen, wie der Wert von ungleich Null ist.
Material 1
WHILE-Programm für die WHILE-berechenbare Funktion
01 x3:= x1 + 0;
02 WHILE x2 ≠ 0 DO
03 WHILE x1 ≠ 0 DO
04 x0:= x0 + 1;
05 x1:= x1 - 1
06 END;
07 x1:= x3 + 0;
08 x2:= x2 - 1
09 END Hinweis: In den Variablen und stehen anfangs die Werte und . Die restlichen Variablen sind mit dem Wert vorbelegt.
Material 2
WHILE-Programm für die WHILE-berechenbare Funktion
01 x0:= x0 + 1;
02 WHILE x2 ≠ 0 DO
03 x0:= x0 * x1;
04 x2:= x2 - 1
05 END Hinweis: Zur Abkürzung wurde hier x0:= x0 * x1; verwendet, da dieser Ausdruck WHILE-berechenbar ist (siehe Material 1). Die Vorbelegung der Variablen , und entspricht der in Material 1 beschriebenen.
Material 3
Beispiel eines WHILE-Programms
01 x2:= x1 + 0;
02 WHILE x2 ≠ 0 DO
03 x3:= x3 + 1;
04 x2:= x2 - 2
05 END;
06 WHILE x3 ≠ 0 DO
07 x2:= x2 + 2;
08 x3:= x3 - 1
09 END;
10 WHILE x1 ≠ 0 DO
11 x2:= x2 - 1;
12 x1:= x1 - 1
13 END;
14 WHILE x2 ≠ 0 DO
15 x1:= x1 + 1;
16 END Hinweis: ist mit dem Wert vorbelegt.
Entscheiden Sie für welche Werte der Variable das WHILE-Programm in Material 3 terminiert.
[3 BE]

Lösung
Nach den offiziellen Korrekturhinweisen
Entscheiden Sie für welche Werte der Variable das WHILE-Programm in Material 3 terminiert.
Lösung: für alle geraden Zahlen in / alle geraden Zahlen / gerade Zahlen
Begründung anhand der Programmschleifen:
Lösung: Der Wert der Variable x1 wird in der Variable x2 gespeichert. In den Zeilen 2 bis 5 wird in x3 gespeichert, wie oft man 2 von x2 subtrahieren kann (Ergebnis von x2 / 2 + 1). In den Zeilen 6 bis 9 wird wieder x2 * 2 berechnet. Somit stimmen nach dieser Schleife die Werte von x1 und x2 überein, wenn x1 gerade war, ansonsten ist x2 um eins größer. In Zeilen 10–13 wird x2 - x1 berechnet. Ist x1 gerade, wird die Endlosschleife (Zeilen 14–16) nicht ausgeführt, bei ungeraden Werten schon.
Die ausführliche Erklärung Schritt für Schritt (mit KI) gibt es mit Premium. Premium
Löse sie direkt hier: automatische Korrektur, Hinweise und Lösung Schritt für Schritt.
‹ Aufgabe Vorschlag C1 - Aufgabe 6 · LK 2022 · Aufgabe Vorschlag C2 - Aufgabe 2 · LK 2022 ›