Rekursion ist neben der Iteration das mächtigste Werkzeug der Programmierung. Jedes denkbare Programm kann lediglich durch Zuweisungen, Verzweigungen und Rekursionen (oder Iterationen oder Sprünge) programmiert werden. Bevor wir uns der Rekursion zuwenden, betrachten wir selbstähnliche Figuren: Fraktale.
Ein Fraktal ist eine (geometrische) Figur, die aus einem Teil besteht, der zu der gesamten Figur ähnlich ist. Eine solche Figur muss zwangsweise unendlich sein, wir können sie nur annähern. Ein einfaches Beispiel ist das Sierpinsky-Dreieck.
Führt man dieses Verfahren endlos fort, so entsteht als Grenzfigur das so genannte Sierpinsky-Dreieck. Dabei ist jedes Teildreieck zum gesamten Dreieck ähnlich.
Das erste gezeichnete Dreieck nennt man Initiator. Er beschreibt das „initiale“ (erste) Objekt. Die Bildungsregeln 2 und 3 heißen Generator. Sie geben an, wie neue Dreiecke „generiert“ werden. Das folgende Arbeitsblatt begleitet die Umsetzung eines Programms zur Erstellung von Sierpinsky-Dreiecken.
In jedem Formular in Delphi ist ein (ganzzahliges) Koordinatensystem eingebettet. Der Ursprung ist der Punkt links oben. Die x-Achse verläuft, wie üblich, von links nach rechts. Die y-Achse dagegen wächst von oben nach unten. Jedem Punkt auf dem Formular ist daher ein Paar ganzzahlig positiver Koordinaten zugeordnet. Die Einheit, in der die Koordinatenwerte angegeben sind, ist die Anzahl der Pixel, die der Punkt in waagerechter oder senkrechter Entfernung vom Ursprung liegt.
Die Fläche, auf der wir zeichnen, heißt Canvas (Leinwand) und ist ein Attribut des Formulars. Um den (unsichtbaren) Zeichencursor (ohne zu zeichnen) an eine bestimmte Position zu bringen, können wir die Operation MoveTo verwenden.
Beispiel: Form1.canvas.MoveTo(23, 117);
Der Befehl bewegt den Zeichencursor an den Punkt (23|117).
Die Operation LineTo zeichnet eine Strecke vom aktuellen Punkt des Zeichencursors zu den Zielkoordinaten. Beispiel: Form1.canvas.LineTo(47,11);
Der Befehl zeichnet eine Linie von der aktuellen Position P zum Punkt (47|11).
type TPoint = record x : integer; y : integer;end;
Da Fraktale jeweils nur geometrische Grenzwerte darstellen, können wir sie nur durch endlich viele Schritte annähern. Ein Schritt bedeutet, dass der Generator einmal ausgeführt wird. Unser Ziel ist nun, ein Programm zu schreiben, welches das Sierpinsky-Dreieck durch eine vom Benutzer eingegebene Zahl von Schritten annähert.
Die Koordinaten des Mittelpunktes M sind die Koordinaten des (gerundeten) arithmetischen Mittels der Koordinaten der Punkte A und B.
M.x=(A.x+B.x)/2
M.y=(A.y+B.y)/2.
Sie nutzen einen Browser mit dem tutory.de nicht einwandfrei funktioniert. Bitte aktualisieren Sie Ihren Browser.
Sie verwenden eine ältere Version Ihres Browsers. Es ist möglich, dass tutory.de mit dieser Version nicht einwandfrei funktioniert. Um tutory.de optimal nutzen zu können, aktualisieren Sie bitte Ihren Browser oder installieren Sie einen dieser kostenlosen Browser: