Bedingte Anweisungen


In vielen Situationen müssen Entscheidungen getroffen werden. Je nachdem ob eine bestimmte Situation eingetreten ist oder nicht muss man sich für die eine oder andere Alternative entscheiden (siehe rechts). Bedingte Entscheidung in Windows

Auch Robot Karol steht oft vor solchen Entscheidungen. Je nachdem welche Signale er von seinen Sensoren empfangen hat, muss er unterschiedlich reagieren. Betrachten wir zur Erläuterung folgendes Beispiel:

Vor dem Invertieren Nach dem Invertieren
vorher nachher

Karol soll zur gegenüberliegenden Wand laufen. Wenn auf seinem Weg dahin ein Ziegel liegt, soll er ihn aufheben. Wenn er jedoch ein leeres Feld vorfindet, soll er einen Ziegel ablegen.

Karol muss also abhängig von einer Bedingung (Liegt auf dem Feld vor mir ein Ziegel?) von zwei möglichen Sequenzen (Ziegel aufheben bzw. Ziegel hinlegen) eine auswählen, die er ausführen soll. Man nennt diese Situation eine bedingte Anweisung oder auch zweiseitige Entscheidung.

Struktogramm Anweisungstext
Struktogramm zweiseitige Entscheidung Anweisungstext zweiseitige Entscheidung

Wenn die Bedingung zutrifft (also "wahr" ist), wird die Sequenz 1 im dann-Teil ausgeführt. Sonst, d.h. wenn die Bedingung "falsch" ist, wird die Sequenz 2 im sonst-Teil ausgeführt.

Kehren wir nun zu unserem Beispiel zurück. Die bedingte Anweisung für das Invertieren eines Feldes lautet also folgendermaßen:

Struktogramm Anweisungstext
Struktogramm Invertieren Anweisungstext Invertieren
Aufgabe:

Ergänzen Sie nun den Rest des Programms. Karol soll von seinem Standpunkt aus bis zur gegenüberliegenden Wand laufen und dabei alle Felder nacheinander invertieren. Die vorgefertigte Welt für das Programm können Sie hier herunterladen.


Aufgaben

Übung 1: Eine Reihe auffüllen

Die Ausgangssituation für diese Aufgabe ist die gleiche wie in unserem Einführungsbeispiel. Karol steht wiederum vor einer lückenhaften Reihe von Ziegeln. Wieder soll er zur gegenüberliegenden Wand laufen. Diesmal soll er allerdings die Ziegelreihe nicht invertieren, sondern auffüllen. Dies bedeutet, dass die Ziegelreihe am Ende keine Lücken mehr beinhalten darf. Verwenden Sie für diese Aufgabe wiederum die gleiche vorgefertigte Welt wie in unserem Einführungsbeispiel.

Übung 2: Subtrahieren
Erstellen Sie ein Programm bei dem Karol von einem Stapel drei Felder rechts von ihm so viele Steine wegnimmt, wie auf einem Stapel vor ihm liegen (siehe Abbildung rechts). Eine vorgefertigte Welt für dieses Programm finden Sie hier. Wenn er nichts mehr subtrahieren kann (Minuend kleiner als Subtrahend), soll er die Steine auf ein Feld 4 Felder rechts von ihm ablegen (negatives Ergebnis!). Eine vorgefertigte Welt für dieses Programm finden Sie hier. Subtraktion
Übung 3: Raum auslegen
Ein Teil der Felder in Karols Raum ist mit einem Ziegel belegt (siehe Abbildung rechts). Eine vorgefertigte Welt finden Sie hier. Entwerfen Sie eine Anweisungsfolge, welche die noch freien Felder ebenfalls mit einem Ziegel belegt. Überlegen Sie sich zunächst eine Strategie wie Sie vorgehen wollen, um das Problem zu lösen. Raum auslegen
Übung 4: Wandern auf schmalen Pfaden

Achtung! Bei dieser Aufgabe handelt es sich um eine Aufgabe mit erhöhtem Schwierigkeitsgrad!

Karol läuft auf einer Kette von Ziegelsteinen von einem Ende zum anderen Ende, ohne die Steine aufzuheben. Er darf unterwegs die Ziegelsteinkette nicht verlassen. Achten Sie darauf, dass er wirklich von einem Ende der Kette bis zum anderen Ende läuft. Eine vorgefertigte Welt finden Sie hier.

Hinweis: Um zu verhindern, dass Karol wieder zurück läuft, wird ein besuchter Stein mit einer Marke belegt.

Übung 5: Leuchtschrift
Karol hat eine schöne, große Leuchtschrift gesehen, bei der die Buchstaben und der Hintergrund abwechselnd aufleuchten. Er will diese Leuchtschrift mit Markierungen nachbauen (siehe Abbildung rechts). Eine vorgefertigte Welt finden Sie hier. Leuchtschrift
  1. Schreiben Sie ein Programm, das, ähnlich wie in unserer Beispielaufgabe, den ganzen Raum mit Markierungen invertiert. Orientieren Sie sich an der Strategie des Programms "Raum auslegen".
  2. Vollenden Sie das Programm von Aufgabe a) in der Form, dass die Schrift insgesamt 10-mal invertiert wird.

zuletzt geändert am:
Eine Seite von Mirko Hans