MINT lernen

Probe-Klausur

Drei Aufgaben, 50 Punkte, 90 Minuten: Kennzeichen, Kommentare und ein Pfandautomat als Generalprobe.

Punkte0 / 50
Notenpunkte—
Bearbeitet0 / 0
Bearbeitungszeit90 Minuten

Hilfsmittel: keine. Bearbeiten Sie alle drei Aufgaben; die Lösungen werden nach dem Auswerten freigeschaltet.

Aufgabe 1

Kfz-Kennzeichen prüfen

15 Punkte

Ein 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.

z0 z1 z2 z3 z4 z5 z6 z7 z8 B B - - B B Z Z Z Z

Nicht eingezeichnete Übergänge führen in den Fehlerzustand zF.

1a
Kennzeichen prüfen
AFB I 3 Punkte

Geben Sie alle Kennzeichen an, die der Automat akzeptiert.

(mehrere Antworten richtig) 3 P
Lösung anzeigen (nach Auswerten freigeschaltet)

Erwartungshorizont:

KennzeichenZustandsfolgeErgebnis
H-AB12z0 · z1 · z3 · z4 · z5 · z6 · z7akzeptiert
OS-KL1z0 · z1 · z2 · z3 · z4 · z5 · z6akzeptiert
HAN-X7z0 · z1 · z2 · zF · zF · zF · zFabgelehnt
H-A1234z0 · z1 · z3 · z4 · z6 · z7 · z8 · zFabgelehnt
B-Xz0 · z1 · z3 · z4abgelehnt
H-12z0 · z1 · z3 · zF · zFabgelehnt

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.

1b
Vollständiger Automat
AFB I 2 Punkte

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.

1c
Bedeutung der Zustände
AFB II 4 Punkte

Ordnen Sie den Zuständen ihre Bedeutung zu.

Bedeutung der Zustände z2, z3, z5, z7 4 P
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“.

1d
Längere Kreiskennung
AFB II 3 Punkte

In der Realität hat die Kreiskennung bis zu drei Buchstaben (z. B. HAN-X7). Erweitern Sie den Automaten entsprechend.

Wie viele Zustände (ohne zF) hat der erweiterte Automat? 1 P
Welche Änderung ist korrekt? 2 P
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).

1e
Gleich viele Buchstaben wie Ziffern?
AFB III 3 Punkte

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.

Welche Beurteilung ist zutreffend? 3 P
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).

Aufgabe 2

Blockkommentare erkennen

17 Punkte

Ein 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/*xBedeutung
z0z1zFzFnoch nichts gelesen
z1zFz2zF/ gelesen
z2???im Kommentar, zuletzt kein *
z3???im Kommentar, zuletzt *
z4zFzFzFKommentar geschlossen
zFzFzFzFkein Kommentar mehr möglich
2a
Übergangstabelle vervollständigen
AFB II 6 Punkte

Bestimmen Sie die fehlenden Einträge der Zeilen z2 und z3.

Folgezustände 6 P
Lösung anzeigen (nach Auswerten freigeschaltet)

Erwartungshorizont:

Zustand/*xBedeutung
z0z1zFzFnoch nichts gelesen
z1zFz2zF/ gelesen
z2z2z3z2im Kommentar, zuletzt kein *
z3z4z3z2im Kommentar, zuletzt *
z4zFzFzFKommentar geschlossen
zFzFzFzFkein 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).

2b
Zeichenfolgen prüfen
AFB I 3 Punkte

Wenden Sie den vollständigen Automaten an. Welche Zeichenfolgen werden akzeptiert?

(mehrere Antworten richtig) 3 P
Lösung anzeigen (nach Auswerten freigeschaltet)

Erwartungshorizont:

ZeichenfolgeZustandsfolgeErgebnis
/**/z0 · z1 · z2 · z3 · z4akzeptiert
/*x*/z0 · z1 · z2 · z2 · z3 · z4akzeptiert
/***/z0 · z1 · z2 · z3 · z3 · z4akzeptiert
/*/z0 · z1 · z2 · z2abgelehnt
/*x*/xz0 · z1 · z2 · z2 · z3 · z4 · zFabgelehnt
*/x/*z0 · zF · zF · zF · zF · zFabgelehnt

Akzeptiert: /**/, /*x*/, /***/ (3 P).

2c
Den Automaten implementieren
AFB II 5 Punkte

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.

Welchen Wert hat das Attribut zustand nach dem Aufruf akzeptiert("/*x*/x")? 2 P
Welche Aussagen über eine korrekte Implementierung treffen zu? (mehrere Antworten richtig) 3 P
Lösung anzeigen (nach Auswerten freigeschaltet)

