Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
lehrkraefte:snr:informatik:glf22:python:funktionen [2022/11/17 20:20] Olaf Schnürer [Weitere Bemerkungen zu Funktionen (einiges wurde bereits in den Videos erklärt)] |
lehrkraefte:snr:informatik:glf22:python:funktionen [2022/11/29 12:10] (current) Olaf Schnürer [Bonus-Aufgabe: Funktionen zum Zeichnen einer Spirale und zum "unsichtbaren" Bewegen der Turtle] |
||
---|---|---|---|
Line 6: | Line 6: | ||
<WRAP center round info> | <WRAP center round info> | ||
+ | (teilweise Vorschau auf die Videos) | ||
+ | |||
Das Aufteilen eines grösseren Vorhabens in Teilvorhaben, | Das Aufteilen eines grösseren Vorhabens in Teilvorhaben, | ||
Line 32: | Line 34: | ||
[[https:// | [[https:// | ||
+ | |||
+ | ---- | ||
Endzustand der Programme aus dem Video (mit kleinen sprachlichen Verbesserungen): | Endzustand der Programme aus dem Video (mit kleinen sprachlichen Verbesserungen): | ||
Line 161: | Line 165: | ||
* Danach kommt ein Doppelpunkt '':'' | * Danach kommt ein Doppelpunkt '':'' | ||
* Nun folgt in den nächsten Zeilen **eingerückt** der eigentliche Code der Funktion ("body of the function" | * Nun folgt in den nächsten Zeilen **eingerückt** der eigentliche Code der Funktion ("body of the function" | ||
- | * Wenn ein Rückgabewert zurückgeliefert werden soll((so, wie man das erwartet, wenn man an den Funktionsbegriff in der Mathematik denkt)): Verwende das Schlüsselwort '' | + | * Optional, wenn ein Rückgabewert zurückgeliefert werden soll((so, wie man das erwartet, wenn man an den Funktionsbegriff in der Mathematik denkt)): Verwende das Schlüsselwort '' |
Die Syntax ist also ähnlich wie bei '' | Die Syntax ist also ähnlich wie bei '' | ||
Line 228: | Line 232: | ||
Das zugrunde liegende Koordinatensystem liegt zentriert im Standard-Turtle-Fenster: | Das zugrunde liegende Koordinatensystem liegt zentriert im Standard-Turtle-Fenster: | ||
* x-Koordinaten zwischen -473 und +473 und | * x-Koordinaten zwischen -473 und +473 und | ||
- | * y-Koordinaten zwischen -398 und +398 (jedenfalls auf meinem Laptop). | + | * y-Koordinaten zwischen -398 und +398. ((jedenfalls auf meinem Laptop; wenn ich die Dokumentation richtig verstehe, nimmt das Standard-Turtle-Fenster 50 % der Bildschirmbreite und 75 % der Bildschirmhöhe ein)) |
Man kann die Turtle direkt in einen gewissen Zustand versetzen: | Man kann die Turtle direkt in einen gewissen Zustand versetzen: | ||
* '' | * '' | ||
* '' | * '' | ||
+ | * '' | ||
</ | </ | ||
Line 244: | Line 249: | ||
===== Weitere Bemerkungen zu Funktionen (einiges wurde bereits in den Videos erklärt) ===== | ===== Weitere Bemerkungen zu Funktionen (einiges wurde bereits in den Videos erklärt) ===== | ||
- | |||
<WRAP center round info> | <WRAP center round info> | ||
Line 268: | Line 272: | ||
<WRAP center round info> | <WRAP center round info> | ||
- | Variablen haben in Python Geltungsbereiche, | + | Bisher nicht in diesem Kurs erklärt: |
+ | Variablen haben in Python | ||
- | Dies erlaubt, denselben Variablennamen mehrfach zu verwenden, etwa eine Variable namens '' | + | Dies erlaubt, denselben Variablennamen mehrfach zu verwenden |
+ | |||
+ | Wenn man als Programmieranfänger auf Nummer sicher gehen will, verwende man jeden Variablennamen nur einmal. | ||
</ | </ | ||
+ | ===== Bonus-Aufgabe: | ||
+ | |||
+ | <WRAP center round todo> | ||
+ | {{: | ||
+ | |||
+ | Ergänze das folgende Programm um die Definition zweier Funktionen (um so das obige Bild zu zeichnen): | ||
+ | * Eine Funktion '' | ||
+ | * Eine Funktion '' | ||
+ | |||
+ | <code python vorlage-funktionen-spirale-und-bewege.py> | ||
+ | from turtle import * | ||
+ | |||
+ | def spirale(n, a, veraenderung, | ||
+ | # | ||
+ | # Ergänze hier den " | ||
+ | # also den Code, der eine Spirale abhängig | ||
+ | # von den obigen Parametern zeichnet. | ||
+ | # | ||
+ | |||
+ | # Ergänze hier die Definition der Funktion " | ||
+ | # Hinweis: Verwende die Funktion " | ||
+ | |||
+ | speed(0) | ||
+ | |||
+ | bewege_unsichtbar(200, | ||
+ | spirale(40, 10, 5, 90) | ||
+ | |||
+ | bewege_unsichtbar(-200, | ||
+ | spirale(30, 10, 5, 360/6) | ||
+ | |||
+ | bewege_unsichtbar(-200, | ||
+ | spirale(80, 1, 2, 61) | ||
+ | |||
+ | bewege_unsichtbar(200, | ||
+ | spirale(150, | ||
+ | |||
+ | exitonclick() | ||
+ | </ | ||
+ | |||
+ | <hidden Lösungsvorschlag> | ||
+ | <code python funktionen-spirale-und-bewege.py> | ||
+ | from turtle import * | ||
+ | |||
+ | def spirale(n, a, veraenderung, | ||
+ | for index in range(n): | ||
+ | forward(a + index * veraenderung) | ||
+ | left(winkel) | ||
+ | |||
+ | def bewege_unsichtbar(x, | ||
+ | penup() | ||
+ | setpos(x, y) | ||
+ | pendown() | ||
+ | |||
+ | speed(0) | ||
+ | |||
+ | bewege_unsichtbar(200, | ||
+ | spirale(40, 10, 5, 90) | ||
+ | |||
+ | bewege_unsichtbar(-200, | ||
+ | spirale(30, 10, 5, 360/6) | ||
+ | |||
+ | bewege_unsichtbar(-200, | ||
+ | spirale(80, 1, 2, 61) | ||
+ | |||
+ | bewege_unsichtbar(200, | ||
+ | spirale(150, | ||
+ | |||
+ | exitonclick() | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||