用 /4 » 1-1/3+1/5-1/7+...公式求的近似值,直到最后一项小余10的负6次方为止。

PrivateSubCommand1_Click()DimpiAsDouble,jAsDouble,kAsIntegerDoi=i+1j=1/(2*i-1)k=(-1)^... Private Sub Command1_Click()
Dim pi As Double, j As Double, k As Integer
Do
i = i + 1

j = 1 / (2 * i - 1)

k = (-1) ^ (i + 1)

pi = pi + j * k

Loop While j < 10 ^ (-6)

Print "PI="; 4 * pi

End Sub
哪错了?
我是新手,
展开
 我来答
woai890827
2010-04-10
知道答主
回答量:10
采纳率:0%
帮助的人:10.7万
展开全部
公式中每一项的表达式是(-1)^(n-1)/(2*n-1),你的输入就有错误,而且在左后应该是pi=pi+j/k,最后在输入精确度的时候你用的是while,就不应该是<而应该是>,在输入精确度时要用abs函数,是绝对值的意思,跌代的时候经常会变成负数,你不取绝对值的话,第一轮迭代就退出了,根本没有多次循环,肯定不准了。提供参考的代码
Dim a As Double, n As Single, t As Single
a = 0: n = 1: t = 1
Do
t = ((-1) ^ (n - 1)) / (2 * n - 1)
n = n + 1
a = a + t
Loop while abs( t )>0.000001
Print "pi=" & a * 4
匿名用户
2010-04-09
展开全部
j>10^(-6)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式