Java-Turtle - Funktionen

Aus ProgrammingWiki
Archivierte Version vom 2011-06-14T19:58:32+00:00. Aktuelle Version

Java-Turtle - Funktionen - funktionale Methoden


Häufig werden zur Simaltion Zufallszahlen benötigt. Effektiv kann eine eine Funktion Schreibaufwand ersparen.
Im Gegensatz zu einer Procedure gibt eine Funktionen gibt genau einen Wert zurück:

 
Aufbau einer einfachen Funktion zur Addition von 2 Zufallszahlen a un b
Die zufällig erzeuten Zahlen a und b werden an die Fuktion Summe übergeben: int summe(int a,b)
Mit int summe wird der Wertebereich für die zu berechnende Summe festgelegt
return a + b; berechnet die Summe und gibt den Wert an das Hauptprogramm zurück
|

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) , Berechung der Summe in der Funktion summe, Ausgabe mit writeln


Ein Stern soll aus einzelnen farbigen Quadraten erstellt werden.
Zum Zeichnen des Sterns wird die Procedure Quadrat genutzt: void quadrat()
Die zufälligen Farben (RGB) werden mit der Funktion farbe() erstellt: long farbe()
Die Anweisung Math.random() liefert positive Gleitkomma-Zufallszahlen zwischen größer gleich 0,0 und kleiner 1,0.
Diese Werte werden mit 256 multipliziert: Math.random() * 255: Werte zwischen 0,0 und 255,0.
Für die Farbenwerte werden aber int-Werte benötigt.
Deshalb muss ein Casting durchgeführt werden: „Umwandeln“ von einem Datentyp in einen anderen.
Eine Typanpassung auf (int) führt immer zum Ergebnis 0, d.h. es würde nur die Farbe schwarz erzeugt.
Mit long farbe() können die Werte mit Math.round gerundet werden: return Math.round( Math.random() * 255);
Anschließend muss noch der passende Wertebereich von long auf int angepasst werden: (int)farbe()

Ihr Browser unterstützt Canvas nicht.

|


Erstellen Sie die obere Turtle-Grafik "Dreiecksblume" mit einer prozeduralen Methode dreieck():

  • void dreieck(): Teilprogramm zum Zeichnen eines einzelnen Dreiecks
  • Hauptprogramm: hier wird das Teilprogramm dreieck() aufgerufen
  • Schrittweite für s: 100
  • Startposition: Canvasmitte
_________________________Dreiecksblume______________________________________________