函数和结构化编程ppt课件

上传人:bin****86 文档编号:54691470 上传时间:2018-09-17 格式:PPT 页数:94 大小:599KB
返回 下载 相关 举报
函数和结构化编程ppt课件_第1页
第1页 / 共94页
函数和结构化编程ppt课件_第2页
第2页 / 共94页
函数和结构化编程ppt课件_第3页
第3页 / 共94页
函数和结构化编程ppt课件_第4页
第4页 / 共94页
函数和结构化编程ppt课件_第5页
第5页 / 共94页
点击查看更多>>
资源描述

《函数和结构化编程ppt课件》由会员分享,可在线阅读,更多相关《函数和结构化编程ppt课件(94页珍藏版)》请在金锄头文库上搜索。

1、第 7 章 函数和结构化编程,学习目标 1掌握源程序结构中函数的组织方法; 2理解结构化程序设计思想,并能利用它来解决问题; 3. 理解函数嵌套调用的概念,并能熟练利用函数的嵌套调用来解决问题; 4理解递推、递归及其算法实现; 5理解编译预处理的概念,能熟练应用宏定义和文件包含; 6了解用户自定义库模块。,7.1 结构化编程,结构化程序设计(Structured Programming)是一种良好的程序设计技术,它由著名计算机科学家EWDijkstra于1969年提出 7.1.1 自顶向下分析问题自顶向下分析问题就是把一个较大的复杂问题分解成几个小问题后再解决。,7.1.2 模块化设计,模块化

2、设计时要遵循模块独立性的原则,即模块之间的联系应该尽量简单。具体体现在: 1一个模块只完成一个指定的功能 2模块间只通过参数进行调用 3一个模块只有一个入口和一个出口 4模块内慎用全局变量在C语言中,模块一般通过函数来实现,一个模块对应一个函数。,7.1.3 结构化编码,经模块化设计后,每个模块都可以独立编码。编程时应选用顺序、选择和循环3种控制结构,并使程序具有良好的风格。 1见名知义命名对象名 2使用注释 3使程序结构清晰 4使程序具有良好的交互性,例: 读入一组整数存入一个整型数组中,要求显示出计数、当前整数、当前数为止的所有整数之和、当前数为止的最小整数以及当前数为止的最大整数。除此之

3、外,假设必须要显示如下所示的标题及标题下方分列显示的信息。,*running sums, minimums, and maximums * Count Item Sum Minimum Maximum,预处理命令/函数原型声明/主函数: #include #include void prn_banner(void); /* 函数声明 */ void prn_headings(void); /* 函数声明 */ void read_and_prn_data(void); /* 函数声明 */ void main(void) prn_banner();prn_headings();read_and

4、_prn_data(); ,显示标题函数: void prn_banner(void) printf(“n*“);printf(“n running sums, minimums, and maximums “);printf(“n*n“); 显示各列上部的标题函数: void prn_headings(void) printf(“%5s%12s%12s “,“Count“,“Item“,“Sum“);printf(“%12s%12snn“,“Minimum“,“Maximum“); 初始化数据并按要求显示函数: void read_and_prn_data(void) int i,sum,s

5、mallest,biggest;int a10=1,2,6,7,0,-6,19,52,10,-10;sum=0;smallest=biggest=a0;for(i=0;i10;i+) sum+=ai;smallest=min(ai,smallest); biggest=max(ai,biggest);printf(“%5d%12d%12d%12d%12dn“,i+1,ai,sum,smallest,biggest);,#include /*预处理命令/函数原型声明/主函数: */ #include void prn_banner(void); /* 函数声明 */ void prn_headi

6、ngs(void); /* 函数声明 */ void read_and_prn_data(void); /* 函数声明 */ void main(void) prn_banner();prn_headings();read_and_prn_data(); getch(); /*显示标题函数:*/ void prn_banner(void) printf(“n*“);printf(“n running sums, minimums, and maximums “);printf(“n*n“); /*显示各列上部的标题函数:*/ void prn_headings(void) printf(“%5

7、s%12s%12s “,“Count“,“Item“,“Sum“);printf(“%12s%12snn“,“Minimum“,“Maximum“); /*初始化数据并按要求显示函数:*/ void read_and_prn_data(void) int i,sum,smallest,biggest;int a10=1,2,6,7,0,-6,19,52,10,-10;sum=0;smallest=biggest=a0;for(i=0;i10;i+) sum+=ai;smallest=min(ai,smallest); biggest=max(ai,biggest);printf(“%5d%12

8、d%12d%12d%12dn“,i+1,ai,sum,smallest,biggest);,7.2 函数的嵌套调用,11,求组合数 ,可以转化为求3次阶乘,#include float fac(int n) int i;float f=1;for(i=2;i=n;i+)f*=i;return f; float cmn(int m,int n) float res;res=fac(m)/(fac(n)*fac(m-n);return res; void main() int m,n;float t;printf(“Input m ,例:求组合数。,#include float fac(int n

9、) int i;float f=1;for(i=2;i1e-10) t1=t1*(even-1)/even; /* t1=1*(1/2)*(3/4)*(5/6) */ odd+=2 ; even+=2; /* t2=1/3 t2=1/5 t2=1/7 */t2=1.0/odd; t3=t3/4.0; /* t3=1/8 t3=1/32 t3=1/128 */t=t1*t2*t3; sum+=t;return sum*6; ,例:A、B、C、D、E合伙夜间捕鱼,凌晨时都已疲惫不堪,各自在河边的树丛中找地方睡着了。目上三竿,A第一个醒来,他将鱼平分作5份,把多余的一条扔回湖中,拿自己的一份回家去了

10、;B第二个醒来,也将鱼平分作5份,把多余的一条扔回湖中,只拿自己的一份;接着C、D、E依次醒来,也都按同样的办法分鱼。问5人至少合伙捕到多少条鱼?每个人醒来后看到的鱼数是多少条?,fish1=5人所捕的总鱼数 fish2=(fish1-1)*4/5 fish3=(fish2-1)*4/5 fish4=(fish3-1)*4/5 fish5=(fish4-1)*4/5 写成一般式为: fishi=(fishi-1-1)*4/5 i=2,3,5,#include void main() int fish6=1,1,1,1,1,1, i;do fish5=fish5+5;for(i=4;i0;i-)if(fishi+1%5=1)fishi=fishi+1*5/4+1;elsebreak;while(fish1=1|fish1%5!=1);for(i=1;i=5;i+)printf(“%10d“,fishi);printf(“n“); ,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号