i

Strukturierung

Zielsetzung

In der Erkundung hast du ein konkretes Problem mit einem neuen Befehl gelöst. Jetzt geht es darum, die Details herauszuarbeiten, die hinter diesem Befehl stecken.

Strukturierung: Die Argo trifft Entscheidungen

Bisher kanntest du Bedingungen nur innerhalb von Schleifen: Die Anweisungssequenz im Schleifenrumpf wurde so lang durchlaufen, wie die Bedingung der Schleife erfüllt war. Häufig möchte man aber auch auf bestimmte Situationen reagieren und Aktionen nur dann durchführen, wenn eine bestimmte Bedingung (hier: ist vor der Argo ein Asteroid?) erfüllt ist. Dann braucht man Fallunterscheidungen.

Aufgabe 1: Fallunterscheidungen sind überall

Automatisierte Abläufe nehmen im täglichen Leben immer mehr Raum ein. Damit verbunden sind auch Fallunterscheidungen und Bedingungen. Führe diese Tabelle weiter fort:

Situation / Programm / Roboter Bedingung Verschiedene Aktionen
Staubsaug-Roboter Wand berührt? sauge weiter / drehe dich
Computerspiel Leben = 0 ? ...
Aufzugsteuerung ... ...
... ... ...

Aufgabe 2: Wenn... dann... SONST!

Häufig möchte man nicht nur ein Verhalten beschreiben, für den Fall das eine Bedingung gilt, sondern auch ein Verhalten definieren, wenn dies eben nicht der Fall ist. Im Alltag würden wir sagen Wenn... dann... sonst.... Dieses sonst beschreibt man in Python mit dem else-Befehl.

if onPow():		#WENN auf einem PowerUP
  removePow() 	#DANN hebe es auf
else:			#SONST lege eines
  putPow()

Du kannst das hier ausprobieren. Stelle vor der Ausführung in jedem Szenario zunächst Überlegungen an, wie sich die Argo verhalten wird.

Aufgabe 3: Fallunterscheidungen vertiefen

(a) Betrachte die folgende Struktur einer Fallunterscheidung. Es sind insgesamt drei Anweisungssequenzen eingetragen. Erkläre, unter welchen Umständen und wann welche dieser Anweisungssequenzen ausgeführt werden.

if [Bedingung]:
    [Anweisungssequenz 1]
else:
    [Anweisungssequenz 2]
[Anweisungssequenz 3]
Tipp

Es hilft ggf., sich hier ein konkretes einfaches Programm vorzustellen. Also: Unter welchen Umständen und wann werden in diesem Programm die einzelnen Befehle ausgeführt? Beschreibe das erst konkret, also bezogen auf die Argo und ein PowerUp, und dann allgemein mit Begriffen wie „Bedingung“.

if [Bedingung]:
    [Anweisungssequenz 1]
else:
    [Anweisungssequenz 2]
[Anweisungssequenz 3]
		
if onPow():
    removePow()
else:
    putPow()
move()
		

(b) Es gibt bei Fallunterscheidungen in PythonSpacebug einige Regeln im Quelltext zu beachten – sonst funktioniert das Programm nicht. Solche Regeln, die durch die Programmiersprache vorgegeben werden, nennt man Syntaxregeln. Welche Syntaxregeln für Fallunterscheidungen in PythonSpacebug findest du?

(c) Man unterscheidet zwischen zwei Typen von Fallunterscheidungen. Für beide ist der Aufbau unten beispielhaft dargestellt. Erkläre den Unterschied zwischen einer einseitigen Fallunterscheidung und einer zweiseitigen Fallunterscheidung so, dass man es versteht, wenn man direkt zuvor zum ersten Mal von Fallunterscheidungen gehört hat. Gib jeweils ein konkretes Beispiel (in Alltagssprache oder in PythonSpacebug) an.

Einseitige Fallunterscheidung:

if [Bedingung]:
    [Anweisungssequenz]

Zweiseitige Fallunterscheidung:

if [Bedingung]:
    [Anweisungssequenz]
else:
    [Anweisungssequenz]

Aufgabe 4: Neue Bedingungen bauen

Neben der Sensoren der Argo, hast du bereits Erfahrungen mit zweien der drei logischen Operatoren not, and und or gemacht, mit denen man neue und komplexere Bedingungen formulieren kann.

Beschreibe des Verhalten der Argo in den folgenden Szenarien möglichst präzise:

Aufgabe 5: Ein Wissensspeicher für Fallunterscheidungen, Wahrheitswerte und logische Operatoren

Halte das Gelernte im nachfolgenden Wissensspeicher fest.

Suche

v
6.1.3.1.2
inf-schule.de/imperative-programmierung/spacebug/fallunterscheidungen/lernstrecke/strukturierung
inf-schule.de/6.1.3.1.2
inf-schule.de/@/page/3FB3nzuj1OKSihiv

Rückmeldung geben