s n h m r u
i

Übungen - Kunstautomat - Python

Endliche Automaten steuern Geräte

In vielen modernen Verkaufsautomaten befindet sich ein kleiner Computer, der den Verkaufsautomaten steuert. Natürlich haben diese Computer keine Tastatur, keine Maus und oft auch keinen Bildschirm. Man kann kann jedoch mit Hilfe von Tasten mit ihnen interagieren.

Bei der Programmierung eines endlichen Automaten kann man sich an einem endlichen Automaten orientieren. Deshalb untersuchen wir auf dieser Seite, wie man einen endlichen Automaten in Python programmieren kann. Wir verwenden dazu folgenden endlichen Automaten:

Im Simulator wird das Verhalten des endlichen Automaten mit Hilfe eines Zustandsdiagrammes beschrieben. Mann kann das Verhalten eines endlichen Automaten auch beschreiben, indem man die Überführungsfunktion und die Ausgabefunktion angibt.

Aufgabe 1: Überführungsfunktion

  1. Die folgende Tabelle stellt (unvollständig!) die Überführungsfunktion des untenstehenden endlichen Automaten dar. Gib mindestens 3 weitere Zeilen der Tabelle an.
Zustand Eingabe Folgezustand
0 1€ 1
... ... ...
  1. Implementiere die Überführungsfunktion des endlichen Automaten in Python. Beginne mit dem folgenden Code:
def ueberfuehrungsfunktion(aktuellerZustand, eingabe):
    if aktuellerZustand == "0" and eingabe == "1€":
        folgezustand = "1"
    
    if aktuellerZustand == "0" and eingabe == "Ware":
        folgezustand = "0"

    # ...

    return folgezustand
  1. Teste deine Überführungsfunktion in einem Python-Dialog:
    >>> ueberfuehrungsfunktion("0", "1€")
    '1'
    >>> ueberfuehrungsfunktion("0", "Geld")
    '0'
    >>> ueberfuehrungsfunktion("1", "1€")
    '2'
    >>> ueberfuehrungsfunktion("2", "Ware")
    '0'
    ...

Aufgabe 2: Ausgabefunktion

  1. Die folgende Tabelle stellt (unvollständig!) die Ausgabefunktion des untenstehenden endlichen Automaten dar. Gib mindestens 3 weitere Zeilen der Tabelle an.
Zustand Eingabe Ausgabe
0 1€ nichts
... ... ...
  1. Implementiere die Ausgabefunktion des endlichen Automaten in Python. Beginne mit dem folgenden Code:
def ausgabefunktion(aktuellerZustand, eingabe):
    if aktuellerZustand == "0" and eingabe == "1€":
        ausgabe = "nichts"
    
    if aktuellerZustand == "0" and eingabe == "Ware":
        ausgabe = "nichts"
    
    # ...

    return ausgabe
  1. Teste deine Ausgabefunktion in einem Python-Dialog:
    >>> ausgabefunktion("0", "1€")
    'nichts'
    >>> ausgabefunktion("0", "Geld")
    'nichts'
    >>> ausgabefunktion("2", "1€")
    '1€'
    >>> ausgabefunktion("2", "Ware")
    'Ware'
    ...

Aufgabe 3

In der Datei Kunstautomat.py befindet sich eine in Python geschriebene Simulation eines Kunstaufomaten. In dieser Datei fehlen jedoch die Überführungsfunktion und die Ausgabefunktion. Öffne die Datei und kopieren deine Funktionen aus Aufgabe 1 und Aufgabe 2 in die Datei. Führe die Datei aus und teste die Simulation.

Suche

v
4.1.1.2.7
dev.inf-schule.de/automaten-sprachen/zustandsmodellierung/zustandsbasiertemodellierung_simulator/Uebungen/Kunstautomat_Python
dev.inf-schule.de/4.1.1.2.7
dev.inf-schule.de/@/page/M6faD5OSt2iAGgFX

Rückmeldung geben