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:

  1. einer for-Schleife,

  2. einer while-Schleife und

  3. der Gaußschen Summenformel: \(\text{summe} = \frac{N \cdot (N+1)}{2}\)

Lösungshinweis#

Für \(\sf N=100\) lautet das Ergebnis 5050.

Lösung#

Hide code cell content
N = 100
Hide 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
Hide 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
Hide 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#

Hide 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