用Delphi编写圆周率模拟器

用Delphi编写圆周率模拟器,第1张

用Delphi编写圆周率模拟器,第2张

圆周率是一个古老的东西。早在1700多年前,祖冲之就有精确到小数点后七位的数值,而现在可以通过计算机程序计算到十亿位!我是圆周率的粉丝。这个“爱好”至少源于我对这个无理数的热情。我不仅能背到小数点后100位,还从网上搜集了几个计算π的程序。如果你有兴趣,可以去我在nihg.yeah.net的站查一下。

一、模拟器原理

这个程序还使用了计算π值的算法。她只是一个概率模拟,即在一个边长为200的正方形内随机产生若干个点,以一条圆弧为边界分别统计点数。由于点多,几乎覆盖了整个区域。此时,点数可视为其面积的面积。可以推导如下:

蓝色区域中的点数:总数≈蓝色区域:总面积

蓝色区域的点数:总数≈圆形区域/4:总区域

蓝色区域的点数:总数≈ π× 200× 200/4: 200× 200

π≈ 4×蓝色区域的点数/总点数

当然点的位置会重复,所以结果和π值不一样。但是,当点数足够多的时候,可以看到一个非常接近的结果。

二、程序设计

打开Delphi 7,首先根据图1设计表单:

首先,程序在Image1控件区域绘制一个边长为200的正方形作为程序的演示窗口,所以FormCreate事件如下:

程序TForm1。FormCreate(发件人:to object);

开始

//绘制一个亮绿色正方形演示框

图1。canvas . brush . color:= cl black;

图1。Canvas.FillRect(Rect(0,0,199,199));

图1。canvas . pen . color:= cl lime;

图1。Canvas .矩形(0,0,199,199);

double buffered:= True;

结束;

然后增加一个定时器,实现点的绘制和π的计算:

程序TForm1。Timer1Timer(发送方:to object);

定义变量

a,b,I,ii:longint;

pi,piok:单;

开始

//随机生成坐标点

I:= random(200);

ii:=随机(200);

如果(i*i+ii*ii开始

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 用Delphi编写圆周率模拟器

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情