帮忙解释一下这段VB 代码。

题目:分别用For…Next和Do…Loop结构求π的值(1)用π/4=1-1/3+1/5-1/7+……级数求π的近似值(取前50000项来进行计算)。(2)求π的值,要... 题目:

分别用For…Next和Do…Loop结构求π的值
(1)用π/4=1 - 1/3 + 1/5 - 1/7 + ……级数求π的近似值 (取前50000项来进行计算)。 (2)求π的值,要求精确到最后一项的绝对值小于0.000001为止。

Private Sub Form_Click()
Dim a, b, s, f As Single
f = 1
a = 1
s = 0
Do
s = s + f * (1 / a)
a = a + 2
f = -f
Loop While Abs(1 / a) > 0.000001
s = s * 4
Print "π的值是:", s
End Sub

第二题:

Private Sub Form_Click()
Dim a, b, s, f As Single
f = 1
a = 1
s = 0
Do
s = s + f * (1 / a)
a = a + 2
f = -f
Loop While Abs(1 / a) > 0.000001
s = s * 4
Print "π的值是:", s
End Sub

能解释一下这两题的 意思吗? 详细点的 追加
展开
 我来答
anankid
2012-04-02 · TA获得超过2047个赞
知道小有建树答主
回答量:1174
采纳率:0%
帮助的人:858万
展开全部
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

你太粗心了 两题代码不是一样的吗
吾桐语
2012-04-02 · TA获得超过2914个赞
知道大有可为答主
回答量:1534
采纳率:94%
帮助的人:1107万
展开全部
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
额,两题不一样吗?
追问
不一样的  两题都解释一下好不呀
追答
代码完全一样啊?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式