南京大学计算机科学与技术系:《程序设计(C++)》课程教学资源(PPT讲稿,基础篇)05 过程(功能)抽象——函数(基础)

五、过程(功能)抽象 一一函数 (基础部分)
五、过程(功能)抽象 --函数 (基础部分)

主要内容 ■基于过程抽象的程序设计 ■子程序 ■C++函数 ·变量的局部性(局部变量与全局变量) ·C++程序的多模块结构 标准库函数
主要内容 ◼ 基于过程抽象的程序设计 ◼ 子程序 ◼ C++函数 ◼ 变量的局部性(局部变量与全局变量) ◼ C++程序的多模块结构 ◼ 标准库函数

基于过程抽象的程序设计 人们在设计一个复杂的程序时,经常会用到功能分 解和复合两种手段: 。功能分解:把程序的功能分解成若干子功能,每个子功能 又可以分解成若干子功能,等等,直到最终分解出的子功 能相对简单、容易实现为止,从而形成了一种自顶向下 (top-down)、逐步精化(step-wise)的设计过程。 功能复合:先设计子功能,然后把已有子功能逐步组合成 更大的子功能,最后得到完整的系统功能,从而形成一种 自底向上(bottom-up)的设计过程
基于过程抽象的程序设计 ◼ 人们在设计一个复杂的程序时,经常会用到功能分 解和复合两种手段: • 功能分解:把程序的功能分解成若干子功能,每个子功能 又可以分解成若干子功能,等等,直到最终分解出的子功 能相对简单、容易实现为止,从而形成了一种自顶向下 (top-down)、逐步精化(step-wise)的设计过程。 • 功能复合:先设计子功能,然后把已有子功能逐步组合成 更大的子功能,最后得到完整的系统功能,从而形成一种 自底向上(bottom-up)的设计过程

System A B E 图4-1基于功能分解和复合的程序结构 功能分解和复合的程序设计基于了一种抽象机制-- 功能抽象(过程抽象):一个功能的使用者只需要 知道相应功能是什么(what to do),而不必知道 它是如何做的(how to do)
◼ 功能分解和复合的程序设计基于了一种抽象机制-- 功能抽象(过程抽象):一个功能的使用者只需要 知道相应功能是什么(what to do),而不必知道 它是如何做的(how to do)

子程序 ■ 子程序是取了名的一段程序代码,在程序中 通过名字来使用(调用)它们。 血子程序的作用: 。减少重复代码,节省劳动力 。实现过程抽象 封装和信息隐藏的作用 语言功能的扩充
子程序 ◼ 子程序是取了名的一段程序代码,在程序中 通过名字来使用(调用)它们。 ◼ 子程序的作用: • 减少重复代码,节省劳动力 • 实现过程抽象 • 封装和信息隐藏的作用 • 语言功能的扩充

子程序之间的数据传递 一个子程序所需要的数据往往要从调用者(也是 个子程序)那里获得,计算结果也需要返回给 调用者。 ■子程序之间的数据传递方式: ·全局变量:所有子程序都能访间到的变量。(不好!) 参数: ■形式参数(形参):用于被调用者接受数据 实在参数(实参):用于调用者提供数据 值传递:把实参的值复制一份给形参。 地址或引用传递:把实参的地址传给形参。 返回值机制:返回计算结果
子程序之间的数据传递 ◼ 一个子程序所需要的数据往往要从调用者(也是 一个子程序)那里获得,计算结果也需要返回给 调用者。 ◼ 子程序之间的数据传递方式: • 全局变量:所有子程序都能访问到的变量。(不好!) • 参数: ◼ 形式参数(形参):用于被调用者接受数据 ◼ 实在参数(实参):用于调用者提供数据 ◼ 值传递:把实参的值复制一份给形参。 ◼ 地址或引用传递:把实参的地址传给形参。 • 返回值机制:返回计算结果

