只需一步,快速开始
微信扫码登录
1 | 题目
割圆术是指通过圆内接正多边形细割圆,并使正多边形的周长无限接近圆的周长,进而来求得较为精确的圆周率。编写程序实现以上方法,精度要求达到相邻两次计算差值在0.0000001以内。
2 | 设计分析
我们知道圆的内接正六边形的边长a正好等于半径r,根据正六边形,可以推理12边形的边长a12=√(a62/4+(r-√(r2-a62/4))2),简化为a12=√(2*r2-r*√(4r2-a62)),设r=1,则a12=√(2-√(4-a62)),以此类推,以上适用于正24、48、64、……、边形。由于圆的周长近似认为等于内接正多边形的周长(正多边形边数越多越接近),可以求出pi,即n*a=2*pi*r,pi=n*a/2*r,由于半径为1,则pi=n*a/2。
3 | 创建功能或功能块
创建功能块FB,命名为“PiByCyclotomy”。
4 | 定义接口变量
具体接口变量定义见下图:
5 | 程序代码
编写程序代码。如下图:
圆的内接多边形初始值从12开始,后面逐步以2倍循环增加,直到达到题目要求的计算精度退出循环,精度部分采用了科学记数法。
6 | 代码测试
在循环OB中调用FB-“PiByCyclotomy”,调用时会自动创建背景数据块,命名为“InstPiByCyclotomy”,该背景数据块可以用来监视和修改数据。转至在线并监控程序。如下图:
7 | 总结
学习使用REPEAT循环语句;
学习组合赋值运算符的使用;
学习EXIT在循环语句中的作用;
-
您需要 登录 才可以下载或查看,没有账号?注册哦
举报
本版积分规则 发表回复 回帖后跳转到最后一页