×
produktlogotitle

Seite: bdb_index
Diese Seite wurde aktualisiert am 15.02.2021

LOGIN
Benutzer:
Passwort:
 
   if1.net-schulbuch.de

 

 

Rekursion - Einführung

 

Wir erzeugen einen Kunstbaum

 

In der Kunstausstellung entdecken Frau Dr. Kleiber und Frau Weiser Bilder von Bäumen, Far­nen und Blättern, die sehr natürlich wirken. Dennoch sind sie von einem Compu­terprogramm erzeugt worden. Frau Weiser betrachtet das Bild eines wenig natürlichen Kunstbaumes ganz genau, um das Konstruktionsprinzip zu erkennen.

 

 

 

 

 

 

             

        

 

 

Frau Weiser beschreibt das Wachsen des Kunstbaumes so:

 


„Im ersten Jahr haben wir einen Ast.
Im zweiten Jahr denken wir uns am Ende des alten Astes zwei Knospen,
aus denen zwei neue, kürzere Äste sprießen.
An den Enden der neuen Äste bil­den sich im nächsten Jahr wieder je zwei Knospen,
aus denen neue, noch kürzere Äste sprie­ßen.
Den letzten Satz kann ich nun Jahr für Jahr erneut aufsagen“.

Frau Dr. Kleiber ist so begeistert von den Erklärungen, dass sie sie fast wörtlich in ein Pro­gramm übersetzt. Und wirklich, das Programm erzeugt so einen Kunstbaum im Grafik­fen­ster.

 

Analyse der Funktion Baum.zeigen

 

FUNKTION Baum.zeigen (Stammlänge, Alter)

  Grafikfenster.löschen

  Stift.anheben

  Stift.zurückbewegen (150)

  Stift.absenken

  Ast.zeigen (Stammlänge, Alter)

ENDE FUNKTION Baum.zeigen

 

FUNKTION Ast.zeigen (Astlänge, Alter)

  WENN Alter = 0 DANN ABBRUCH

    SONST

       Stift.vorbewegen (Astlänge)

       LinkeKnospe.erzeugen (Astlänge, Alter)

       RechteKnospe.erzeugen (Astlänge, Alter)

       Stift.zurückbewegen (Astlänge)

  ENDE WENN

ENDE FUNKTION Ast.zeigen

 

FUNKTION RechteKnospe.erzeugen (Astlänge, Alter)

   Stift.rechtsdrehen (45)

   Ast.zeigen (Astlänge * 0.7, Alter - 1)

   Stift.linksdrehen (45)

ENDE FUNKTION RechteKnospe.erzeugen

 

FUNKTION LinkeKnospe.erzeugen (Astlänge, Alter)

   Stift.linksdrehen (45)

   Ast.zeigen (Astlänge * 0.7, Alter - 1)

   Stift.rechtsdrehen (45)

ENDE FUNKTION LinkeKnospe.erzeugen

Du wunderst dich vielleicht, dass die Funktion der rechten und linken Knospen erzeugen heißt  und nicht, wie sonst meistens, zeigen. Wenn du den Algorithmus in deine Program­mierumgebung übertragen hast und ihn ausführen lässt, siehst du, dass die Algorithmen RechteKnospe.zeigen und LinkeKnospe.zeigen selbst keine Veränderung im Grafikfenster hinterlassen. Die Veränderungen stammen von der aufgerufenen Funktion Ast.zeigen.

 

 

Aufgabe 1  

Übertrage das Programm zum Zeichnen eines Baumes in deine Programmierum­ge­bung und teste es für die Stammlänge 100 und mit Altersangaben von 1 bis 7 aus.

 

Aufgabe 2 

Versuche mit eigenen Worten zu erklären, wie dieses kurze Programm arbeitet und wie dabei ein Baum entsteht. Erkläre dazu die Verarbeitung der Aufrufe:
Baum.zeigen(100,1) Baum.zeigen(100,2) Baum.zeigen(100,3)

 

Bei deinem Versuch, Aufgabe 2 zu lösen, stellst du fest, dass es keines­wegs leicht ist, die Arbeitsweise des kurzen Programms zu erklären. Die Auswirkungen der vielen sich gegenseitig aufrufenden Funktionen sind wahrlich schwer zu durchschauen.

 

Wir stellen dir jetzt eine mächtige Technik vor, die Wirkung von Funktionen zu durchdrin­gen, die sich gegenseitig aufrufen.

 

 

 

 

Impressum
© 2023  Net-Schulbuch.de (i123)
10.00  0.1649  8.1.29