Aufgabe Vorschlag C1 - Aufgabe 3 · 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.

3 Die Sprache WHILEsimpel\text{WHILE}_{\text{simpel}} besteht aus WHILE-Programmen, bei denen in WHILE-Schleifen nur Wertzuweisungen anstatt beliebiger WHILE-Programme zugelassen sind.

Modellieren Sie die Syntaxdiagramme Schleife und Zuweisung für die Sprache WHILEsimpel\text{WHILE}_{\text{simpel}}. Syntaxdiagramme für Variable und Konstante müssen nicht modelliert werden.

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

Lösung

Nach den offiziellen Korrekturhinweisen

Modellieren Sie die Syntaxdiagramme Schleife und Zuweisung für die Sprache WHILE_simpel.

Lösung: Syntaxdiagramm Schleife: - Beginn mit Terminal `WHILE` - gefolgt von Nichtterminal `Variable` - gefolgt von Terminalen `≠`, `0`, `DO` - gefolgt von Nichtterminal `Zuweisung` mit Schleife/Rückführung über das Terminal `;` für mehrfache Zuweisungen - Abschluss mit Terminal `END` Syntaxdiagramm Zuweisung: - Nichtterminal `Variable` - gefolgt von Terminal `:=` - gefolgt von Nichtterminal `Variable` - Verzweigung auf Terminal `+` oder `-` - gefolgt von Nichtterminal `Konstante`

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 2 · LK 2022 · Aufgabe Vorschlag C2 - Aufgabe 1 · LK 2022 ›

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