mit einer der wichtigsten Programmstrukturen umgehen. Die while-Schleife kann allgemein für jede Art von Wiederholungen verwendet werden und kommt in praktisch allen Programmiersprachen vor.
MUSTERBEISPIELE
Eine while-Schleife wird mit dem Schlüsselwort while eingeleitet, gefolgt von einer Bedingung und einem Doppelpunkt. So lange die Bedingung erfüllt ist, werden die Befehle im nachfolgenden Programmblock wiederholt. In der Bedingung werden in der Regel die Vergleichsoperatoren < (kleiner), <= (kleiner-gleich), > (grösser) >= (grösser-gleich), == (gleich), != (verschieden) verwendet. Eine while-Schleife benötigt in der Regel eine Variable, der zu Beginn ein Startwert und nach jedem Schleifendurchgang eine Wertänderung zugewiesen wird.
Beispiel 1: Zeichnen einer Punktreihe
In der Diagonale des Grafikfensters sollen kleine rote Kreise erscheinen. Der erste Kreis wird an der Position (1, 1), der zweite bei (2, 2) usw. gezeichnet. In diesem Beispiel verwendet man eine while-Schleife mit einen Schleifenzähler i, der auch die Position der Kreise festlegt Solange i kleiner als 20 ist (Schleifenbedingung), werden die Befehle im eingerückten Block wiederholt, wobei i jeweils um 1 erhöht wird.
Programm:
# Gp6a.pyfrom gpanel import *
makeGPanel(0, 20, 0, 20)
setColor("red")
i = 1while i < 20:
pos(i, i)
fillCircle(0.5)
i = i + 1
Beispiel 2: Zeichnen einer Linienschar
Die Anfangs- und Endpunkte der Linien legst du mit Hilfe der Schleifenvariablen fest. Diese durchläuft die Werte von 0 bis 40. Damit du das Zeichnen besser beobachten kannst, baust du mit delay(100) nach jeder Linie eine kurze Pause ein.
Programm:
# Gp6b.pyfrom gpanel import *
makeGPanel(0, 40, 0, 40)
i = 0
while i <= 40:
line(i, 0, 40, i)
delay(100)
i = i + 1
Beispiel 3: Eine Kreisschar zeichnen (gefüllte Kreise mit schwarzem Rand)
Der erste Kreis hat den Radius 20 und bei jedem nächsten Kreis ist der Radius um 1 kleiner. Das eines gefüllten Kreises mit einem schwarzen Rand definierst du in der Funktion blueCircle(r).
Programm:
# Gp6c.pyfrom gpanel import *
def blueCircle(r):
setColor("cyan")
fillCircle(i)
setColor("black")
circle(r)
makeGPanel(-20, 20, 0, 40)
i = 20
while i > 0:
pos(0, i)
blueCircle(i)
i = i - 1
delay(100)
Beispiel 4: Verwendung von verschachtelten while-Schleifen
Die Variable x in der äusseren Schleife nimmt die Werte von 1 bis 19 an. Bei jedem neuen x läuft die innere Schleife über alle y (die Säule auf der Position x wird aufgefüllt). Dabei muss man auf die korrekte Einrückung der beiden Programmblocks achten.
Programm:
# Gp6d.pyfrom gpanel import *
makeGPanel(0, 20, 0, 20)
setColor("red")
x = 1
while x < 20:
y = 1
while y < x:
pos(x, y)
fillCircle(0.5)
y = y + 1
x = x + 1
Eine while-Schleife wird mit dem Schlüsselwort while eingeleitet, gefolgt von einer Bedingung und einem Doppelpunkt. Eine while-Schleife benötigt in der Regel eine Variable, der zu Beginn ein Startwert und nach jedem Schleifendurchgang eine Wertänderung zugewiesen wird.
Bei Verwendung von verschachtelten while-Schleifen muss man auf die korrekte Einrückung der Programmblocks achten.
ZUM SELBST LÖSEN
1)
Wähle ein geeignetes Koordinatensystem und zeichne das die nebenstehende Linienschar.
2)
Ergänze die Linienschar aus dem Beispiel 2 zum nebenstehenden Bild.
3)
Verändere das Programm aus dem Beispiel 4 so, dass die folgenden Grafiken entstehen: