Meine Lösungen zum Download: uebung1.zip
Und ein paar kleine Kommentare dazu, die sich auch aus der heutigen Nachbesprechung ergaben:
1. Aufgabe: Wochentage
Hier war besonders zu beachten, dass die ganzzahlige Division (//
) anstelle der normalen Division (/
) verwendet werden musste.
`
def wochentag(d, m, y, output=True):
"""
Gibt den Wochentag eines Datums zurueck.
Der optionale Parameter `output' kann standardmaessig auf `False' gesetzt werden, um die Ausgabe zu unterdruecken.
"""
yn = y - (14 - m) // 12
x = yn + yn // 4 - yn // 100 + yn // 400
mn = m + 12 * ((14 - m) // 12) - 2
dn = (d + x + (31 * mn) // 12) % 7
days = ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"]
if(output):
print("Der "+str(d)+"."+str(m)+"."+str(y)+" ist ein "+days[dn]+".")
return dn
`
2. Aufgabe: Reihensumme
Der Knackpunkt hier lag - jedenfalls bei mir - darin, dass die Funktion range(n)
eine Liste von 0 bis n-1 erzeugt. Zu Verwenden war also range(1, n+1)
.
`
def reihensumme(n):
"""
Berechnet die Reihensumme gemaess Aufgabenblatt.
Fuer n -> \infinity: reihensumme(n) -> 0.425841128...
"""
import math
result = 0
for i in range(1, n+1):
result += (math.sin(i*math.pi/2)/(i*i+1))
return result
`
3. Aufgabe: Matrizenmultiplikation
Später.
4. Aufgabe: Randomwalker
Auch.