3. WIEDERHOLUNG MIT repeat / ZUFALLSZAHLEN

 

 

DU LERNST HIER...

 

dass du mit Hilfe der Wiederholschleife repeat bestimmte Programmteile mehrmals ausführen kannst.

Zufallszahlen bilden die Basis vieler Simulationen. Sie werden mit einem Zufallsalgorithmus erzeugt, der in Python im Modul random enthalten ist.

 

 

MUSTERBEISPIELE

 


Beispiel 1
: Blinklicht
Ähnlich wie ein Blinklicht, soll ein roter Kreis 10-mal nacheinander angezeigt und gelöscht werden. Du zeichnest zuerst einen rot gefüllter und lässt ihn während 400 Millisekunden angezeigt. Ein laufendes Programm kannst du mit dem Befehl delay(time) anhalten. Dann übermalst der Kreis mit einem weissen Kreis und hälst das Programm während 400 Millisekunden an. Um diesen Vorgang 10-mal zu wiederholen, verwendest du den Befehl repeat 10: (der Doppelpunkt ist wichtig). Die Anweisungen, die wiederholt werden, bilden einen Schleifenblock und müssen alle gleichweit einrückt sein. Du verwendest dazu vier Leerschläge oder die Tabulator-Taste.

Programm:

# Gp3a.py
from gpanel import *

makeGPanel(-10, 10, -10, 10)

repeat 10:
    setColor("red")
    fillCircle(3)
    delay(400)
    setColor("white")
    fillCircle(3.1)
    delay(400)
► In Zwischenablage kopieren
 


Beispiel 2
: Kreise an zufällig gewählten Positionen zeichnen

Der Befehl randint(a, b) liefert eine ganzzahlige Zufallszahl im Bereich a bis b (beide Grenzen eingeschlossen). Beispielsweise erhält man zufällige Würfelzahlen mit randint(1, 6). Mit dem Befehl random() werden Zufallszahlen zwischen 0 (eingeschlossen) und 1 (ausgeschlossen) mit 10 Dezimalstellen erzeugt (z.B. 0.69880747453)

Im Beispiel sollen 100 kleine rote Kreise zufällig auf die Fläche des Grafikfensters verteilt werden. Zuerst wird die Position des Kreises mit zwei Zufallszahlen im Bereich 0 bis 100 festgelegt und ein Kreis gezeichnet. Mit repeat 100: wird dieser Vorgang 100-mal wiederholt.

Programm:

# Gp3b.py
from gpanel import *
from random import randint

makeGPanel(-2, 102, -2, 102)

setColor("red")
repeat 200:
    pos(randint(0, 100), randint(0, 100))
    fillCircle(2)
    delay(50)
► In Zwischenablage kopieren
 

 

 

MERKE DIR...

 

Mit repeat kannst du Programmblocks mehrmals ausführen. Python verfügt auch über while- und for--Schleifen, die aber den Variablenbegriff voraussetzen und deshalb später eingeführt werden.

from random import randint importiert die Funktion randint(a, b) aus dem Modul random. Diese liefert eine ganzzahlige Zufallszahl im Bereich a bis b (beide Grenzen eingeschlossen).

 

 

ZUM SELBST LÖSEN

 

1)


Programmiere eine Blinkanlage, die nacheinander die Farben rot, gelb und grün wechselt und diesen Vorgang 10-mal wiederholt. Wähle eine Anzeigeperiode von 400 ms. Wenn du im repeat-Befehl die Anzahl der Wiederholungen weglässt, blinkt die Anlage so lange bis das Grafikfenster geschlossen wird.

 
 

2)

Zeichne Verbindungslinien vom Punkt (0, 0) zu 200 zufällig gewählten Punkten.
 


 

3)

Im nebenstehenden "Kunstwerk" sind Position und Radius der gefüllten Kreise und auch die Farben zufällig gewählt und ergeben bei jeder Programmausführung ein ganz anderes Bild.

Für die Erzeugung der Farben verwendest  du den Befehl
setColor(r, g, b), wobei die Zahlen r, g, b die rote, grüne, bzw. blaue Komponente ist (eine Zahl zwischen 0 und 255).
Zufällige Farben erhält man mit:
setColor(randint(0, 255), randint(0, 255), randint(0, 255))