Programm hängt fest in while-Schleife
Verfasst: Mittwoch 17. Januar 2024, 18:40
Hallo, ich habe ein Problem bei einem Programm, was dir die Seitenlängen und Winkel im Dreieck ausrechnen soll. Wenn ich am Anfang a=3, b=4 und c=5 und bei dem Rest 0 eingebe, passiert nichts mehr.
import math
sin = math.sin
print("Gib die gegebenen Werte deines Dreiecks an. Die gesuchten werden als 0 eigetippt.")
a = float(input("a: "))
b = float(input("b: "))
c = float(input("c: "))
wa = float(input("Winkel bei A: "))
wb = float(input("Winkel bei B: "))
wc = float(input("Winkel bei C: "))
while a*b*c*wa*wb*wc == 0:
if wa != 0:
swa = math.sin(math.radians(wa))
if wb != 0:
swb = math.sin(math.radians(wb))
if wc != 0:
swc = math.sin(math.radians(wc))
if wa != 0:
if wb !=0:
if wc == 0:
wc = 180 - wa - wb
elif wb == 0:
if wc != 0:
wb = 180 - wc - wa
if wa == 0:
if wb * wc != 0:
wa = 180 - wb - wc
#a mit b
if a == 0:
if wa * b * wb != 0:
a = (swa * b)/swb
#a mit c
if wa * c * wc != 0:
a = (swa * c)/swc
#b mit a
if b == 0:
if wb * a * wa != 0:
b = (swb * a)/swa
#b mit c
if wb * c * wc != 0:
b = (swb * c)/swc
#c mit a
if c == 0:
if wa * a * wb != 0:
b = (swb * a)/swa
#b mit c
if wb * c * wc != 0:
b = (swc * b)/swb
#wa mit b
if wa == 0:
if wb * a * b != 0:
swa = 1 / (b * (swb * a))
#wa mit c
if wc * a * c != 0:
swa = 1 / (c * (swc * a))
#wb mit c
if wb == 0:
if wc * b * c != 0:
swb = 1 / (c * (swc * b))
#wb mit a
if wa * a * b != 0:
swb = 1 / (a * (swa * b))
#wc mit b
if wc == 0:
if wb * c * b != 0:
swa = 1 / (b * (swb * c))
#wc mit a
if wa * a * c != 0:
swc = 1 / (a * (swa * c))
if wa != 0:
wa = math.degrees(math.asin(swa))
if wb != 0:
wb = math.degrees(math.asin(swb))
if wc != 0:
wc = math.degrees(math.asin(swc))
if a * b * c != 0:
cwa = (b*b + c*c - a*a)/(2 * b * c)
wa = math.degrees(math.acos(cwa))
else:
print("a =",a)
print("b =",b)
print("c =",c)
print("Alpha =",wa,"Grad")
print("Beta =",wb,"Grad")
print("Gamma =",wc,"Grad")
import math
sin = math.sin
print("Gib die gegebenen Werte deines Dreiecks an. Die gesuchten werden als 0 eigetippt.")
a = float(input("a: "))
b = float(input("b: "))
c = float(input("c: "))
wa = float(input("Winkel bei A: "))
wb = float(input("Winkel bei B: "))
wc = float(input("Winkel bei C: "))
while a*b*c*wa*wb*wc == 0:
if wa != 0:
swa = math.sin(math.radians(wa))
if wb != 0:
swb = math.sin(math.radians(wb))
if wc != 0:
swc = math.sin(math.radians(wc))
if wa != 0:
if wb !=0:
if wc == 0:
wc = 180 - wa - wb
elif wb == 0:
if wc != 0:
wb = 180 - wc - wa
if wa == 0:
if wb * wc != 0:
wa = 180 - wb - wc
#a mit b
if a == 0:
if wa * b * wb != 0:
a = (swa * b)/swb
#a mit c
if wa * c * wc != 0:
a = (swa * c)/swc
#b mit a
if b == 0:
if wb * a * wa != 0:
b = (swb * a)/swa
#b mit c
if wb * c * wc != 0:
b = (swb * c)/swc
#c mit a
if c == 0:
if wa * a * wb != 0:
b = (swb * a)/swa
#b mit c
if wb * c * wc != 0:
b = (swc * b)/swb
#wa mit b
if wa == 0:
if wb * a * b != 0:
swa = 1 / (b * (swb * a))
#wa mit c
if wc * a * c != 0:
swa = 1 / (c * (swc * a))
#wb mit c
if wb == 0:
if wc * b * c != 0:
swb = 1 / (c * (swc * b))
#wb mit a
if wa * a * b != 0:
swb = 1 / (a * (swa * b))
#wc mit b
if wc == 0:
if wb * c * b != 0:
swa = 1 / (b * (swb * c))
#wc mit a
if wa * a * c != 0:
swc = 1 / (a * (swa * c))
if wa != 0:
wa = math.degrees(math.asin(swa))
if wb != 0:
wb = math.degrees(math.asin(swb))
if wc != 0:
wc = math.degrees(math.asin(swc))
if a * b * c != 0:
cwa = (b*b + c*c - a*a)/(2 * b * c)
wa = math.degrees(math.acos(cwa))
else:
print("a =",a)
print("b =",b)
print("c =",c)
print("Alpha =",wa,"Grad")
print("Beta =",wb,"Grad")
print("Gamma =",wc,"Grad")