C++函数 ■C++函数是用于实现子程序的语言成分 int factorial((intn)/求n的阶乘 int f=1; for (int i=2;i<=n;i++)f *i; return f; 111011 cout <factorial(4)<endl;
C++函数 ◼ C++函数是用于实现子程序的语言成分。 int factorial(int n) //求n的阶乘 { int f=1; for (int i=2; i<=n; i++) f *= i; return f; } ...... cout << factorial(4) << endl;

函数的定义 ■函数的定义格式为: () 。≤描述了函数返回值的类型, ■可以为任意的C++数据类型。 当返回值类型为void时,它表示函数没有返回值。 。用于标识函数的名字,用标识符表示。 描述函数的形式参数,由零个、一个或多 个形参说明(用逗号隔开)构成,形参说明的格式为:
函数的定义 ◼ 函数的定义格式为: () • 描述了函数返回值的类型, ◼ 可以为任意的C++数据类型。 ◼ 当返回值类型为void时,它表示函数没有返回值。 • 用于标识函数的名字,用标识符表示。 • 描述函数的形式参数,由零个、一个或多 个形参说明(用逗号隔开)构成,形参说明的格式为:

·为一个,用于实现相应函 数的功能。 函数体内可以包含return语句,格式为: ●return: ·return;/返回值类型为void 当函数体执行到return语句时,函数立即返回到调用 者。如果有返回值,则把返回值带回给调用者。 如果return中的的类型与函数不一致,则进行隐式类型转换,基本原则为:把 转成 对于返回值类型为Void的函数,函数体中也可以没有 return语句,执行完最后一个语句返回。 注意:在函数体中不能用goto语句转出函数体
• 为一个,用于实现相应函 数的功能。 ◼ 函数体内可以包含return语句,格式为: • return ; • return; //返回值类型为void ◼ 当函数体执行到return语句时,函数立即返回到调用 者。如果有返回值,则把返回值带回给调用者。 ◼ 如果return中的的类型与函数 不一致,则进行隐式类型转换,基本原则为:把 转成 。 ◼ 对于返回值类型为void的函数,函数体中也可以没有 return语句,执行完最后一个语句返回。 ◼ 注意:在函数体中不能用goto语句转出函数体

函数定义的例子 double power(double x,intn)/求x的n次幂 if (x =0)return 0; double product=1.0; if(n>=0) while (n 0) { product *x; n-- else while (n 0) { product /x; n++: } return product;
double power(double x, int n) //求x的n次幂 { if (x == 0) return 0; double product=1.0; if (n >= 0) while (n > 0) { product *= x; n--; } else while (n < 0) { product /= x; n++; } return product; } 函数定义的例子
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 南京大学计算机科学与技术系:《程序设计(C++)》课程教学资源(PPT讲稿,基础篇)04 简单数据的描述——基本数据类型与表达式(深入).pptx
- 南京大学计算机科学与技术系:《程序设计(C++)》课程教学资源(PPT讲稿,基础篇)03 程序的流程控制——语句.pptx
- 南京大学计算机科学与技术系:《程序设计(C++)》课程教学资源(PPT讲稿,基础篇)02 简单数据的描述——基本数据类型与表达式(基础).pptx
- 南京大学计算机科学与技术系:《程序设计(C++)》课程教学资源(PPT讲稿,基础篇)01 概述.pptx
- 宣城工业学校:《计算机应用基础(Windows7+Office2010)》课程教学资源(课件讲稿)第1章 计算机基础知识 1.5 数制与编码.pdf
- 软件工程:面向对象程序设计模型中的并发行为(博士论文).pdf
- 南京大学:《自然语言处理 Natural Language Processing(NLP)》课程教学资源(PPT课件讲稿)自然语言处理概述、基于规则的自然语言处理方法(理性方法,传统方法)、机器翻译.ppt
- 中国地质大学(武汉):《计算机维护维修 Computer Load & Repair》课程教学资源(课件讲稿)第十章 辅助系统故障维修.pdf
- 中国地质大学(武汉):《计算机维护维修 Computer Load & Repair》课程教学资源(课件讲稿)第五章 主板系统故障维修.pdf
- 中国地质大学(武汉):《计算机维护维修 Computer Load & Repair》课程教学资源(课件讲稿)第九章 电源系统故障维修.pdf
- 中国地质大学(武汉):《计算机维护维修 Computer Load & Repair》课程教学资源(课件讲稿)第七章 外存系统故障维修.pdf
- 中国地质大学(武汉):《计算机维护维修 Computer Load & Repair》课程教学资源(课件讲稿)第四章 CPU系统故障维修.pdf
- 中国地质大学(武汉):《计算机维护维修 Computer Load & Repair》课程教学资源(课件讲稿)第六章 内存系统故障维修.pdf
- 中国地质大学(武汉):《计算机维护维修 Computer Load & Repair》课程教学资源(课件讲稿)第八章 显示系统故障维修.pdf
- 中国地质大学(武汉):《计算机维护维修 Computer Load & Repair》课程教学资源(课件讲稿)第三章 微机常见故障分析.pdf
- 中国地质大学(武汉):《计算机维护维修 Computer Load & Repair》课程教学资源(课件讲稿)第二章 维修工具与维修方法.pdf
- 中国地质大学(武汉):《计算机维护维修 Computer Load & Repair》课程教学资源(课件讲稿)第一章 微机类型与结构(罗元胜).pdf
- 中国地质大学(武汉):《计算机维护维修 Computer Load & Repair》课程教学资源(试卷习题)参考试题集.pdf
- 中国地质大学(武汉):《计算机维护维修 Computer Load & Repair》课程教学资源(试卷习题)第十章.pdf
- 中国地质大学(武汉):《计算机维护维修 Computer Load & Repair》课程教学资源(试卷习题)第八章.pdf
- 南京大学计算机科学与技术系:《程序设计(C++)》课程教学资源(PPT讲稿,基础篇)06 复合数据的描述——构造数据类型(基础).pptx
- 南京大学计算机科学与技术系:《程序设计(C++)》课程教学资源(PPT讲稿,基础篇)07 过程(功能)抽象——函数(标识符作用域与变量生存期).pptx
- 南京大学计算机科学与技术系:《程序设计(C++)》课程教学资源(PPT讲稿,基础篇)08 复合数据的描述——构造数据类型(指针及其应用).pptx
- 南京大学计算机科学与技术系:《程序设计(C++)》课程教学资源(PPT讲稿,基础篇)10 f函数式、逻辑式程序设计 unctional & logic programming.ppt
- 南京大学计算机科学与技术系:《程序设计(C++)》课程教学资源(PPT讲稿,高级篇)02 数据抽象与封装——对象与类.ppt
- 南京大学计算机科学与技术系:《程序设计(C++)》课程教学资源(PPT讲稿,高级篇)03 操作符重载.ppt
- 南京大学计算机科学与技术系:《程序设计(C++)》课程教学资源(PPT讲稿,高级篇)03-1 λ表达式.ppt
- 南京大学计算机科学与技术系:《程序设计(C++)》课程教学资源(PPT讲稿,高级篇)04 继承-派生类.ppt
- 南京大学计算机科学与技术系:《程序设计(C++)》课程教学资源(PPT讲稿,高级篇)05 泛型(类属)程序设计-模板.ppt
- 南京大学计算机科学与技术系:《程序设计(C++)》课程教学资源(PPT讲稿,高级篇)07 异常处理.ppt
- 南京大学计算机科学与技术系:《程序设计(C++)》课程教学资源(PPT讲稿,高级篇)08 消息(事件)驱动的程序设计.ppt
- 南京大学计算机科学与技术系:《程序设计(C++)》课程教学资源(PPT讲稿,高级篇)09 转移构造函数 & 转移赋值操作符重载函数.ppt
- 聊城大学:《MATLAB语言及应用 MATLAB Language and Application》课程教学资源(教学大纲,葛广英).pdf
- 聊城大学:《MATLAB语言及应用 MATLAB Language and Application》课程教学资源(课件讲稿,上)第1章 Matlab软件入门(葛广英).pdf
- 聊城大学:《MATLAB语言及应用 MATLAB Language and Application》课程教学资源(课件讲稿,上)第2章 MATLAB的程序设计(2.1-2.2).pdf
- 聊城大学:《MATLAB语言及应用 MATLAB Language and Application》课程教学资源(课件讲稿,上)第2章 程序设计和M文件(2.3-2.5).pdf
- 聊城大学:《MATLAB语言及应用 MATLAB Language and Application》课程教学资源(课件讲稿,上)第2章 程序设计和M文件 2.4 M文件.pdf
- 聊城大学:《MATLAB语言及应用 MATLAB Language and Application》课程教学资源(课件讲稿,上)第3章 MATLAB图形图像处理(1/2).pdf
- 聊城大学:《MATLAB语言及应用 MATLAB Language and Application》课程教学资源(课件讲稿,上)第3章 MATLAB图形图像处理(2/2).pdf
- 聊城大学:《MATLAB语言及应用 MATLAB Language and Application》课程教学资源(课件讲稿,上)第4章 SIMULINK仿真.pdf