lehrkraefte:snr:informatik:glf22:python:rekursion

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
lehrkraefte:snr:informatik:glf22:python:rekursion [2022/12/23 12:04]
Olaf Schnürer [Aufgabe zur Rekursion: Koch-Kurve und kochsche Schneeflocke]
lehrkraefte:snr:informatik:glf22:python:rekursion [2022/12/23 22:32] (current)
Olaf Schnürer [Einführung am Beispiel]
Line 9: Line 9:
  
 <hidden Anweisung für Lehrer:> <hidden Anweisung für Lehrer:>
-Sukzessive die Funktionen ''ast0'', ''ast1'', ''ast2'', ''ast3'', ... schreiben und mit Skizzen erklären (wie setzt sich die Zeichnung von ''ast3'' aus den anderen "Ästen" zusammen?). Idee, um das vermeiden unendlich vieler Funktionen zu vermeiden: Ersetze die Zahl im Funktionsnamen durch einen Parameter (etwa namens ''level'' oder ''jahr'') in einer neuen Funktion ''ast''.+Sukzessive die Funktionen ''ast0'', ''ast1'', ''ast2'', ''ast3'', ... schreiben und mit Skizzen erklären (wie setzt sich die Zeichnung von ''ast3'' aus den anderen "Ästen" zusammen?). Idee, um das Schreiben "unendlich vielerFunktionen zu vermeiden: Ersetze die Zahl im Funktionsnamen durch einen Parameter (etwa namens ''level'' oder ''jahr'') in einer neuen Funktion ''ast''.
 Alle Funktionen haben die aktuelle Streckenlänge als Parameter ''a''. Eventuell zusätzlich den Winkel als Parameter übergeben (bei ''ast0'' wird er nicht verwendet).  Alle Funktionen haben die aktuelle Streckenlänge als Parameter ''a''. Eventuell zusätzlich den Winkel als Parameter übergeben (bei ''ast0'' wird er nicht verwendet). 
 </hidden> </hidden>
Line 45: Line 45:
  
 Experimentiere:  Experimentiere: 
-  * Für welche Verzweigungswinkel kommt eine besonders schöne Figur heraus? +  * Für welche Verzweigungswinkel kommt eine besonders schöne Figur heraus? (Es gibt zwei "besonders schöne Winkel".)
-  * Wer will, kann auch bereits hier eine Schleife über gewisse Verzweigungswinkel laufen lassen (auch wenn das eigentlich erst unten in der Animationsaufgabe vorgeschlagen wird...)+
   * Nimm statt 3 Verzweigungen eine andere Zahl von Verzweigungen.    * Nimm statt 3 Verzweigungen eine andere Zahl von Verzweigungen. 
   * Zeichne jede der Verzweigungen unterschiedlich lang.   * Zeichne jede der Verzweigungen unterschiedlich lang.
-  * Variiere die Winkel bei den rekursiven Aufrufen.+  * Variiere die Winkel bei den rekursiven Aufrufen; nett ist es beispielsweise, den Winkel bei jedem rekursiven Aufruf zu verdoppeln (und die Längen wie üblich zu halbieren). 
 +  * Wer will, kann auch bereits hier eine Schleife über gewisse Verzweigungswinkel laufen lassen (auch wenn das eigentlich erst unten in der Animationsaufgabe vorgeschlagen wird...)
   * Sei kreativ!   * Sei kreativ!
 </WRAP> </WRAP>
Line 81: Line 81:
 SEITENLAENGE = 400 SEITENLAENGE = 400
  
-def linienzug(level, a):+def kochkurve(level, a): 
 +    # "kochkurve(0, a)" soll eine Strecke der Länge a zeichnen, wobei 
 +    # die Schildkröte NICHT zurück zum Ausgansgspunkt geht (wie beim Baum oben). 
 +    # Bei allen "höheren Kochkurven" "kochkurve(>0, a)" soll der Abstand vom Startpunkt 
 +    # der Turtle bis zu ihrem Endpunkt genau a Pixel betragen. 
     print('Hier ist die rekursive Funktion "linienzug" zu definieren!')     print('Hier ist die rekursive Funktion "linienzug" zu definieren!')
  
 def schneeflocke(level, a): def schneeflocke(level, a):
 +    # Verwende die Funktion "kochkurve" dreimal, um die Schneeflocke zu zeichnen.
     print('Hier ist die Funktion "schneeflocke" zu definieren!')     print('Hier ist die Funktion "schneeflocke" zu definieren!')
  
Line 231: Line 236:
 backward(STAMMLAENGE) backward(STAMMLAENGE)
 pendown() pendown()
-ast(6, STAMMLAENGE, 120)+ast(6, STAMMLAENGE, 30)
  
 exitonclick() exitonclick()
  • lehrkraefte/snr/informatik/glf22/python/rekursion.1671793470.txt.gz
  • Last modified: 2022/12/23 12:04
  • by Olaf Schnürer