Erwartungshorizont:

Java
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).

2d
Verschachtelte Kommentare
AFB III 3 Punkte

Eine Programmiersprache erlaubt verschachtelte Kommentare wie /* a /* b */ c */ in beliebiger Tiefe. Bewerten Sie den Vorschlag, auch dafür einen DEA zu bauen.

Welche Bewertung ist fachlich richtig? 3 P
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).

Aufgabe 3

Der Pfandautomat

18 Punkte

Ein 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.

s0 s1 s2 s3 F / ε F / ε F / ε F / Bon 1 € B / ε B / Bon 25 ct B / Bon 50 ct B / Bon 75 ct
3a
Bons ermitteln
AFB I 3 Punkte

Ermitteln Sie die Ausgaben für die Eingabe F F B F F F F B.

Anzahl der gedruckten Bons 1 P
Gesamtbetrag aller Bons in Cent 2 P
ct
Lösung anzeigen (nach Auswerten freigeschaltet)

Erwartungshorizont:

SchrittZustandEingabeAusgabeFolgezustand
1s0Fεs1
2s1Fεs2
3s2BBon 50 cts0
4s0Fεs1
5s1Fεs2
6s2Fεs3
7s3FBon 1 €s0
8s0Bεs0

Ausgabewort: Bon 50 ct, Bon 1 € → 2 Bons (1 P), zusammen 150 ct (2 P). Das letzte B in s0 gibt \(\varepsilon\) aus.

3b
Ausgabealphabet
AFB I 2 Punkte

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\).

3c
Ablaufprotokoll
AFB II 4 Punkte

Stellen Sie die Ausgaben für die Eingabe F F F F F B in einem Ablaufprotokoll dar.

Ausgabe in jedem Schritt 4 P
Lösung anzeigen (nach Auswerten freigeschaltet)

Erwartungshorizont:

SchrittZustandEingabeAusgabeFolgezustand
1s0Fεs1
2s1Fεs2
3s2Fεs3
4s3FBon 1 €s0
5s0Fεs1
6s1BBon 25 cts0

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).

3d
Mealy-Automat und DEA
AFB II 4 Punkte

Vergleichen Sie den Pfandautomaten mit einem DEA.

Welche Aussagen treffen zu? (mehrere Antworten richtig) 4 P
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).

3e
Beliebig viele Flaschen
AFB III 5 Punkte

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.

Welche Aussage trifft zu? 3 P
Wie viele Zustände braucht der Automat mindestens, wenn höchstens 20 Flaschen je Bon angenommen werden (bei der 20. Flasche wird der Bon automatisch gedruckt)? 2 P
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

Erreicht
0 / 50
Prozent
0 %
Notenpunkte
—
AufgabeThemaPunkte

Punkteverteilung

TeilaufgabeThemaAufgabeAFBPunkte
1aKennzeichen prüfenAufgabe 1AFB I3
1bVollständiger AutomatAufgabe 1AFB I2
1cBedeutung der ZuständeAufgabe 1AFB II4
1dLängere KreiskennungAufgabe 1AFB II3
1eGleich viele Buchstaben wie Ziffern?Aufgabe 1AFB III3
2aÜbergangstabelle vervollständigenAufgabe 2AFB II6
2bZeichenfolgen prüfenAufgabe 2AFB I3
2cDen Automaten implementierenAufgabe 2AFB II5
2dVerschachtelte KommentareAufgabe 2AFB III3
3aBons ermittelnAufgabe 3AFB I3
3bAusgabealphabetAufgabe 3AFB I2
3cAblaufprotokollAufgabe 3AFB II4
3dMealy-Automat und DEAAufgabe 3AFB II4
3eBeliebig viele FlaschenAufgabe 3AFB III5
Summe (AFB I: 13 P · AFB II: 26 P · AFB III: 11 P)50

Notenschema (Notenpunkte der Oberstufe)

PunkteNotenpunkteBeurteilung
48 – 50 P15sehr gut +
45 – 47 P14sehr gut
43 – 44 P13sehr gut −
40 – 42 P12gut +
38 – 39 P11gut
35 – 37 P10gut −
33 – 34 P9befriedigend +
30 – 32 P8befriedigend
28 – 29 P7befriedigend −
25 – 27 P6ausreichend +
23 – 24 P5ausreichend
20 – 22 P4ausreichend −
17 – 19 P3mangelhaft +
14 – 16 P2mangelhaft
10 – 13 P1mangelhaft −
0 – 9 P0ungenügend