Eine Schleife ist ein Block, der weitere Blöcke enthält, die wiederholt ausgeführt werden. Beispiel:
Eine Schleife ist eine Programmierstruktur, in welcher Anweisungen enthalten sind, die wiederholt ausgeführt werden. Beispiel:
In der Programmierstruktur gibt es eine Zählvariable count, die von einem Startwert (count = 0) aus solange um eins erhöht wird (count++), bis ein Zielwert erreicht wird (count < 8). Sobald der Zielwert erreicht wurde, wird die Schleife verlassen.
Wenn man mehrere gleiche Objekte zeichnen möchte, kann man zusammengesetzte Blöcke mehrfach hintereinander ausführen lassen. Dazu baut man eine geschachtelte Schleife, so dass eine Wiederholungs-Schleife in eine Wiederholungs-Schleife eingebaut wird:
Auf diese Weise wurden 4 gleiche Quadrate, anstelle nur eines Quadrats gezeichnet.
Die Anweisung "vorwärts laufen" kann mit Hilfe der Wiederholungs-Schleife mehrfach ausgeführt werden:
Die Sequenz "vorwärts laufen - links abbiegen - vorwärts laufen - rechts abbiegen" kann mit Hilfe der Wiederholungs-Schleife mehrfach ausgeführt werden:
Eine Sequenz und eine Wiederholungs-Schleife werden kombiniert:
Um kompliziertere Zeichnungen anzufertigen, können vor oder nach einer Wiederholung weitere Sequenzen eingefügt werden.
Um gezeichnete Figuren voneinander zu trennen, ist es notwendig, dass die Schildkröte sich bewegen kann, ohne eine Linie zu zeichnen. Mit folgendem Block kann man einstellen, ob die Schildkröte bei ihrer Bewegung eine Linie zeichnet ("Stift nach unten") oder nicht ("Stift nach oben"):
Mit folgenden Blöcken kann ein Quadrat gezeichnet werden:
Mit folgenden Blöcken kann ein regelmäßiges Fünfeck gezeichnet werden:
Mit folgenden Blöcken kann ein gelber regelmäßiger Stern gezeichnet werden:
Mit folgenden Blöcken kann das vorgegebene Muster erfolgreich nachgezeichnet werden:
Mit folgenden Blöcken kann das vorgegebene Muster erfolgreich nachgezeichnet werden:
Mit folgenden Blöcken kann das vorgegebene Muster erfolgreich nachgezeichnet werden:
Mit folgenden Blöcken kann das vorgegebene Muster erfolgreich nachgezeichnet werden:
Mit folgenden Blöcken kann das vorgegebene Muster erfolgreich nachgezeichnet werden:
Mit folgenden Blöcken kann das vorgegebene Muster erfolgreich nachgezeichnet werden:
Eine Wiederholungsschleife ist ein Block, in welchen andere Blöcke eingesetzt und dann wiederholt ausgeführt werden.
Mit Hilfe einer Wiederholungsschleife kann der Wert einer Variablen mehrfach verändert werden. Es gibt einfache Wiederholungsschleifen, Wiederholungsschleifen mit Abbruchbedingung und Wiederholungsschleifen mit einer Zählvariable:
Stelle folgendes Programm zusammen, mit welchem eine Variable schrittweise von 0 bis 5 erhöht wird und führe den Algorithmus schrittweise aus, indem du wiederholt auf die Schaltfläche 'Schrittweise' klickst.
In diesem Algorithmus gibt es viele gleiche Anweisungen. Um Schreibarbeit zu sparen können diese gleichen Anweisungen mit Hilfe einer Wiederholungsschleife wesentlich kürzer notiert werden.
Stelle folgendes Programm zusammen und führe den Algorithmus schrittweise aus. Den Wiederholungsblock findest du in 'Schleifen'.
Bei der schrittweisen Ausführung des Algorithmus kann man beobachten, dass die gleiche Trace-Tabelle erzeugt wird. Die Anweisungen, welche im Block 'wiederhole 5 mal:' stehen, werden 5 mal ausgeführt.
Mit Hilfe einer Wiederholungsschleife kann in einem Algorithmus viel Schreibarbeit gespart werden.
Stelle folgendes Programm zusammen.
Den Wiederholungsblock findet man in 'Schleifen'.
Den Block 'erstelle Text aus' findet man in 'Text'.
Hinweis: Wenn man einer Variablen die Variable selbst und weitere Werte zuordnet, dann wird der alte Inhalt der Variable genommen und zusammen mit dem neuen Inhalt in der Variable als neuer Wert gespeichert.
Der große Vorteil einer Wiederholungsschleife wird klar, wenn man sehr viele Wiederholungen ausführen lässt und damit eine Unmenge an Tipparbeit ersetzt.
Stelle folgendes Programm zusammen und ersetze die Zahl im Block 'wiederhole x mal:' mit sehr großen Zahlen.
Klicke auf die Schaltfläche 'Füllen', damit die Trace-Tabelle automatisch ausgefüllt wird.
So kann man auch Lachwörter mit tausenden von 'hi' erzeugen, ohne dass man diese einzeln eintippen müsste.
Hinweis: Bei ungemein sehr großen Zahlen reagiert das Programm eine lange Zeit nicht mehr, da das Bauen des Lachwortes dann doch sehr lange dauert.
Baut man eine Wiederholungsschleife mit zu vielen Wiederholungen, kann der Algorithmus scheinbar stehen bleiben oder das ganze Programm kann abstürzen. In einem solchen Fall kann man den Tabulator mit dem Block-Editor schließen und dann wieder neu starten.
Wichtig: Bevor man ein solches Programm testet, sollte man das Programm speichern, denn wenn man den Tabulator schließt geht das zusammengestellte Programm verloren.
Stelle folgendes Programm zusammen. Den Block 'für i=0 bis i<10 in Schritten von 1' findet man unter 'Schleifen'.
In dieser Wiederholungsschleife wird automatisch eine Zählvariable angelegt, deren Wert bei jedem Durchlauf geändert wird.
Stelle folgendes Programm zusammen.
Der Startwert und der Endwert der Zählvariable kann frei festgelegt werden, genauso die Schrittweite.
Die Zählvariable kann genutzt werden, während der Algorithmus die Wiederholungsschleife durchläuft. Im folgenden Beispiel werden die ersten 20 Zweierpotenzen ausgerechnet.
Stelle folgendes Programm zusammen.
Der Startwert und der Endwert der Zählvariable kann frei festgelegt werden, genauso die Schrittweite.
Stelle einen Algorithmus zusammen, bei welchem in der Tracetabelle die Summe aller aufeinanderfolgenden Zahlen von 1 bis zu einem gegebenen Wert ausgegeben wird:
Beispiel:
Der gegebene Wert ist 5. Also ist die Summe aller aufeinanderfolgenden Zahlen 1 + 2 + 3 + 4 + 5 = 15.
In einer Wiederholungsschleife mit einer Abbruchbedingung steuert man die Schleife mit Hilfe einer logischen Bedingung.
Beispiel:
Eine Schleife soll eine Variable 'zahl1' beginnend bei 20 solange um 2 verkleinern, bis die Zahl kleiner als 5 geworden ist.
Man zieht also von der Variablen 'zahl1' die Zahl 2 ab und prüft bei jedem Durchlauf durch die Wiederholungsschleife, ob es immer noch wahr ist, dass 'zahl1' > 5. Wenn die Bedingung nicht mehr erfüllt ist, soll der Algorithmus beendet werden.
Stelle folgendes Programm zusammen und führe es Schritt für Schritt aus.
Die Abbruchbedingung kann auch so gewählt werden, dass geprüft wird, ob eine bestimmte Bedingung erreicht wurde. Das letzte Beispiel kann also umgeschrieben werden:
Beispiel: Eine Schleife soll eine Variable 'zahl1' beginnend bei 20 solange um 2 verkleinern, bis die Zahl kleiner als 5 geworden ist.
Man zieht also von der Variablen 'zahl1' die Zahl 2 ab und prüft bei jedem Durchlauf durch die Wiederholungsschleife, ob 'zahl1' < 5 ist. Wenn diese Bedingung erfüllt ist, soll der Algorithmus beendet werden.
Ändere das Programm und führe es Schritt für Schritt aus.
Klicke dazu im Block 'wiederhole solange' auf 'solange' und wähle 'bis' aus.
Trotz der geänderten Steuerungslogik der Wiederholungsschleife hat sich die Trace-Tabelle nicht geändert.
Der Variablen 'zahl1' soll ein zufälliger Wert zwischen 0 und 1 zugeordnet werden (den Block 'Zufallszahl (0.0 bis 1.0)' findet man unter 'Mathematik').
Der Zufallswert soll in der Trace-Tabelle angezeigt werden.
Der Algorithmus soll abbrechen, sobald der Zufallswert größer als 0.8 ist.
Die Anzahl der angezeigten Zufallszahlen ändert sich ständig, da die gesetzte Bedingung manchmal bei weniger und manchmal bei mehr Durchläufen durch die Schleife erfüllt wird.