Aufgabe Vorschlag C1 - Aufgabe 1 · Abitur Hessen Informatik LK 2022

Thema: Grammatiken, reguläre Ausdrücke und Syntaxdiagramme · 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.

Aufgabe 1 [3 BE]

Entscheiden Sie jeweils, ob es sich um ein gültiges WHILE-Programm handelt.

a)

x1:= 10;

WHILE x1 ≠ 0 DO

x1:= x1 - 1;

x2:= x1 + 2

END

b)

x2:= x1 + 3;

WHILE x2 ≠ 0 DO

x1:= x2 - 1

WHILE x1 ≠ 0 DO

x1:= x1+1

END

END

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

Lösung

Nach den offiziellen Korrekturhinweisen

a) Entscheidung und Begründung, ob es sich um ein gültiges WHILE-Programm handelt

Lösung: Nein, es handelt sich nicht um ein gültiges WHILE-Programm.

b) Entscheidung und Begründung, ob es sich um ein gültiges WHILE-Programm handelt

Lösung: Nein, es handelt sich nicht um ein gültiges WHILE-Programm.

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 B3 · GK 2022 · Aufgabe Vorschlag C1 - Aufgabe 2 · LK 2022 ›

Mehr Aufgaben zu Grammatiken, reguläre Ausdrücke und Syntaxdiagramme