PMG/Kurs 11/Rekursion I

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Pascal</language>
== <font color=darkgreen size=4>''Quadratpflanze''</font> ==




Die Bilder zeigen die Entstehung einer Quadratpflanze.<br>
Bei jedem neuen Aufruf beträgt die Seitenlänge jeweils nur noch ein Drittel der vorherigen.<br>
Weitere Informationen unter [http://www.inf-schule.de/index.php?version=0&seite=informatik/rekursion/rekursionzahlen/uebungen].

[[Bild:Thomas_Pflanze.JPG]]

* Finde in der "Quadratpflanze" die einfachere in der komplizierteren wieder.
** Formuliere also die "grundlegenden Gedanken" für das Zeichnen der Pflanze.
** Nach welcher Rekursionsvorschrift werden "Quadratpflanzen" erzeugt?
* Zeichne den nächsten (vierten) Schritt in der Entwicklung.
* Analog zum Baum soll eine "Quadratpflanze" mit der Turtle gezeichnet werden.<br>

<code id="4fdb9d4a7bd5d">
procedure pflanze(l:real;n:integer);
begin
if n>1 then begin
            turtle_forward(l);
            turtle_left(90);
            pflanze(l/3,n-1);
            turtle_right(90);
            pflanze(l/3,n-1);
            turtle_right(90);
            pflanze(l/3,n-1);  
            turtle_left(90);
            turtle_forward(l);
            end
        else begin
             turtle_forward(l);
             end;
end;
</code>

<run id="4fdb9d4a7bde5">
selectCanvas(1);
canvas_clear(); // Zeichenfläche löschen
turtle_move(300,300); //Turtle in Mitte
turtle_right(90);
pflanze(200,3);
</run>

<canvas w=800 h=400></canvas>

== <font color=darkgreen size=4>''Fraktale''</font> ==

Mit selbstähnlichen Figuren bzw. Objekten beschäftigt sich heute ein ganzes Teilgebiet der Mathematik, die ''fraktale Geometrie''. Ihre Untersuchungsergebnisse reichen in die Funktions- und Berechnbarkeitstheorie hinein und haben einen wesentlichen Einfluss auf die ''Chaosforschung'' komplexer dynamischer Systeme.<br />

[[Bild:Mandelbrot1.png|miniatur|Die vielleicht berühmteste fraktale Struktur: Das Apfelmännchen]]

Der Begriff '''Fraktal''' (lat. fractus "gebrochen") geht auf den französisch-US-amerikanischen Mathematiker '''Benoît Mandelbrot''' (* 20. November 1924; † 14. Oktober 2010) zurück. Mit ihm werden natürliche oder künstliche Gebilde bzw. geometrische Muster bezeichnet, die einen hohen Grad an Selbstähnlichkeiten aufweisen.

Klassische selbstähnliche oder fraktale Figuren sind das Sierpinski-Dreieck und die Koch-Schneeflocke:

<blockquote>[[Bild:Sierpinski_Koch1.GIF]]</blockquote>

 Beschreibe beide ''Fraktale'' verbal und versuche sie, mit der Turtle-Grafik zu implementieren.

'''Hinweis:''' Zur Implementation fraktaler Figuren stehen Dir die [[PMG/Kurs_11/Rekursion_I/Turtle_Sprachelemente|Sprachelemente der Turtle-Grafik]] zur Verfügung.


== <font color=darkgreen size=4>''Sierpinski-Dreieck''</font> ==


Diese selbstähnliche Figur ist nach dem polnischen Mathematiker '''Wacław Franciszek Sierpiński''' (* 14. März 1882; † 21. Oktober 1969) benannt. Die nachfolgende Abbildung zeigt die Konstruktion dieses Dreiecks: (interessantes zur Anwendung auch unter [http://en.wikipedia.org/wiki/Sierpinski_triangle])

<blockquote>[[Bild: Sierpinski1.GIF]]</blockquote>

<code id="4fdb5352a9f13">
procedure Sierpinski(l: real; t: Integer); 
begin 
if t > 1 then begin 
sierpinski(l/2, t-1);
turtle_forward(l/2);
sierpinski(l/2, t-1);
turtle_left(60);
turtle_backward(l/2);
turtle_right(60);
sierpinski(l/2, t-1);
turtle_right(60);
turtle_backward(l/2);
turtle_left(60);
end
else
begin
turtle_forward(l);
turtle_right(120);
turtle_forward(l); 
turtle_right(120);
turtle_forward(l);
turtle_right(120);
end;
end;
</code>

<run id="4fdb5352a9fd4">
selectCanvas(2);
canvas_clear(); // Zeichenfläche löschen
turtle_move(300,350);
sierpinski(300,1);
</run>

<canvas w=800 h=400></canvas>

== <font color=darkgreen size=4>''Koch-Schneeflocke''</font> ==


Der schwedische Mathematiker '''Helge von Koch''' (* 25. Januar 1870; † 11. März 1924) stellte im Jahr 1904 einen stetigen Graphen vor, der an keiner Stelle differenzierbar ist.
Die sogenannte Koch-Schneeflocke setzt sich aus drei dieser Koch-Kurven zusammen, die auf den Seiten eines gleichseitigen Dreiecks angeordnet sind:

<blockquote>[[Bild: Kochkurve1.GIF]]</blockquote>


 analog zu obigem Beispiel selbstständig implementieren

<code id="4fdb5352a9f6c">

</code>

<run id="4fdb5352aa040">
selectCanvas(3);
canvas_clear(); // Zeichenfläche löschen
turtle_move(300,350);
</run>

<canvas w=800 h=400></canvas>