2016-03-02 31 views
-3

我爲ln做了這段代碼作爲作業,但它不適用於大於2的數字! 你能幫助我嗎?爲什麼這個vb.6 ln(x)代碼不起作用?

If Val(txt.Text) <= 0 Then 
    MsgBox "can't find ln !", vbExclamation + vbOKOnly, "ERROR": Exit Sub 
Else 
    sign = -1 
    Sum = x - 1 
    r = 2 

    For j = 2 To 3 Step 0 
    t = sign * ((x - 1)^r/r) 

    If Abs(t) >= 0.0000001 And Abs(t) <= 100000000# Then 
     Sum = Sum + t 
     sign = -sign 
     r = r + 1 
    Else 
     GoTo 12 
    End If 
    Next 
End If 

這裏的方程的圖像:

Equation

+4

1.我們需要更多的代碼。 2.你的循環只能從2到3. GOTO ...真的?!?! – Jeremy

+2

該循環也使用「步0」,這意味着它不會增加 – Marc

+0

該代碼是錯誤的方程,以及...你有更多的問題比你想象的... – Codexer

回答

0

非常感謝您的幫助,特別是MarkL,我做到了!我很高興這個:)

這裏是最終的代碼,如果你有興趣^ _ ^:

 If Val(txt.Text) <= 0 Then 
     MsgBox "can't find ln !", vbExclamation + vbOKOnly, "ERROR" 
     Exit Sub 

     ElseIf x < 0.51 Then 
     sign = -1 
     Sum = x - 1 

     For i = 2 To 500 
     t = sign * ((x - 1)^i/i) 
     If Abs(t) >= 0.0000001 Then 
     Sum = Sum + t 
     sign = -sign 
     Else 
     GoTo 12 
     End If 
     Next 

     Else 
     Sum = 0 
     For i = 1 To 600 
     t = ((x - 1)/x)^i 
     If Abs(t) < 10000000 Then 
     Sum = Sum + (t/i) 
     Else 
     GoTo 12 
     End If 
     Next 
     End If 
相關問題