i

Parameter

Unterprogramme mit einem Parameter

In der folgenden Aufgabe wird das Konzept von Parametern eingeführt. Sie ermöglichen, dass man vorher festgelegte/bestimmte Variablen nutzt, um Unterprogramme flexibler einzusetzen.

Aufgabe: Ein Unterprogramm mit einem Parameter

Wir analysieren das folgende kurze Programm:

# Unterprogramm
def walk(distance):
    i = 0
    while i < distance:
        kara.move()
        i = i+1

# Hauptprogramm
kara.putLeaf()
walk(3)
kara.putLeaf()
kara.turnRight()
kara.turnRight()
walk(3)

(a) Verschaffe dir einen Überblick, indem du das Programm einmal ausprobierst. Stelle dafür Kara irgendwo in die Landschaft und beobachte, was passiert, wenn das Programm abläuft.

(b) Beschreibe möglichst präzise, was das Unterprogramm walk(...) leistet. Welche Rolle spielt dabei die Variable distance? Was passiert, wenn man nicht walk(3), sondern walk(5) etc. schreibt? Schaue dir danach die nachfolgende Erklärung an.

Bei dieser Variable handelt es sich um einen Parameter. In Python ist es möglich, dass ein Unterprogramm einen Parameter nutzt:

  • Im Unterprogrammaufruf wird dann nicht nur das Unterprogramm aufgerufen (z.B. turnAround()), sondern auch ein Parameter dem Unterprogramm „übergeben“: walk(3) oder walk(5). Ist kein Parameter vorgesehen, bleibt die Klammer leer; das erklärt auch, warum wir move() etc. mit den Klammern schreiben müssen.
  • In der Unterprogrammdeklaration wird festgelegt, was der Parameter eigentlich tun soll: Hier beeinflusst er, wie lange die Schleife in den Zeilen 4 bis 6 ausgeführt wird.

(c) Erkläre, wozu die Zeile 6 hier nötig ist. Was würde passieren, wenn man sie weglassen würde?

(d) Lasse das Unterprogramm unverändert. Passe das Hauptprogramm so an, dass Kara ein Quadrat der Seitenlänge 5 abläuft und die Eckpunkte mit Blättern markiert. Nutze dafür das Unterprogramm.

(e) Passe das Unterprogramm so an, dass Kara nach jedem Schritt ein Kleeblatt ablegt. Ändere auch den Namen des Unterprogramms, z.B. in walkAndPut(...).

(f) Optional: Deklariere nun auch ein Unterprogramm quadrat(seitenlaenge), das dazu führt, dass Kara ein Quadrat mit der Seitenlänge seitenlaenge läuft und die Kanten mit Kleeblättern markiert. Wenn du möchtest, kannst du auch Unterprogramme für andere geometrische Formen erstellen.

Suche

v
6.1.8.7.1.1
dev.inf-schule.de/imperative-programmierung/kara/variablen/vertiefung/lernstrecke/parameter
dev.inf-schule.de/6.1.8.7.1.1
dev.inf-schule.de/@/page/ddaSADXVy79bp1V6

Rückmeldung geben