Huelsse/Profil Nawi/Java/Java-Turtle - Prozeduren - mit Parametern

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Java</language>
'''Java-Turtle - Prozeduren - prozedurale Methoden mit Parametern'''
----

{|
 |-
 | Beim Zeichnen dieser '''sechs''' Dreiecke kann das Zeichnen eines einzelnen Dreiecks als Teilprogramm erstellt werden, mit unterschiedlichen Seitenlänge kann die Figur größen mäßig verändert werden. Dabei wird beim Aufruf des Teilprogramms der Parameter für die Seitenlänge als akuteller Wert übergeben (dreieck(50)). Die prozedurale Methode übernimmt den aktuellen Parameter (50) anstelle der vordefinierten Werte - formalen Parameter (dreieck(int s)):
  <BR> '''void dreieck(int s)'''<BR>{<BR> for (int i = 1;  i < 4; i++ )<BR>  {<BR>   turtle.forward('''s''');<BR>    turtle.right(120);<BR>  } <BR>}<BR><BR>canvas.clear();<BR>turtle.home();<BR>turtle.penDown();<BR> for (int i = 1;  i < 7; i++ ) <BR> {<BR>  '''dreieck(50);'''<BR>   turtle.right(60);<BR> }<BR> for (int i = 1;  i < 7; i++ ) <BR> {<BR>  '''dreieck(100);'''<BR>   turtle.right(60);<BR> }
 || [[Bild:Koehler_Turtle8_Dreiecksblume.jpg]]  
 |}

Eine prozedurale Methode (Prozedur) ist in der Programmierung eine Folge von Anweisungen, die es erlaubt, bestimmte Aufgaben in wiederverwendbarer Art zu formulieren:

* Java:
* void dreieck(int s)                           -  Teilprogramm dreieck() mit formalem Parameter s vom Typ integer - Achtung: ohne Semikolon
* dreieck();                               -  Aufruf des Teilprogramms dreieck(50); im Hauptprogramm mit aktuellem Parameter: 50
* Delphi:
* procedure dreieck(s: integer);                     -  Teilprogramm dreieck()mit formalem Parameter s vom Typ integer - Achtung: hier mit Semikolon
* dreieck();                               -  Aufruf des Teilprogramms dreieck(50); im Hauptprogramm mit aktuellem Parameter: 50


{| border="1"
 |-
 | Struktogramm || Java Quelltext || Pascal Quelltext  
 |-
 | [[Bild:Koehler_Dreiecksblume.png]] ||  <BR> '''void dreieck(int s)'''<BR>{<BR> for (int i = 1;  i < 4; i++ )<BR>  {<BR>   turtle.forward(s);<BR>    turtle.right(120);<BR>  } <BR>}<BR><BR>canvas.clear();<BR>turtle.home();<BR>turtle.penDown();<BR> for (int i = 1;  i < 7; i++ ) <BR> {<BR>  '''dreieck(50);'''<BR>   turtle.right(60);<BR> } for (int i = 1;  i < 7; i++ ) <BR> {<BR>  '''dreieck(100);'''<BR>   turtle.right(60);<BR> }  ||  <BR> '''procedure dreieck(s: integer);'''<BR>var i: integer;<BR>begin<BR> for i := 1 to 3 do<BR>  begin<BR>   turtle_forward(s);<BR>    turtle_right(120);<BR>  end; <BR>end;<BR><BR>canvas_clear();<BR>turtle_home();<BR>turtle_penDown();<BR> for i:=1 to 6 do <BR> begin<BR>  '''dreieck(50);'''<BR>   turtle_right(60);<BR> end;<BR> for i:=1 to 6 do <BR> begin<BR>  '''dreieck(100);'''<BR>   turtle_right(60);<BR> end;  
|}
<BR>
Erstellen Sie die obere Turtle-Grafik "Dreiecksblume" mit einer prozeduralen Methode dreieck():
* <span style="background-color:#80ff80">void dreieck(int s): </span>Teilprogramm zum Zeichnen eines einzelnen Dreiecks 
* <span style="background-color:#FFFF80">Hauptprogramm: </span> hier wird das Teilprogramm dreieck(100) bzw. Dreieck(50) aufgerufen
* Schrittweite für s: 100
* Startposition: Canvasmitte

{|- 
 |- 
 | '''Dreiecksblume'''        ||  
 |- 
 | <run id="4dd0206ebbf2b">
canvas.clear();
turtle.home();
turtle.penDown();


</run> 
|| <canvas>
 </canvas>

 |}