159
Weg 1: Top-down. Programmieren ohne Computer
Wir nehmen uns Bleistift und Papier und schreiben uns auf, welche Schritte
zur Lösung des Problems ausgeführt werden müssen. Anfangs werden wir
einige Schritte noch nicht im Detail ausführen können. Das macht aber gar
nichts. Diese Schritte werden dann in weiterer Folge genauer beschrieben.
Wir versuchen, wie schon in früheren Kapiteln, unsere Entwurfsideen in
einer »programmnahen« Sprache zu formulieren. Im ersten Schritt geht es
darum, festzuhalten, was
yinyang()
leisten soll:
Programmentwurf: yinyang
Funktionen vom Modul turtle importieren
Funktion yinyang()
Parameterliste: durchmesser
Strichdicke auf 3 einstellen
yin zeichnen (durchmesser, Feld weiß, Punkt schwarz)
Turtle um 180 Grad drehen
yin zeichnen (durchmesser, Feld schwarz, Punkt weiß)
# Hauptprogramm
Grafik zurücksetzen
yinyang für Durchmesser 200 zeichnen
Turtle verstecken
Klar und einfach! Nach der Definition der Funktion
yinyang()
folgen nur
noch drei Zeilen, die sozusagen das Hauptprogramm darstellen. Die wich-
tigste Anweisung in diesem Hauptprogramm ist natürlich der Aufruf der
Funktion
yinyang()
. Er bewirkt schließlich das Zeichnen des Yinyang-
Symbols.
Du könntest diesen Entwurf sofort korrekt codieren. Doch wäre das Ergeb-
nis kein lauffähiges Programm, denn eine Funktion »yin zeichnen« ist noch
nicht erklärt. Die Hauptarbeit bleibt also noch zu tun:
Die Funktion »yin()«
Wir brauchen eine Funktion
yin()
, die uns sozusagen die Hälfte des Yin-
yang-Symbols zeichnen kann. Aus der Zeichnung weiter oben sehen wir,
dass
yin()
zwei Teilaufgaben erledigen muss: die Yin-Figur zeichnen und
im Mittelpunkt des kleinen Halbkreises einen Punkt einfügen:
160
Von oben nach unten und zurück
Kapitel
6
Funktion yin():
Parameterliste: durchmesser, feldfarbe, punktfarbe
Yin-Figur in feldfarbe zeichnen
Springe zum Mittelpunkt des Punktes
Punkt in punktfarbe zeichnen
Springe zum Mittelpunkt der Yin-Figur zurück
Das ist noch ziemlich ungenau formuliert. Aber es bringt uns weiter. Wir
haben drei Teilaufgaben.
(1)
yinfigur()
zum Zeichnen der (schwarz oder weiß) gefüllten Form.
(2) Springen – zum Mittelpunkt und zurück: Dafür haben wir schon
jump()
.
(3)
punkt()
soll einen Punkt mit gegebenem Radius zeichnen, wobei die
Position der Turtle der Mittelpunkt des Punktes ist.
Die verbleibenden Aufgaben (1) und (3) sind schon recht kleine Aufgaben,
aber ganz ohne Nachdenken geht es doch nicht. Betrachten wir zunächst
die Größenverhältnisse:
Die ganze Figur besteht aus Kreisen
bzw. Halbkreisen in drei verschiedenen
Größen. Da wir zum Zeichnen von
Kreisen und Kreisbögen die Funktion
circle()
verwenden werden, müssen
wir uns die Radien dieser Kreise
überlegen. Ausgangspunkt dafür ist,
dass wir den
durchmesser
der ganzen
Yinyang-Figur als gegeben betrachten.
Aus der Skizze erkennst du: Der
radius
der Figur ist die Hälfte vom
durchmesser
. Der Radius der kleinen
Halbkreise,
r2
, ist die Hälfte von
radius
und der Radius des Punktes,
rp
, ist etwa ein Viertel von
r2
. Damit
können wir den Programmentwurf für die Funktion
yin()
schon genauer
formulieren. Dazu weisen wir zunächst den Größen
radius
,
r2
und
rp
die
passenden Werte zu.

Get Python für Kids now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.