Hilfsmittel: keine. Bearbeiten Sie alle drei Aufgaben; die Lösungen werden nach dem Auswerten freigeschaltet.
Kfz-Kennzeichen prüfen
15 PunkteEin Parkhaus liest Kfz-Kennzeichen in vereinfachter Form: ein oder zwei Buchstaben für den Kreis, ein Bindestrich, ein oder zwei Buchstaben, dann eine bis drei Ziffern, z. B. H-AB12 oder OS-KL1. Der DEA arbeitet über \(\Sigma=\{B,\,-,\,Z\}\); B steht für einen beliebigen Buchstaben, Z für eine beliebige Ziffer.
Nicht eingezeichnete Übergänge führen in den Fehlerzustand zF.
Geben Sie alle Kennzeichen an, die der Automat akzeptiert.
Lösung anzeigen (nach Auswerten freigeschaltet)
Erwartungshorizont:
| Kennzeichen | Zustandsfolge | Ergebnis |
|---|---|---|
H-AB12 | z0 · z1 · z3 · z4 · z5 · z6 · z7 | akzeptiert |
OS-KL1 | z0 · z1 · z2 · z3 · z4 · z5 · z6 | akzeptiert |
HAN-X7 | z0 · z1 · z2 · zF · zF · zF · zF | abgelehnt |
H-A1234 | z0 · z1 · z3 · z4 · z6 · z7 · z8 · zF | abgelehnt |
B-X | z0 · z1 · z3 · z4 | abgelehnt |
H-12 | z0 · z1 · z3 · zF · zF | abgelehnt |
Akzeptiert: H-AB12, OS-KL1 (3 P). HAN-X7: drei Buchstaben vor dem Bindestrich; H-A1234: vier Ziffern; B-X endet in z4, H-12 fehlt der zweite Buchstabenblock.
Berechnen Sie, wie viele Übergänge der Automat hat, wenn der Fehlerzustand vollständig eingezeichnet wird.
Lösung anzeigen (nach Auswerten freigeschaltet)
Erwartungshorizont:
Zustände z0 bis z8 und zF: \(|Z|=10\), \(|\Sigma|=3\) → \(10\cdot 3=30\) Übergänge (2 P). Davon sind 10 eingezeichnet, 17 führen nach zF, 3 sind Schleifen an zF.
Ordnen Sie den Zuständen ihre Bedeutung zu.
Lösung anzeigen (nach Auswerten freigeschaltet)
Erwartungshorizont:
z2: zwei Buchstaben des Kreises gelesen; z3: Bindestrich gelesen, noch kein Buchstabe danach; z5: zwei Buchstaben nach dem Bindestrich, noch keine Ziffer; z7: genau zwei Ziffern gelesen (je 1 P). z1 bedeutet „ein Buchstabe des Kreises“, z6 „genau eine Ziffer“, z8 „drei Ziffern — keine weitere erlaubt“.
In der Realität hat die Kreiskennung bis zu drei Buchstaben (z. B. HAN-X7). Erweitern Sie den Automaten entsprechend.
Lösung anzeigen (nach Auswerten freigeschaltet)
Erwartungshorizont:
Neuer Zustand z2′ („drei Buchstaben des Kreises gelesen“): z2 –B→ z2′, z2′ –-→ z3; alle anderen Eingaben in z2′ führen nach zF. Mit z0 bis z8 und z2′ sind das 10 Zustände ohne zF (1 P). Eine Schleife an z2 würde beliebig lange Kreiskennungen erlauben (2 P).
Ein Mitarbeiter möchte mit einem DEA zusätzlich prüfen, ob ein Kennzeichen genauso viele Buchstaben wie Ziffern enthält. Beurteilen Sie, ob das möglich ist.
Lösung anzeigen (nach Auswerten freigeschaltet)
Erwartungshorizont:
Die Kennzeichen-Sprache ist endlich: höchstens 4 Buchstaben und 3 Ziffern. Ein DEA kann die Anzahl der Buchstaben (0–4) im Zustand mitführen und beim Lesen der Ziffern herunterzählen — endlich viele Kombinationen. Anders als bei \(L=\{a^nb^n\mid n\ge 0\}\) muss keine unbeschränkte Anzahl gespeichert werden (3 P).
Blockkommentare erkennen
17 PunkteEin Editor soll erkennen, ob eine Zeichenfolge genau ein Blockkommentar ist: Sie beginnt mit /*, endet mit */ und enthält dazwischen beliebige Zeichen, aber nicht die Folge */. Der DEA arbeitet über \(\Sigma=\{/,\,*,\,x\}\); x steht für jedes andere Zeichen. Endzustand ist z4.
| Zustand | / | * | x | Bedeutung |
|---|---|---|---|---|
| z0 | z1 | zF | zF | noch nichts gelesen |
| z1 | zF | z2 | zF | / gelesen |
| z2 | ? | ? | ? | im Kommentar, zuletzt kein * |
| z3 | ? | ? | ? | im Kommentar, zuletzt * |
| z4 | zF | zF | zF | Kommentar geschlossen |
| zF | zF | zF | zF | kein Kommentar mehr möglich |
Bestimmen Sie die fehlenden Einträge der Zeilen z2 und z3.
Lösung anzeigen (nach Auswerten freigeschaltet)
Erwartungshorizont:
| Zustand | / | * | x | Bedeutung |
|---|---|---|---|---|
| z0 | z1 | zF | zF | noch nichts gelesen |
| z1 | zF | z2 | zF | / gelesen |
| z2 | z2 | z3 | z2 | im Kommentar, zuletzt kein * |
| z3 | z4 | z3 | z2 | im Kommentar, zuletzt * |
| z4 | zF | zF | zF | Kommentar geschlossen |
| zF | zF | zF | zF | kein Kommentar mehr möglich |
z2: / und x bleiben im Kommentar, * → z3. z3: / schließt ab (z4), ein weiteres * bleibt in z3 (**/ soll schließen), x → zurück nach z2 (je 1 P).
Wenden Sie den vollständigen Automaten an. Welche Zeichenfolgen werden akzeptiert?
Lösung anzeigen (nach Auswerten freigeschaltet)
Erwartungshorizont:
| Zeichenfolge | Zustandsfolge | Ergebnis |
|---|---|---|
/**/ | z0 · z1 · z2 · z3 · z4 | akzeptiert |
/*x*/ | z0 · z1 · z2 · z2 · z3 · z4 | akzeptiert |
/***/ | z0 · z1 · z2 · z3 · z3 · z4 | akzeptiert |
/*/ | z0 · z1 · z2 · z2 | abgelehnt |
/*x*/x | z0 · z1 · z2 · z2 · z3 · z4 · zF | abgelehnt |
*/x/* | z0 · zF · zF · zF · zF · zF | abgelehnt |
Akzeptiert: /**/, /*x*/, /***/ (3 P).
Implementieren Sie den Automaten als Klasse mit der Übergangstabelle als zweidimensionalem Feld (z0 → 0, …, z4 → 4, zF → 5), einer Methode spalte (/ → 0, * → 1, sonst 2) und einer Methode akzeptiert.
zustand nach dem Aufruf akzeptiert("/*x*/x")? 2 PLösung anzeigen (nach Auswerten freigeschaltet)
Erwartungshorizont:
public class Kommentar { // / * x private int[][] delta = { {1, 5, 5}, // z0 {5, 2, 5}, // z1 {2, 3, 2}, // z2 {4, 3, 2}, // z3 {5, 5, 5}, // z4 (Endzustand) {5, 5, 5} }; // zF private int zustand; private int spalte(char c) { if (c == '/') { return 0; } if (c == '*') { return 1; } return 2; // jedes andere Zeichen } public boolean akzeptiert(String text) { zustand = 0; for (int i = 0; i < text.length(); i++) { zustand = delta[zustand][spalte(text.charAt(i))]; if (zustand == 5) { return false; } // zF: kein Weg zurück } return zustand == 4; } }
/*x*/ führt nach z4, das angehängte x nach zF → zustand = 5 (2 P). Zutreffend: Zurücksetzen, früher Abbruch in zF, Tabellenschritt. Falsch: Unterwegs wird nicht entschieden; die Zeile für z4 wird gebraucht, weil nach dem Kommentarende weitere Zeichen folgen können (3 P).
Eine Programmiersprache erlaubt verschachtelte Kommentare wie /* a /* b */ c */ in beliebiger Tiefe. Bewerten Sie den Vorschlag, auch dafür einen DEA zu bauen.
Lösung anzeigen (nach Auswerten freigeschaltet)
Erwartungshorizont:
Bei beliebiger Tiefe müssten die Vorgeschichten /*, /*/*, /*/*/*, … alle unterschieden werden, denn jede braucht eine andere Anzahl */. Ein DEA mit \(k\) Zuständen kann das nicht (Schubfachprinzip). Nur mit einer festen Höchsttiefe wäre ein DEA möglich (3 P).
Der Pfandautomat
18 PunkteEin Pfandautomat nimmt Einwegflaschen zu je 25 ct an. \(\Sigma=\{F,\,B\}\): F = Flasche eingelegt, B = Bon-Taste gedrückt. Nach der vierten Flasche druckt er automatisch einen Bon über 1 €; sonst druckt er den Bon beim Drücken von B.
Ermitteln Sie die Ausgaben für die Eingabe F F B F F F F B.
Lösung anzeigen (nach Auswerten freigeschaltet)
Erwartungshorizont:
| Schritt | Zustand | Eingabe | Ausgabe | Folgezustand |
|---|---|---|---|---|
| 1 | s0 | F | ε | s1 |
| 2 | s1 | F | ε | s2 |
| 3 | s2 | B | Bon 50 ct | s0 |
| 4 | s0 | F | ε | s1 |
| 5 | s1 | F | ε | s2 |
| 6 | s2 | F | ε | s3 |
| 7 | s3 | F | Bon 1 € | s0 |
| 8 | s0 | B | ε | s0 |
Ausgabewort: Bon 50 ct, Bon 1 € → 2 Bons (1 P), zusammen 150 ct (2 P). Das letzte B in s0 gibt \(\varepsilon\) aus.
Nennen Sie die Anzahl der Elemente des Ausgabealphabets \(\Omega\).
Lösung anzeigen (nach Auswerten freigeschaltet)
Erwartungshorizont:
\(\Omega=\{\text{Bon 25 ct},\ \text{Bon 50 ct},\ \text{Bon 75 ct},\ \text{Bon 1 €}\}\), also 4 Elemente (2 P). \(\varepsilon\) ist kein Element von \(\Omega\).
Stellen Sie die Ausgaben für die Eingabe F F F F F B in einem Ablaufprotokoll dar.
Lösung anzeigen (nach Auswerten freigeschaltet)
Erwartungshorizont:
| Schritt | Zustand | Eingabe | Ausgabe | Folgezustand |
|---|---|---|---|---|
| 1 | s0 | F | ε | s1 |
| 2 | s1 | F | ε | s2 |
| 3 | s2 | F | ε | s3 |
| 4 | s3 | F | Bon 1 € | s0 |
| 5 | s0 | F | ε | s1 |
| 6 | s1 | B | Bon 25 ct | s0 |
Die vierte Flasche löst den Bon über 1 € aus und setzt auf s0 zurück; die fünfte Flasche beginnt neu, B druckt dann 25 ct (4 P, anteilig).
Vergleichen Sie den Pfandautomaten mit einem DEA.
Lösung anzeigen (nach Auswerten freigeschaltet)
Erwartungshorizont:
Zutreffend: keine Endzustände (es zählt die Ausgabe), Vollständigkeit wie beim DEA (\(4\cdot 2=8\) Pfeile), Ausgabe abhängig von Zustand und Eingabe. Falsch: \(\varepsilon\) ist das leere Wort, kein Zeichen aus \(\Omega\); das Ergebnis ist das Ausgabewort, nicht der letzte Zustand (4 P, anteilig).
Der Betreiber möchte beliebig viele Flaschen annehmen; der Bon soll erst beim Drücken von B gedruckt werden und den Gesamtbetrag zeigen. Erörtern Sie, ob ein Mealy-Automat das leisten kann.
Lösung anzeigen (nach Auswerten freigeschaltet)
Erwartungshorizont:
Pro: Für jede feste Obergrenze gibt es einen Automaten. Contra: Bei beliebig vielen Flaschen müssten die Vorgeschichten F, FF, FFF, … alle unterschieden werden, da B jeweils einen anderen Bon ausgibt. Mit endlich vielen Zuständen landen zwei davon im selben Zustand und erhielten denselben Bon — Widerspruch. Ohne Obergrenze ist das also nicht möglich (3 P).
Mit Obergrenze 20: Zustände s0 bis s19 für 0 bis 19 Flaschen; die 20. Flasche führt mit „Bon 5 €“ nach s0 → 20 Zustände (2 P).
Ergebnis
| Aufgabe | Thema | Punkte |
|---|
Punkteverteilung
| Teilaufgabe | Thema | Aufgabe | AFB | Punkte |
|---|---|---|---|---|
| 1a | Kennzeichen prüfen | Aufgabe 1 | AFB I | 3 |
| 1b | Vollständiger Automat | Aufgabe 1 | AFB I | 2 |
| 1c | Bedeutung der Zustände | Aufgabe 1 | AFB II | 4 |
| 1d | Längere Kreiskennung | Aufgabe 1 | AFB II | 3 |
| 1e | Gleich viele Buchstaben wie Ziffern? | Aufgabe 1 | AFB III | 3 |
| 2a | Übergangstabelle vervollständigen | Aufgabe 2 | AFB II | 6 |
| 2b | Zeichenfolgen prüfen | Aufgabe 2 | AFB I | 3 |
| 2c | Den Automaten implementieren | Aufgabe 2 | AFB II | 5 |
| 2d | Verschachtelte Kommentare | Aufgabe 2 | AFB III | 3 |
| 3a | Bons ermitteln | Aufgabe 3 | AFB I | 3 |
| 3b | Ausgabealphabet | Aufgabe 3 | AFB I | 2 |
| 3c | Ablaufprotokoll | Aufgabe 3 | AFB II | 4 |
| 3d | Mealy-Automat und DEA | Aufgabe 3 | AFB II | 4 |
| 3e | Beliebig viele Flaschen | Aufgabe 3 | AFB III | 5 |
| Summe (AFB I: 13 P · AFB II: 26 P · AFB III: 11 P) | 50 | |||
Notenschema (Notenpunkte der Oberstufe)
| Punkte | Notenpunkte | Beurteilung |
|---|---|---|
| 48 – 50 P | 15 | sehr gut + |
| 45 – 47 P | 14 | sehr gut |
| 43 – 44 P | 13 | sehr gut − |
| 40 – 42 P | 12 | gut + |
| 38 – 39 P | 11 | gut |
| 35 – 37 P | 10 | gut − |
| 33 – 34 P | 9 | befriedigend + |
| 30 – 32 P | 8 | befriedigend |
| 28 – 29 P | 7 | befriedigend − |
| 25 – 27 P | 6 | ausreichend + |
| 23 – 24 P | 5 | ausreichend |
| 20 – 22 P | 4 | ausreichend − |
| 17 – 19 P | 3 | mangelhaft + |
| 14 – 16 P | 2 | mangelhaft |
| 10 – 13 P | 1 | mangelhaft − |
| 0 – 9 P | 0 | ungenügend |
