Zustände, Eingaben und Diagramme
Du stehst am Getränkeautomaten in der Schule und wirfst eine 1-€-Münze ein. Der Automat „weiß“ jetzt, dass bezahlt wurde, und gibt erst nach dem Knopfdruck das Wasser aus. Woher weiß er das? Und wie kann man genau beschreiben, was ein Automat tut? Das klärst du auf dieser Seite.
Zustände, Eingaben und Ausgaben
Ein Automat ist ein Informatiksystem, das auf Eingaben reagiert. Du kennst viele aus dem Alltag: Getränkeautomat, Pfandautomat, Fahrkartenautomat, Ampel, Zahlenschloss.
Jeder Automat hat drei wichtige Bestandteile:
Das ist das EVA-Prinzip (Eingabe – Verarbeitung – Ausgabe) mit einer Besonderheit: Was der Automat tut, hängt von der Eingabe und vom aktuellen Zustand ab.
Beispiel Getränkeautomat (Wasser für 1 €):
| Was | Beispiele |
|---|---|
| Zustände | „bereit“, „bezahlt“ |
| Eingaben | „1-€-Münze einwerfen“, „Knopf drücken“ |
| Ausgaben | „Flasche ausgeben“, „nichts“ |
Ein Übergang entsteht immer so: aktueller Zustand + Eingabe → neuer Zustand (und manchmal eine Ausgabe).
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.
Das Zustandsdiagramm
Ein Zustandsdiagramm zeichnet man mit Kreisen und Pfeilen:
-
Jeder Kreis ist ein Zustand (mit Namen).
-
Jeder Pfeil ist ein Übergang. Auf dem Pfeil steht die Eingabe (und, wenn nötig, die Ausgabe nach einem Schrägstrich).
-
Ein Pfeil von außen zeigt auf den Anfangszustand.
Lies das Diagramm so: Im Zustand „bereit“ führt „1-€-Münze“ zum Zustand „bezahlt“. Im Zustand „bezahlt“ führt „Knopf“ zurück zu „bereit“, und der Automat gibt eine Flasche aus.
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.
Eingabefolgen und Tabellen
Oft will man wissen, was passiert, wenn mehrere Eingaben nacheinander kommen. Dazu verfolgst du den Zustandsverlauf Schritt für Schritt, ähnlich wie bei einer Tabelle zur Ausführung eines Algorithmus.
Ein Fahrkartenautomat kostet 2 € und nimmt 1-€- und 2-€-Münzen. Zustände: „0 €“, „1 €“, „fertig“.
Für größere Automaten ist eine Tabelle übersichtlicher als ein Diagramm. Beispiel (Ausschnitt Getränkeautomat):
| aktueller Zustand | Eingabe | neuer Zustand | Ausgabe |
|---|---|---|---|
| bereit | Münze einwerfen | bezahlt | – |
| bereit | Knopf drücken | bereit | – |
| bezahlt | Knopf drücken | bereit | Flasche |
| bezahlt | Münze einwerfen | bezahlt | – |
Jede Zeile ist ein Pfeil im Diagramm. Wenn du alle Kombinationen aus Zustand und Eingabe aufgeführt hast, ist der Automat vollständig beschrieben.
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.
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“.
Automaten entwerfen
Wie entwirft man einen Automaten für eine Aufgabe? So gehst du vor:
-
Überlege, was sich der Automat merken muss (Geldbetrag? Wie weit die Zahlenfolge schon stimmt?). Jede wichtige Situation ist ein Zustand.
-
Lege den Anfangszustand fest.
-
Notiere die möglichen Eingaben.
-
Zeichne für jeden Zustand und jede Eingabe einen Übergang. Denke auch an Fehlerfälle und Schleifen.
-
Teste mit Eingabefolgen (auch mit Grenzfällen).
Manche Automaten haben keine Ausgabe, sondern nur eine Aufgabe: etwas erkennen. Dann gibt es einen Zustand wie „gefunden“, der anzeigt, dass die Eingabefolge passt. Ein Automat kann sich nur das merken, was durch seine Zustände ausgedrückt wird. Er kann nicht „mitzählen“, wenn dafür Zustände fehlen.
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?
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.
Auf einen Blick
-
Ein Automat reagiert auf Eingaben; was er tut, hängt auch vom Zustand ab.
-
Der Zustand ist sein „Gedächtnis“: Er merkt sich, was bisher passiert ist.
-
Im Zustandsdiagramm sind Zustände Kreise und Übergänge Pfeile mit Eingabe (und Ausgabe); ein Pfeil von außen markiert den Anfangszustand.
-
Aus jedem Zustand muss für jede Eingabe ein Übergang festgelegt sein (auch Schleifen).
-
Eine Tabelle (Zustand, Eingabe, neuer Zustand, Ausgabe) beschreibt dasselbe wie das Diagramm.
-
Vorgehen beim Entwurf: Zustände überlegen, Anfangszustand, Eingaben, Übergänge, Testen.
Zurück zum Anfang: Der Getränkeautomat „weiß“, dass du bezahlt hast, weil er im Zustand „bezahlt“ ist.