保定学院学报2010年第3期收稿日期:2010-04-09

作者简介:荆霜雁(1965-),女,河北保定人,工学硕士,副教授,主要研究方向为计算机基础教育、程序设计.

文章编号:1674-2494(2010)03-0070-03

摘要:结合圆周率(π)的近似计算公式,分析C 程序设计中几种常用设计思想,给出了π计算

算法及源代码,以探讨启发、训练学生编程思维的方法.

关键词:圆周率;循环;数组;函数;递归调用

中图分类号:TP311.11文献标识码:A

圆周率计算的C 程序实现

荆霜雁,吕树进


C 语言是各本专科院校学生学习程序设计的入门课,也是参加计算机等级考试(二级)的首选语言.然而,要想让初涉程序设计的学生真正领会其设计思想并灵活运用,绝非易事.如何在C 语言教学中采用灵活有趣的方式,启发训练学生的编程思维,进而转化成他们主动利用计算机编程、解决实际问题的能力,是我们教学的主要目的.笔者在《C 程序设计》教学中把π的近似计算问题引入实验课,将数学思维与C 程序设计重要思想有机结合,循序渐进地给出4种π近似计算算法及源代码,激发学生学习C 语言的兴趣,为后继学习打下基础.文中源代码除有明确说明出处外,均具原创性,并在VC++6.0环境下测试通过.

1π的近似计算公式

众所周知[1]:tan π4
=1,从而π=4arctan 1,应用泰勒公式将arctan x 展开,就可以得到arctan x =x -x 33+x 55-x 77+…+(-1)n -1x 2n -12n -1
…代入x =1得
π4=1-13+15-17+…+(-1)-n -112n -1
+ (1)

在《C 程序设计》中,这个展开式常用来求π的近似值,直到最后一项的绝对值小于1e-6为止.2循环结构的运用

程序设计教材中,都把利用公式(1)求π的近似值作为循环结构应用的一个范例[2].循环结构是结构化程序设计的基本结构之一.利用循环解决问题的思路是:将问题的求解转化为有规律的重复运算.公式(1)的计算转化为累加,重复运算为:p i =p i +t ;t 体现变化规律:n=n +2,s=-s ,t=s/n .循环条件由t 值控制(fabs (t )>1e-6).代码如下:

#include
#include
void main ()
{int s ;float n ,t ,pi ;
t=1;pi=0;n=1;s=1;
while (fabs (t )>1e-6)
{pi=pi+t ;n=n+2;
s=-s ;t=s/n ;
}