wiederholung

3. WIEDERHOLUNG MIT REPEAT

 

 

 

DU LERNST HIER...

 

dass du eine oder mehrere Programmzeilen zu einem Programmblock zusammenfassen und ihn dann eine bestimmte Anzahl mal wiederholt durchlaufen kannst. Dadurch ersparst du dir viel Schreibarbeit und das Programm wird übersichtlicher.

 

 

MUSTERBEISPIELE

 

Die Schlange soll ein Quadrat mit einer  Seitenlänge von 3 Schritten durchlaufen. Statt viermal die zwei Zeilen forward(3) right(90) hinzuschreiben, schreibst du sie nur einmal hin und sagst dem Computer mit dem Schlüsselwort repeat, dass er diese beiden Befehle 4 Mal wiederholen soll.

Programm:

from oxosnake import *

makeSnake()
repeat 4:
    forward(3) 
    right(90)
► In Zwischenablage kopieren
 

Wie du siehst, muss man die Programmzeilen, die wiederholt werden, gleichviel einrücken. Es ist zwar gleichgültig, um wieviel, aber wir wollen uns konsequent an 4 Leerschläge halten, damit alle Programme gleich aussehen. Zum Einrücken kannst du auch die Tabulator-Taste verwenden.Man spricht bei der Wiederholstruktur auch vom Durchlaufen einer Schleife.

Im folgenden Beispiel soll die Schlange in der untersten Zeile beginnen und sich dann endlos von unten nach oben und wieder zurück bewegen. Du verwendest den Befehl setPos(x, y), um die Schlange auf die Position (x, y) zu setzen. Mit dem Befehl setSpeed(90) kannst du die Geschwindigkeit erhöhen (maximaler Speed = 100).

Präge dir gut ein, wie das Koordinatensystem definiert ist: Ursprung oben links, x-Achse nach rechts, y-Achse nach unten.

 


Programm:

from snake import *

makeSnake()
setPos(3, 7)
setSpeed(90)
repeat:
    forward(8)
    right(180)
► In Zwischenablage kopieren

Schreibst du repeat ohne einen Wert, so wird die Schleife endlos wiederholt. Du kannst das Programm mit Ctrl+C im Terminalfenster abbrechen oder einfach ein neues Programm herunterladen.

Deine Schlange erhält mit den Befehlen setPos() und setSpeed() neue Eigenschaften. Diese könntest du ihr bereits beim Erzeugen mit dem Befehl makeSnake() mitgehen:

Programm:

from snake import *

makeSnake(speed = 90, pos = (3, 7))

repeat:
    forward(8)
    right(180)
► In Zwischenablage kopieren

 

 

MERKE DIR...

 

Die Wiederholung wird mit repeat n: eingeleitet, wobei n die Anzahl der Wiederholungen ist. Der Doppelpunkt ist wichtig. Die Befehle im nachfolgenden Programmblock sind alle gleichweit eingerückt.

Mit repeat: ohne Wiederholungszahl wird die Schleife endlos wiederholt (bis du Ctrl+C im Terminalfenster klickst, ein neues Programm hinunterlädst, die Oxocard resettest oder sie in den Sleep-Modus setzt).

 

 

ZUM SELBST LÖSEN

 

 

1.
Verwende eine repeat-Schleife und lasse die Schlange genau einmal und dann auch endlos die nebenstehende Figur durchlaufen.  


2.
Die Schlange bewegt sich auf den Seiten eines 8-Ecks. Wenn du herausfindest, um welchen Winkel sie nach je zwei Schritten drehen muss, ist die nebenstehende Figur unter Verwendung einer repeat-Schleife ganz einfach. Lass die Schlage genau einmal und dann endlos das 8-Eck durchlaufen.  


3.

Kannst du auch diese Zick-Zack-Bewegung programmieren?

 

 

 


4.

Die Schlange soll sich wiederholt diagonal von unten nach oben und zurück bewegen. Verwende eine endlose Schleife und teste, ob du das Programm mit der Eingabe von Ctrl+C im Terminalfenster beenden kannst.

 


.

 

 


 

 

3-1
Fachliche Hinweise:

Das Schlüsselwort repeat gehört nicht standardmässig zur Syntax von Python, sondern wurde speziell in TigerJython eingebaut, da es keine Variablen braucht und daher für Programmiereinsteiger einfacher ist.

In Python verwendet man anstelle repeat n:
for i in range(n):

Auch in diesem Lehrgang wird später die for i in range(n) Wiederholungsschlefe verwendet.