Fixed ue02

This commit is contained in:
J-onasJones 2023-11-14 02:31:51 +01:00
parent e750245675
commit 49e3992335

View file

@ -3,17 +3,20 @@ __author__ = "7987847, Werner"
# Aufgabe 2 # Aufgabe 2
# a) # a)
def sum_range(m:int, n:int) -> int: def sum_range(start:int, end:int) -> int:
'''Summe aller Zahlen von m bis n '''Summe aller Zahlen von m bis n
m: Startwert m: Startwert
n: Endwert n: Endwert
''' '''
return sum(range(m, n+1)) if start > end:
start, end = end, start
return sum(range(start, end+1))
print("Es wird die Summe aller Zahlen von m bis n berechnet.") print("Es wird die Summe aller Zahlen von m bis n berechnet.")
print("Geben Sie m und n ein.") print("Geben Sie m und n ein.")
print(sum_range(int(input("m: ")), int(input("n: ")))) print(sum_range(int(input("m: ")), int(input("n: "))))
# Testfälle # Testfälle
# sum_range(0, 0) # sum_range(0, 0)
@ -26,15 +29,13 @@ print(sum_range(int(input("m: ")), int(input("n: "))))
# b) # b)
def halbiere_bis_null(n:int) -> int: def halbiere_bis_null(zahl:int) -> int:
'''Anzahl der Schritte, bis n <= 1 '''Anzahl der Schritte, bis n <= 1
n: Zahl, die halbiert werden soll n: Zahl, die halbiert werden soll
''' '''
if n == 0:
return 0
schritte = 0 schritte = 0
while abs(n) >= 1: while zahl != 0:
n /= 2 zahl /= 2
schritte += 1 schritte += 1
return schritte return schritte
@ -56,13 +57,13 @@ print(halbiere_bis_null(int(input("n: "))))
# c) # c)
def erzeuge_schachfeld(n:int, m:int): def erzeuge_schachfeld(zeilen:int, spalten:int):
'''Erzeugt ein Schachfeld mit n Zeilen und m Spalten '''Erzeugt ein Schachfeld mit n Zeilen und m Spalten
n: Anzahl der Zeilen n: Anzahl der Zeilen
m: Anzahl der Spalten m: Anzahl der Spalten
''' '''
for i in range(n): for i in range(zeilen):
for j in range(m): for j in range(spalten):
# Wenn sowohl die Zeile als auch die Spalte gerade oder ungerade # Wenn sowohl die Zeile als auch die Spalte gerade oder ungerade
# ist, ist es Schwarz (1), # ist, ist es Schwarz (1),
# ansonsten ist es Weiß (0). # ansonsten ist es Weiß (0).
@ -102,8 +103,8 @@ def catalansche_konstante_approximation(anzahl_terme:int) -> float:
anzahl_terme: Anzahl der Terme, die zur Approximation verwendet werden sollen anzahl_terme: Anzahl der Terme, die zur Approximation verwendet werden sollen
''' '''
catalan_summe = 0.0 catalan_summe = 0.0
for n in range(anzahl_terme): for zahl in range(anzahl_terme):
term = 1 / ((2 * n + 1) ** 2) term = 1 / ((2 * zahl + 1) ** 2)
catalan_summe += term catalan_summe += term
return catalan_summe return catalan_summe
@ -131,11 +132,11 @@ def differenz_zwischen_approximationen(start:int, ende:int, schrittweite:int) ->
ende: Endwert ende: Endwert
schrittweite: Schrittweite schrittweite: Schrittweite
''' '''
for n in range(start, ende, schrittweite): for zahl in range(start, ende, schrittweite):
erster_wert = catalansche_konstante_approximation(n) erster_wert = catalansche_konstante_approximation(zahl)
zweiter_wert = catalansche_konstante_approximation(n + schrittweite) zweiter_wert = catalansche_konstante_approximation(zahl + schrittweite)
differenz = zweiter_wert - erster_wert differenz = zweiter_wert - erster_wert
print(f"n = {n} : {erster_wert} ; n = {n + schrittweite} : {zweiter_wert}") print(f"n = {zahl} : {erster_wert} ; n = {zahl + schrittweite} : {zweiter_wert}")
print(f"Differenz: {differenz}\n") print(f"Differenz: {differenz}\n")
print("Es wird die Differenz zwischen zwei Approximationen der catalanschen Konstante ausgegeben.") print("Es wird die Differenz zwischen zwei Approximationen der catalanschen Konstante ausgegeben.")