Fachkonzept
Die Argo scannt ihre Umgebung
Die Argo kann ihre Umgebung mit Sensoren wahrnehmen.
Ist vor mir ein Asteroid? | |
Ist links von mir ein Asteroid? | |
Ist rechts von mir ein Asteroid? | |
Fliege ich über einem PowerUp? |
Die folgende Tabelle zeigt die Operationen, die Argo zur Aktivierung der Sensoren ausführen kann.
Operation | Bedeutung |
---|---|
rockFront() | vor einem Asteroiden? |
rockLeft() | links ein Asteroid? |
rockRight() | rechts ein Asteroid? |
onPow() | auf einem PowerUp? |
Elementare Bedingungen werden durch den Aufruf einer solchen Operation erstellt.
Der Aufruf rockFront()
führt dazu, dass getestet wird, ob die Argo vor einem Asteroiden steht.
Das Ergebnis eines solchen Tests ist einer der beiden Wahrheitswerte True
oder False
,
mit dem angegeben wird, ob die Bedingung erfüllt ist oder nicht.
Fachkonzept – Bedingung
Die Steuerung komplexerer Abläufe (wie Fallunterscheidungen und Wiederholungen) erfolgt mit Hilfe von Bedingungen.
Die einfachsten Bedingungen, die mit Hilfe der Grundoperationen des Ausführsystems gebildet werden, nennt man auch elementare Bedingungen.
Aktionen wiederholt durchführen
Häufig kommt es vor, dass zur Steuerung der Argo Aktionen wiederholt ausgeführt werden müssen:
Sektor weiterfliegen rechts drehen SOLANGE kein Asteroid vor dir: Sektor weiterfliegen links drehen Sektor weiterfliegen PowerUp legen
Im vorliegenden Beispiel wird die Aktionen Sektor weiterfliegen
wiederholt ausgeführt.
Fachkonzept – Wiederholung
Eine Wiederholung dient dazu, wiederholte Abläufe zu beschreiben.
Wir betrachten hier Wiederholungen, die mit einer Eintrittsbedingung beschrieben werden.
Wiederholungen mit Eintrittsbedingung
Eine Wiederholung mit Eintrittsbedingung wird mit einer SOLANGE-Anweisung beschrieben, die aus einer Bedingung und einer (eventuell einelementigen) Anweisungssequenz besteht.
SOLANGE [Bedingung]: [Anweisungssequenz]
Das folgende Flussdiagramm zeigt, wie hier die Ausführung erfolgt.
Bei der Ausführung einer SOLANGE-Anweisung wird vor jedem Wiederholungsdurchgang überprüft, ob die Bedingung erfüllt ist. Ist das der Fall, so werden die Anweisungen der Anweisungssequenz ausgeführt und der nächste Wiederholungsdurchgang kann beginnen. Andernfalls wird die Ausführung der Wiederholungsanweisung beendet. Das Flussdiagramm verdeutlicht sehr gut die Schleife, die wiederholt durchlaufen werden kann.
Ist die Bedingung gleich zu Beginn nicht erfüllt, so wird die Schleife überhaupt nicht durchlaufen. Die Wiederholungsanweisung bewirkt dann gar nichts.
Ist die Bedingung vor jedem Schleifendurchlauf erfüllt, so wird die Schleife (theoretisch) unendlich oft durchlaufen. Man spricht dann auch von einer Endlosschleife. In der Praxis muss man in einem solchen Fall die Ausführung abbrechen.
Implementierung in Python
In der Programmiersprache Python wird eine Wiederholung mit einer SOLANGE-Anweisung wie folgt dargestellt:
while [Bedingung]:
[Anweisungssequenz]
Eingeleitet wird sie mit dem Schlüsselwort while
. Wichtig ist der Doppelpunkt nach der
Bedingung. Die zu wiederholenden Anweisungen müssen dann um eine feste Anzahl von Leerzeichen
(in der Regel sind es 2 oder 4 Einheiten) eingerückt werden. Das könnte beispielsweise so aussehen:
move()
turnRight()
while not rockFront():
move()
turnLeft()
move()
putPow()