Aufgabe Kaffee- und Teeautomat

  • Kann Kaffee und Tee kochen
  • man kann 50ct und 1€ einwerfen
    • 50ct Tee
    • 1€ Kaffee
  • Rückgabetaste
    • gibt Geld zurück
  • gibt evtl. Rückgeld

Eingaben:

  • 50ct Einwurf : 0,5€
  • 1€ Einwurf : 1€
  • Rückgabe : R
  • Kaffee : K
  • Tee : T

Ausgaben:

  • 50ct
  • 1€
  • Kaffee
  • Tee
stateDiagram-v2
    direction LR

    warten : Grundzustand
    coffeeReady : Kaffee ausgewählt
    teaReady : Tee ausgewählt
    deliverCoffee : Kaffee ausgeben
    deliverTea : Tee ausgeben

    [*] --> warten
    warten--> warten : R,50ct,1€
    warten --> coffeeReady : K

    coffeeReady --> teaReady : T
    coffeeReady --> coffeeReady : K
    coffeeReady --> warten : R/1€
    coffeeReady --> deliverCoffee : 1€
    coffeeReady --> deliverTea : 50ct

    warten --> teaReady : T
    teaReady --> warten : R/50ct
    teaReady --> coffeeReady : K
    teaReady --> teaReady : T
    teaReady --> deliverTea : 50ct
    teaReady --> deliverCoffee : 1€

    deliverCoffee --> warten : R,50ct,1€
    deliverCoffee --> coffeeReady : K
    deliverCoffee --> teaReady : T
    
    deliverTea --> teaReady : T
    deliverTea --> coffeeReady : K
    deliverTea --> warten : R,50ct,1€

Modellierung als Mealy Automat

Eingabealphabet:

  • K
  • T
  • R
  • 1€
  • 50ct

Ausgabealphabet:

  • K_out
  • T_out
  • 50ct_out
  • 1€_out
stateDiagram-v2
    direction LR

    warten : Grundzustand
    coffeeReady : Kaffee ausgewählt
    teaReady : Tee ausgewählt
    deliverCoffee : Kaffee ausgeben
    deliverTea : Tee ausgeben

    [*] --> warten