Spezialfälle bedingter Anweisungen


Einseitige Auswahl

Beispiel: Viele Ziegel

Karol bekommt den Auftrag insgesamt einhundert Ziegel abzulegen. Da er nicht so hoch reicht, kann er sie nicht alle vor sich aufstapeln. Deshalb legt er sie hintereinander. Dabei muss er aufpassen, dass er nicht an eine Wand stößt. Außerdem soll Karoll am Anfang nicht vor einer Wand stehen.

Überlegen Sie, wie eine Lösung unseres Problems aussehen könnte!

Ein Lösungsvorschlag könnte folgendermaßen aussehen:

Struktogramm Anweisungstext
Struktogramm einseitige Entscheidung Anweisungstext einseitige Entscheidung

Auffällig im Vergleich zu den zweiseitigen Anweisungen ist, dass Karol nur dann auf die Überprüfung der Bedingung reagieren muss, wenn er tatsächlich vor einer Wand steht. Steht er hingegen nicht vor einer Wand, braucht er auch nicht zu reagieren und fährt ganz einfach mit der weiteren Ausführung des Programms fort. Diesen Spezialfall einer bedingten Anweisung nennt man eine einseitige Entscheidung. Der sonst-Teil der zweiseitigen Entscheidung wird nicht benötigt und im Programmtext einfach weggelassen.

Eine bedingte Anweisung heißt einseitig, wenn der sonst-Teil fehlt. Falls die Bedingung "falsch" ist, wird die Sequenz 1 im Programmablauf übergangen.

Struktogramm Anweisungstext
Struktogramm einseitige Entscheidung Anweisungstext einseitige Entscheidung
[Seitenanfang]

Aufgaben zur einseitigen Entscheidung

Übung 1: Reihe mit Löchern
Entwerfen Sie eine Folge von Anweisungen, mit der Karol von seiner momentanen Position ausgehend, eine Ziegelreihe zur gegenüberliegenden Wand legt. Dabei soll er nur auf jedes zweite Feld einen Ziegel ablegen (siehe Abbildung rechts). Testen Sie Ihre Lösung, wenn Karol eine geradzahlige Anzahl von Feldern bzw. eine ungeradzahlige Anzahl von Feldern vor der Wand steht! Reihe mit Löchern
[Seitenanfang]
Übung 2: Im Sumpf

Karol soll über Ziegelwege aus einem Sumpf herausfinden (siehe Abbildung rechts) . Damit er an den Abbiegungen und Abzweigungen weiß wie er gehen muss, hat ein Freund vorher den Weg erkundet. Wenn der Weg nach links führt, hat das Abzweigungsfeld bzw. die Kurve eine Markierung, sonst nicht. Erstelle ein Programm, das Karol wieder aus dem Sumpf führt. Eine vorgefertigte Welt finden Sie hier!

Hinweis: Achten Sie darauf, dass Karol richtig reagiert, wenn er das Ende des Weges erreicht hat und nicht wieder zurück in den Sumpf läuft!

Karol im Sumpf
[Seitenanfang]

Verschachtelte bedingte Anweisungen

Auswahlanweisungen lassen sich, ähnlich wie Wiederholungsanweisungen, schachteln.

Karol soll ein beliebiges Grundstück umrunden, das durch Ziegelsteine eingezäunt ist. Die Felder mit den Ziegelsteinen haben mindestens eine Seite gemeinsam (siehe Abbildung rechts). Dazu muss eine Strategie entwickelt werden, die Karol dazu bringt, bei einem beliebigen Grundstück immer am Zaun entlang zu laufen.

Aufgabe: Beschreiben Sie die verschiedenen Situationen, die auf Karols Weg um das Grundstück auftreten können! Überlegen Sie wie Karol in der jeweiligen Situation reagieren muss!

Hindernis umrunden

Karol muss unterwegs immer auf zwei Bedingungen achten:

  1. Befindet sich rechts ein Hindernis?
  2. Befindet sich vor ihm ein Hindernis?

Umgangssprachlich formuliert muss die Lösung für das Problem folgendermaßen lauten:

Das Struktogramm unserer Lösungsstrategie sieht folgendermaßen aus:

Struktogramm verschachtelte Anweisung

Man spricht hier von einer verschachtelten Anweisung, da sich die zweite bedingte Anweisung völlig in der Anweisungsfolge des dann-Teils der ersten bedingten Anweisung befindet. Natürlich wäre es auch denkbar, dass sie sich im sonst-Teil der ersten bedingten Anweisung befindet.

Damit Karol immer wieder um das Hindernis rennt, sollen die bedingten Anweisungen in eine Endlosschleife eingebettet werden (Anweisungstext siehe rechts). Anweisungstext Endlosschleife
Um zu prüfen, ob sich rechts von Karol ein Ziegel befindet, ist ein neues Prädikat IstRechtsZiegel notwendig. Den Anweisungstext dieses Prädikats sehen Sie rechts dargestellt. Prädikat IstRechtsZiegel

Aufgabe: Schreiben und testen Sie nun das Programm zur Umrundung des Hindernisses! Die vorgefertigte Welt finden Sie hier!

[Seitenanfang]
zuletzt geändert am:
Eine Seite von Mirko Hans