Jython HomeDruckenJava-Online

Funktionen


Komplexe Programme können mit Hilfe von Funktionen in kleinere, leichter zu programmierende Teilprogramme zerlegt werden. Solche Teilprogramme können zudem mehrmals verwendet werden. Das Schlüsselwort def leitet die Definition einer Funktion ein. Darauf folgt der Funktionsname und eine Parameterliste, die allerdings auch leer sein kann. Die Anweisungen im Funktionskörper müssen eingerückt sein. Funktionen müssen vor dem ersten Aufruf definiert werden. Im Haupfprogramm wird die Funktion petal() aufgerufen. Der Aufruf der Funktion arc() erfolgt in der Funktion petal().

Beispiel 1: Beim Zeichnen eine Blume werden die Funktionen arc() und petal() verwendet.



  Die Funktion arc() zeichnet einen Viertelkreis
  Um ein Blatt zu zeichnen, schreiben wir eine Funktion petal() ("Blütenblatt"). In dieser wird die Funktion arc() zweimal aufgerufen
 
Ausführen mit Webstart

Die Funktion flower(), die im Hauptprogramm aufgerufen wird, zeichnet eine Blume, die aus 8 Bläter besteht.

# Tu7.py

from gturtle import *

def arc():
    for i in range(30):
        forward(4)
        right(3)
  
def petal():
    arc()
    right(90)
    arc()

def flower():
    for k in range(8):
        petal()
        right(45)

makeTurtle()
speed(-1) 
flower()
Programmcode markieren (Ctrl+C kopieren, Ctrl+V einfügen)

 

Erklärungen zum Programmcode:

Mit def arc(): wird die Definition der Funktion arc() eingeleitet
arc() ist der Aufruf dieser Funktion

Die Funktionsdefinitionen sind in der Regel im Programmkopf angeordnet.

 

  Funktionen mit Parametern

Funktionen können Parameter (auch als Argumente bezeichnet) enthalten, die es ermöglichen, Werte an Funktionen zu übergeben.

Beispiel 2: Mehrere Blumen in verschiedenen Farben an verschiedenen Positionen zeichnen.

Die Funktion flower(x, y, color) hat die Parameter x, y, und Color, wobei x, y Koordinaten und color Stiftfarbe sind. Die Werte werden beim Aufruf der Funktion im Hauptprogramm festgelegt.

# Tu7a.py

from gturtle import *

def arc():
    for i in range(30):
        forward(3)
        right(3)
  
def petal():
    arc()
    right(90)
    arc()

def flower(x, y, color):
    setPos(x, y)
    setPenColor(color)
    fillToPoint(x, y)
    for k in range(6):
        petal()
        right(30)
    setPenColor("green")
    dot(20)          
    
makeTurtle()
speed(-1) 
flower(-150, -100, "red")
hideTurtle()
flower(-100, 120, "yellow")
flower(120, 30, "blue")
flower(color = "magenta", x = 80, y = -150)
Programmcode markieren (Ctrl+C kopieren, Ctrl+V einfügen)
 
Ausführen mit Webstart

 

Erklärungen zum Programmcode:

Mit def flower(x, y, color): definiert eine Funktion mit den Parametern x, y und color
flower(-150, -100,  "red") : Aufruf der Funktion mit den Parameterwerten x = -150, y = -100 und color = "red"
flower(color = "magenta", x = 80, y = -150): Aufruf der Funktion mit benannten Parametern (die Reihenfolge ist nicht wesentlich)

 

  Parameterwerte als Variablen:

Beispiel 3: Der Wert der Variable s wird in der while-Struktur verändert und der Funktion square() als aktueller Parameter übergeben.


# Tu7b.py

from gturtle import *

def square(size):
    for i in range(4):
        forward(size)
        right(90)

makeTurtle()  
s = 140
while s > 5:
    square(s)
    left(180)
    s = s * 0.9

Programmcode markieren (Ctrl+C kopieren, Ctrl+V einfügen)
 
Ausführen mit Webstart

 


Aufgaben Serie 7

1)
Erstelle folgende Zeichnung, indem du zuerst eine Funktion dreieck definierst. Die Funktion kleeblatt() besteht aus vier Dreiecken. Mit Hilfe der Funkion setPos(x, y) kannst du Kleeblätter an verschiedenen Positionen zeichnen. Zum Spass kannst du die Figuren noch füllen.

 
       

 

2) Zeichne eine Europa-Flagge, indem du zuerst eine Funktion star(), die einen Stern zeichnet, schreibst. Die blaue Hintergrundfarbe erhältst du mit dem Befehl clear("blue").

 

 

 

3) Schreibe zuerst eine Funktion arc(), dann eine Funktion fish(), die aus zwei arc() besteht. Dann kannst du eine Reihe oder einen ganzen Schwarm von Fischen zeichnen.

 
   

 

 

 

 

4)

Verwende Funktionen mit Parametern, um Kleeblätter in verschiedenen Grössen und Farben zu zeichnen.