Parameter
Unsere neuen eigene Prozeduren erleichtern das Programmieren einiges.
Dennoch sind sie bis jetzt etwas unflexibel. In den vorherigen Aufgaben haben wir einen
sechseck() Befehl definiert. Wenn wir nun verschieden Grosse Sechsecke haben wollen,
müssten wir ganz viele neue Befehle definieren. Wie z.B. kleinesSechseck(),
mittleresSechseck(), grossesSechseck(), etc., das funktioniert zwar, aber
ursprünglich wollten wir unnötige Tipparbeit vermeiden.
Es wäre doch viel praktischer, wenn wir nur einen Sechseck-Befehl bräuchten, der ganz flexibel, verschieden Grosse Sechsecke zeichnen könnte. Dafür brauchen wir Parameter.
{ }
Fachbegriff: Parameter
Ein Parameter ist eine spezielle Variable, mit der wir Informationen an einen Befehl übergeben können. Dazu muss der Befehl so definiert sein, dass er ein oder mehrere Parameter annimmt. Innerhalb des Befehls verhalten sich die Parameter wie Variablen.
Definition
Um Informationen an unsere neuen eigenen Befehle zu übergeben, können wir Parameter definieren. Dazu wird der Name von einem Parameter innerhalb der Klammer geschrieben.
Beispiel
In diesem Programm wird eine neue Prozedur mit dem Namen meineGrussProzedur definiert.
Sowie einem Parameter nachname
def meineGrussProzedur(nachname):
print("* Guten Morgen " + nachname)
print("* * * *)
Probiere das Beispiel einmal aus, rufe den Befehl mit mit einem Parameter auf. Dazu schreibst du beim Aufruf zwischen den Klammern einen Wert, z.B. eine Zeichenkette.
Beispiel 2
Wir können nun z.B. einen Befehl für ein Quadrat erstellen, welches eine beliebige Seitenlänge verwendet. Als Seitenlänge bezeichnen wir nun s.
# Tests (Groß-/Kleinschreibung wird nicht beachtet)(Ctrl+I)
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
(Esc)
Aufgaben
Sechsecke 2
Question
Ändere deinen Befehl sechseck() ab, damit neu mit einem Parameter die
Seitenlänge an den Befehl übergebbar ist.
Zeichne drei Sechsecke mit verschiedenen Grössen.
# Tests (Groß-/Kleinschreibung wird nicht beachtet)(Ctrl+I)
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
(Esc)
Sterne 2
Question

Definiere eine Prozedur stern(laenge) um einen Stern mit Strichlänge laenge zu zeichnen.
laenge ist dabei ein Parameter, somit kannst du mit der selben Prozedur verschieden Grosse Sterne zeichnen.
Verwende deine Prozedur um die gezeigte Figur zu zeichnen.
Wenn du vor einer (Teil-)Zeichnung den Befehle begin_fill() aufrufst
und nachher den Befehl end_fill(), dann wird deine Figure mit Farbe ausgefüllt.
Die Füllfarbe kannst du mit fillcolor(FARBNAME) steuern.
# Tests (Groß-/Kleinschreibung wird nicht beachtet)(Ctrl+I)
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
(Esc)
Farbige Dreiecke
Question

Auch Farbnamen können als Parameter verwendet werden. Definiere einen Befehl, dreieck(farbe), welche ein gefülltes Dreieck mit der gegebenen Farbe zeichnet. Erstelle damit das nebenstehende Bild.
Du findest eine ausführliche Liste von Farben hier, bei vielen Farben musst du den "Hex-Code" verwenden.
# Tests (Groß-/Kleinschreibung wird nicht beachtet)(Ctrl+I)
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
(Esc)
Spiralige Figur
Question

Das nebenstehende Bild entsteht, indem die Länge der Quadratseite ausgehend von 180 bei jedem nachfolgenden Quadrat um den Faktor \(0.95\) verkleinert wird. Es werden \(100\) Quadrate gezeichnet. Schreibe das Programm mit dem Befehl quadrat(s)
Eine verkleinerung um Faktor \(0.95\) bedeutet, dass der neue Wert nur noch \(95\%\) vom alten ist.
# Tests (Groß-/Kleinschreibung wird nicht beachtet)(Ctrl+I)
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
(Esc)
Olympische Dreiecke Version 3
Question
Zeichne nochmals die folgende Figur. Verwende diesmal Parameter für deine Befehle.

# Tests (Groß-/Kleinschreibung wird nicht beachtet)(Ctrl+I)
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
(Esc)
# Tests(Groß-/Kleinschreibung wird nicht beachtet)(Ctrl+I)
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
(Esc)