Huelsse/Profil Nawi/Java/Java-Turtle - Funktionen

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Java</language>
'''Java-Turtle - Funktionen - funktionale Methoden '''
----

{|
 |-
 | Häufig werden zur Simaltion Zufallszahlen benötigt. Effektiv kann eine eine Funktion Schreibaufwand ersparen. <BR>Im Gegensatz zu einer Procedure gibt eine Funktionen gibt genau einen Wert zurück:
  <BR> '''Aufbaue einer einfachen Funktion zur Addition von 2 Zufallszahlen'''<BR>Die zufällig erzeuten Zahlen a und werden an die Fuktion Summe übergeben: int summe(int a,b)<BR> <BR>    int summe legt den den Wertebereich für die zu berechnende Summe fest<BR>  retuen a + b; berechnet die Summe und gibt den Wert an das Hauptprogramm zurück 
 || <run id="4df79fc749f4a">int zufall()
{
  return (int) (Math.random() * 6);
}

System.out.print(zufall());</run>  
 |}

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()                           -  Teilprogramm dreieck() - Achtung: ohne Semikolon
* dreieck();                               -  Aufruf des Teilprogramms dreieck89; im Hauptprogramm
* Delphi:
* procedure dreieck();                     -  Teilprogramm dreieck() - Achtung: hier mit Semikolon
* dreieck();                               -  Aufruf des Teilprogramms dreieck(); im Hauptprogramm

{|
 |-
 | Beim Zeichnen von Figuren mit zufälligen erzeugten Farben kann keine Procedure genutzt werden. Wir benötigen eine Funktion, den eine Funktionen gibt genau einen Wert zurück:
  <BR> '''void dreieck()'''<BR>{<BR> for (int i = 1;  i < 4; i++ )<BR>  {<BR>   turtle.forward(100);<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();'''<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()                           -  Teilprogramm dreieck() - Achtung: ohne Semikolon
* dreieck();                               -  Aufruf des Teilprogramms dreieck89; im Hauptprogramm
* Delphi:
* procedure dreieck();                     -  Teilprogramm dreieck() - Achtung: hier mit Semikolon
* dreieck();                               -  Aufruf des Teilprogramms dreieck(); im Hauptprogramm


{| border="1"
 |-
 | Struktogramm || Java Quelltext || Pascal Quelltext  
 |-
 | [[Bild:Koehler_Dreiecksblume.png]] ||  <BR> '''void dreieck()'''<BR>{<BR> for (int i = 1;  i < 4; i++ )<BR>  {<BR>   turtle.forward(100);<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();'''<BR>   turtle.right(60);<BR> }  ||  <BR> '''procedure dreieck();'''<BR>var i: integer;<BR>begin<BR> for i := 1 to 3 do<BR>  begin<BR>   turtle_forward(100);<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();'''<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(): </span>Teilprogramm zum Zeichnen eines einzelnen Dreiecks 
* <span style="background-color:#FFFF80">Hauptprogramm: </span> hier wird das Teilprogramm dreieck() aufgerufen
* Schrittweite für s: 100
* Startposition: Canvasmitte

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


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

 |}