Private Sub Form_Click()
Dim a, b, s, f As Single '定义了4个变量用来存放计算结果和中间值
f = 1 'f变量用来控制求和项里的符号 f为-1时为减号
a = 1 'a为求和项里的分母
s = 0 '用来存放等式右面求和的结果
Do
s = s + f * (1 / a) '将等式右面每一项分数的值累计到s
a = a + 2 '分母加2
f = -f '交替变换符号 如原来为+则改为-,反之亦然
Loop While Abs(1 / a) > 0.000001 '设置循环条件为某一项分数值>0.000001,即小于0.000001就退出循环
s = s * 4 '因为s的结果为等式右面的值,所以求最终的π还需乘以4
Print "π的值是:", s
End Sub
你太粗心了 两题代码不是一样的吗
1、Do
s = s + f * (1 / a) f 是来改变正负号的,下面不是f = -f,循环后f=1,f=-1,f=-(-1)……
a = a + 2 (1 / a)及a = a + 2 ,就产生了公式中的1/3、1/5
f = -f s就是公式右边部分,最后s = s * 4求到π
Loop While Abs(1 / a) > 0.000001 abs()求绝对值,当最后一项<0.000001就结束
s = s * 4
额,两题不一样吗?