i

Übungen – Entscheidungen

Aufgabe 1: Zweiseitige und einseitige Fallunterscheidung

In dieser Aufgabe übst du den Umgang mit Flussdiagrammen und du vertiefst dem Unterschied zwischen ein- und zweiseitigen Fallunterscheidungen.

Gegeben sind zwei Mini-Programme. Erkläre mit Hilfe von Flussdiagrammen, dass beide Programme dasselbe leisten.

Programm 1:

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

Programm 2:

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

Aufgabe 2: Ein kurzes Programm mit einer Fallunterscheidung

In dieser einfachen Aufgabe schreibst du ein kleines Programm mit einer Fallunterscheidung.

Kara invertiert ein Kleeblatt Schreibe ein Programm, das Folgendes leistet: Kara soll ein Kleeblatt „invertieren“, das bedeutet: Wenn Kara auf einem Kleeblatt steht, dann hebt sie/er dieses auf. Steht Kara nicht auf einem Blatt, so liegt sie/er ein Blatt auf den Boden. Den Ablauf des Programms siehst du rechts veranschaulicht.

Aufgabe 3: Ein Problem mit Fallunterscheidungen lösen

In dieser Aufgabe löst du ein etwas schwierigeres Problem mit Fallunterscheidungen.

(a) Kara weiß nicht, ob und wie viele Kleeblätter sich in ihrem/seinem Bau befinden. Kara möchte sie alle einsammeln.

Kara sammelt Blätter ein

Beschreibe zunächst deine Lösung in eigenen Worten. Übersetze sie dann in die Python-Sprache und teste sie.

(b) Kara möchte den Bau mit Kleeblättern auslegen. Es können sich aber schon Kleeblätter in einigen Feldern des Baus befinden.

Kara legt den Bau mit Blättern aus

Beschreibe zunächst deine Lösung in eigenen Worten. Übersetze sie dann in die Python-Sprache und teste sie.

Aufgabe 4: Fehlende Sensoren?

In dieser Aufgabe denkst du etwas genauer über die vorhandenen Sensoren von Kara nach.

Betrachte den folgenden Quelltext:

if kara.treeBehind():
    kara.move()

(a) Beschreibe: Was soll dieses Programm leisten? Was wollten die Programmierer:innen erreichen?

(b) Begründe, dass dieses Programm so aber nicht funktioniert. Welche „Fähigkeit“ fehlt Kara dafür?

(c) Ist die fehlende „Fähigkeit“ aus Teil (b) ein Problem bei der Programmierung von Kara? Argumentiere.

Aufgabe 5: Ein verwehtes Blatt

In dieser Aufgabe vollziehst du den Ablauf eines Programms in einem Flussdiagramm und im Programmcode nach.

Kara bringt ein verwehtes Blatt zurück Karas Bau ist schön mit Kleeblättern ausgelegt, aber ein Blatt ist vom Wind herausgeweht worden. Es gibt also genau ein Feld, auf dem kein Blatt liegt; auf allen anderen liegen Blätter. Kara will das beheben; der Ablauf wird in der Grafik verdeutlicht.

(a) Überlege dir erst kurz, wie du ein Programm aus der Erkundung abändern musst, um das Problem zu lösen. Du musst diese Abänderung nicht durchführen, sondern sollst es dir nur selbst klarmachen.

Programm: Verwehtes Blatt

Flussdiagramm: Verwehtes Blatt

(b) Nun sollst du für jeden der drei möglichen Ausgangszustände den Programmablauf ohne Computer nachvollziehen. Wiederhole dafür für die drei Zustände:

  • Gehe das Flussdiagramm von oben nach unten durch und überlege dir, welche Anweisungen ausgeführt werden und warum. Wenn möglich, zeichne den „Weg durch das Diagramm“ ein.
  • Gehe parallel das Programm durch und begründe dabei an allen Fallunterscheidungen, welche Zeile warum als nächstes ausgeführt wird. Notiere dir für die drei Fälle, welche Zeilen in welcher Reihenfolge ausgeführt werden.
Du kannst dafür dieses Arbeitsblatt verwenden: Markiere den „Weg durch das Flussdiagramm“ in drei Farben und trage in die Tabelle unten in denselben Farben die Programmzeilen ein, die in der jeweiligen Situation ausgeführt werden.

Suche

v
6.1.2.6
inf-schule.de/imperative-programmierung/kara/fallunterscheidungen/uebungen
inf-schule.de/6.1.2.6

Rückmeldung geben