Dies ist eine alte Version des Dokuments!


Zählschleife

In dieser Lektion beschäftigen wir uns mit der Zählschleife. Dabei programmieren wir wiederum auf den Pfaden von Vera Molnar, einer Pionierin der Computerkunst.

Das Ziel dieser Lektion ist die Programmierung dieser Grafik à la Molnar und zwar mit einem möglichst kurzen Quellcode:

Sie besteht aus gleichgroßen Punkten, die symmetrisch angeordnet sind.
Die Punkte habe eine von drei Farben: Cerise Red, Eastern Blue oder Oxford Blue.
Die Zuweisung der Farbe passiert zufällig.

In Python kann mit der Anweisung range(startwert,endwert) eine Liste mit Zahlenwerten angelegt werden. Dabei wird eine Liste erzeugt, die bei 0 beginnt und bis zur letzten Zahl vor endwert reicht, also von 0 bis endwert-1. Die im folgenden Beispiel mit range(0,10) erzeugte Zahlenliste beginnt also mit 0 und geht bis 9, nämlich endwert - 1, d.h. 10 - 1 = 9.

<html> <iframe src=„https://trinket.io/embed/python/c102465cbf?start=result“ width=„90%“ height=„200“ frameborder=„0“ marginwidth=„0“ marginheight=„0“ allowfullscreen></iframe> </html>

  • Ändere das Programm so ab, dass das Programm eine Liste von 8 bis 19 erzeugt.
  • Verändere die Anweisung im Online-Editor so, dass folgendes Ergebnis angezeigt wird: [2011,2012,2013,2014,2015,2016,2017,2018,2019]
  • Notiere dir beide Anweisungen digtal oder handschriftlich!

Computer sind besonders gut darin, die gleichen Anweisungen (also auch Turtle-Befehle) immer wieder zu wiederholen. Um ein Quadrat zu zeichnen, musst du also nicht viermal die Befehle forward(100) und left(90) eingeben. Es genügt auch, der Turtle zu sagen, sie soll diese zwei Anweisungen viermal wiederholen.

for i in range(0,5):
   turtle.forward(100)
   turtle.left(90)

Mit der for-Schleife sagst du der Turtle, sie soll einige Befehle eine bestimmte Anzahl Mal wiederholen. Das bestimmen wir mit der range()-Funktion. Damit der Computer weiss, dass diese Befehle zusammengehören (einen Programmblock bilden), müssen diese gleich weit eingerückt sein. Wir verwenden für Einrückungen grundsätzlich vier Leerschläge.

Die Zählschleife wiederholt einen Anweisungsblock so lange, bis eine definierte Bedingung falsch ist. In der Zählschleife wird eine Zählvariable deklariert und initialisiert und deren Wert nach jedem Schleifendurchlauf aktualisiert. Die Bedingung bezieht sich dabei in der Regel auf die Zählvariable. Zählschleifen können somit genutzt werden, um einen Anweisungsblock eine vorher festgelegte Anzahl Mal zu wiederholen.
for Variable in Sequenz:
   Anweisung1
   Anweisung2
   ...
   Anweisungn
for zahl in range(0,10):
   print(zahl)

In Python besteht die for-Schleife aus drei Elementen:

  1. Dem Schlüsselwort for, mit dem die Schleife eingeleitet wird,
  2. einer Variablen (hier: zahl), die der Reihe nach alle Werte der folgenden Liste annimmt,
  3. einer Liste (hier: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], da range(0,10)), in der die Werte stehen, die die angegebene Variable der Reihe nach annimmt. Diese Liste kann mit range(endwert) angegeben werden. Nach der Angabe der Liste folgt ein Doppelpunkt als Zeichen dafür, dass hier der Inhalt der Schleife beginnt. In den folgenden Zeilen stehen die Anweisungen, die im Rahmen der Schleife ausgeführt werden sollen, wobei die Zeilen, die zur Schleife gehören, eingerückt sein müssen. Dabei nimmt zahl der Reihe nach alle Werte in der Liste an, d.h. im obigen Beispiel nimmt zahl im ersten Durchlauf den Wert 1 an, im zweiten Durchlauf den Wert 1, danach 3 und so weiter, bis zahl im letzten Durchlauf den letzten Wert der Liste annimmt, also 9.

Aufgabe eines Struktogrammes ist es, den Ablauf eines Computerprogramms auf dem Papier darzustellen.

Allgemeine Schreibweise einer Zaehlerschleife Die Anzahl der Schleifendurchläufe wird durch eine Zählvariable festgelegt. Im Schleifenkopf werden der Startwert der Zählvariablen, der Endwert und die Veränderung der Zählvariablen nach jedem Schleifendurchlauf angegeben.
Beispiel 1 Python-Quellcode für das Struktogramm links:
 for zahl in range(0,10): 
    print(zahl) 
Beispiel 2 Die ersten Zeilen des Struktogramms sind einfache Anweisungen. Dann folgt eine Zählschleife.
  • Zeichne das Struktogramm handschriftlich oder digital!
  • Nutze auch gerne eine Programm zum Erstellen der Struktogramme: Struktogrammeditor

Erstelle zu folgendem Python-Programm ein Struktogramm:

 
for i in range(0,5):
    turtle.forward(100)
    turtle.left(90)
  • Wende die for-Schleife in den folgenen Aufgaben an!
  • Erstelle für mindestens eine Teilaufgabe ein Struktogramm!
  • Notiere dir den Quellcode für jede Teilaufgabe digtal oder handschriftlich!
  • Nutze den Online-Editor (siehe unten)!
a) Zeichne eine Treppe mit 7 Stufen.
b) Zeichne einen Stern. Verwende dabei den Befehl turtle.back().
c) Zeichne einen Vogel. Einen Bogen erhältst du, indem du die Befehle turtle.forward(2) turtle.right(3) mehrmals wiederholst.
d) Zeichne eine Reihe von Punkten á la Molnar. Die Farbe der Punkte soll dabei zufällig zugewiesen werden.

<html> <iframe src=„https://trinket.io/embed/python/88466791c3“ width=„100%“ height=„600“ frameborder=„0“ marginwidth=„0“ marginheight=„0“ allowfullscreen></iframe> </html>