Die Fahne
AFB I–IIDie Turtle zeichnet eine Fahne:
from turtle import *left(90)forward(100)right(90)forward(60)right(90)forward(40)right(90)forward(60)home()
- Beschreibe, welche Figur entsteht.
- Gib Ort und Blickrichtung der Turtle nach dem Programm an.
- Erkläre, warum der letzte Befehl keine neue sichtbare Linie erzeugt.
Hinweise
Hinweis zu Aufgabe a)
Hinweis zu Aufgabe b)
Hinweis zu Aufgabe c)
Erwartungshorizont
Erwartungshorizont zu Aufgabe a)
Ein senkrechter Mast von 100 Pixeln Höhe, oben ein Rechteck 60 × 40 als Fahnentuch. Mit home() läuft die Turtle vom Punkt (0|60) am Mast zurück nach unten zur Mitte.
Erwartungshorizont zu Aufgabe b)
Ort (0|0), Blick nach rechts.
Erwartungshorizont zu Aufgabe c)
Der Rückweg von (0|60) nach (0|0) liegt genau auf dem schon gezeichneten Mast. Die Linie wird doppelt gezeichnet und fällt nicht auf.
home oder goto?
AFB II–IIIZwei Programme sollen nach einer Zeichnung die Turtle zurücksetzen und dann 50 Pixel nach oben zeichnen.
# Programm Agoto(0, 0)left(90)forward(50)
# Programm Bhome()left(90)forward(50)
Vor beiden Programmen hat die Turtle zuletzt left(90) ausgeführt.
- Vergleiche die Blickrichtung der Turtle nach der ersten Zeile von A und B.
- Ermittle, wohin die Turtle in A und B jeweils die 50 Pixel lange Linie zeichnet.
- Beurteile, welches Programm unabhängig von vorherigen Befehlen zuverlässig funktioniert.
Hinweise
Hinweis zu Aufgabe a)
Hinweis zu Aufgabe b)
Hinweis zu Aufgabe c)
Erwartungshorizont
Erwartungshorizont zu Aufgabe a)
A: Die Turtle schaut weiter nach oben (vom früheren left(90)). B: home() dreht sie nach rechts.
Erwartungshorizont zu Aufgabe b)
A: oben + left(90) = links, die Linie geht 50 Pixel nach links. B: rechts + left(90) = oben, die Linie geht 50 Pixel nach oben — wie gewünscht.
Erwartungshorizont zu Aufgabe c)
B funktioniert immer, weil home() die Richtung festlegt. A hängt davon ab, wohin die Turtle vorher geschaut hat — B ist zuverlässiger.
