知识大全 用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] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 程序首先在I
用Delphi编写打印程序的窍门 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 如果你想自己用D
用Delphi编写数据报存储控件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!一概述 在用D
用Delphi来编写蠕虫病毒浅析[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!前言 可能大
用Delphi来编写蠕虫病毒浅析[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!下面我综合上面
用Delphi编写系统进程监控程序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!本程序通过调用ke
用Delphi编程模拟鼠标操作 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!本实例介绍如何在自己的
利用Delphi2005编写C#应用程序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!Delphi
利用Delphi编写Socket通信程序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!笔者在工作中
Delphi编写你的第一个COM程序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!DELPHI菜单