• 学前教育
  • 小学学习
  • 初中学习
  • 高中学习
  • 语文学习
  • 数学学习
  • 英语学习
  • 作文范文
  • 文科资料
  • 理科资料
  • 文档大全
  • 当前位置: 雅意学习网 > 小学学习 > 正文

    圆周率是谁发明的_利用Delphi技术直观实现圆周率的精确测算

    时间:2019-01-03 03:38:06 来源:雅意学习网 本文已影响 雅意学习网手机站

      摘 要: 圆周率π是个古老的数据,早在1700多年前祖冲之已将其值精确到小数点后7位,而如今通过计算机程序已能算到十亿位之多。在课堂及平时工作中,直观、迅速、精确的测算出圆周率,对于课程的学习是非常有价值的。这里使用Delphi模拟一种测算圆周率的方法。
      关键词: Delphi技术 模拟 圆周率
      
      1.前言
      在日常的教学及相关工作中,我们经常要介绍并使用圆周率,虽有具体的数据及相关的历史计算事件,但对于学生及普通的人员来说,很难弄懂其的计算原理,印象不深,效果差。本文通过Delphi即Windows平台下的可视化应用程序开发工具,提供一种有效的方法,通过具体的编程技术来高效、直观地完成圆周率的计算。
      2.设计原理
      本程序只是一个概率模拟。首先绘制一个边长为200的正方形,在其中随机生产多个点,该正方形中可以容下一个大圆的四分之一圆。以圆弧为界,在圆弧内的即为圆内点,之外的即为圆外点。由于点数非常之多,几乎布满整个正方形,因此点数就可以看成是其所在区域的面积。则作如下推导:如图1所示,红色区域表示1/4圆内;黄色区域表示圆外。
      红色区域面积∶正方形面积≈红色区域点数∶总点数
      红色区域面积∶正方形面积=1/4圆面积∶正方形面积
      1/4圆面积∶正方形面积≈红色区域点数∶总点数
      π×200×200/4∶200×200≈红色区域点数∶总点数
      π≈4×红色区域点数/总点数
      在区域的点数会出现重复,所以计算机的最终结果与实际π值会有差别,但是当点数足够多时,则可以看成一个非常近似的结果。
      3.功能实现
      3.1控件说明
      本程序有图有数据,因此首先在窗体上设置一Image控件,其主要用于显示图像。在整个窗体生成时则加载,该控件的绘图代码绘制一个外边框为黄色,内部为黑色边长为200的正方形。在显示数据方面,这里采用Label标签控件,使用它的Caption属性用于实时显示圆内点数、圆外点数、当前计算的π值、当前X轴、Y轴的坐标。为了控制方便程序设置了两个按钮用于开始和暂停模拟。窗体最下方设置一个显示当前系统时间的Text文本控件,方便用户进行比对。为了自动快速的进行模拟。程序设置了一个主要控件Timer定时器。其是一个非可视化组件。利用其可以实现自动打点。它的Interval属性在这里十分重要,用于控制Timer触发事件(打点)的时间间隔。单位是ms,默认值1000即1s,这里为了模拟的速度,设置为1,即0.001s。
      程序各控件布局如图2。
      3.2代码实现
      整个窗体在创建时的代码:
      procedure TForm1.FormCreate(Sender: TObject);
      begin
      ′在Image1控件区域内画一个边长为200的正方形作为程序的演示窗口,画亮绿色的正方形演示框
      Image1.Canvas.Brush.Color:=clBlack;
      Image1.Canvas.FillRect(Rect(0,0,199,199));
      Image1.Canvas.Pen.Color:=clyellow;
      Image1.Canvas.Rectangle(0,0,199,199);
      DoubleBuffered:= True;
      end;
      添加Timer控件实现点的绘制和π的计算:
      var
      a,b,i,ii:longint;
      pi:single;
      begin
      ′随机产生坐标点
      i:=random(200);/随机获取0-200以内的整数
      ii:=random(200);
      if (i*i+ii*ii 本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文

    推荐访问:圆周率 测算 直观 精确

    • 文档大全
    • 故事大全
    • 优美句子
    • 范文
    • 美文
    • 散文
    • 小说文章