Wenn man oft dasselbe machen muss!
In diesem Abschnitt wollen wir zwei Problemstellungen analysieren und dazu möglichst einfache Lösungen entwickeln:
Problem 1: | Problem 2: |
Zeichne eine gleichseitige Figur. Also z.B. ein gleichseitiges Dreieck, ein Quadrat oder ein gleichseitieges 8-Eck wie ein Stopschild |
Zeichne eine Spirale.
|
Fangen wir mit den gleichseitigen Figuren an.
Wiederholen: Wir lassen zählen
Eine erste Lösung, ein Quadrat zu erzeugen:
Aufgabe |
Jetzt fallen uns weitere regelmäßige Figuren ein:
Ändere dazu das oben gezeigte Programm entsprechend ab. |
Du hast sicher gemerkt, dass in allen Programmen zwei Zeilen mehrfach identisch auftauchen. Und wenn du ein regelmäßiges 100-eck erzeugen möchtest, wird das Programm doch sehr lang.
Programmiersprachen wie Python bieten dazu sog. Zählschleifen an, die benutztb werden, wenn man genau weiss, wie oft in einem Programm ein Block auszuführen ist.
Pseudocode allgemein | Pythoncode am Beispiel des Quadrates |
wiederhole n-mal:
[Anweisungsblock]
|
for i in range(4):
forward(100)
|
In einer Zählschleife der dargestellten Art durchläuft der Wert einer sogenannten Zählvariablen (in dem Beispiel ist es eine Variable mit dem Namen i) den Bereich von 0 aufwärts sooft wie angegeben.
Dabei ist zu beachten:
- Für jeden Wert der Zählvariablen wird der angegebene Block von Anweisungen einmal ausgeführt.
- Am Ende des Kopfes der Zählschleife muss ein : stehen.
- Alle Zeilen des Anweisungsblocks müssen eingerückt werden, alle Zeilen mit identischer Einrücktiefe.
In dem angegebenen Programm hat die Variable i also nacheinander die Werte 0, 1, 2 und 3.
Aufgabe |
|
Jetzt wollen wir uns die oben dargestellte Spirale vornehmen.
- Die Figur setzt sich aus 20 einzelnen Strecken zusammen, die rechtwinklig aneinander hängen.
- Wenn wir die Spirale von innen nach außen erzeugen wollen, erkennen wir, dass die Längen der 20 Strecken schrittweise größer werden.
In der oben diskutierten Zählschleife tauchte die Zählvariable auf, die in jedem Durchlauf gleichmäßig größer wurde. Das machen wir uns jetzt zu Nutze, indem diese Zählvariable als Länge der jeweiligen Strecke herangezogen wird:
Die Spirale ist noch ein wenig klein geraten und - bei genauem Nachdenken - hat die erste Strecke die Länge 0 (da i die 20 Werte 0, 1, ..., 19 durchläuft).
Das können wir verbessern, indem wir als Länge den Wert `4 (i+1)` benutzen:
Aufgabe | |
Ändere das Programm so ab, dass Spiralen erzeugt werden, in denen die Strecken nicht senkrecht zueinander stehen, wie z.B. im nebenstehenden Bild dargestellt
|