2013-11-25 4 views
1

Я пытаюсь сделать калькулятор в Python, но я получаю и ошибку с косинусами я вставил.Python 3.3 Side косинус Правила калькулятор Ошибка

Это то, что у меня есть

x = float(input("First Side ")) 
y = float(input("Second Side ")) 
z = float(input("Angle which isn't opposite First or Second Side ")) 
print (" ") 
print ("Side is: "+str(math.sqrt(((x**2)+(y**2))-(2*x*y*(math.cos(z)*(180/math.pi)))))) 

И это моя ошибка

Traceback (most recent call last): 
    File "D:/Users/---------/Python/test calc.py", line 339, in <module> 
    print ("Side is: "+str(math.sqrt(((x**2)+(y**2))-(2*x*y*(math.cos(z)*(180/math.pi)))))) 
ValueError: math domain error 

Вы работаете вне косинусов, делая это:

a=√(b^2+c^2−2*b*c*cos(α)) 

В то, что я сделал

x=b 
y=c 
z=α 

ответ

2

в строке

2*x*y*(math.cos(z)*(180/math.pi)) 

вы, кажется, пытаетесь преобразовать из градусов в радианы? но (1) коэффициент перевернут и (2) он должен находиться внутри cos(...).

так что вы можете иметь в виду

2*x*y*math.cos(z*math.pi/180) 

(проверьте: когда г составляет 180 градусов, приведенный выше код дает пи радиан).

2

Это работает для меня; Я бы предположил, что вы вставляете цифры, которые невозможно для треугольника. Попробуйте ввести свой обычный калькулятор и посмотрите, работает ли он.

Также обратите внимание, что ваш угол должен находиться в радианах (или вам нужно преобразовать его в градусы).

Я пытался стороны 3, 4 и 3.14/2 (примерно 90 градусов в радианах) и получили 4,99, которая аппроксимирует правильный ответ 5.

+0

О, если честно, я использую Python 2.7. На всякий случай. – thumbtackthief

1

кажется Math.cos (г) * (180/math.pi) является частью ошибочной, делая то, что внутри math.sqrt отрицательное для некоторых случаев.

print ("Side is: "+str(math.sqrt(((x**2)+(y**2))-(2*x*y*math.cos(z))))) 

или math.cos(z*math.pi/180) будет то, что вы хотите.

(EDIT:. Исправлена ​​перевернутая фракция спасибо: андрей Cooke))

+0

Я думаю, что перевернуто. он хочет быть pi/180, а не 180/pi. рассмотрим угол 180 градусов. что должно дать значение pi радианов. –

 Смежные вопросы

  • Нет связанных вопросов^_^