欢迎来到天天文库
浏览记录
ID:40110939
大小:1.06 MB
页数:37页
时间:2019-07-21
《函数进阶和结构化编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第7章函数进阶和结构化编程学习目标1.掌握源程序结构中函数的组织方法;2.理解结构化程序设计思想,并能利用它来解决问题;3.理解函数嵌套调用的概念,并能熟练利用函数的嵌套调用来解决问题;4.理解递推、递归及其算法实现;5.理解编译预处理的概念,能熟练应用宏定义和文件包含;6.了解用户自定义库模块。7.1结构化编程结构化程序设计(StructuredProgramming)是一种良好的程序设计技术,它由著名计算机科学家E·W·Dijkstra于1969年提出7.1.1自顶向下分析问题自顶向下分析问题就是把一个较
2、大的复杂问题分解成几个小问题后再解决。待解决的问题模块2模块1模块3模块2.1模块2.27.1.2模块化设计模块化设计时要遵循模块独立性的原则,即模块之间的联系应该尽量简单。具体体现在:1.一个模块只完成一个指定的功能2.模块间只通过参数进行调用3.一个模块只有一个入口和一个出口4.模块内慎用全局变量在C语言中,模块一般通过函数来实现,一个模块对应一个函数。7.1.3结构化编码经模块化设计后,每个模块都可以独立编码。编程时应选用顺序、选择和循环3种控制结构,并使程序具有良好的风格。1.见名知义命名对象名2.使用
3、注释3.使程序结构清晰4.使程序具有良好的交互性7.2函数的嵌套调用main函数调用a函数结束a函数调用b函数b函数a函数结束b函数结束函数嵌套调用结构示意图例:设计一个用于计算常用圆形体体积的计算器,该计算器可支持多次反复计算。采用菜单方式输入1或2或3,分别表示需要计算球体、圆柱体和圆锥体的体积,计算时需输入函数所需的相应参数。main函数calculate函数vol_cylind函数vol_ball函数vol_cone函数圆形体体积计算器函数调用结构#include#include4、th.h>#definePI3.141592654voidcalculate(int);voidmain(void){intsel;/*循环选择计算圆形体的体积,直到输入非1~3数字为止*/while(1){printf("tt%s","1--ball");printf("tt%s","2--cylind");printf("tt%s","3--cone");printf("tt%s","other--exit");printf("ttPleaseinputyourselet5、e:");scanf("%d",&sel);if(sel<16、7、sel>3){printf("inputerrorpleaseinput1~3");break;}elsecalculate(sel);}}voidcalculate(intsel){doublevol_ball(void);doublevol_cylind(void);doublevol_cone(void);switch(sel){case1:printf("ball:%.2lf",vol_ball());break;case28、:printf("cylind:%.2lf",vol_cylind());break;case3:printf("cone:%.2lf",vol_cone());break;}}/*ball:v=4/3*PI*r*r*r*/doublevol_ball(){doubler;printf("Pleaseinputr:");scanf("%lf",&r);return4.0/3*PI*r*r*r;}/*cylind:v=PI*r*r*h*/doublevol_cylind(){doubler,h;print9、f("Pleaseinputr&h:");scanf("%lf%lf",&r,&h);returnPI*r*r*h;}/*cone:v=PI*r*r*h/3.0*/doublevol_cone(){doubler,h;printf("Pleaseinputr&h:");scanf("%lf%lf",&r,&h);returnPI*r*r*h/3.0;}7.3递推7.3.1递推的一般概念递推也称为迭代,思路是通过数学推导,将一个复杂的运算化解为若干简单运算的重复执行。例:通过公式:计算的近似值,计算过程在所加项的10、值小于10-10时终止。…#includedoublefun(double);voidmain(){doubleeps=1e-10,sum;sum=fun(eps);printf("PI=%.8lf",sum);}doublefun(doubleeps){doublesum=0.5,t,t1,t2,t3;intodd=1,even=2;t=t1=t2=1.0;t3
4、th.h>#definePI3.141592654voidcalculate(int);voidmain(void){intsel;/*循环选择计算圆形体的体积,直到输入非1~3数字为止*/while(1){printf("tt%s","1--ball");printf("tt%s","2--cylind");printf("tt%s","3--cone");printf("tt%s","other--exit");printf("ttPleaseinputyourselet
5、e:");scanf("%d",&sel);if(sel<1
6、
7、sel>3){printf("inputerrorpleaseinput1~3");break;}elsecalculate(sel);}}voidcalculate(intsel){doublevol_ball(void);doublevol_cylind(void);doublevol_cone(void);switch(sel){case1:printf("ball:%.2lf",vol_ball());break;case2
8、:printf("cylind:%.2lf",vol_cylind());break;case3:printf("cone:%.2lf",vol_cone());break;}}/*ball:v=4/3*PI*r*r*r*/doublevol_ball(){doubler;printf("Pleaseinputr:");scanf("%lf",&r);return4.0/3*PI*r*r*r;}/*cylind:v=PI*r*r*h*/doublevol_cylind(){doubler,h;print
9、f("Pleaseinputr&h:");scanf("%lf%lf",&r,&h);returnPI*r*r*h;}/*cone:v=PI*r*r*h/3.0*/doublevol_cone(){doubler,h;printf("Pleaseinputr&h:");scanf("%lf%lf",&r,&h);returnPI*r*r*h/3.0;}7.3递推7.3.1递推的一般概念递推也称为迭代,思路是通过数学推导,将一个复杂的运算化解为若干简单运算的重复执行。例:通过公式:计算的近似值,计算过程在所加项的
10、值小于10-10时终止。…#includedoublefun(double);voidmain(){doubleeps=1e-10,sum;sum=fun(eps);printf("PI=%.8lf",sum);}doublefun(doubleeps){doublesum=0.5,t,t1,t2,t3;intodd=1,even=2;t=t1=t2=1.0;t3
此文档下载收益归作者所有