2012-05-20 59 views
-3

早些時候,我要求製作一個三角函數計算器。我接受了這個建議,但我仍然無法讓它給出答案。這裏是我的代碼:我的三叉計算器有什麼問題?

import math 
trig = raw_input ('What are you looking for? A) I have the opposite, and I want the Hypotenuse. ') 
if trig.lower() == 'a': 
ang = float(raw_input ('Please enter the measure of the angle you have ')) 
line = float(raw_input ('Please enter the length of the opposite! ')) 
print "answer is", math.asin(ang)*line 
+0

這將是更好編輯您原來的問題,而不是開始一個新的,幾乎是相同的。 – omz

+3

它返回什麼? – Andrew

+0

問題與編程無關,但與數學背景有關。標記爲引起注意 – mad

回答

3

你的trig公式是錯誤的。回想一下O/H = sin,其中O是相反的,而H是低估性的。重新排列給H = O /罪。這是你需要的公式。

根據您期望的輸入形式,您可能需要將度數轉換爲弧度。 Python trig函數使用弧度來表示角度。用math.radians()轉換。

0

第3-6行也需要縮進,不知道這是否只是複製和粘貼錯誤。

除此之外,它工作正常。

+2

該代碼不起作用。它不能計算hypoteneuse。 –

3

首先,math.asin(ang)*line永遠不會給出正確的結果。如果是角度,是相反的一側和ħ斜邊,然後罪(ANG)=行/小時,這意味着H =線/ SIN(ANG)。所以你的公式應該是line/math.sin(ang)

其次,當你輸入角度值時,你必須給它一個弧度值。對於一個直角三角形,你的角度值應該在0和PI/2之間,PI大約爲。 3.14。

編輯:代碼工作改變公式line/math.sin(ang)後完全沒有問題 - 我在這裏已經測試過它http://repl.it/CUE

+1

你的意思是/而不是*我假設 –

+0

是的,謝謝你發現 – Ana