早教吧 育儿知识 作业答案 考试题库 百科 知识分享

帮忙解释一下这段VB代码。题目:分别用For…Next和Do…Loop结构求π的值(1)用π/4=1-1/3+1/5-1/7+……级数求π的近似值(取前50000项来进行计算)。(2)求π的值,要求精确到最后一项的

题目详情
帮忙解释一下这段VB 代码。
题目:
分别用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
能解释一下这两题的 意思吗? 详细点的 追加
▼优质解答
答案和解析
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
你太粗心了 两题代码不是一样的吗
看了 帮忙解释一下这段VB代码。题...的网友还看了以下: