Druckversion vom 18.05.2024 19:21 Uhr
Startseite Softwareprojekte Computerkunst Baumartige Strukturen Programmanalyse
Analyse der Prozedur Baum.zeigen
PROZEDUR Baum.zeigen (Stammlänge, Alter)
Grafikfenster.löschen
Stift.anheben
Stift.zurückbewegen (150)
Stift.absenken
Ast.zeigen (Stammlänge, Alter)
ENDE PROZEDUR Baum.zeigen
PROZEDUR 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 PROZEDUR Ast.zeigen
PROZEDUR RechteKnospe.erzeugen (Astlänge, Alter)
Stift.rechtsdrehen (45)
Ast.zeigen (Astlänge * 0.7, Alter - 1)
Stift.linksdrehen (45)
ENDE PROZEDUR RechteKnospe.erzeugen
PROZEDUR LinkeKnospe.erzeugen (Astlänge, Alter)
Stift.linksdrehen (45)
Ast.zeigen (Astlänge * 0.7, Alter - 1)
Stift.rechtsdrehen (45)
ENDE PROZEDUR LinkeKnospe.erzeugen
Du wunderst dich vielleicht, dass die Methode der rechten und linken Knospen erzeugen heißt und nicht, wie sonst meistens, zeigen. Wenn du den Algorithmus in deine Programmierumgebung ü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 Prozedur Ast.zeigen.
Aufgabe 17:
Übertrage das Programm zum Zeichnen eines Baumes in deine Programmierumgebung und teste es für die Stammlänge 100 und mit Altersangaben von 1 bis 7 aus.
Aufgabe 18:
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 18 zu lösen, stellst du fest, dass es keineswegs leicht ist, die Arbeitsweise des kurzen Programms zu erklären. Die Auswirkungen der vielen sich gegenseitig aufrufenden Prozeduren sind wahrlich schwer zu durchschauen.
Wir stellen dir jetzt eine mächtige Technik vor, die Wirkung von Prozeduren zu durchdringen, die sich gegenseitig aufrufen.