5多函数程序设计.ppt

  1. 1、本文档共71页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5多函数程序设计

《解析C程序设计》第2章 简单程序设计 上次作业中的问题 思路不清,尤其是迭代法 两种理解: 计算完这一次,还要为下一次准备数据。 每次都要完成的工作,除了按照迭代公式(方法)处理数据以外,还有其它的步骤。 对于多重穷举,要一层一层地来,别忘了在循环体中加上必要的{} 第5部分 多函数程序设计 本讲重点 掌握多函数程序设计方法 理解为何定义多函数? 函数的定义、调用、声明格式 理解函数的调用过程(程序的执行过程) 理解递归函数的执行过程 掌握变量的作用域和存储类型两个概念 掌握带参数的宏定义的用法,以及与函数的区别 能够熟练编写多函数程序 先看一个大型实例 程序的结构: 编译预处理命令 其它必要的定义 其它函数声明 主函数 其它函数定义 结论: C程序是由很多个函数组成的。 C语言中关于函数有三个主要内容: 函数定义 函数调用 函数声明 为什么定义函数? 大型任务总要由多人完成,因此,在编程之前,一定要将任务划分成多个功能独立的模块,再分别分配给多个程序分别编程实现。 函数可以复用,以节省开发时间。每个函数,就象一块雕刻好的积木,可以直接用来构建新的程序。 模块化的几个原则 模块分解的原则 保证模块的相对独立性 高聚合:一个模块只能完成单一的功能,代码一般几十行。 低耦合:指模块之间参数传递尽量少,尽量不通过全局变量来实现数据传递 信息隐藏 把所有用户不需要关心的细节隐藏至模块内部。 我们怎么做? 关键是如何分段。 比较独立的、完整的功能分为一个函数,一般函数十几行。 函数定义时注意与被调函数之间的沟通与联系,即参数传递与返回两个方向的数据流动。 在讲例题的时候请注意这两点 例1:定义一个函数,求梯形面积 先完成一个数学函数的定义:   s(a,b,h)=(a+b)*h/2 自变量 函数名 函数公式 编写函数必须考虑的三个内容: 先来考虑这个任务需要什么必要的数据,都是什么类型?(形式参数) 有没有结果,结果又是什么类型?(返回值) 应该完成什么功能?如何实现?(函数功能) 分析结果 /*函数功能:求梯形面积  函数形式参数:    float a表示上底    float b表示下底    float h表示高  函数返回值:梯形面积(float类型) */ 涉及的语法 -函数定义格式 /*函数功能:实现××××功能 函数形式参数:参数1,表示××××× 参数2,表示××××× ... 函数返回值: ××××× */ 返回值类型 函数名(形式参数列表) { 函数体 } 函数定义 /*函数功能:求梯形面积  函数参数: float a表示上底,float b表示下底, float h表示高  函数返回值:梯形面积*/ float Area(float a,float b, float h) {  int s = (a+b)*h/2 ; return s; } 在main函数中怎样调用呢? #includestdio.h float Area (float,float,float);/*函数声明:一般写在最前面*/ /*下面是Area函数的定义*/ float Area (float a,float b, float h) /*函数头部,无分号*/ { return (a+b)*h/2; } /*Area函数定义结束*/ void main( ) /*定义main函数*/ { float a,b,h,area;/*为区分函数与变量,一般变量是全小写*/  printf( please input a,b,h: ); scanf(%f%f%f, a, b, h);/*假设输入的数据是1,2,3*/ area= Area (a,b,h); /*函数调用,相当于数学函数的代入,a,b,h有确切的数值,因此称为实参,函数的返回值赋值给area,相当于计算area=Area(1,2,3)*/ printf( area=%f\n, area); } 运行过程 #includestdio.h float s(float,float,float);/*函数声明*/ float s(float a,float b, float h) { return (a+b)*h/2; } void main() { float a,b,h,area;  printf( please input a,b,h: ); scanf(%f%f%f, a, b, h); area= s(a,b,h); /*实参向形参单向传递数值*/ printf( area=%f\n, area); } 涉及的语法 -函数调用(call) 调用即使用已经定义好的函数。 调用函数时,必须提供所有的参数 p

文档评论(0)

wuyuetian + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档