帮忙解释一下这段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
能解释一下这两题的 意思吗? 详细点的 追加 展开
分别用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
能解释一下这两题的 意思吗? 详细点的 追加 展开
2个回答
展开全部
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
你太粗心了 两题代码不是一样的吗
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
额,两题不一样吗?
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
额,两题不一样吗?
追问
不一样的 两题都解释一下好不呀
追答
代码完全一样啊?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询