s n h m r u
i

Übungen

Aufgabe 1 - PowerUps aufräumen

welt_vorher pfeil welt_nachher

Die Besatzung der Argo soll die auf dem Weg verstreuten PowerUps vor einem Asteroiden einsammeln und danach geordnet ablegen. Schreibe ein passendes Python-Programm, das Unterprogramme einsammeln() und ablegen(anzahl) verwendet. Die Funktion einsammeln() soll dabei alle PowerUps entfernen und deren Anzahl als Funktionswert zurückgeben.

Es sind mehrere Welten zum Testen hinterlegt.
Expertenfrage

Könnte man das Hauptprogramm auch einfach so schreiben?

ablegen(einsammeln())

Aufgabe 2 - Was passiert hier?

Im folgenden Fenster siehst du eine Ausgangssituation und mehrere Varianten eines Programms (durch Klick auf die kleinen Kreise unter dem Weltfenster)

Vergleiche die 4 Programmvarianten, indem du jeweils die folgenden 3 Aufgaben bearbeitest:

  • Analysiere den Quelltext und stelle Vermutungen auf, was bei der Ausführung passieren wird.
  • Führe das Programm mit unterschiedlichen Eingabewerten aus und überprüfe dabei deine Vermutungen.
  • Führe das Programm im Debug-Modus aus und beobachte dabei den Zustand der Variablen.

Aufgabe 3 - Hier wird es knapp!

welt_vorher pfeil welt_nachher

Die Argo fliegt häufiger an Asteroidenschwärmen vorbei. Das ist manchmal ganz schön knapp mit dem Abstand! Unten siehst du das Grundgerüst eines Programms, mit dem die Argo an Stellen, die nah an einem Asteroiden sind, PowerUps zur Warnung legt. Das ist der Fall, wenn der Abstand zum Asteroiden höchstens 2 ist. Vervollständige das Python-Programm.

Es sind mehrere Welten zum Testen hinterlegt.
Profiaufgabe

Die Argo soll jetzt nur an der engsten Stelle ein PowerUp legen, egal wie weit die Distanz ist. Falls mehrere Stellen gleich eng sind, dann soll es die erste dieser Stellen markieren.

Aufgabe 4 - Schon wieder aufräumen!

welt_vorher pfeil welt_nachher

Die Argo befindet sich zwischen zwei Kammern. Der Befehl der Einsatzzentrale lautet: Bitte in einer Kammer die PowerUps entfernen!

Die Besatzung möchte natürlich so wenig aufräumen wie möglich. Daher plant sie, zunächst durch beide Räume zu fliegen, und dann den Raum zu säubern, in dem weniger PowerUps sind. Die Kammergröße ist dabei immer gleich, nur die PowerUps können variieren. Es sind wieder mehrere Beispiele hinterlegt.

Schreibe ein Python-Programm zur Lösung des Problems. Dein Programm soll dabei eine Funktion verwenden, die die Anzahl der PowerUps in einer Kammer ermittelt und zurückgibt!

Profiaufgabe

Gib deiner Funktion, die die PowerUps in einer Kammer zählt, noch einen Parameter mit, der angibt, ob die PowerUps auch gelöscht werden sollen. Dann kannst du die Funktion nicht nur zum Zählen, sondern auch zum Reinigen der Kammer verwenden.

Aufgabe 5 - Neue Sensoren für Argo

welt_vorher pfeil welt_nachher

Die Argo kann abfragen, ob sich ein Asteroid links oder rechts von ihr befindet (rockRight() bzw. rockLeft()). Die Einsatzzentrale hätte auch gerne solche Abfragen für PowerUps. Im Quelltext unten sieht du dafür eine Lösung für powRight(). Dabei muss die Argo auf das Feld rechts neben sich gehen, sich dort merken, ob da ein PowerUp liegt und dann, nach dem zurückgehen, diesen Wert als Funktionsergebnis zurückliefern. Beachte dabei, dass als Variablenwerte nur die beiden Zustände wahr (True) und Falsch (False) möglich sind. Es handelt sich daher um eine sogenannte Bool'sche Variable.
Im Hauptprogramm wird dann der Funktionsaufruf von powRight() als Abbruchbedingung in der while-Schleife verwendet.

Teste das vorhandene Python-Programm und erweitere es anschließend, damit auch eine Funktion powLeft() zur Verfügung steht. Mit Hilfe dieser Funktion soll die Argo die abgebildete Aufgabe lösen und bis zum ersten PowerUp links fliegen.

Profiaufgabe

Denke dir noch andere Abfrage aus, die die Argo gut gebrauchen kann. Baue dir dann eine passende Welt, in der du deine neue Abfrage gut verwenden kannst.

Suche

v
6.1.6.5.3
inf-schule.de/imperative-programmierung/spacebug/vertiefungen/funktionen/uebung
inf-schule.de/6.1.6.5.3
inf-schule.de/@/page/JN9d57PJmV7DjJ9K

Rückmeldung geben