面向对象程序设计7.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七章 函数 结构化程序设计 结构化程序设计主要原则: (1) 自顶向下逐步求精的原则:由粗到细,一步步展开。 (2)模块化设计应遵循各种各样的原则,其中最重要的原则是模块的独立性原则:尽量减少模块之间的联系(耦合)、增强模块内部各成份间的联系(内聚)。 (3)结构化编程:在编写程序时,强调使用几种基本控制结构(顺序结构、选择结构、循环结构),通过组合嵌套,形成程序的控制结构。尽可能避免使用GOTO语句。 结构化程序设计的主要原则 ★使用语言中的顺序、选择、循环等有限的基本控制结构表示程序逻辑。 ★选用的控制结构只准许有一个入口和一个出口。 ★程序语句组成容易识别的块,每块只有一个入口和一个出口。 ★复杂结构应该用基本控制结构进行组合嵌套来实现。 自顶向下,逐步求精 ★在详细设计和编码阶段,应当采取自顶向下,逐步求精的方法。 ★把一个模块的功能逐步分解,细化为一系列具体的步骤,进而翻译成一系列用某种程序设计语言写成的程序。 自顶向下,逐步求精方法的优点 ★符合人们解决复杂问题的普遍规律。可提高软件开发的成功率和生产率 ★用先全局后局部,先整体后细节,先抽象后具体的逐步求精的过程开发出来的程序具有清晰的层次结构,程序容易阅读和理解 结构化编程 (Wirth): 程序 =(算法) + (数据结构) 模块化设计的优点: 1、降低问题的复杂度,减小软件开发的工作量。 2、提高了软件的清晰性,使得软件容易理解、容易测试、容易维护。 而函数是模块化设计得以实现的技术基础。 主要内容 7.1函数的概念 7.2函数的定义 7.3函数的调用 7.4函数的返回值 7.5函数参数及函数间的数据传递 7.6函数的嵌套与递归 7.7变量的存储类型及其作用域 7.8内部函数和外部函数 7.9应用举例 7.1函数的概念 Exam7.1.1 #include stdio.h int volume(int a,int b,int c){ int v; v=a*b*c; return(v); } void main(){ int a,b,c,v; printf(input three numbers\n); scanf(%d%d%d,a,b,c); v=volume(a,b,c); printf(v=%d,v); } 说明: 一个C程序有且只有一个main()函数,且程序从此开始运行。 一个C程序有一个或多个函数构成。 C语言中的函数互相独立,不能嵌套。 除main()函数外,其他函数是通过调用来执行的。 自定义函数必须先定义后使用。 任何函数不能调用main()函数。 7.2 函数的定义 函数的定义格式: [存储类型][类型说明符]函数名([形式参数表]) { 说明部分; 语句部分; } long fact(int x){ long y; for(y=1;x0;--x) y=y*x; return y; } 7.3 函数的调用 函数的调用格式及执行过程 格式:函数名([实参表]); 说明: 实参表中的类型、个数、顺序必须与函数定义时的形参完全一样。 实参可以是常量、有值的变量或表达式。 注意实参表的求值顺序随C语言版本的不同而不同。 例7.3.1 实参求值顺序举例 #includestdio.h void f(int a,int b){ printf(a=%d,b=%d\n,a,b); } void main(){ int i=1; f(i,++i); } 7.4 函数的返回值 返回语句的格式: return(表达式); 或:return 表达式; 如:return (a); return b; 说明: 系统默认返回值为int; 当函数有返回值时,凡是允许表达式出现的地方,都可以调用该函数。 函数无返回值时,函数类型说明为void类型; 函数类型与return与语句中的表达式一般应一致,否则将进行自动类型转换 ; 无返回值的函数不需要使用return语句; 7.5 函数参数及函数间的数据传递 1、函数的形式参数出现被调用函数中,如: void power(int a,int b){…}; 函数的实际参数出现在调用函数中,如: x=power(2,3); 对于实参,在调用函数时必须有确定的意义,即有具体的值;而对于形参,定义时仅指明它的类型,并不在内存中为它们分配存储单元。函数被调用时,临时分配单元给形参,调用完毕, 这些单元被释放。 2

文档评论(0)

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

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

1亿VIP精品文档

相关文档