Das Dorf
AFB I–IIEin Programm zeichnet Häuser:
from turtle import *def haus(): for i in range(4): forward(40) left(90) left(90) forward(40) right(30) forward(40) right(120) forward(40) left(60)haus()penup()home()forward(60)pendown()haus()
- Beschreibe, was die Funktion haus zeichnet.
- Gib an, wie viele Häuser entstehen und wo sie beginnen.
- Erkläre, warum vor dem zweiten Aufruf
home()steht.
Hinweise
Hinweis zu Aufgabe a)
Hinweis zu Aufgabe b)
Hinweis zu Aufgabe c)
Erwartungshorizont
Erwartungshorizont zu Aufgabe a)
Ein Quadrat mit Seitenlänge 40 und darauf ein gleichseitiges Dreieck als Dach.
Erwartungshorizont zu Aufgabe b)
Zwei Häuser: eines ab (0|0), eines ab (60|0).
Erwartungshorizont zu Aufgabe c)
Nach dem Dach steht die Turtle an der rechten oberen Hausecke (40|40). Ohne home() begänne das zweite Haus dort oben „in der Luft“. home() bringt sie zurück zum Start und dreht sie nach rechts; mit forward(60) steht das zweite Haus dann ordentlich daneben.
Mit oder ohne Funktion?
AFB II–IIIZwei Lösungen sollen vier Sterne zeichnen. Lösung A wiederholt die Stern-Schleife viermal im Programm, Lösung B definiert einmal stern() und ruft sie viermal auf.
- Vergleiche die Lösungen in Bezug auf Länge und Übersicht.
- Begründe, welche Lösung leichter zu ändern ist, wenn alle Sterne rot werden sollen.
- Nimm Stellung zu: „Funktionen lohnen sich erst bei großen Programmen.“
Hinweise
Hinweis zu Aufgabe a)
Hinweis zu Aufgabe b)
Hinweis zu Aufgabe c)
Erwartungshorizont
Erwartungshorizont zu Aufgabe a)
A wiederholt denselben Code viermal und ist lang; B ist kürzer und durch den Namen stern() leichter zu lesen.
Erwartungshorizont zu Aufgabe b)
In B genügt eine Änderung in der Funktion; in A muss man an vier Stellen ändern und kann leicht eine vergessen. B ist deshalb leichter zu pflegen.
Erwartungshorizont zu Aufgabe c)
Schon ab zwei gleichen Teilen spart eine Funktion Arbeit und Fehler. Außerdem gibt der Name dem Programmteil eine Bedeutung. Die Aussage stimmt also nur teilweise — auch kleine Programme profitieren.
