faecher:informatik:oberstufe:algorithmen:rekursion:uebungen02:kochsche_schneeflocke:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
faecher:informatik:oberstufe:algorithmen:rekursion:uebungen02:kochsche_schneeflocke:start [17.01.2022 19:45] sbelfaecher:informatik:oberstufe:algorithmen:rekursion:uebungen02:kochsche_schneeflocke:start [21.01.2025 07:17] (aktuell) Svenja Müller
Zeile 11: Zeile 11:
 Eine Kochkurve der Stufe n und Länge l kann mithilfe einer rekursiven Methode mit Turtle-Grafik  Eine Kochkurve der Stufe n und Länge l kann mithilfe einer rekursiven Methode mit Turtle-Grafik 
 ''zeichneKochkurve(int n, int l)'' mit Turtle-Grafik gezeichnet werden. ''zeichneKochkurve(int n, int l)'' mit Turtle-Grafik gezeichnet werden.
 +
 +
 +----
 +{{:aufgabe.png?nolink  |}}
 +=== (A1) === 
  
   * Verwende die Vorlage aus [[..:einfuehrung:start| der Einführung in die Turtle Grafik]]   * Verwende die Vorlage aus [[..:einfuehrung:start| der Einführung in die Turtle Grafik]]
   * Notiere den Basisfall zum Zeichnen einer Kochkurve der Iteration 0 und Länge ''l'' in einer Methode ''zeichneKochkurve(int n, int l)'' im Quelltext.   * Notiere den Basisfall zum Zeichnen einer Kochkurve der Iteration 0 und Länge ''l'' in einer Methode ''zeichneKochkurve(int n, int l)'' im Quelltext.
-  * Zeichnen die Kochkurve in der 0. Iteration auf ein Blatt Papier. Zeichne anschließend mit anderer Farbe ein, wo sich die (um 1/3 verkleinerte) Kochkurve der Iteration 0 in der Kochkurve der Iteration 1 wiederfindet und mit einer weiteren  Farbe, wo sich die (wieder um 1/3 verkleinerte) Kochkurve der Iteration 1 in der der Iteration 2 wiederfindet.+  * Zeichnen die Kochkurve in der 0. Iteration auf ein Blatt Papier. Zeichne anschließend mit anderer Farbe ein, wo sich die (um 1/3 verkleinerte) Kochkurve der Iteration 0 in der Kochkurve der Iteration 1 wiederfindet und mit einer weiteren  Farbe, wo sich die (wieder um 1/3 verkleinerte) Kochkurve der Iteration 1 in der Iteration 2 wiederfindet.
   * Wie oft muss die Methode ''zeichneKochkurve'' sich für jede Iteration selbst aufrufen?    * Wie oft muss die Methode ''zeichneKochkurve'' sich für jede Iteration selbst aufrufen? 
   * Wie verändern sich die Parameter der Selbstaufrufe.   * Wie verändern sich die Parameter der Selbstaufrufe.
   * Welche Turtle-Befehle müssen jeweils zwischen den Selbstaufrufen ausgeführt werden?   * Welche Turtle-Befehle müssen jeweils zwischen den Selbstaufrufen ausgeführt werden?
   * Vervollständige Quelltext und implementiere die Methode ''zeichneKochkurve(int n, int l)''.   * Vervollständige Quelltext und implementiere die Methode ''zeichneKochkurve(int n, int l)''.
-  * Implementiere die Methode ''zeichneKochflocke(int n, intl)''.+  * Implementiere die Methode ''zeichneKochflocke(int n, int l)''. 
 + 
 + 
 +=== Hilfestellungen === 
 + 
 +++++ Hilfe 1: Basisfall | 
 +<code java> 
 +public void zeichneKochkurve(int n, int l) { 
 +        if(n==0) { 
 +          // Zeichne Strich der Länge l 
 +        } else { 
 +          // Anderer Fall 
 +        } 
 +    } 
 +</code>   
 +++++ 
 + 
 +++++ Hilfe 1: Codegerüst |   
 +<code java> 
 + public void zeichneKochkurve(int n, int l) { 
 +        if(n==0) { 
 +            t.forward(l); 
 +        } else { 
 +            // Was muss mit n und l geschehen, wenn man eine Stufe weiter hineinzoomt? 
 +            n=FIXME 
 +            l=FIXME 
 +            // Nun müssen drei "kleinere" Kochkurven gezeichnet werden 
 +            zeichneKochkurve(n, l); 
 +            // Was muss zwischendrin passieren? 
 +            FIXME 
 +            zeichneKochkurve(n, l); 
 +            FIXME 
 +   
 +            zeichneKochkurve(n, l); 
 +            FIXME 
 +            
 +            zeichneKochkurve(n, l); 
 +        } 
 + 
 +</code> 
 + 
 +++++ 
 + 
 +++++ Hilfe 3: Lösungsvorschlag |   
 +<code java> 
 +public void zeichneKochkurve(int n, int l) { 
 +        if(n==0) { 
 +            t.forward(l); 
 +        } else { 
 +            n=n-1; 
 +            l=l/3; 
 +            zeichneKochkurve(n, l); 
 +            t.left(60); 
 +            zeichneKochkurve(n, l); 
 +            t.right(120); 
 +            zeichneKochkurve(n, l); 
 +            t.left(60); 
 +            zeichneKochkurve(n, l); 
 +        } 
 +    } 
 +</code> 
 +++++ 
 + 
  • faecher/informatik/oberstufe/algorithmen/rekursion/uebungen02/kochsche_schneeflocke/start.1642448707.txt.gz
  • Zuletzt geändert: 17.01.2022 19:45
  • von sbel