为什么这个vb.6 ln(x)代码不起作用?

问题描述:

我为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

非常感谢您的帮助,特别是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