161
Weg 1: Top-down. Programmieren ohne Computer
Von mytools jump importieren
Funktion yin():
Parameterliste: durchmesser, feldfarbe, punktfarbe
radius
Ö
durchmesser / 2
r2
Ö
radius / 2
rp
Ö
r2 / 4
Stiftfarbe schwarz einstellen
Yin-Figur mit radius in feldfarbe zeichnen
Springe Strecke r2 um 90° nach links
Punkt mit Radius rp in punktfarbe zeichnen
Springe Strecke r2 um 90° nach rechts
Jetzt können wir uns an den Entwurf der zwei benötigten Funktionen machen:
Die Funktion »yinfigur()«
(1) yinfigur():
Die schwarze Linie, die den Yin-Teil des Yinyang-Symbols
begrenzt, besteht aus drei Halbkreisen:
Aus der Sicht der Turtl
e sind das: ein
»kleiner« Halbkreis nach links und ein »großer« Halbkreis ebenfalls nach
links. Dann ist die Turtle an der »Spitze« der Yin-Figur. Dort muss sie sich
um 180° drehen und einen weiteren »kleinen« Halbkreis, aber diesmal nach
rechts, zeichnen. Danach ist sie an ihrem Ausgangspunkt angelangt.
Funktion yinfigur():
Parameterliste: radius, farbe
radius2
Ö
radius / 2
Füllfarbe farbe einstellen
Füllen beginnen
Halbkreis mit radius2 nach links
Halbkreis mit radius nach links
Turtle um 180 Grad drehen
Halbkreis mit radius2 nach rechts
Füllen ausführen
Die Funktion »punkt()«
Jetzt fehlt uns nur noch der Entwurf von
punkt()
. Bei der Gelegenheit
können wir die Funktion
jump()
gleich wieder verwenden.
162
Von oben nach unten und zurück
Kapitel
6
Funktion punkt():
Parameterliste: radius, farbe
Springe Strecke radius 90° nach rechts
Stiftfarbe und Füllfarbe farbe einstellen
Füllen beginnen
zeichne kreis mit radius
Füllen ausführen
Springe Strecke radius 90° nach links
Damit ist unser Programmentwurf fertig und wir können flink ans Kodieren
gehen. Das heißt den Programmentwurf in Python-Code umschreiben.
(Oder, wenn wir wollten, in den einer anderen Programmiersprache, wenn
sie nur ein Turtle-Grafik-Modul bereitstellt.)
Das vorgeführte Programmier-Verfahren des Top-down-Entwurfs heißt oft
auch
Methode der schrittweisen Verfeinerung
. Du beginnst mit einer Be-
schreibung des Gesamtproblems – in programmnaher Umgangssprache.
Man nennt diese Sprache
Pseudocode
. Dann zerlegst du das Gesamtprob-
lem in Teilprobleme, die du dann in weiteren Schritten so lange verfeinerst,
bis du auf einer Stufe angelangt bist, die du direkt codieren kannst.
>
Ich schlage dir vor, das Kodieren – natürlich in Python – zu versuchen.
Beginne mit den
import
-Anweisungen für die Funktionen aus
turt-
le
und für
jump
. Schreibe danach die Funktionsdefinitionen für die
Funktionen
punkt()
,
yinfigur()
und
yin()
. Wenn du es in dieser
Reihenfolge machst, kannst du jede Funktion gleich nach ihrer Fertig-
stellung testen:
(Strg)
+
(S)
,
(F5)
und dann dem IPI einige Aufrufe
der neuen Funktion eingeben. Unter die Funktionsdefinitionen ans
Ende des Scripts schreibst du die Anweisungen aus dem Programm-
entwurf »yinyang«, die schließlich die Grafik zeichnen.
Vielleicht ist dir die Sache aber auch noch etwas zu steil und du möchtest
einfach sehen, wie der zugehörige Code aussieht.
Diesen Python-Code findest du auf der Buch-CD im Verzeichnis
py4kids-
material\kap06\programme
als Programm
yinyang01.py
.
Ich halte es für eine gute Idee, zur Ergänzung jetzt auch noch den Wiki-
pedia-Eintrag zu diesem Thema durchzulesen. Du findest ihn hier:
http://de.wikipedia.org/wiki/Top-Down-_und_Bottom-Up-Design
. Er führt
dich auch gleich zum nächsten Abschnitt:

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.