i

Beispiel - Simulation einer Ampel

Ampelzyklus

Bei einer Ampel werden zyklisch immer wieder die folgenden Ampelzustände durchlaufen.

Ampelzyklus

Ziel ist es, ein Programm zu entwickeln, mit dem man das Verhalten einer Ampel simulieren kann.

Ablaufmodell

Zur Simulation einer Ampel wurde das folgende Ablaufmodell erstellt. Hier gibt der Benutzer die Anzahl der Ampeltakte vor. In jedem Ampeltakt soll die Ampel in den nächsten Ampelzustand gehen. Nach dem Durchlaufen aller Takte soll abschließend der erreichte Ampelzustand ausgegeben werden.

Struktogramm

Aufgabe 1

Welche Ausgabe soll das dargestellte Verfahren erzeugen, wenn der Benutzer die Zahl 2 (bzw. 4 bzw. 27) eingibt?

Implementierung

Hier eine Implementierung zum gezeigten Struktogramm:

Wenn man das Programm ausführt, dann ergeben sich merkwürdige Ergebnisse:

>>> 
Anzahl der Takte: 5
an-aus-aus

Aufgabe 2

Teste selbst das Programm mit verschiedenen Eingabewerten. Stimmen die Ergebnisse immer mit deinen Erwartungen überein?

Fehlersuche

Das Programm liefert bei jeder Eingabe dieselbe Ausgabe. Irgend etwas stimmt hier nicht. Python liefert erst einmal keine Hinweise, wo sich der Fehler befinden könnte.

In solchen Fällen hat es sich bewährt, in das Programm zusätzliche Ausgabeanweisungen einzubauen, so dass man die Werte der Variablen während der Verarbeitungsschritte mitverfolgen kann.

Aufgabe 3

Analysiere mit Hilfe der Ausgaben den tatsächlichen Ablauf. Dann sollte dir auch klar werden, was hier die fehlerhaften Ausgaben verursacht. Korrigiere den Fehler und teste das Programm erneut.

Aufgabe 4

Wenn das Programm nicht zu umfangreich ist, ist es günstig, das Programm Schritt für Schritt abzuarbeiten. Mit dem Python Tutor lässt sich das leicht realisieren.

Das Schritt-Für-Schritt-Durchlaufen eines Programms lässt sich auch in Entwicklungsumgebungen mit einem Debugger realisieren.

Thonny-Debugger

Recherchiere selbst, wie das in der Entwicklungsumgebung Thonny geht.

Suche

v
6.3.2.9.1
dev.inf-schule.de/imperative-programmierung/python/konzepte/fehlersuche/beispiel_ampelsimulation
dev.inf-schule.de/6.3.2.9.1
dev.inf-schule.de/@/page/3MwiXSsP07xKONFo

Rückmeldung geben