Rekursion

Eine Funktion heißt rekursiv wenn sie sich in ihrem im Quelltext selbst aufruft.

Ein Beispiel

Eine Pythonfunktion soll ein Quadrat, beginnend in der linken oberen Ecke in einer zufälligen Farbe zeichnen. Nun sollen in das Quadrat hinein jeweils Quadrate in einer zufälligen Farbe gezeichnet werden, bis kein Platz mehr ist.

from turtle import * import random farben = ["red", "green", "blue", "yellow", "orange", "purple", "pink", "brown", "gray", "gold", "cyan", "magenta", "violet", "indigo", "lime", "navy", "skyblue", "turquoise", "olive", "maroon"] def quadrat(n): pencolor(random.choice(farben)) pensize(5) for i in range(4): fd(n) right(90) if (n-10) > 0: penup() fd(5) right(90) fd(5) left(90) pendown() # Die Funktion quadrat(n) ruft sich selbst auf! quadrat(n-10) quadrat(100)

Aufgabe 1

Versuche den Quelltext zu verstehen bzw. lasse ihn dir erklären. Teste das Programm!

Aufgabe 2

Schreibe entsprechende Programme für ein Dreieck, ein Sechseck und ein Achteck!

Aufgabe 3

Schreibe ein entsprechendes Programm für beliebige n-Ecke!

Mit Rekursion kann man sehr effizient programmieren, allerdings ist der Quelltext auch manchmal schwer zu verstehen. Außerdem benötigen rekursiver Programme mehr Hauptspeicher. Rekursion wird vor allem bei der funktionalen Programmierung verwendet.

Aufgabe 4

Informiere dich unter https://de.wikipedia.org/wiki/Selbst%C3%A4hnlichkeit über Selbstähnlichkeit!

Aufgabe 5

Mit Hilfe von Rekursion lassen sich mit dem Python-Turtle-Modul sehr gut selbstähnliche Figuren zeichnen. Arbeite dazu in der Datei

www.static.tu.berlin/fileadmin/www/40000182/Files/Python/Rekursion.pdf

den Abschnitt „Es schneit“ durch und setze die Programme um!