2. Wiederholungen 🔁
In der 👉 Aufgabe 7 haben Sie eine Treppe gezeichnet. Ihr Programm sieht vermutlich etwa wie folgt aus:
from turtle import *
left(90)
forward(17)
right(90)
forward(29)
left(90)
forward(17)
right(90)
forward(29)
left(90)
forward(17)
right(90)
forward(29)
left(90)
forward(17)
right(90)
forward(29)
left(90)
forward(17)
right(90)
forward(29)
Was stellen Sie beim Treppen-Programm fest?
- Das Programm ist lang 🙄
- man sieht nicht auf einen Blick,
- wie viele Stufen die Treppe hat
- ob alle Stufen gleich breit und hoch sind
- Um die Stufenbreite oder die Stufenhöhe anzupassen, müssen viele Zeilen verändert werden
- Es kommt immer wieder dieselbe Sequenz vor:
left(90)forward(17)right(90)forward(29)
- wir sind zu faul, um immer wieder dieselbe Sequenz aufzuschreiben (oder zu Copy&Pasten)
Wiederholen von Sequenzen
Ein Algorithmus kann Sequenzen wiederholt ausführen. In Python wird die zu wiederholende Sequenz Codeblock genannt. Ein Codeblock ist immer eingerückt (im Vergleich zur vorhergehenden Zeile) und wird mit einem Doppelpunkt : eingeleitet.
from turtle import *
for i in range(5):
left(90)
forward(17)
right(90)
forward(29)
for i in range(n):
Mit for i in range(n): wird eine wiederholte Ausführung vorbereitet. Der nachfolgende Codeblock wird n Mal wiederholt, bevor weitere Anweisungen ausgeführt werden.
Alles, was wiederholt werden soll, muss eingerückt sein.
i ist ein Schleifenzähler, der bei jeder Wiederholung um 1 erhöht wird. Für die Übungen auf dieser Seite brauchen wir ihn aber noch nicht.
Beispiel
for i in range(4):
forward(50)
left(90)
Aufgaben
Übersetzen Sie das Struktogramm in ein Python Programm. Was entsteht?
from turtle import *
Zeichnen Sie für folgendes Programm ein Struktogramm auf ein Blatt Papier. Fotografieren Sie es im Anschluss und halten Sie es im untenstehenden Textfeld fest.
from turtle import *
forward(30)
left(60)
for i in range(5):
forward(100)
left(72)
backward(20)
Zeichnen Sie auch für folgendes Programm ein Struktogramm und halten Sie dieses fest.
from turtle import *
for i in range(5):
left(72)
for i in range(4):
forward(20)
left(90)
forward(100)
Zeichnen Sie eine Treppe mit 20 Stufen. Die Treppe soll bei den Koordinaten (-200, -200) starten. Wählen Sie die Stufen-Breiten so, dass der verfügbare Platz möglichst gut ausgenutzt wird.
from turtle import *
Hinweis
Verwenden Sie den Befehl 👉 goto(x, y) um die Turtle bei -200, -200 zu positionieren.
Zeichnen Sie einen Stern und gehen Sie wie folgt vor:
- Untersuchen Sie den Stern und identifizieren Sie die wiederholten Sequenzen.
- Programmieren Sie eine einzelne Sequenz. Die Knacknuss ist, dass am Ende der Sequenz die Turtle so ausgerichtet ist, dass man mit der Wiederholung beginnen könnte
- Programmieren Sie die Wiederholung
from turtle import *
- Zeichnen Sie einen Weihnachtsstern mit den Drehwinkeln
140°und80°. - Füllen Sie den Stern mit Ihrer Lieblingsfarbe. Studieren Sie dazu zuerst die drei Befehle im Kapitel "Füllen" unter 👉 Turtle Befehle.
from turtle import *
Zeichnen Sie eine Perlenkette in Ihrer Lieblingsfarbe, die aus 18 Perlen (dots) besteht.
from turtle import *
Hinweis
- Die Turtle muss nach 18 Drehungen wieder nach rechts schauen (hat sich also insgesamt um 360° gedreht) - pro Drehung also
xxxGrad - Python kann auch rechnen 😋 - lassen Sie die Drehung von Python berechnen. Beispiel:
left(360 / 4)ist dasselbe wieleft(90)
- Zeichnen Sie folgende Leiter.
- Können Sie das Programm mit noch weniger Zeilen Code schreiben?
- Schaffen Sie es, nur 6 Zeilen Code zu verwenden?
from turtle import *
Zeichnen Sie einen Vogel, indem Sie mehrmals nacheinander folgende Befehle wiederholen:
forward(2)
right(3)
from turtle import *
Erstellen Sie folgenden Stern. Überlegen Sie sich, wie er aufgebaut ist und wie Sie ihn mit möglichst wenig Code zeichnen können.
from turtle import *
Hinweis
Der Stern besteht aus 20 Quadraten