VB6.0中的累计求和

来源:百度知道 编辑:UC知道 时间:2024/06/07 13:36:37
我在书上看了个累计求和的题,题目是:1-1/3+1/5-1/7+……+((-1)^(n-1))*1/(2n-1)"即是-1的n-1次方乘以1/(2n-1)",当最后一项的绝对值小于0.0001时停止计算。
书上代码是这样写的:
Private Sub Form_Click()
Dim i%,f%,s!,t!
i=0 '项数
s=0 '存放累加和,初值为0
t=1 '阶乘,初值为1
f=1 '符号系数,第一项为正
Do While t>0.0001
s=s+f/t
i=i+1
t=t*(2*i)*(2*i+1) '求2i-1的阶乘
f=-f '符号反号
loop
Form1.print "计算了";i;"项,其结果是";s
End Sub
我知道书上的代码一定是写错了,因为t的值会越来越大,我想请大侠帮他改一下,恢复它本来面貌。
下面的代码是自己写的,也请大侠帮我看一下,有哪些地方写得不好
Private Sub Command1_Click()
Dim a%, b#, c%, d#
a = 1 '项数
b = 0 '存放累加和,初值为0
c = 1 '符号系数,第一项为正
d = 1 / (2 * a - 1)
Do While d > 0.001
b = b + c * d
c = -c
a = a + 1
d = 1 / (2 * a - 1)
Loop
Print a, b
End Sub

Private Sub Command1_Click()
Dim a%, b#, c%, d#
a = 1 '项数
b = 0 '存放累加和,初值为0
c = 1 '符号系数,第一项为正
Do
d = 1 / (2 * a - 1)
b = b + c * d
c = -c
a = a + 1
Loop While Abs(d) > 0.001
Print a, b
End Sub

你看下这个哈!

123