Java-Turtle - Funktionen
Aus ProgrammingWiki
![Loading](/extensions/ims_extension/styles/loading.gif)
Häufig werden zur Simulation Zufallszahlen benötigt. Effektiv kann eine Funktion Schreibaufwand ersparen. Im Gegensatz zu einer Prozedur gibt eine Funktion genau einen Wert zurück:
|
Eine Funktion gibt genau einen Wert zurück. Im Gegensatz zur Prozedur 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. 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() |