2.5. Anwendung von Schleifen#
In dieser Aufgabe wird die Verwendung von Schleifen anhand der Summation von ganzen Zahlen und in einer Umrechnungstabelle geübt.
Aufgabenteil A#
Schreiben Sie ein Skript, das die Summe der Zahlen von 1 bis \(\sf N\) bildet. Dabei sollen folgende drei Wege implementiert werden und die Ergebnisse dieser ausgegeben werden. Berechnen Sie die Summe unter Verwendung:
einer
for
-Schleife,einer
while
-Schleife undder Gaußschen Summenformel: \(\text{summe} = \frac{N \cdot (N+1)}{2}\)
Lösungshinweis#
Für \(\sf N=100\) lautet das Ergebnis 5050.
Lösung#
Show code cell content
N = 100
Show code cell content
# zu 1:
summe = 0
for i in range(N+1):
summe += i
print("Die Summe der Zahlen von 0 bis", N, "lautet:", summe)
Die Summe der Zahlen von 0 bis 100 lautet: 5050
Show code cell content
# zu 2:
summe = 0
i = 0
while i <= N:
summe += i
i += 1
print("Die Summe der Zahlen von 0 bis", N, "lautet:", summe)
Die Summe der Zahlen von 0 bis 100 lautet: 5050
Show code cell content
# zu 3:
summe = (N*(N+1))//2
print("Die Summe der Zahlen von 0 bis", N, "lautet:", summe)
Die Summe der Zahlen von 0 bis 100 lautet: 5050
Aufgabenteil B#
Erstellen Sie ein Skript, welches eine Umrechnungstabelle für Geschwindigkeiten erzeugt. Folgende Randbedingungen sollen beachtet werden:
Die Umrechnung soll von km/h in m/s erfolgen.
Der Start- und Endwert soll in km/h frei wählbar sein, wobei beide ganzzahlig sein sollen.
Die Anzahl der Umrechnungspunkte soll mit \(\sf N\) definiert werden können und die Zwischenschritte (in km/h) immer als ganze Zahlen erfolgen.
Lösungshinweis#
So könnte beispielsweise die Ausgabe aussehen.
Start bei 0 km/h
Ende bei 100 km/h
Ausgabeschritte 5
km/h m/s
============
0 0.0
25 6.944444444444445
50 13.88888888888889
75 20.833333333333332
100 27.77777777777778
Lösungsvorschlag#
Show code cell content
# definiere Berechnungsbereich
start = 0
ende = 100
N = 5
# Ausgabe der Eingaben
print('Start bei', start, 'km/h')
print('Ende bei', ende, 'km/h')
print('Ausgabeschritte', N)
print()
# Kopf der Tabelle
print('km/h\t m/s')
print('============')
# Berechnung der Schrittweite
dN = (ende - start) // (N-1)
# Berechnungsschleife
for v in range(start, ende+dN, dN):
ms = v * 1000 / 3600
print(v, '\t', ms)
Start bei 0 km/h
Ende bei 100 km/h
Ausgabeschritte 5
km/h m/s
============
0 0.0
25 6.944444444444445
50 13.88888888888889
75 20.833333333333332
100 27.77777777777778