Beide WAS Proceduren zeichnen ein Object. WAS1 zeichnet eine Spirale die sich linksherum dreht. WAS2 hingegen zeichnet eine Kochkurve. Beide Proceduren haben einen Algorythmus und eine Eingangsbedingung. Die Spieziellen Beschreibungen der Proceduren sind links neben dem dazugehörigen Quellcode zu finden.
Das Programm WAS1 zeichnet eine Spierale auf die Zeichenfläche, die sich variabel weit zeichnen läßt. Dies kontrolliert man mit den Variablen a und b. Die Procedure zeichnet eine Linie mit der Länge a, danach wird der Stift um 10 Grad nach links gedreht. Eine weitere wichtige Komponente in dieser Procedure ist die Eingangsbedingung in Zeile 3. Diese Zeile verhindert, dass die Procedure in das Unendliche weiter läuft. Aus diesen wird die Spirale zusammengebaut in dem man die Procedure beliebig oft wiederholt. Wenn man aber die Werte nicht verändern würde nach jedem Durchlauf, würde es einen Kreis ergeben, um daraus eine Spiral zu formen, verkürzt man die Variable a um einen Beliebigen Wert b. |
1 procedure TForm1.was1 (a,b: Real); 2 begin 3 if a > 0 then begin 4 draw(a); 5 winkel := winkel + 10; 6 was1 (a - b , b) 7 end 8 end; |
Zeichnung |
Das Programm WAS2 zeichnet einen einnzelne Lineie auf die Zeichenfläche, die die gesamte Breite der Figur, die sich nach weiteren durchlaufen der Procedure erweitert wird, darstellen. Wie groß diese Figur wird liegt auch hier an den Variablen a und b. Die Procedure zeichnet eine Linie mit der Länge a, danach wird der jeweils der Stift um 90 Grad nach links oder nach rechts gedreht (s. Zeichnung). Eine weitere wichtige Komponente in dieser Procedure ist die Eingangsbedingung in Zeile 3. Diese Zeile verhindert, dass die Procedure in das Unendliche weiter läuft. |
01 procedure TForm1.was2 (a,b: Real); 02 begin 03 if a > b then begin 04 was2(a /3,b); 05 winkel := winkel + 90; 06 was2(a /3,b); 07 winkel := winkel - 90; 08 was2(a /3,b); 09 winkel := winkel - 90; 10 was2(a /3,b); 11 winkel := winkel + 90; 12 was2(a /3,b); 13 end 14 else draw(a) 15 end; |
Zeichnung |
Um die Übersicht bei umpfangreichen Algorytmen zu behalten ist es sinnvoll eine Wertetabelle zu erstellen.
|
![]() |
|
![]() |
|
![]() |
Zur
nächsten Seite ![]() |
© 2000 LK 12 If und G. Kubitz | Hannah-Arendt-Gymnasium, Lengerich |