3. Die bedingte Wiederholung

Bei der Wiederholung mit fester Anzahl ist genau festgelegt, wie oft eine Sequenz wiederholt wird. Oft ist es aber hilfreich, Karol Anweisung wiederholen zu lassen, bis eine bestimmte Situation oder Bedingung eingetreten ist. Dafür gibt es in der Sprache von Karol die Bedingte Wiederholung.
Ein Beispiel:
Robot Karol soll von seiner momentanen Marken bis zur Wand legen. Dies soll er unabhängig von der Größe seiner Welt tun. Mit einer festen Anzahl von Wiederholungen kommst du hier nicht weiter. Das Beispielprogramm zeigt dir, wie man das Problem lösen kann.

vorher nachher Programm
Hier siehst du das zugehörige Struktogramm:

Wenn Karol nicht vor einer Wand steht, markiert er die Stelle, auf der er steht und geht einen Schritt weiter. Anschließend überprüft er wieder, ob er vor einer Wand steht und wiederholt die Anweisungen. Dies tut er solange, bis er die Wand erreicht. Das Programm, das unter *wiederhole folgt, wird dann fortgesetzt.
Es gibt verschieden Bedingungen, die du beim Programmieren mit Robot Karol verwenden kannst. Hier findest du die wichtigsten Bedingungen in der Übersicht:
vordefinierte Bedingung ist erfüllt, wenn
istWand Karol vor der Begrenzung seiner Welt steht
nichtIstWand Karol nicht vor einer Begrenzung seiner Welt steht
IstZiegel vor Karol ein Ziegelstein liegt
NichtIstZiegel vor Karol kein Ziegelstein liegt
IstMarke Karol auf einer gelben Marke steht
NichtIstMarke Karol nicht auf einer gelben Marke steht.

Los geht's mit den Aufgaben.

Aufgabe 1: Ziegelwand

Robot Karol soll neben sich eine vier Stein hohe Ziegelwand bis zum gegenüberliegenden Ende seiner Welt bauen. Auch hier gilt wieder, dass die Welt beliebig groß sein kann. Schreibe ein Programm und zeichne das zugehörige Struktogramm in dein Heft.

vorher nachher

Aufgabe 2: Schwimmbad bis Ende der Welt

Karol will ein Schwimmbad bauen, das von der Fläche genauso groß ist wie die Welt und dessen Mauern fünf Ziegel hoch sind. Schreibe dein Programm in dein Heft.

vorher nachher nachher bei größerer Welt

Aufgabe 3: Position merken

Karol soll eine ungewöhnliche Aufgabe erfüllen: er soll bis zur nächsten Wand gehen, dort eine Marke setzen, umdrehen, zur gegenüberliegenden Wand laufen, Marke setzen, und schließlich genau zu der Stelle zurückkehren, an der er gestartet ist, natürlich unabhängig davon, wo und in welche Richtung er gestartet ist! (Betrachte dieses Problem als Vorübung für schwierigere!) Schau dir den Hinweis unten an !

vorher nachher
Damit Karol seine Ausgangsposition merken kann, muss er an dieser Stelle zu Beginn eine Marke legen. Später kann er diese wieder suchen.

Aufgabe 4: Treppe bauen

Jetzt eine knifflige Aufgabe für dich: Karol soll von seiner Position aus eine aufsteigende Treppe bis zum Rand seiner Welt bauen. Das Programm soll natürliche wieder für jede beliebige Welt funktionieren.

vorher nachher

Du hast keine Idee?

Hier findest du einen ersten Tipp:

Hier findest du einen ersten Tipp:

Karol legt ein Reihe Steine bis zur Wand, läuft zurück, legt auf den zweiten Stein der Reihe eine weitere Steinreihe, läuft wieder zurück usw. Bei jeder Steinreihe muss sich Karol merken, wie weit er später wieder zurücklaufen muss. Dabei hilft ihm eine Marke.


Aufgabe 5: Alles gelb

Robot Karol soll den gesamten Boden seiner Welt mit Marken bedecken. Dein Programm soll für jede beliebige Größe einer Welt funktionieren. Robot Karol steht aber zu Beginn immer im hinteren linken Eck seiner Welt und blickt nach unten (Süden).

vorher nachher

Aufgabe 6: Aufräumen

In der Spalte, in die Robot Karol blickt liegen Steine, zum Teil sogar mehrere übereinander. Robot Karol hat die Aufgabe alle Steine aufzuheben. Du kannst davon ausgehen, dass Karol zunächst mit dem Rücken zur Wand am Rand der Welt steht und nur die Steine vor ihm aufzuheben sind.

vorher nachher


Du hast keine Idee, wie ein mögliches Programm ausschauen könnte. Hier ein

erster Tipp:

erster Tipp:

Karol an jeder Stelle, an der sich befindet alle Steine aufheben und anschließend einen Schritt gehen. Dies wiederholt sich bis er vor der Wand steht. Schreibe also zunächst ein Programm, das dafür sorgt, dass Karol alle Steine vor sich aufhebt.\\


Du brauchst noch eine Hilfestellung. Also gut, hier ein

weiterer Tipp:

weiterer Tipp:

Die Lösung besteht darin, dass man zwei bedingte Wiederholungen ineinander schachtelt. Die äußere bedingte Wiederholung sorgt dafür, dass Karol bis zur Wand läuft. Innerhalb dieser Schleife muss Karol immer alle vorhandenen Stein aufheben (innere bedingte Wiederholung) und anschließen einen Schritt gehen.
Hier siehst du das fast vollständige Struktogramm. Du musst nur noch die Punkte ergänzen und dies in ein Programm umsetzen.


Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information
Drucken/exportieren