TigerJython | xx für Gymnasien |
Beispiel 1: Die Turtle zeichnet eine Treppe mit 10 Stufen. Die Farbe der Stufen wird mit einer if-else-Struktur bestimmt. Ist die Stufenzahl gerade, wird eine rote Stiftfarbe gewählt, sonst eine grüne. Für die Überprüfung, ob i gerade oder ungerade ist, wird die Modulodivision durch 2 verwendet, die den Rest nach der Division durch 2 liefert. Ist der Rest 0, so ist die Zahl gerade, sonst ungerade.
|
Erklärungen zum Programmcode:
if i % 2 == 0: falls i eine gerade Zahl ist |
Oft ist der else-Teil überflüssig Das Programm verzweigt in den if-Block, falls die Bedingung erfüllt ist. Beispiel 2: Die Turtle bewegt sich in einer Wiederholstruktur vorwärts und dreht um 90° nach rechts. Dabei wird die Schrittlänge nach jedem Schleifendurchgang um 2 vergrössert. Falls die Schrittlänge gleich 140 ist, wechselt die Stiftfarbe auf grün. Die aktuelle Schrittlänge kann in der Statusbar ausgeschrieben werden.
|
Erklärungen zum Programmcode:
Der Befehl addStatusBar(20) erzeugt eine 20 Pixel hohe Statusbar, in der während der Programmausführung Informationen ausgeschrieben werden können | |
setStatusText("Size: " + str(s)) ersetzt den vorhandenen Text durch einen neuen. In unserem Beispiel wird hier die aktuelle Grösse der gezeichneten Linie angegeben |
Mit den logische Operatoren and und or können Bedingungen verknüpft werden. Beispiel 3: Mit einer doppelten for-Schleife werden an den Positionen (x, y) Punkte gezeichnet. Wenn beide Koordinaten positiv oder wenn beide Koordinaten negativ sind, werden rote Punkte gezeichnet.
|
Erklärungen zum Programmcode:
if x > 0 and y > 0: die Bedingung stimmt, wenn die beiden Koordinaten grösser als null sind | |
if (x > 0 and y > 0) or (x < 0 and y < 0): falls mehrere Verknüpfungen werdendet werden, müssen die Klammern richtig gesetzt werden |
Es können auch mehrere Bedingungen nacheinander überprüft werden. Falls die Bedingung bei if nicht erfüllt ist, wird die Bedingung bei elif überprüft. elif ist eine Abkürzung von else if. Dann werden die Bedingung nach den weiteren elif überprüft. Falls keine dieser Bedingungen stimmt, werden die Anweisungen nach else ausgeführt. Beispiel 4: Die Turtle zeichnet in einer Wiederholstruktur Dreiecke in mehreren Farben.
|
Erklärungen zum Programmcode:
Mit dem Befehl fillToPoint(0, 0) werden die nachfolgend gezeichneten Dreiecke gefüllt. Die Füllfarbe entspricht hier der Stiftfarbe. |
Die if-Struktur wird oft verwendet, um Fehler abzufangen und dadurch unplamässiges Verhalten der Programme zu vermeiden. Beispiel 5: Prorammabsturz verhindern |
Falls man aber keine Farbe gewählt hat und auf Abbrechen klickt, erscheint im Beispiel 3 im vorhergehenden Kapitel eine Fehlermeldung und das Programm stürzt ab. Dieser Programmabstürz kann mit einer if-Struktur verhindert werden. Wenn keine Farbe ausgewähle wurde, wird das Programm mit break beendet. |
|
Erklärungen zum Programmcode:
askColor() : startet die Farbauswahlbox | |
if color == None: es wurde keine Farbe gewählt | |
break : da Programm wird beendet, das Turtlefenster wird aber weiter angezeigt Anstelle break könnten in dieser Zeile auch z. B. color = "black" stehen, dann kan die nächste Programmzeile ausgeführt werden |
Aufgaben: Serie 5 |
Verwende if-else-Struktur, um folgende Figuren zu zeichnen |
1) |
2) |
3) |
4) |
5) |
6) |