当前位置:文档之家› 函数概述和函数的定义及使用

函数概述和函数的定义及使用


6.1 函数概述
一个C++程序里包含一个主函数(即main函数)和 程序里包含一个主函数( 函数) 一个 程序里包含一个主函数 函数 若干个其它函数。由主函数调用其它函数 其它函数, 若干个其它函数。由主函数调用其它函数,其它函数之 间也可以互相调用。 间也可以互相调用。 main 函数 a d e f b g h h c n
函数体
函数体是实现函数功能的代码部分,通常包括: 函数体是实现函数功能的代码部分,通常包括:
− 变量声明(局部变量声明) 变量声明( 声明) − 完成函数功能的语句
变量声明 函数体 完成功能
从组成结构看, 从组成结构看,函数体是 由程序的三种基本控制结 顺序、 构即顺序 选择、循环结 构即顺序、选择、循环结 构组合而成的。 构组合而成的。
2010-12-26
- 20 -
6.2 函数的定义及使用
形参表
给出此函数所需参数的定义。 给出此函数所需参数的定义。 形式: 形式:( 类型 1 形式参数 1 ,… ,类型 n 形式参数 n ) 形参表从参数的类型、 形参表从参数的类型、个 类型 排列顺序上规定了主 数、排列顺序上规定了主 调函数和被调函数之间信 息交换的形式。 息交换的形式。
2010-12-26
- 25 -
6.2 函数的定义及使用 函数是由函数名、函数类型、形参 表和函数体四部分组成的,使用时通过函 数名和参数表调用函数。 C++中所有函数的定义都是并行进 行的,不允许函数的嵌套定义。
2010-12-26
- 26 -
示范实例
【例6_1_3】使用自定义函数 】使用自定义函数max编写一个求两个整数中 编写一个求两个整数中 最大值的程序。 最大值的程序。
- 16 -
6.1 函数概述
四、C++中函数的类别 中函数的类别
2、按照函数的调用方法(使用方法) 、按照函数的调用方法(使用方法) 调用方法 C++函数 函数 主调函数 被调函数
2010-12-26
- 17 -
第 6 章 函数
6.1 函数概述 6.2 函数的定义及使用 6.3 函数调用 6.4 数组作为函数参数 6.5 变量的作用域和生存期
6.1 函数概述 6.2 函数的定义及使用 6.3 函数调用 6.4 数组作为函数参数 6.5 变量的作用域和生存期
2010-12-26
-7-
6.1 函数概述
一、问题的提出
程序结构清晰,容易理解, 程序结构清晰,容易理解, 便于分工、分步骤编写, 便于分工、分步骤编写,
【例6_1_1】设计一个洗衣服工作的小程序。 】设计一个洗衣服工作的小程序。 开始 流程用如下示意代码表示: 流程用如下示意代码表示: main ( ) 取出脏衣服 { int n; /*脏衣服的件数 脏衣服的件数*/ 脏衣服的件数 /*洗衣服操作 洗衣服操作*/ 洗衣服操作 取出适量洗衣粉 x = 取出脏衣服(n); 取出脏衣服( ) 把脏衣放入洗衣机 y = 取出洗衣粉() 取出洗衣粉() (); 把脏衣服放入洗衣机( ) 把脏衣服放入洗衣机(x); 把洗衣粉放洗衣机 把洗衣粉放入洗衣机( ) 把洗衣粉放入洗衣机(y); 操作洗衣机( , ) 操作洗衣机(x,y); 操作洗衣机 …… 取出衣服晾晒 取出衣服晾晒( ) 取出衣服晾晒(x);}
2010-12-26
- 18 -
6.2 函数的定义及使用
一、函数定义的一般格式
返回值类型 函数名 ( 形参表 ) { 语句序列 ; [ return 表达式 ; ] }
返回值类型 函数名 形参 函数头 函数体
// 函数头 // 函数体
局部变量/ 局部变量 常量定义
float circleArea ( float r ) { const float PI = 3.14 ; return PI * r * r ; } 返回值语句
程序的执行过程
2010-12-26
- 12 -
6.1 函数概述
二、什么是函数? 什么是函数?
函数是具有一定功能又经常使用的相对独立的代 函数是具有一定功能又经常使用的相对独立的 具有一定功能又经常使用的相对独立 码段。 码段。 C++中的函数和数学上的函数是有所区别的: 中的函数和数学上的函数是有所区别的: 中的函数和数学上的函数是有所区别的 ① 数学上的函数是两个集合之间的一个映射,每个函 数学上的函数是两个集合之间的一个映射, 数都会得到一个结果, 数都会得到一个结果,而C++中的函数可能没有计算 中的函数可能没有计算 结果(当返回值类型是void时); 结果(当返回值类型是 时 数学上的函数没有副作用的, ② 数学上的函数没有副作用的,而C++中的函数可以 中的函数可以 通过全局变量或指针/引用类型的参数来改变调用者的 通过全局变量或指针 引用类型的参数来改变调用者的 数据, 数据,产生副作用 。
2010-12-26
- 15 -
6.1 函数概述
四、C++中函数的类别 中函数的类别
库函数:包括数学 库函数:包括数学 1、按照函数的定义方法(提供者) 函数、 定义方法( 、按照函数的定义方法 提供者) 函数、字符和字符 串处理函数 函数、 串处理函数、输入 / C++函数 函数 输出函数等 函数等。 输出函数等。 用户自定义函数
2010-12-26 - 13 -
6.1 函数概述
三、使用函数的目的
大型程序 实现特定 的功能 … 函数 模块n 模块 函数 函数
模块1 模块 函数 函数 函数
模块 2 函数
基于功能分解和复合的程序结构图 使用函数的目的:实现程序的模块化。 使用函数的目的:实现程序的模块化。
2010-12-26 - 14 -
2010-12-26
结束
-8-
6.1 函数概述
一、问题的提出
【例6_1_2】编写一段程序实现:从键盘输入两个正整数 、 】编写一段程序实现:从键盘输入两个正整数a、 b,求ab 和 ba并输出结果。并对这段程序进行分析改进。 并输出结果。并对这段程序进行分析改进。 , 分析: 分析: ① 两个整型变量 和b,值从键盘输入。 两个整型变量a和 ,值从键盘输入。 变量p,用于存放a 值在程序中求得。 ② 变量 ,用于存放 b或ba,值在程序中求得。 应使用循环结构求a ③ 应使用循环结构求 b和ba 。 输出a ④ 输出 b和ba 。
char str [ ] = { 'C','+','+','p','r','o','g','r','a','m','\0' } ;
② char str [ ] = { "C++program" } ;
char str [ ] = "C++program";
(2)字符数组的输入与输出 字符数组的输入与输出 ①字符数组元素逐个输入/输出—— 利用循环语句 字符数组元素逐个输入 输出 逐个输入 输出—— ②字符数组作为字符串进行整体的输入/输出 字符数组作为字符串进行整体的输入 输出 整体的输入
3、一维数组的典型应用 、 排序算法、插入算法、删除算法、 排序算法、插入算法、删除算法、折半查找法
2010-12-26 -2-
知识回顾
4、字符数组 、 (1)字符数组的声明和初始化 字符数组的声明和初始化 ① char str 9;,'+','p','r','o','g','r','a','m','\0' } ;
2010-12-26
-9-
6.1 函数概述
能否共用一段代码? 能否共用一段代码? 能否像sqrt( )那样使用? 那样使用? 能否像 那样使用
相似, 相似 xy
2010-12-26
- 10 -
6.1 函数概述
用户自定义函数 用户自定义函数 自定义 power( x , y ),功 , 能:求xy
6.2 函数的定义及使用
函数返回值类型
函数返回值类型规定了函数返回给主调函数的值 函数返回值类型规定了函数返回给主调函数的值 的类型,也称为函数类型 函数类型。 的类型,也称为函数类型。 当需要函数向主调 函数返回一个值时 可以用return 语 ,可以用 句将需要返回的值 返回给主调函数, 返回给主调函数, 故称之为返回值 返回值。 故称之为返回值。
编程者根据具体需要定义的 函数。例如: 函数。例如:求最大值函数 max( )、求xy 的power( )等 、 等
C++标准库函数 标准库函数
系统提供的常用标准函数。 系统提供的常用标准函数。 例如:求平方根函数sqrt ( ) 例如:求平方根函数 求正弦值函数sin( )等 、求正弦值函数 等
2010-12-26
用户自定义函 数的调用 调用, 数的调用,求 ab 和 ba 一次定义, 一次定义, 多次调用
2010-12-26 - 11 -
6.1 函数概述
开始执行 cout<<“请输入 请输入… 请输入 cin>>a>>b; int p=1; c=power(a,b); cout<<a …; c=power(b,a); cout<<b …; for(i=1;i<=y;i++) p=p*x; return p;
2010-12-26
- 23 -
6.2 函数的定义及使用
相关主题