Aufgabe Vorschlag C1 - Aufgabe 5 · 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 (x0,x1,x2,…x0, x1, x2, \dots), Konstanten (0,1,2,…0, 1, 2, \dots), Trennsymbolen (;,:=;,:=),

Operationszeichen (+,−,≠+, -, \neq) und Schlüsselwörtern ( WHILE, DO, END).

WHILE-Programme sind wie folgt definiert:

Jede Wertzuweisung mit den Variablen xixi und xjxj und der Konstanten c∈N0c \in \mathbb{N}_0 der Form xi:=xj+cxi:= xj + c bzw. xi:=xj−cxi:= xj - c ist ein WHILE-Programm.

Falls P1P_1 und P2P_2 WHILE-Programme sind, dann ist auch P1;P2P_1; P_2 ein WHILE-Programm.

Falls PP ein WHILE-Programm ist und xixi eine Variable, dann ist auch WHILE xi≠0xi \neq 0 DO PP END ein WHILE-Programm.

Bei der Wertzuweisung xi:=xj+cxi:= xj + c wird der Variablen xixi die Summe der Werte von xjxj und cc zugewiesen. Bei der Wertzuweisung xi:=xj−cxi:= xj - c ist dies entsprechend die Differenz, wenn der Wert nicht negativ ist. Ist xj−c<0xj - c < 0, wird der Variablen xixi der Wert 00 zugewiesen.

Die Komposition P1;P2P_1; P_2 wird so interpretiert, dass zuerst P1P_1 und anschließend P2P_2 ausgeführt wird.

Innerhalb einer WHILE-Schleife WHILE xi≠0xi \neq 0 DO PP END ist das Programm PP solange wiederholt auszuführen, wie der Wert von xixi ungleich Null ist.

Material 1

WHILE-Programm für die WHILE-berechenbare Funktion f(a,b)=a∗bf(a, b) = a * b

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 x1x1 und x2x2 stehen anfangs die Werte aa und bb. Die restlichen Variablen sind mit dem Wert 00 vorbelegt.

Material 2

WHILE-Programm für die WHILE-berechenbare Funktion f(a,b)=abf(a, b) = a^b

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 x0x0, x1x1 und x2x2 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: x3x3 ist mit dem Wert 00 vorbelegt.

Die Laufzeit TIMEP(a,b)TIME_P(a, b) eines WHILE-Programms PP ist die Anzahl der Schritte, die durchlaufen werden, wenn PP mit dem Wert aa in der Variable x1x1 und Wert bb in der Variable x2x2 gestartet wird. Jede Wertzuweisung und jede Auswertung einer Schleifenbedingung wird als ein Schritt gezählt.

Bestimmen Sie die Laufzeit TIMEP(a,b)TIME_P(a, b) des WHILE-Programms in Material 1 in Abhängigkeit von aa und bb.

[3 BE]

Aufgabenstellung: Aufgabe Vorschlag C1 - Aufgabe 5 · Abitur Hessen Informatik LK 2022

Lösung

Nach den offiziellen Korrekturhinweisen

Bestimmen Sie die Laufzeit TIMEP(a,b)TIME_P(a, b) des WHILE-Programms in Material 1 in Abhängigkeit von aa und bb.

Lösung: 3ab+4b+23ab + 4b + 2

Erläuterung der Schrittzählung für die einzelnen Bestandteile des Programms:

Lösung: Erste Zuweisung: 1 Schritt. Innere Schleife: a Durchläufe zu je 3 Schritten plus 1 Austrittsvergleich = 3a + 1 Schritte. Äußere Schleife: b Durchläufe mit je Bedingungsprüfung, innerer Schleife und 2 Zuweisungen (3 + 3a + 1) plus 1 Austrittsvergleich = (3a + 4)b + 1. Gesamt: 3ab + 4b + 2.

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 4 · LK 2022 · Aufgabe Vorschlag C1 - Aufgabe 6 · LK 2022 ›

Mehr Aufgaben zu Registermaschine und Berechenbarkeit