Einstieg - Kara lernt zählen
Das Problem: Kleeblätter zählen
Kara soll alle Kleeblätter auf dem Weg zu einem Baum einsammeln und sie vor dem Baum der Reihe nach auslegen.
Beispiel: Karawelt - vorher / nachher:
Die Schwierigkeit besteht hier darin, dass Kara die eingesammelten Kleeblätter zählen muss und sich die Anzahl merken muss, bevor sie/er die Kleeblätter wieder auslegen kann.
Ein Algorithmus zur Lösung des Problems
Zur Formulierung eines Algorithmus wird hier eine Variable zaehler
eingeführt.
setze zaehler auf 0 SOLANGE nicht vor einem Baum: einen Schritt weitergehen WENN auf einem Kleeblatt: erhöhe zaehler um 1 Kleeblatt aufheben ...
Aufgabe 1
(a) Welche Rolle spielt die Variable zaehler
hier?
(b) Wie könnte man den Algorithmus zur Lösung des Problems fortsetzen?
Ein Programm zur Lösung des Problems
Der Algorithmus wird jetzt in ein Programm übersetzt.
zaehler = 0 while not kara.treeFront(): kara.move() if kara.onLeaf(): zaehler = zaehler + 1 kara.removeLeaf() ...
Aufgabe 2
(a) Was bewirken die Anweisungen zaehler = 0
bzw. zaehler = zaehler + 1
?
(b) Versuche, das Programm fertigzustellen.
Aufgabe 3
Kara soll jetzt alle Blätter auf dem Weg zum Baum einsammeln und anschließend die doppelte Anzahl von Blättern vor dem Baum auslegen.
Wie kann man dieses Problem lösen? Kannst du auch verschiedene Algorithmen zur Lösung des Problems angeben?