4.6.2 Rekursion
Eine Funktion kann sich auch selbst aufrufen. Das nennt man Rekursion.
Ausgabe:
5
4
3
2
1
Fertig!
Das funktioniert deshalb, weil sich die Funktion so lange selbst aufruft, bis n == 0
gilt. Dann endet sie. Aber Achtung: Wenn man nicht für einen Abbruch sorgt, läuft das unendlich weiter und das führt am Ende zu einem Fehler. Hier nochmal zum Verständnis die Zeilen die nacheinander im Programm ausgeführt werden. Daran kann man den Ablauf dann verstehen.
runterZaehlen(5)
→ n == 0 → False
→ print(5)
→ runterZaehlen(4)
→ n == 0 → False
→ print(4)
→ runterZaehlen(3)
→ n == 0 → False
→ print(3)
→ runterZaehlen(2)
→ n == 0 → False
→ print(2)
→ runterZaehlen(1)
→ n == 0 → False
→ print(1)
→ runterZaehlen(0)
→ n == 0 → True
→ print('Fertig!')
Rekursion auf dem Pi Pico
Nehmen Sie den Pi Pico mit dem OLED-Display und erstellen Sie ein Programm (gerne auch mit Hilfe einer KI) das Rekursion verwendet. Da kann man Rahmen zeichnen, die rekursiv immer kleiner werden oder Tannenbäume mit immer kleiner werdenden Ästen. Probieren Sie es einfach mal aus.
Rekursion versus Rückkopplung
Rekursion und Rückkopplung haben auf den ersten Blick Ähnlichkeiten, sind aber grundlegend verschieden:
Begriff | Rekursion | Rückkopplung (z. B. Mikrofon & Lautsprecher) |
---|---|---|
Ursprung | Programmierung | Akustik / Technik |
Ablauf | Eine Funktion ruft sich selbst wiederholt auf | Ein Signal wird wiederholt durch Mikrofon und Lautsprecher |
Steuerung | Gesteuert durch Abbruchbedingung (if , return ) |
Unkontrolliert oder schwer steuerbar |
Ziel | Problem schrittweise lösen | Nicht beabsichtigter Effekt |
Veränderung | Mit jedem Schritt ändern sich die Daten (z. B. n-1 ) |
Dasselbe Signal wird erneut aufgenommen und verstärkt |
Beispiel | runterZaehlen(n-1) |
Pfeifen beim Mikrofon vor Lautsprecher |
Eine Rückkopplung kann als analoge Metapher für Rekursion dienen – besonders zur Veranschaulichung von Wiederholung –, ist aber keine echte rekursive Struktur.