Zustände, Eingaben und Diagramme
Du wirfst eine Münze in den Getränkeautomaten deiner Schule und drückst den Knopf: Die Flasche fällt heraus. Aber was passiert, wenn du den Knopf drückst, ohne vorher eine Münze einzuwerfen? Der Automat „weiß“ offenbar, ob schon Geld drin ist. Wie schafft er das, und wie kannst du sein Verhalten aufschreiben?
Zustände, Eingaben, Ausgaben
Ein Automat in der Informatik ist ein Gerät (oder ein Modell davon), das auf Eingaben reagiert. Auch der Fahrkartenautomat im VRR oder VRS, der Pfandautomat im Supermarkt und der Getränkeautomat in der Schule sind solche Automaten. Dabei merkt er sich in seinem Zustand, was bisher passiert ist.
Das passt zum EVA-Prinzip (Eingabe – Verarbeitung – Ausgabe). Neu ist: Die Verarbeitung hängt vom aktuellen Zustand ab. Dieselbe Eingabe kann in verschiedenen Zuständen etwas ganz Verschiedenes bewirken.
Beispiel Getränkeautomat (Wasser, 1 €):
| Zustand | Eingabe | neuer Zustand | Ausgabe |
|---|---|---|---|
| bereit | Münze einwerfen | Münze eingeworfen | – |
| Münze eingeworfen | Knopf drücken | bereit | Flasche |
| bereit | Knopf drücken | bereit | nichts |
Ein Getränkeautomat in der Schule verkauft Wasser für 1 €. Er akzeptiert nur 1-€-Münzen. a) Nenne zwei Zustände, in denen sich der Automat befinden kann. b) Nenne zwei…
Ein Getränkeautomat in der Schule verkauft Wasser für 1 €. Er akzeptiert nur 1-€-Münzen.
- a) Nenne zwei Zustände, in denen sich der Automat befinden kann.
- b) Nenne zwei Eingaben, die ein Schüler machen kann.
- c) Nenne eine Ausgabe des Automaten.
Beschreibe als Tabelle (aktueller Zustand, Eingabe, neuer Zustand, Ausgabe) einen Pfandautomaten im Supermarkt mit den Zuständen „wartet“, „Flasche wird geprüft“ und…
Beschreibe als Tabelle (aktueller Zustand, Eingabe, neuer Zustand, Ausgabe) einen Pfandautomaten im Supermarkt mit den Zuständen „wartet“, „Flasche wird geprüft“ und „Bon wird gedruckt“. Berücksichtige die Eingaben „Flasche einlegen“, „Flasche passt“, „Flasche passt nicht“ und „Bon-Taste“.
Das Zustandsdiagramm
Tabellen sind genau, aber unübersichtlich. Ein Zustandsdiagramm zeigt alles auf einen Blick:
-
Jeder Zustand ist ein Kreis mit seinem Namen.
-
Jeder Übergang ist ein Pfeil von einem Zustand zum nächsten. Auf dem Pfeil steht die Eingabe (und, wenn nötig, die Ausgabe).
-
Ein Pfeil, der von „außen“ auf einen Zustand zeigt, markiert den Anfangszustand.
-
Bleibt der Automat im selben Zustand, zeichnest du eine Schleife (Pfeil von dem Zustand zu sich selbst).
Ein Zustandsdiagramm für eine vereinfachte Ampel hat die Zustände Rot, Grün und Gelb. Die Eingabe „Zeit abgelaufen“ führt von Rot zu Grün, von Grün zu Gelb und von Gelb…
Ein Zustandsdiagramm für eine vereinfachte Ampel hat die Zustände Rot, Grün und Gelb. Die Eingabe „Zeit abgelaufen“ führt von Rot zu Grün, von Grün zu Gelb und von Gelb zu Rot.
- a) Zeichne das Zustandsdiagramm als Kreise (Zustände) und Pfeile (Übergänge) und beschrifte die Pfeile.
- b) Der Anfangszustand ist Rot. In welchem Zustand ist die Ampel nach 4-mal „Zeit abgelaufen“?
Ein Automat in der Schulmensa hat die Zustände „bereit“ und „Münze eingeworfen“. Bei „Münze einwerfen“ wechselt er von „bereit“ zu „Münze eingeworfen“. Bei „Knopf…
Ein Automat in der Schulmensa hat die Zustände „bereit“ und „Münze eingeworfen“. Bei „Münze einwerfen“ wechselt er von „bereit“ zu „Münze eingeworfen“. Bei „Knopf drücken“ in diesem Zustand gibt er ein Getränk aus und wechselt zu „bereit“. Drückt man „Knopf drücken“ im Zustand „bereit“, passiert nichts.
Zeichne das Zustandsdiagramm mit allen beschriebenen Übergängen.
Automaten mit Gedächtnis: Geld und Zahlenfolgen
Ein Automat hat nur seine Zustände als Gedächtnis. Will er sich einen Geldbetrag oder eine Reihenfolge merken, braucht er dafür je einen eigenen Zustand.
Auch eine Reihenfolge merkt sich ein Automat Schritt für Schritt. Bei einem Zahlenschloss mit der Folge 4, 2, 7 gibt es die Zustände „Anfang“, „4 erkannt“, „4-2 erkannt“ und „offen“. Jede falsche Eingabe führt zurück zum Anfang.
Ein Fahrkartenautomat in Köln verkauft eine Kurzstreckenfahrt für 2 €. Er nimmt 1-€- und 2-€-Münzen an. Zustände: „0 €“, „1 €“, „fertig“ (2 € oder mehr wurden…
Ein Fahrkartenautomat in Köln verkauft eine Kurzstreckenfahrt für 2 €. Er nimmt 1-€- und 2-€-Münzen an. Zustände: „0 €“, „1 €“, „fertig“ (2 € oder mehr wurden eingeworfen, das Ticket wird gedruckt, danach Rückkehr zu „0 €“).
- a) Zeichne das Zustandsdiagramm mit den Eingaben „1 €“ und „2 €“.
- b) Der Automat startet im Zustand „0 €“. Gib den Zustandsverlauf bei der Eingabefolge 1 €, 1 €, 2 € an.
Eine Tür mit Zahlenschloss öffnet sich nur, wenn die Zahlen 4, 2, 7 in dieser Reihenfolge eingegeben werden. Bei jeder falschen Eingabe geht das Schloss zurück in den…
Eine Tür mit Zahlenschloss öffnet sich nur, wenn die Zahlen 4, 2, 7 in dieser Reihenfolge eingegeben werden. Bei jeder falschen Eingabe geht das Schloss zurück in den Anfangszustand.
- a) Wie viele Zustände braucht man mindestens (einschließlich „offen“)?
- b) Zeichne das Zustandsdiagramm.
- c) Was passiert bei der Eingabefolge 4, 2, 2, 7?
Vollständig, sinnvoll, benutzerfreundlich
Wenn du einen Automaten selbst entwirfst, gehe so vor:
-
Welche Eingaben gibt es?
-
Was muss sich der Automat merken? Daraus ergeben sich die Zustände.
-
Lege den Anfangszustand fest.
-
Für jeden Zustand und jede Eingabe: Wohin geht der Pfeil? Welche Ausgabe gibt es?
-
Teste mit mehreren Eingabefolgen, auch mit unsinnigen.
Ein Automat kann „richtig“ sein und trotzdem unpraktisch. Beim Snackautomaten ohne Wechselgeld verliert man bei einer zu hohen Einzahlung Geld. Das ist unfair, also wenig benutzerfreundlich. Ein zusätzlicher Zustand oder eine Rückgabe könnte das beheben.
Muster erkennen: Suchautomat
Ein Automat kann auch prüfen, ob eine Folge etwas Bestimmtes enthält. Beispiel: Kommt „AB“ vor? Zustände: „kein A“, „A gelesen“, „gefunden“. A führt zu „A gelesen“, dort bleibt A in „A gelesen“, B führt zu „gefunden“. In „kein A“ bleibt B in „kein A“. In „gefunden“ bleibt er immer. Der Automat „merkt“ sich nur, was in seinen Zuständen steckt: Wie viele Zeichen insgesamt kamen, weiß er nicht.
Ein Snackautomat verkauft Riegel für 1,50 €. Er akzeptiert 50-Cent- und 1-€-Münzen und gibt kein Wechselgeld. Wirft man mehr als 1,50 € ein, bleibt der Überschuss…
Ein Snackautomat verkauft Riegel für 1,50 €. Er akzeptiert 50-Cent- und 1-€-Münzen und gibt kein Wechselgeld. Wirft man mehr als 1,50 € ein, bleibt der Überschuss unberücksichtigt, nur 1,50 € zählen.
- a) Gib die Zustände nach Geldbetrag an (0 €, 0,50 €, 1 €, Ausgabe).
- b) Zeichne das Zustandsdiagramm.
- c) Bei welchen Eingabefolgen aus genau drei Münzen gibt der Automat den Riegel erst mit der dritten Münze aus? Gib alle an.
- d) Beurteile die Benutzerfreundlichkeit des Automaten ohne Wechselgeld.
Ein Fahrkartenautomat hat die Eingaben „Ziel wählen“, „Münze“ und „Abbrechen“. Er hat die Zustände „Start“, „Ziel gewählt“, „bezahlt“. „Abbrechen“ führt aus „Ziel…
Ein Fahrkartenautomat hat die Eingaben „Ziel wählen“, „Münze“ und „Abbrechen“. Er hat die Zustände „Start“, „Ziel gewählt“, „bezahlt“. „Abbrechen“ führt aus „Ziel gewählt“ zurück zu „Start“ und gibt Geld zurück. Eine „Münze“ im Zustand „Ziel gewählt“ führt zu „bezahlt“ (vereinfacht: Eine Münze reicht). Nach „bezahlt“ wird das Ticket gedruckt und der Automat geht zu „Start“.
- a) Zeichne das vollständige Diagramm. Entscheide selbst sinnvoll, was in den übrigen Fällen geschehen soll, und begründe.
- b) Wo könnte ein Fehler auftreten, wenn man einen Zustand vergisst? Gib ein Beispiel.
Ein Automat soll erkennen, ob eine Eingabefolge aus den Zeichen A und B die Folge „AB“ enthält. Er startet im Zustand „kein A“. Bei Eingabe A wechselt er zu „A gelesen“.…
Ein Automat soll erkennen, ob eine Eingabefolge aus den Zeichen A und B die Folge „AB“ enthält. Er startet im Zustand „kein A“. Bei Eingabe A wechselt er zu „A gelesen“. Von dort führt B zu „gefunden“, A bleibt in „A gelesen“. Von „gefunden“ aus bleibt er bei jeder Eingabe in „gefunden“.
- a) Ergänze die fehlenden Übergänge und zeichne das Diagramm.
- b) Prüfe für die Folgen BBA, AAB, BAB, ABA, ob der Automat im Zustand „gefunden“ endet.
- c) Erkläre, warum ein Automat sich nur „merkt“, was durch seine Zustände ausgedrückt wird.
Zurück zum Anfang: Der Schulautomat drückt keine Flasche heraus, wenn du keine Münze eingeworfen hast, weil er sich im Zustand „bereit“ befindet. Dort führt „Knopf drücken“ nur zu einer Schleife.
Auf einen Blick
-
Ein Automat reagiert auf Eingaben, wechselt seinen Zustand und erzeugt manchmal eine Ausgabe.
-
Der Zustand ist das „Gedächtnis“ des Automaten. Was er sich merken soll, braucht einen eigenen Zustand.
-
Im Zustandsdiagramm sind Zustände Kreise, Übergänge beschriftete Pfeile; der Anfangszustand hat einen Pfeil von außen, Schleifen bleiben im Zustand.
-
Als Tabelle schreibst du: aktueller Zustand, Eingabe, neuer Zustand, Ausgabe.
-
Ein guter Automat ist vollständig (für jeden Zustand und jede Eingabe ein Pfeil) und benutzerfreundlich.