Schleifen
Wenn wir einen oder mehrere Befehle mehrmals nacheinander ausführen wol- len, können wir eine Schleife verwenden. Es gibt mehrere verschiedene Schleifen- Arten, wir beginnen einmal mit der for-Schleife.
for-Zählschleife
Abstract
Eine Schleife führt ihren Inhalt ("Block") mehrmals nacheinander aus. Die zu wiederholenden Zeilen, also die nach
dem Doppelpunkt, müssen wie bei der Verzweigung eingerückt werden.
Die for-Schleife ist für uns ersteinmal eine Zählschleife, d.h. damit kann ein Block (=Inhalt der Schleife) eine
bestimmte Anzahl mal wiederholt werden. Die Syntax dazu ist:
for i in range(ANZAHL):
# Schleifeninhalt
ANZAHL entweder eine Zahl oder eine Variable mit einem Zahlenwert sein muss.
Im folgenden Programm wird der Schleifeninhalt insgesamt vier mal wiederholt.
Auftrag
Ändere einmal die Anzahl wiederholungen in dem "Schleifenbefehl" und probiere das Programm aus. Achtung: Nimm nicht eine allzu grosse Zahl...
Mit Schleifen zeichnen
Schleifen sind überall dort nützlich wo wir einige Schritte merhmals ausführen wollen. Z.B bei Zeichnen von regelmässigen geometrischen Figuren wie dem Quadrat. Anstatt alle vier Seiten einzeln zu programmieren, können wir nun einfach vier mal eine Seite + Drehung programmieren wie im nachfolgenden Programm gezeigt wird.
Beispiel: Quadrat mit Schleife
# Tests (Groß-/Kleinschreibung wird nicht beachtet)(Ctrl+I)
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
(Esc)
Beispiel: 6-Punkte mit Schleife
In diesem Besipiel wird ein neuer Befehl verwendet: dot(radius), welcher einen Punkt mit einem gewissen Radius zeichnet.
# Tests (Groß-/Kleinschreibung wird nicht beachtet)(Ctrl+I)
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
(Esc)
Aufgaben
Einige Figuren
Question

Verwende jeweils eine for-Schleife um die folgenden Figuren zu zeichnen.
Hinweis: Figur 4 ist nicht so einfach, versuche zuerst die Winkel zu skizzieren und zu berechnen.
# Tests (Groß-/Kleinschreibung wird nicht beachtet)(Ctrl+I)
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
(Esc)
Lösung
from gturtle import *
makeTurtle()
pencolor("blue")
fillcolor("cyan")
for i in range(6):
forward(100)
left(60)
from gturtle import *
makeTurtle()
pencolor("blue")
fillcolor("cyan")
for i in range(3):
forward(100)
right(120)
from gturtle import *
makeTurtle()
pencolor("blue")
fillcolor("cyan")
for i in range(5):
forward(100)
left(72)
from gturtle import *
makeTurtle()
pencolor("blue")
fillcolor("cyan")
for i in range(5):
forward(100)
left( (2*360)/5)
Perlenkette
Question

Verwende eine for-Schleife, um eine Perlenkette zu zeichnen. Die Anzahl Perlen kannst du beliebig wählen.
# Tests (Groß-/Kleinschreibung wird nicht beachtet)(Ctrl+I)
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
(Esc)
Lösung
# Perlen mit For-Schleife
from gturtle import *
makeTurtle()
pencolor("blue") # ändere die Stiftfarbe zu Blau
fillcolor("cyan") # ändere die Turtlefarbe zu Cyan
# Hier beginnt dein Programm
for i in range(24):
dot(10)
right(360 / 24)
forward(20)
Leiter
Question

Zeichne folgende Figur mit zwei verschachtelten for-Anweisungen. Im inneren for-Block wird ein Quadrat gezeichnet.
# Tests (Groß-/Kleinschreibung wird nicht beachtet)(Ctrl+I)
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
(Esc)
Lösung
# Leiter mit verschachtelten For-Schleifen
from gturtle import *
makeTurtle()
pencolor("blue") # ändere die Stiftfarbe zu Blau
fillcolor("cyan") # ändere die Turtlefarbe zu Cyan
right(90)
for i in range(7):
for j in range(4):
forward(30)
left(90)
forward(30)
Mit Schleifen rechnen
Question
Wenn ein bestimmtes Problem aus mehreren sich wiederholenden Teilproblemen besteht, dann kann es gut mit Schleifen gelöst werden. Nehmen wir als Beispiel die Multiplikation. Die Multiplikation besteht aus der wiederholten Addition: z.B. \(3*4 = 4+4+4\)
Schreibe ein Programm welches die folgende Multiplikation berechnet: \(6*5\) Verwende dazu eine Schleife die \(6\) mal die \(5\) addiert.
Wichtig: Du darfst die Multiplikation-Operation selbst nicht verwenden! (kein \(*\))
# Tests (Groß-/Kleinschreibung wird nicht beachtet)(Ctrl+I)
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
(Esc)
Erweiterung: Zählen mit der for-Zählschleife
Bis jetzt haben wir die for-Schleife zur Wiederholung von Teilprogrammen verwendet.
Ihren Namen erhält diese Schleife aber durch eine zusätzliche Tätigkeit: dem Zählen...
Das i in
for i in range(ANZAHL):
# Schleifeninhalt
ANZAHL-mal hochzählt. Wir nennen diese speziellen Variablen einer for-Schleife auch Zählvariablen. Meistens verwenden wir für die Zählvariable den Buchstaben i, wenn wir mehrere Schleifen ineinander verschachteln nutzen wir auch noch j oder sogar k.
# Tests (Groß-/Kleinschreibung wird nicht beachtet)(Ctrl+I)
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
(Esc)
Warning
In der Informatik beginnen wir beim zählen meistens bei \(0\)
Eine Schleife mit range(5) zählt somit von \(0\) bis \(4\) und nicht bis \(5\)!
Aufgaben 2
Summen
Question
Schreibe ein Programm welches die Zahlen von 0 bis 10 addiert. Verwende eine Schleife!
D.h. \(0+1+2+..+9+10=?\)
Erweiterung: 1. Verallgemeinere dein Programm um die Summe von \(1\) bis \(n\) zu berechnen.
# Tests (Groß-/Kleinschreibung wird nicht beachtet)(Ctrl+I)
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
(Esc)
Zählvarianten
Die Art wie gezählt wird kann auf zwei zusätzliche Arten angepasst werden:
- anderer Start
- anderer Zählschritt
Auftrag
Finde heraus wie diese Schleife zählt:
# Tests (Groß-/Kleinschreibung wird nicht beachtet)(Ctrl+I)
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
(Esc)
Auftrag
Finde bessere Namen für die Parameter x,y,z im range()-Befehl.
Welche Namen beschreibt sie besser?
for i in range(x, y, z):
# Schleifeninhalt
print(i)
Zählschleife für Figuren
Question
Versuche die folgenden Figuren zu zeichnen
# Tests (Groß-/Kleinschreibung wird nicht beachtet)(Ctrl+I)
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
(Esc)
Olympische Dreiecke
Question
Zeichne die folgende Figur. Es sind fünf Dreiecke welche sich nicht berühren. Verwende dazu Schleifen!
Mit den Befehlen penup() und pendown() kannst du steuern ob gezeichnet wird.

# Tests (Groß-/Kleinschreibung wird nicht beachtet)(Ctrl+I)
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
(Esc)



# Tests(Groß-/Kleinschreibung wird nicht beachtet)(Ctrl+I)
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
(Esc)