知识大全 用Delphi编写圆周率模拟器

Posted 圆周率

篇首语:努力吧,只有站在足够的高度才有资格被仰望。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 用Delphi编写圆周率模拟器相关的知识,希望对你有一定的参考价值。

用Delphi编写圆周率模拟器  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

圆周率π是个古老的东西 早在 多年前祖冲之已将其值精确到小数点后 位 而如今通过计算机程序已能算到十亿位之多!我是个圆周率爱好者 这个 爱好 至少是出于对这个无理数的热衷 我不但可以背诵到小数点后 位 而且还收藏着从网上找到几个计算π的程序 你有兴趣可以到我的小站找一下     一 模拟器原理    本程序并使用计算π值的算法 她只是一个概率模拟 即在边长为 的正方形内随机产生多个点 将点以圆弧为界分开统计 由于点的个数很多 直至几乎布满整个区域 此时 点的个数就可以看作就是它所在区域的面积 可以得到如下推导     蓝色区内点个数 总个数≈蓝色面积 总面积  蓝色区内点个数 总个数≈圆面积/ 总面积  蓝色区内点个数 总个数≈π× × / ×   π≈ ×蓝色区内点个数/总个数    当然 点的位置会重复 所以结果与π值是有差别的 不过 当点足够多时 可以看到一个非常接近的结果     二 程序设计    打开Delphi 首先按照图 设计窗体    >  程序首先在Image 控件区域内画一个边长为 的正方形作为程序的演示窗口 故FormCreate事件如下     procedure TForm FormCreate(Sender: TObject);  begin  // 画亮绿色的正方形演示框  Image Canvas Brush Color:=clBlack;  Image Canvas FillRect(Rect( ));  Image Canvas Pen Color:=cllime;  Image Canvas Rectangle( );  DoubleBuffered := True;  end;  接着放入一个Timer实现点的绘制以及π的计算     procedure TForm Timer Timer(Sender: TObject);  var  a b i ii:longint;  pi piok:single;  begin  // 随机产生坐标点  i:=random( );  ii:=random( );    if (i*i+ii*ii< ) then  begin  // 以 为半径的圆内的点设为蓝色  Image canvas Pen Color:=claqua;  a:=StrToInt(Label Caption);  Label Caption:=IntToStr(a+ );  //显示当前点的坐标  Label Caption:=IntToStr(Image Canvas PenPos X);  Label Caption:=IntToStr(Image Canvas PenPos Y);  end  else  begin  // 超出这个区域的点都在圆外设为黄色  Image Canvas Pen Color:=clyellow;  b:=StrToInt(Label Caption);  Label Caption:=IntToStr(b+ );  end;    // 画点(长为 像素的直线)  Image Canvas MoveTo(i ii);  Image Canvas LineTo(i ii+ );    // 计算pi的值  pi:=( *(StrToInt(Label Caption))/(StrToInt(Label Caption)+StrToInt(Label Caption)));  Label Caption:=FloatToStr(pi);  // Label 显示的是最接近真实pi的值   piok:=StrToFloat(Label Caption);  //得出最接近的圆周率值 piok  if (abs(pi ))<(abs(piok )) then  Label Caption:=FloatToStr(pi);  end;    最后加入两个SpeedButton作为开始和暂停按钮 代码分别是Timer Enabled:=true;和Timer Enabled:=false; 好了 程序这样就完成了 赶快按下F 亲自模拟一下π的计算吧!    三 小结    虽然程序并没有采用圆周率的算法 但能通过随机数对π进行逼近 而由无数点描成的美妙圆弧让我们叹为观止 cha138/Article/program/Delphi/201311/24655

相关参考

知识大全 用Delphi编写圆周率模拟器[2]

用Delphi编写圆周率模拟器[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  程序首先在I

知识大全 用Delphi编写打印程序的窍门

用Delphi编写打印程序的窍门  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  如果你想自己用D

知识大全 用Delphi编写数据报存储控件

用Delphi编写数据报存储控件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!一概述    在用D

知识大全 用Delphi来编写蠕虫病毒浅析[1]

用Delphi来编写蠕虫病毒浅析[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!前言  可能大

知识大全 用Delphi来编写蠕虫病毒浅析[2]

用Delphi来编写蠕虫病毒浅析[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!下面我综合上面

知识大全 用Delphi编写系统进程监控程序

用Delphi编写系统进程监控程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!本程序通过调用ke

知识大全 用Delphi编程模拟鼠标操作

用Delphi编程模拟鼠标操作  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!本实例介绍如何在自己的

知识大全 利用Delphi2005编写C#应用程序

利用Delphi2005编写C#应用程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!Delphi

知识大全 利用Delphi编写Socket通信程序

利用Delphi编写Socket通信程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!笔者在工作中

知识大全 Delphi编写你的第一个COM程序

Delphi编写你的第一个COM程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!DELPHI菜单