Startnummern beim Sportfest
AFB I–IIFür den Staffellauf beim Sportfest druckt Frau Özdemir die Startnummern aus. Jede Staffel hat drei Läufer, die Nummer der Staffel ist die des ersten Läufers.
for nr in range(101, 131, 3): print("Startnummer", nr)
- Gib die ersten drei und die letzte ausgegebene Startnummer an.
- Berechne, wie viele Staffeln es gibt, ohne alle Nummern aufzuschreiben.
- Vergleiche die for-Schleife mit einer while-Schleife, die dieselbe Ausgabe erzeugt.
Hinweise
Hinweis zu Aufgabe a)
Hinweis zu Aufgabe b)
Hinweis zu Aufgabe c)
Erwartungshorizont
Erwartungshorizont zu Aufgabe a)
Erste drei: 101, 104, 107. Letzte: 128 (131 wird nicht mehr erreicht).
Erwartungshorizont zu Aufgabe b)
(128 − 101) : 3 = 9 Schritte, also 9 + 1 = 10 Nummern — es gibt 10 Staffeln.
Erwartungshorizont zu Aufgabe c)
nr = 101while nr < 131: print("Startnummer", nr) nr = nr + 3
Beide liefern dieselben 10 Zeilen. Bei while muss man Startwert, Bedingung und Erhöhung selbst schreiben (drei Stellen, an denen man sich vertun kann; vergisst man nr = nr + 3, läuft die Schleife endlos). Bei for steckt alles in range(101, 131, 3). Da die Anzahl bekannt ist, ist for hier die bessere Wahl.
Liegestütz-Challenge
AFB II–IIIMia startet eine 14-Tage-Challenge: Am ersten Tag macht sie 5 Liegestütze, an jedem weiteren Tag 3 mehr als am Vortag.
- Entwickle ein Programm, das für jeden der 14 Tage die Anzahl ausgibt und am Ende die Gesamtzahl aller Liegestütze.
- Ermittle ohne Programm, wie viele Liegestütze Mia an Tag 14 macht, und kontrolliere damit die Ausgabe.
- Erweitere das Programm: Startzahl und Steigerung werden eingegeben, und es wird ausgegeben, an welchem Tag die Gesamtzahl erstmals über 500 liegt. Begründe deine Schleifenwahl.
Hinweise
Hinweis zu Aufgabe a)
Hinweis zu Aufgabe b)
Hinweis zu Aufgabe c)
Erwartungshorizont
Erwartungshorizont zu Aufgabe a)
anzahl = 5gesamt = 0for tag in range(1, 15): print("Tag " + str(tag) + ":", anzahl, "Liegestütze") gesamt = gesamt + anzahl anzahl = anzahl + 3print("Insgesamt:", gesamt)
Die letzten Ausgabezeilen:
Tag 14: 44 Liegestütze Insgesamt: 343
Erwartungshorizont zu Aufgabe b)
5 + 13 · 3 = 44. Das stimmt mit der Ausgabe für Tag 14 überein. (Gesamt: 14 · 5 + 3 · (0 + 1 + … + 13) = 70 + 3 · 91 = 343.)
Erwartungshorizont zu Aufgabe c)
anzahl = int(input("Start: "))plus = int(input("Steigerung pro Tag: "))gesamt = 0tag = 0while gesamt <= 500: tag = tag + 1 gesamt = gesamt + anzahl anzahl = anzahl + plusprint("An Tag", tag, "wird die 500 überschritten:", gesamt)
Die Anzahl der Tage ist nicht mehr bekannt, sie hängt von der Bedingung „gesamt ≤ 500“ ab — deshalb while. Mit 5 und 3:
An Tag 18 wird die 500 überschritten: 549
