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

Lottozahlen der Reihe nach durchlaufen

Zielsetzung

Wir gehen von einer Ziehung (ohne Zusatzzahl) aus:

Ziehung

Zusätzlich soll ein Tipp gegeben sein:

Lottotipp

Beide Zahlenfolgen - die Zahlen einer Lotto-Ziehung (ohne Zusatzzahl) und die Zahlen eines Tipps - sollen jeweils mit einer Liste verwaltet werden:

Ziehung als Liste
Tipp als Liste

Beachte, dass die Listenelemente - beginnend mit 0 - mit einem Index durchnummeriert sind.

Ziel ist es, die Anzahl der richtig getippten Zahlen mit einem Programm zu ermitteln. Im vorliegenden Fall müsste das Programm "2 Richtige" ausgeben.

Eine Strategie besteht darin, der Reihe nach alle Zahlen der Ziehung zu durchlaufen und dabei zu überprüfen, ob sie im Tipp vorkommen oder nicht.

Bevor wir ein Programm zu dieser Stratgie entwickeln, müssen wir erst einmal das Durchlaufen einer Liste genauer betrachten.

Eine Liste über den Index durchlaufen

Das folgende Demo-Programm zeigt, wie man eine Liste durchläuft, indem man Schritt für Schritt über den Index auf die einzelnen Listenelemente zugreift.

# Initialisierung
ziehung = [25, 40, 44, 1, 45, 21]
# Verarbeitung und Ausgabe
i = 0
while i < len(ziehung):
   print(ziehung[i])
   i = i+1

Aufgabe 1

(a) Was leistet das Programm? Kannst du es - ohne vorheriges Testen - vorhersagen?

(b) Ergänze das Programm so, dass man folgende Ausgabe erhält:

>>> 
Kugel 1 : 25
Kugel 2 : 40
Kugel 3 : 44
Kugel 4 : 1
Kugel 5 : 45
Kugel 6 : 21

(c) Teste auch das folgende Programm. Was leistet der range-Operator?

# Initialisierung
ziehung = [25, 40, 44, 1, 45, 21]
# Verarbeitung und Ausgabe
for i in range(len(ziehung)):
   print(i)
   print(ziehung[i])

Eine Liste über die Elemente durchlaufen

In Python kann man Listen auch direkt über die Elemente durchlaufen.

# Initialisierung
ziehung = [25, 40, 44, 1, 45, 21]
# Verarbeitung und Ausgabe
for z in ziehung:
   print(z)

Aufgabe 2

Teste auch dieses Programm.

Anzahl der Richtigen bestimmen

Jetzt können wir Programme zur Bestimmung der Anzahl der richtig getippten Zahlen entwickeln. Wir benutzen hierzu die folgende Strategie: Vergleiche jede Zahl der Ziehung mit jeder Zahl des Tipps.

Aufgabe 3

(a) Das folgende Programm liefert ein Gerüst, mit dem man jede Zahl der Liste ziehung mit jeder Zahl der Liste tipp vergleichen könnte. Teste erst einmal das vorgegebene Programm. Ergänze anschließend den noch fehlenden Vergleich.

# Initialisierung
ziehung = [25, 40, 44, 1, 45, 21]
tipp = [1, 12, 21, 31, 37, 46]
# Verarbeitung
richtige = 0
i = 0
while i < len(ziehung):
    j = 0
    while j < len(tipp):
        print('vergleiche: ', ziehung[i], tipp[j])
        # ...
        j = j+1
    i = i+1
# Ausgabe
print(richtige)

(b) Man kann beide Listen auch direkt durchlaufen. Das Programm wird dann einfacher. Ergänze auch hier den noch fehlenden Vergleich.

# Initialisierung
ziehung = [25, 40, 44, 1, 45, 21]
tipp = [1, 12, 21, 31, 37, 46]
# Verarbeitung
richtige = 0
for z in ziehung:
    for t in tipp:
        print('vergleiche: ', z, t)
        # ...
# Ausgabe
print(richtige)

(c) Teste auch das folgende Programm. Was leistet es? Kannst du das auch erklären?

# Initialisierung
ziehung = [25, 40, 44, 1, 45, 21]
tipp = [1, 12, 21, 31, 37, 46]
# Verarbeitung
richtige = 0
for z in ziehung:
    if z in tipp:
        richtige = richtige + 1
# Ausgabe
print(richtige)

Aufgabe 4

Die Lotto- und Tippzahlen sollen hier ebenfalls mit Listen verwaltet werden, aber auf eine etwas andere Weise.

Ergänze das Programm so, dass man die Anzahl der Richtigen erhält.

# Initialisierung
ziehung = [
    True , False, False, False, False, False, False, 
    False, False, False, False, False, False, False, 
    False, False, False, False, False, False, True , 
    False, False, False, True , False, False, False, 
    False, False, False, False, False, False, False, 
    False, False, False, False, True , False, False, 
    False, True , True , False, False, False, False, 
    ]
tipp = [
    True , False, False, False, False, False, False, 
    False, False, False, False, True , False, False, 
    False, False, False, False, False, False, True , 
    False, False, False, False, False, False, False, 
    False, False, True , False, False, False, False, 
    False, True , False, False, False, False, False, 
    False, False, False, True , False, False, False, 
    ]
# Verarbeitung
richtige = 0
# ...
# Ausgabe
print(richtige)
X

Fehler melden

X

Suche