i

Erkundung – Kara trifft Entscheidungen

Zielsetzung

Auf dieser Seite bearbeitest du ein Problem, das sich von den bisherigen unterscheidet. Du wirst erkennen, dass du zur Lösung einen neuen Befehl benötigst, und erste Erfahrungen mit diesem Befehl machen.

Das Problem: Ein Kleeblatt suchen

Kara steht vor ihrem/seinem Bau und möchte das Kleeblatt, das sich irgendwo im Bau befindet, nach draußen befördern.

Kara sammelt ein Blatt ein

Kara soll hier im Vorfeld nicht wissen, wo sich das Kleeblatt befindet. Kara muss also in den Bau hineingehen und je nach vorgefundener Situation entscheiden, wie es weitergehen soll. Hierzu muss Kara in der Lage sein zu überprüfen, ob sie/er sich auf einem Kleeblatt befindet.

Aufgabe 1: Anweisungssequenzen kommen an ihr Ende

Erkläre kurz, warum du dieses Problem nicht nur mithilfe von Anweisungssequenzen lösen kannst.

Aufgabe 2: Ein Lösungsverfahren entwickeln

Hier ist ein Lösungsverfahren mit Fallunterscheidungen vorskizziert:

Schritt weitergehen
WENN auf einem Kleeblatt:
    Kleeblatt aufheben
    rechts drehen
    rechts drehen
    Schritt weitergehen
SONST:
    Schritt weitergehen
    WENN auf einem Kleeblatt:
        ...
    SONST:
        ...
Kleeblatt hinlegen

Überlege dir, wie es weitergehen könnte. Ergänze hierzu die fehlenden Teile. Achte auf die Einrückungen, um die verschiedenen Fälle deutlich zu unterscheiden.

Aufgabe 3: Ein Lösungsverfahren in Python formulieren

Das Lösungsverfahren soll jetzt in der zur Steuerung von Kara verwendeten Programmiersprache (Python) formuliert werden. Ergänze den folgenden Quelltext und teste, ob das Programm das Gewünschte leistet. Beachte, dass du alle drei Fälle testen musst. Achte auch hier besonders auf korrekte Einrückungen.

kara.move()
if kara.onLeaf():
    kara.removeLeaf()
    ...
else:
    kara.move()
    if kara.onLeaf():
        kara.removeLeaf()
        ...
    else:
        kara.move()
        ...
kara.putLeaf()

Aufgabe 4: Ein Lösungsverfahren überprüfen

Leistet das folgende Lösungsverfahren auch das Gewünschte? Überprüfe das zunächst, indem du es selbst (z.B. auf dem Papier) durchspielst. Übersetze das Lösungsverfahren anschließend in die Programmiersprache Python und teste das entsprechende Python-Programm.

Schritt weitergehen
WENN auf einem Kleeblatt:
    Kleeblatt aufheben
    rechts drehen
    rechts drehen
SONST:
    Schritt weitergehen
    WENN auf einem Kleeblatt:
        Kleeblatt aufheben
        rechts drehen
        rechts drehen
    SONST:
        Schritt weitergehen
        Kleeblatt aufheben
        rechts drehen
        rechts drehen
        Schritt weitergehen
    Schritt weitergehen
Schritt weitergehen
Kleeblatt hinlegen

Suche

v
6.1.2.1
dev.inf-schule.de/imperative-programmierung/kara/fallunterscheidungen/erkundung_entscheidungen
dev.inf-schule.de/6.1.2.1
dev.inf-schule.de/@/page/vUyjRHMtMDoYIHUP

Rückmeldung geben