Übungen

Aufgabe 1: Einen Algorithmus in Struktogrammform beschreiben (einfach)

Kara soll einmal um einen Baum laufen. Beachte, dass Kara danach in derselben Position am Baum steht.

Kara und seine Welt - vorher Kara und seine Welt - vorher

Die Idee zu einem Algorithmus könnte wie folgt in Worten beschrieben werden:

Zuerst die Ausgangsposition mit einem Kleeblatt markieren und einen Schritt weitergehen. Solange man sich nicht auf einem Kleeblatt befindet, einen weiteren Schritt "um den Baum herum" gehen. Abschließend das Kleeblatt wieder entfernen.

Entwickle einen hierzu passenden Algorithmus in Struktogrammform und übersetze ihn in ein Python-Programm.

Aufgabe 2: Einen Algorithmus in Struktogrammform beschreiben (schwierig)

Kara merkt sich die Uhrzeit mit einem Pilz, der schrittweise um einen Baum geschoben wird. Kara soll hier den Pilz - egal, wo er sich zunächst befindet - um einen Schritt weiterverschieben.

Kara und seine Welt - vorher Kara und seine Welt - vorher

(a) Entwickle einen Algorithmus in Struktogrammform und übersetze ihn in ein Python-Programm.

(b) (noch schwieriger) Kara soll auch wieder zurück zur Ausgangsposition laufen.

Aufgabe 3: Fehler suchen

Kara soll die Kleeblätter, die als Rechteck ausgelegt sind, alle einsammeln.

Kara-Welt vorher Kara-Welt nachher

T. hat das folgende Programm zur Lösung des Problems entwickelt.

while kara.onLeaf():
    kara.removeleaf()
kara.move()
kara.turnRight()
while kara.onLeaf():
    kara.removeleaf()
kara.move()
kara.turnRight()
while kara.onLeaf():
    kara.removeleaf()
kara.move()
kara.turnRight()
while kara.onLeaf():
    kara.removeleaf()
kara.move()
kara.turnRight()

(a) Teste erst einmal das Programm. Es erscheint direkt eine Fehlermeldung. Welchen syntaktischen Fehler hat T. gemacht?

(b) Korrigiere den Fehler und teste erneut das Programm. Es leistet noch nicht das Gewünschte. Irgend etwas stimmt mit den Einrückungen noch nicht. Kannst du diesen Fehler auch noch beheben?

(c) Wenn du den Einrückfehler verbessert hast, dann leistet das Programm immer noch nicht das Gewünschte. Der Algorithmus, der dem Programm zu Grunde liegt, ist noch nicht in Ordnung. Kannst du das auch noch korrigieren?

(d) Wenn du ein korrekt arbeitendes Programm hast, dann stelle den zu Grunde liegenden Algorithmus in Struktogrammform dar.

Aufgabe 4: Ein schwieriges Problem lösen

Kara soll Bäume mit Kleeblättern auslegen.

Zu Beginn befindet sich Kara unten im Baumstamm. Kara soll anschließend ein mit Bäumen umrandetes Gebiet (das die Form eines Baumes hat) mit Kleeblättern auslegen. Wir gehen dabei davon aus, dass alle Felder direkt vom Baumstamm aus erreichbar sind.

Kara und seine Welt - vorher Kara und seine Welt - vorher

Kara und seine Welt - vorher Kara und seine Welt - vorher

Entwickle zunächst eine Lösungsidee. Beschreibe sie in Worten.

Formuliere anschließend einen Algorithmus.

Entwickle und teste dann erst ein zum Algorithmus passendes Programm.

X

Fehler melden

X

Suche