Als je het toestandsdiagram eenmaal klaar hebt, dan is het maken van een programma dat kan worden uitgevoerd op bijvoorbeeld de Microbit, Arduino of Lego Mindstorms eenvoudig. We laten dat zien aan de hand van het volgende toestandsdiagram voor een systeem bestaande uit een lamp en een drukknop. Als de drukknop wordt ingedrukt (en weer losgelaten) gaat de lamp aan. Wordt de drukknop nogmaals ingedrukt (en weer losgelaten) gaat de lamp uit.
Om een toestandsdiagram om te zetten in een programma gebruik je ALS-DAN-constructies. De toestand sla je op in een variabele. Hieronder zie je een uitwerking in pseudo-code. Het bestaat uit twee delen:
Dit deel wordt één keer uitgevoerd. Hierin kun je bijvoorbeeld de starttoestand aangeven.
Alles wat hier staat wordt steeds weer opnieuw uitgevoerd, zolang het systeem aan is.
Alle toestanden krijgen een nummer:
1 - Lamp is uit
2 - Lamp is aan
EENMALIG BIJ OPSTARTEN:
toestand wordt 1
HERHAAL:
ALS (toestand is 1) DAN
ALS (de drukknop wordt ingedrukt) DAN
toestand wordt 2
zet lamp aan
ALS (toestand is 2) DAN
ALS (de drukknop wordt ingedrukt) DAN
toestand wordt 1
zet lamp uit
Zie je de relatie tussen het toestandsdiagram en de pseudo-code?
Er is ook een andere manier, waarbij je start vanuit de gebeurtenissen.
EENMALIG BIJ OPSTARTEN:
toestand wordt 1
zet lamp aan
HERHAAL:
ALS (de drukknop wordt ingedrukt) DAN
ALS (toestand is 1) DAN
toestand wordt 2
zet lamp aan
ANDERS ALS (toestand is gelijk aan 2) DAN
toestand wordt 1
zet lamp uit
Beide manieren zijn toegestaan. Het hangt van de situatie en het specifieke platform dat je gebruikt (Micro:bit, Arduino, Lego Mindstormd) af wat het makkelijkste is. Soms gebruik je een mix van beide aanpakken.