5_多函数程序设计.ppt

  1. 1、本文档共69页,可阅读全部内容。
  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 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);/*假设输入的数据是1,2,3*/ area= s(a,b,h); /*函数调用,相当于数学函数的代入,a,b,h有确切的数值,因此称为实参,函数的返回值赋值给area,相当于计算area=s(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) 调用即使用已经定义好的函数。 调用函数时,必须提供所有的参数 printf和scanf是采用变长变量表定义的函数,所以变量的个数不固定。 提供的参数个数、类型、顺序应与定义时相同 单向值传递 涉及的语法 -函数调用格式 函数调用的一般形式: 函数名(实参列表) 具体调用格式: 有返回值时 放到一个数值表达式中,如area = s(a,b,h); 作为另一个函数调用的参数,如 printf(area=%f\n, s(a,b,h) ); 或者直接参与运算:如: F= pow(a,b) *c 无返回值时 函数调用表达式,如printf(hello!); 注意:main()函数可以调用其它函数,但它不可以被其它函数调用。即:它只能作为主调函数,不能作为被调函数 涉及的语法 -函数原型或函数声明 调用一个函数之前,先要对其返回值类型、函数名和参数进行声明(decla

文档评论(0)

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

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

1亿VIP精品文档

相关文档