程式一直說在 Term = (-1 ^ (i - 1)) * (X ^ (2 * (i - 1))) / M 中有一個被零除,即使在此之前 M 被設定為等于 1進行了計算。我嘗試更改 M 的值,但它不斷給出除以 0 的錯誤訊息。該程式應該在不使用內置函式的情況下計算 sin(x)。對此的任何見解都非常受歡迎。
Option Explicit
Sub MainPrg()
Dim X As Single, LastTerm As Long, M As Double, Term As Long, i As
Single, _
ActVal As Single, Sum As Long
'
'
X = InputBox("Please input the angle in degrees")
X = X * (3.14159 / 180)
LastTerm = InputBox("Please enter the largest value for the last
term in the series")
ActVal = Sin(X)
Call SinCalc(LastTerm, M, i, Term, Sum, X)
MsgBox ("The calculated value is " & Sum & " And the actual value
is " & ActVal)
End Sub
Function Fact(ByVal i As Single, ByRef M As Double)
M = M * (2 * (i - 1))
End Function
Sub SinCalc(ByVal LastTerm As Double, ByVal M As Double, ByVal i As
Single, _
ByRef Term As Long, ByRef Sum As Long, ByVal X As Single)
i = 1
M = 1
Sum = 0
Do
Term = (-1 ^ (i - 1)) * (X ^ (2 * (i - 1))) / M
Sum = Sum Term
If (Abs(Term) < LastTerm) Then Exit Do
i = i 1
Call Fact (i,M)
Loop
End Sub
uj5u.com熱心網友回復:
你對這個問題的看法
Term = (-1 ^ (i - 1)) * (X ^ (2 * (i - 1))) / M
是在一個回圈內,所以即使在開始時 M 等于 1 它也可以在之后變為等于 0(這發生在事實函式期間)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/515446.html
