结构化程序设计的基本思想是围绕系统功能自顶向下参考课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.什么叫函数
把实现特定功能的相关数据和语句组织在一 起,并给出相应的名称、类型和参数集,成为程 序的一个可调用部分和可共享部分,这种组合形 式称为函数。
3
例4-1 文件处理包括以下几个功能:新建、打开、 关闭、打印,请给出有关文件处理的程序框架。
1)分析
我们将新建、打开、关闭、打印等文件处 理功能描述成四个相对独立的函数,分别是:
i++; return(i); }
函数名:strlen,类型:整型;
形式参数:char s[];s是数组 内部数据பைடு நூலகம்明:int i;
13
4.3 函数原型
1.什么叫函数原型
函数原型是一条特殊的说明语句,用来说 明程序中所引用的函数的名称、函数返回值类 型和参数类型。
函数原型格式上与函数定义的头部大致相同, 但因为是独立的语句,必须以分号结束,并且一 般放在程序的顶部。
14
例4-4 在引用strlen函数的程序中加上其原型说明。
#include <iosteam.h>
int strlen (char *); strlen函数的原型说明 main()
{
……
strlen();
}
int strlen (char s[])
{
……
}
15
2.函数原型的语法
// 函数体
9
}
解释:
➢ 类型标识符:用来说明函数的数据类型,也
即函数调用后所返回的调用结果的数据类型,可 以是int、char、float、double、void等。如果省略 类型标识符的话,则缺省类型是int。如果该函数 的类型无关紧要,一般表示成void。
例如:void main(),double max(double x,double y), main的类型是void而max的类型是double。
数内部所用到的数据对象(变量等),如果函数
没有内部数据,则此部分可以省略。
11
➢ 执行部分,位于函数体内,由若干可执行语
句组成,该部分不能省略。
例4-2 编写一个将小写英文字母转换成大写英文字 母的函数。
char upper(char c) {
char c1; if (c>='a' && c<='z')
函数说明所定义的参数称为“形式参数”,而 函数调用所提供的参数称为“实在参数”。
例如:char upper(char c) 只有一个参数,名称为c, 类型是字符型。
double max(double x,double y) 有两个参数x 和y,类型都是双精度型。
➢ 数据说明部分:位于函数体内,用来说明函
new( )、open( )、close( )、print( )
这些函数都包含了各自的数据和语句,并 且都有各自的外部名称——函数名。
4
2)程序框架
…… //程序头部
void main() {
……
};
new() {
……
};
open() {
……
};
close() {
……
};
print() {
……
5
}
➢ 函数名:C++用标识符作为函数名。函数名具
有变量特征,它用来存放返回值。
例如:sqrt(16) sqrt = 4; 10 upper('a') upper='A';
➢ 参数表:用来说明函数的参数,函数的参数是 函数所提供的数据接口,用来与调用者传递数据。 因此参数说明必须给出参数的名称、类型。允许一 个函数包含0到多个参数,参数之间用逗号分隔。
第四章 函数
结构化程序设计的基本思想是:围绕系统功 能自顶向下,逐步细化和精化。
细化过程:对系统功能逐层分解出许多易于 理解和实现的、逻辑上相对独立的子功能,形成 一棵功能树。
在程序实现时,功能树上的每一个结点, 对应一个函数。
主要内容:
➢ 函数的概念; ➢ 函数的声明(定义)和调用; ➢ 递归的概念和递归函数;
标准函数也称为库函数,是系统定义的函数, c++提供了种类繁多的库函数,具体可以分为:
➢ I/O类,处理I/O操作;
➢文件类,处理二进制文件和缓冲型文件;
➢字符串类,实现字符串运算和字符串操作;
➢内存类,处理内存分配、释放、测试,传送等
工作;
➢系统类,实现系统调用、系统设置以及底层硬
件操作等。
8
4.2 函数定义
➢ 当函数所实现的是程序中频繁使用的一些公共 操作,那么该函数就可以重复调用,也就是所谓 的“代码重用”。 ➢ 若干功能相关的函数可以组成一个模块。
综上所述,合理地使用函数便于功能分解和程 序实现;可以减少程序的重复编写;可以使程序 结构清晰、增强易读性。这就是函数的三大作用。
7
3.函数的分类
通常分为:标准函数、用户自定义函数、类的成 员函数三大类。
1
➢ 内联函数和重载函数; ➢ 数据的存储类别和作用域。
重点:
➢函数的声明和函数调用; ➢递归概念及其应用;
➢数据的存储类别和作用域。
课堂时数:10—12学时
上机时数:4—5学时 课外上机时数:5—6学时
2
4.1 函数的基本概念
我们从结构化程序设计的角度来讨论大程 序的功能分解及其函数实现,进而给出函数的 定义并讨论函数的作用。
程序中使用函数就象使用数据对象一样,必 须先定义后使用。定义函数也称为声明函数。
1.作用
给出函数的名称、类型、参数,描述函数内
部的数据和语句。
2.语法
C++的函数由函数头部(函数原型)和函数
体两部分组成,其语法描述为:
[<类型标识符>] <函数名>([<参数表>]) //函数头部
{
[〈数据说明部分> ]; <执行部分>;
c1=c-32; else
c1=c; return (c1); }
函数名:upper,类型:字符型;
形式参数:char c;
内部数据说明:char c1;
执行部分:if语句和return函 数调用。
12
例4-3 编写计算字符串长度的函数strlen
int strlen (char s[]) {
int i=0; while (s[i]!='\0')
3)调用结构
main
new
open
close
print
main函数分别调用了new、open、close、print 四个函数。
注意:一个C++程序可以包含多个函数,这些函
数在定义层次上必须是相同的,但调用层次却可
以不相同。
6
2.函数的作用
➢ 函数是特定子功能的实现,也即将大程序分割 成若干个小程序(子程序)。每个子程序就是一 个函数,这样既便于理解也便于实现。
把实现特定功能的相关数据和语句组织在一 起,并给出相应的名称、类型和参数集,成为程 序的一个可调用部分和可共享部分,这种组合形 式称为函数。
3
例4-1 文件处理包括以下几个功能:新建、打开、 关闭、打印,请给出有关文件处理的程序框架。
1)分析
我们将新建、打开、关闭、打印等文件处 理功能描述成四个相对独立的函数,分别是:
i++; return(i); }
函数名:strlen,类型:整型;
形式参数:char s[];s是数组 内部数据பைடு நூலகம்明:int i;
13
4.3 函数原型
1.什么叫函数原型
函数原型是一条特殊的说明语句,用来说 明程序中所引用的函数的名称、函数返回值类 型和参数类型。
函数原型格式上与函数定义的头部大致相同, 但因为是独立的语句,必须以分号结束,并且一 般放在程序的顶部。
14
例4-4 在引用strlen函数的程序中加上其原型说明。
#include <iosteam.h>
int strlen (char *); strlen函数的原型说明 main()
{
……
strlen();
}
int strlen (char s[])
{
……
}
15
2.函数原型的语法
// 函数体
9
}
解释:
➢ 类型标识符:用来说明函数的数据类型,也
即函数调用后所返回的调用结果的数据类型,可 以是int、char、float、double、void等。如果省略 类型标识符的话,则缺省类型是int。如果该函数 的类型无关紧要,一般表示成void。
例如:void main(),double max(double x,double y), main的类型是void而max的类型是double。
数内部所用到的数据对象(变量等),如果函数
没有内部数据,则此部分可以省略。
11
➢ 执行部分,位于函数体内,由若干可执行语
句组成,该部分不能省略。
例4-2 编写一个将小写英文字母转换成大写英文字 母的函数。
char upper(char c) {
char c1; if (c>='a' && c<='z')
函数说明所定义的参数称为“形式参数”,而 函数调用所提供的参数称为“实在参数”。
例如:char upper(char c) 只有一个参数,名称为c, 类型是字符型。
double max(double x,double y) 有两个参数x 和y,类型都是双精度型。
➢ 数据说明部分:位于函数体内,用来说明函
new( )、open( )、close( )、print( )
这些函数都包含了各自的数据和语句,并 且都有各自的外部名称——函数名。
4
2)程序框架
…… //程序头部
void main() {
……
};
new() {
……
};
open() {
……
};
close() {
……
};
print() {
……
5
}
➢ 函数名:C++用标识符作为函数名。函数名具
有变量特征,它用来存放返回值。
例如:sqrt(16) sqrt = 4; 10 upper('a') upper='A';
➢ 参数表:用来说明函数的参数,函数的参数是 函数所提供的数据接口,用来与调用者传递数据。 因此参数说明必须给出参数的名称、类型。允许一 个函数包含0到多个参数,参数之间用逗号分隔。
第四章 函数
结构化程序设计的基本思想是:围绕系统功 能自顶向下,逐步细化和精化。
细化过程:对系统功能逐层分解出许多易于 理解和实现的、逻辑上相对独立的子功能,形成 一棵功能树。
在程序实现时,功能树上的每一个结点, 对应一个函数。
主要内容:
➢ 函数的概念; ➢ 函数的声明(定义)和调用; ➢ 递归的概念和递归函数;
标准函数也称为库函数,是系统定义的函数, c++提供了种类繁多的库函数,具体可以分为:
➢ I/O类,处理I/O操作;
➢文件类,处理二进制文件和缓冲型文件;
➢字符串类,实现字符串运算和字符串操作;
➢内存类,处理内存分配、释放、测试,传送等
工作;
➢系统类,实现系统调用、系统设置以及底层硬
件操作等。
8
4.2 函数定义
➢ 当函数所实现的是程序中频繁使用的一些公共 操作,那么该函数就可以重复调用,也就是所谓 的“代码重用”。 ➢ 若干功能相关的函数可以组成一个模块。
综上所述,合理地使用函数便于功能分解和程 序实现;可以减少程序的重复编写;可以使程序 结构清晰、增强易读性。这就是函数的三大作用。
7
3.函数的分类
通常分为:标准函数、用户自定义函数、类的成 员函数三大类。
1
➢ 内联函数和重载函数; ➢ 数据的存储类别和作用域。
重点:
➢函数的声明和函数调用; ➢递归概念及其应用;
➢数据的存储类别和作用域。
课堂时数:10—12学时
上机时数:4—5学时 课外上机时数:5—6学时
2
4.1 函数的基本概念
我们从结构化程序设计的角度来讨论大程 序的功能分解及其函数实现,进而给出函数的 定义并讨论函数的作用。
程序中使用函数就象使用数据对象一样,必 须先定义后使用。定义函数也称为声明函数。
1.作用
给出函数的名称、类型、参数,描述函数内
部的数据和语句。
2.语法
C++的函数由函数头部(函数原型)和函数
体两部分组成,其语法描述为:
[<类型标识符>] <函数名>([<参数表>]) //函数头部
{
[〈数据说明部分> ]; <执行部分>;
c1=c-32; else
c1=c; return (c1); }
函数名:upper,类型:字符型;
形式参数:char c;
内部数据说明:char c1;
执行部分:if语句和return函 数调用。
12
例4-3 编写计算字符串长度的函数strlen
int strlen (char s[]) {
int i=0; while (s[i]!='\0')
3)调用结构
main
new
open
close
main函数分别调用了new、open、close、print 四个函数。
注意:一个C++程序可以包含多个函数,这些函
数在定义层次上必须是相同的,但调用层次却可
以不相同。
6
2.函数的作用
➢ 函数是特定子功能的实现,也即将大程序分割 成若干个小程序(子程序)。每个子程序就是一 个函数,这样既便于理解也便于实现。