Logo des digitalen Schulbuchs inf-schule.de. Schriftzug in Zustandsübergangsdiagramm eines endlichen Automaten.

Station - Zählschleifen

Zählschleifen

Bei einer Zählschleife durchläuft der Wert einer Zählvariablen einen Zahlenbereich von einem Anfangswert bis zu einem Endwert. Für jeden Wert der Zählvariablen wird die angegebene Anweisungssequenz einmal ausgeführt.

Struktogramm

Jede Zählschleife lässt sich durch eine Solange-Wiederholungsanweisung ersetzen.

Struktogramm

Aufgabe 1

(a) Ergänze und konkretisiere die beiden gezeigten Struktogramme so, dass sie das folgende Summierproblem lösen.

Eingabe: zwei natürliche Zahlen m und n (z.B. 5 und 12)

Ausgabe: Summe aller Zahlen, die größer oder gleich m und kleiner als n sind (im Beispiel: 5+6+7+8+9+10+11)

(b) Entwickle ein Python-Programm mit einer while-Anweisung zur Lösung des Summierproblems.

(c) Teste auch das folgende Programm zur Lösung des Summierproblems. Wie wird hier die Zählung realisiert?

# Eingabe
m  = int(input('natürliche Zahl m: '))
n  = int(input('natürliche Zahl n: '))
# Verarbeitung
summe = 0
for zaehler in range(m, n):
    summe = summe + zaehler
# Ausgabe
print('Summe:', summe)

for-Anweisung in Python

Allgemein lässt sich eine for-Anweisung in Python wie folgt darstellen:

for [Element] in [iterierbares Objekt]:
    [Anweisungssequenz]

Eingeleitet wird sie mit dem Schlüsselwort for. Anschließend folgt ein Ausdruck der Form Element durchläuft ein iterierbares Objekte und ein Doppelpunkt. Der Doppelpunkt deutet darauf hin, dass jetzt die zu wiederholenden Anweisungen folgen. Diese Anweisungen müssen um eine feste Anzahl von Leerzeichen eingerückt werden. Hält man sich nicht an diese Einrücksystematik, so erhält man Fehlermeldungen oder auch fehlerhafte Programme.

Beispiele für iterierbare Objekte sind Zeichenketten, Tupel und Listen. Im Folgenden wird die Verwendung einer for-Anweisung zur Verarbeitung solcher Objekte anhand von Beispielen kurz angedeutet. Weitere Beispiele werden in den entsprechenden Abschnitten folgen.

Beispiel: Zeichenkette als iterierbares Objekt

for zeichen in "Informatik":
    print(zeichen)

Beispiel: Tupel als iterierbares Objekt

for komponente in ("Petra", "Schmidt", 18):
    print(komponente)

Beispiel: Liste als iterierbares Objekt

for element in ["Heute", "ist", "ein", "Mittwoch", "."]:
    print(element)

Der range-Operator in Python

Mit Hilfe des range-Operators lassen sich in Python iterierbare Objekte erzeugen, mit deren Hilfe dann Zählschleifen flexibel modelliert werden können. Betrachten wir erst zuerst einige Beispiele:

Beispiel: i = 0, 1, 2, 3, 4

for i in range(5):
    print(i)

Beispiel: i = 2, 3, 4, 5

for i in range(2, 6):
    print(i)

Beispiel: i = 1, 3, 5

for i in range(1, 7, 2):
    print(i)

Beispiel: i = 4, 3, 2

for i in range(4, 1, -1):
    print(i)

Der range-Operator lässt sich also in drei Varianten verwenden:

Aufgabe 2

Benutze den range-Operator, um Summen ungerader Zahlen zu berechnen.

Eingabe: natürliche Zahl n

Ausgabe: Summe 1+3+5+...+(2n-1)

Fällt dir dabei etwas auf? Tipp: Quadrieren

X

Fehler melden

X

Suche