Deutsch English |
DU LERNST HIER... |
Funktionen sind benannte Programmblöcke, mit welchen du Programme besser strukturieren kannst. Die Verwendung von Funktionen ist von grosser Wichtigkeit, denn du vermeidest dadurch, dass du den gleichen Code mehrmals im Programm hinschreiben musst (Codeduplikation) und kannst damit Probleme in kleinere, einfachere Teilprobleme zerlegen. |
MUSTERBEISPIELE |
Ein "Blinkvorgang" mit der Farbe c besteht aus folgenden Aktionen: die Farbe wählen, den gefüllten Kreis mit dieser Farbe zeichnen, 500 Millisekunden warten, die weisse Farbe wählen, den gefüllten Kreis mit weissen Farbe überzeichnen (und damit löschen) und 500 Millisekunden warten. Den Blinkvorgang kannst du in einer Funktion (einem benannten Block) zusammenzufassen und diese Funktion jeweils mit einer anderen Farbe aufrufen. Die Funktionsdefinition beginnt mit dem Keyword def. Dann folgen der Name, eine Parameterklammer und ein Doppelpunkt. Die Klammer kann Parameter enthalten (hier c), die in der Funktion gebraucht werden. Falls man keine Parameter benötigt, ist die Klammer leer. Die Befehle im Funktionskörper bilden einen Programmblock und müssen daher eingerückt sein. Die Funktionsdefinitionen befinden sich oben im Programm, meist unmittelbar nach den Importzeilen. Im Hauptprogramm wird die Funktion dreimal aufgerufen und zwar mit den Parameterwerten "red", "yellow" und "green" . Programm:
Das Modul GPanel enthält bereits viele vordefinierte Funktionen. Mit selbst definierten Funktionen kannst du diesen Befehlssatz beliebig erweitern. In diesem Beispiel definierst du eine Funktion star(x, y) die unter der Verwendung von zwei gefüllten gleichseitigen Dreiecken mit dem gleichen Mittelpunkt x, y einen Stern zeichnet. Im Hauptprogramm rufst du diese Funktion mehrmals auf. Programm:
Beispiel 3: Zufällige Sternen auf blauem Hintergrund (Sternenhimmel) zeichnen Die Funktion star() wird unverändert übernommen, aber die Positionen zufällig gewählt. Mit bgColor("darkblue") kannst du die Hintergrundfarbe des Grafikfensters auf dunkelblau setzen. Programm:
Beispiel 4: Probleme schrittweise lösen An diesem einfachen Beispiel wird exemplarisch gezeigt, wie man Probleme schrittweise löst. Das Zerlegen eines komplexen Problems in einfache Teilprobleme ist ein wichtiges Programmierkonzept (auch Strukturiertes Programmieren genannt). Du kannst es an einfachen Beispielen üben. Dabei spielen Funktionen eine zentrale Rolle, darum nennt man das Konzept auch Funktionales bzw. Prozedurales Programmieren. (In Python sind Funktionen und Prozeduren das gleiche.) Um einen Blumengarten zu erstellen, was eine relative komplexe Aufgabe ist, definierst du die Funktion flower(), die eine einzelne Blume zeichnet. Diese besteht aus einem geradlinigen Stiel und einer Blüte, die du mit der Funktion bloom() definierst. Schliesslich definierst du die Funktion garden(n) , die n Blumen an zufälliger x-Position zeichnet. Programm:
|
MERKE DIR... |
Mit Funktionen kannst du Programme besser strukturieren und den Befehlssatz erweitern. Der Funktionsnamen wird mit einem kleinen Anfangsbuchstaben geschrieben und kann frei gewählt werden. Nicht erlaubt sind Schlüsselwörter und Wörter mit Umlauten. Ohne einen Funktionsaufruf wird die Funktion nie ausgeführt. |
ZUM SELBST LÖSEN |
1) |
Im Hauptprogramm verwendest du eine repeat 50: -Schleife und rufst in der Schleife die Funktion colorCircle() mit den Parametern "red", "yellow" usw. auf. |
2) |
Definiere eine Funktion bird(x, y), die an der Position x, y einen vogelartigen Linienzug zeichnet. Dabei verwendest du im GPanel mit den Koordinaten (0, 20, 0, 20) die zwei Kreisbogenfunktionen arc(2, 30, 120) und arc(2, 150, -120). |
3) |
Definiere eine Funktion snowman(x), die an der Position (x, 0) einen weissen Schneemann zeichnet. Im Hauptprogramm wählst du einen blauen Hintergrund und rufst die Funktion mehrmals an verschiedenen Positionen auf. |