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 Simulation Zufallszahlen benötigt. Effektiv kann eine Funktion Schreibaufwand ersparen. <BR>Im Gegensatz zu einer Procedure gibt eine Funktion genau einen Wert zurück:
<BR> '''Aufbau einer einfachen Funktion zur Addition von 2 Zufallszahlen a und b'''<BR>Die zufällig erzeuten Zahlen a und b werden an die Fuktion Summe übergeben: int summe(int a,b)<BR> Mit int summe wird der Wertebereich für die zu berechnende Summe festgelegt<BR> return a + b; berechnet die Summe und gibt den Wert an das Hauptprogramm zurück
|| <run id="4df79fc749f4a">int summe(int a, b)
{
return a + b;
}
int a = Math.random() * 10;
int b = Math.random() * 10;
System.out.print("Zahl a: " + a );
System.out.print("Zahl b: " + b );
System.out.print("Summe: " + summe(a,b) );
</run>
|}
Eine funktionale Methode (Funktion) gibt genau einen Wert zurück. Im Gegensatz zur Procedure fehlt das Wort "void" :
* Java:
* int summe(int a, b) - Funktion summe(int a,b) - Achtung: ohne Semikolon, a und b sind Übergabeparameter, int summe legt der Wertebereich für den Rückgabewert fest
* return a + b; - mit return wird der berechnete Wert der Funktion summe an das Hauptprogramm zurückgegeben
* System.out.print("Summe: " + '''summe(a,b)''' ); - Aufruf der Funktion: '''summe(a,b)''' , Berechung der Summe in der Funktion summe, Ausgabe mit Println
*
* Delphi:
* function summe(a, b: integer): integer; - Funktion summe(a,b: integer):integer - a und b sind Übergabeparameter, summe ( .. ) : integer; legt der Wertebereich für den Rückgabewert fest
* return a + b; - mit return wird der berechnete Wert der Funktion summe an das Hauptprogramm zurückgegeben
* writeln('Summe: ' + '''summe(a,b)''' ); - Aufruf der Funktion: '''summe(a,b)''' , Berechnung der Summe in der Funktion summe, Ausgabe mit writeln
{|
|-
| Ein Stern soll aus einzelnen farbigen Quadraten erstellt werden. <BR>
Zum Zeichnen des Sterns wird die Procedure Quadrat genutzt: '''void quadrat()''' <BR> Die zufälligen Farben (RGB) werden mit der Funktion farbe() erstellt: '''long farbe()''' <BR>Die Anweisung Math.random() liefert positive Gleitkomma-Zufallszahlen zwischen größer gleich 0,0 und kleiner 1,0.<BR>Diese Werte werden mit 256 multipliziert: Math.random() * 255: Werte zwischen 0,0 und 255,0.<BR> Für die Farbenwerte werden aber int-Werte benötigt.<BR> Deshalb muss ein Casting durchgeführt werden: „Umwandeln“ von einem Datentyp in einen anderen. <BR> Eine Typanpassung auf (int) führt immer zum Ergebnis 0, d.h. es würde nur die Farbe schwarz erzeugt.<BR> Mit long farbe() können die Werte mit Math.round gerundet werden: return Math.round( Math.random() * 255);<BR>Anschließend muss noch der passende Wertebereich von long auf int angepasst werden: (int)farbe()<BR><BR><canvas> </canvas>
|| <run id="4dd0206ebbf2b">
canvas.clear();
turtle.home();
turtle.penDown();
long farbe()
{
return Math.round( Math.random() * 255);
}
void quadrat()
{
for ( int i = 1; i < 5; i++ )
{
turtle.forward(50);
turtle.left(90);
}
}
for ( int i = 1; i < 37; i++ )
{
turtle.penColor((int)farbe(),(int)farbe(),(int)farbe());
quadrat();
turtle.left(10);
}
</run>
|}