信息学奥赛课课通-第6单元电子课件.ppt





《信息学奥赛课课通-第6单元电子课件.ppt》由会员分享,可在线阅读,更多相关《信息学奥赛课课通-第6单元电子课件.ppt(67页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 高等教育出版社高等教育出版社 第第 6 单元单元 函数函数作者:林厚从作者:林厚从信息学奥赛课课通(信息学奥赛课课通(C+C+)高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)第第 1 课课 模块化编程思想模块化编程思想学习目标学习目标1.体会模块化编程思想。体会模块化编程思想。2.了解函数的功能和调用。了解函数的功能和调用。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)一个一个C+程序无论大小,都由一个或者多个程序无论大小,都由一个或者多个“函数函数”组成,而且其中必须有且只有一个函数组成,而且其中必须有且只有一个函数main(),称(),称之
2、为之为“主函数主函数”,由函数,由函数main()调用其他函数来完成()调用其他函数来完成程序的特定功能。当然,其他函数之间也可以按照规则程序的特定功能。当然,其他函数之间也可以按照规则互相调用。互相调用。C+中的函数由一段相对独立的代码组成,这段代中的函数由一段相对独立的代码组成,这段代码能实现某一项具体、独立、完整的功能。码能实现某一项具体、独立、完整的功能。函数在程序设计中的作用主要有两个,一是函数在程序设计中的作用主要有两个,一是“代码重代码重用用”;二是;二是“问题分解问题分解”。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)代码重用是保证同一个函数可以被一个
3、或多个函数调用代码重用是保证同一个函数可以被一个或多个函数调用任意多次,从而减少重复代码的编写。问题分解可以保证一任意多次,从而减少重复代码的编写。问题分解可以保证一个大的程序(或者说软件),按照模块化编程思想,由大化个大的程序(或者说软件),按照模块化编程思想,由大化小,分解成若干个结构清晰、功能独立、调试方便的函数,小,分解成若干个结构清晰、功能独立、调试方便的函数,甚至给若干人合作完成,从而提高开发效率甚至给若干人合作完成,从而提高开发效率。C+提供了很多常用的系统函数,如输入单个字符的函数提供了很多常用的系统函数,如输入单个字符的函数getchar()等。但是有些函数,必须要加上相关头
4、文件才能使用,例如等。但是有些函数,必须要加上相关头文件才能使用,例如整数取绝对值的函数整数取绝对值的函数abs()、求算术平方根的函数、求算术平方根的函数sqrt()等,必等,必须要包含须要包含“cmath”。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)例例1、曼哈顿距离、曼哈顿距离【问题描述问题描述】平面直角坐标系中位于坐标(平面直角坐标系中位于坐标(x1,y1)的)的i点与位于坐标(点与位于坐标(x2,y2)的)的j点的曼哈顿距离为点的曼哈顿距离为d(i,j)=|x1-x2|+|y1-y2|。请编程输入两。请编程输入两个点的坐标,输出它们之间的曼哈顿距离。个点的
5、坐标,输出它们之间的曼哈顿距离。【输入格式输入格式】一行四个整数(一行四个整数(100以内),分别表示两个点的坐标(以内),分别表示两个点的坐标(x1,y1)和)和(x2,y2)。)。【输出格式输出格式】一行一个整数,表示两个点之间的曼哈顿距离。一行一个整数,表示两个点之间的曼哈顿距离。【输入样例输入样例】105620【输出样例输出样例】19高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)/p6-1-1#include#includeusingnamespacestd;intmain()longlongx1,y1,x2,y2,mht;cinx1y1x2y2;mht=abs
6、(x1-x2)+abs(y1-y2);coutmhtendl;return0;高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)例例2、回文数个数、回文数个数【问题描述问题描述】输入一个正整数输入一个正整数n,求,求1n之间之间“回文数回文数”的个数。回的个数。回文数是指一个数倒过来和原数一样,如文数是指一个数倒过来和原数一样,如12121、11、1221、1是回文数,而是回文数,而1231不是回文数。不是回文数。【输入格式输入格式】一行一个正整数一行一个正整数n,1n10000。【输出格式输出格式】一行一个正整数,表示一行一个正整数,表示1n之间回文数的个数。之间回文数的
7、个数。【输入样例输入样例】12【输出样例输出样例】10高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)【问题分析问题分析】定义一个计数器变量并初始化为定义一个计数器变量并初始化为0,然后穷举,然后穷举1n中的中的每一个整数每一个整数i,判断是否是回文数,是则计数器加一。如何,判断是否是回文数,是则计数器加一。如何判断判断i是回文数呢?是回文数呢?C+系统函数里没有,只能自己编写系统函数里没有,只能自己编写一个。一个。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)/p6-1-2#includeusingnamespacestd;/在此自定义一个函数在
8、此自定义一个函数check(),如果,如果i是回文数返回是回文数返回true,否则返回否则返回falseintmain()intn,i,ans=0;scanf(“%d”,&n);for(i=1;i=n;i+)if(check(i)ans+;printf(“%dn”,ans);return0;高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)实践巩固实践巩固高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)第第 2 课课 函数的定义和调用函数的定义和调用学习目标学习目标1.学会函数的定义和调用。学会函数的定义和调用。2.应用函数解决一些实际问题。应用函数解
9、决一些实际问题。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)C+要求函数必须先定义、后使用。定义函数,就是要要求函数必须先定义、后使用。定义函数,就是要说明函数的返回值类型、函数名、函数参数,以及完成特定说明函数的返回值类型、函数名、函数参数,以及完成特定功能的语句组合(函数体)。功能的语句组合(函数体)。函数的定义和调用函数的定义和调用高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)1.函数的定义函数的定义定义函数的格式如下:定义函数的格式如下:返回值类型返回值类型函数名(参数列表)函数名(参数列表)函数体函数体其中,第一行称为函数头部。函数名
10、是标识这个函数的其中,第一行称为函数头部。函数名是标识这个函数的合法标识符。返回值类型是指一个函数结束后返回给调用者合法标识符。返回值类型是指一个函数结束后返回给调用者的一个的一个“返回值返回值”的数据类型。的数据类型。有些函数的功能是执行一系有些函数的功能是执行一系列操作,而不返回任何值,这种情况下,返回值类型是关键列操作,而不返回任何值,这种情况下,返回值类型是关键字字void。参数列表是当函数被调用时,调用者向函数传递的。参数列表是当函数被调用时,调用者向函数传递的各种各种“参数参数”,此处的参数称为形式参数,参数列表包括参,此处的参数称为形式参数,参数列表包括参数的数据类型和参数名,参
11、数是可选的,没有参数就是数的数据类型和参数名,参数是可选的,没有参数就是“无无参参”函数,但是括号不能省略。函数,但是括号不能省略。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)1.函数的定义函数的定义大括号之间的部分称为大括号之间的部分称为“函数体函数体”,主要包括变量说明,主要包括变量说明语句、表达式语句等。如果有返回值,则函数体内至少有一语句、表达式语句等。如果有返回值,则函数体内至少有一条语句条语句“return表达式表达式”。在执行函数体的过程中,一旦遇到。在执行函数体的过程中,一旦遇到return语句,执行完就立刻退出函数,不再执行后续的语句。语句,执行完就
12、立刻退出函数,不再执行后续的语句。无返回值函数不需要无返回值函数不需要return语句。语句。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)2.函数的调用函数的调用在程序中以任何方式对函数的使用,都称为函数的调用。在程序中以任何方式对函数的使用,都称为函数的调用。函数调用是通过函数调用是通过“函数名函数名”进行的,进行的,一般格式为:一般格式为:函数名(参数列表)函数名(参数列表)此处的参数列表称为此处的参数列表称为“实际参数实际参数”,是传递给调用函数,是传递给调用函数的,必须严格对应函数定义时函数头部的形式参数列表,包的,必须严格对应函数定义时函数头部的形式参数列表
13、,包括参数个数、参数顺序、数据类型。调用无参函数时参数列括参数个数、参数顺序、数据类型。调用无参函数时参数列表可以没有,但括号不能省略。如果参数列表包含多个参数,表可以没有,但括号不能省略。如果参数列表包含多个参数,则各参数间用逗号隔开。则各参数间用逗号隔开。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)函数调用方式函数调用方式以函数在程序中出现的位置和形式来看,函数调用方式以函数在程序中出现的位置和形式来看,函数调用方式分为三种。分为三种。(1)函数调用作为一条独立语句,完成一件事情(一)函数调用作为一条独立语句,完成一件事情(一系列操作),没有任何返回值。例如:系列
14、操作),没有任何返回值。例如:print(n);doit(dep,total);input();(2)函数调用的结果作为表达式的一部分。例如:)函数调用的结果作为表达式的一部分。例如:intt=compute(i,j)+i*j;(3)以实参形式出现在其他函数调用中。例如:)以实参形式出现在其他函数调用中。例如:number=min(sum(-5,100),n);num=max(max(a,b),c);高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)例例1、阅读程序,写出程序的运行结果,体会、阅读程序,写出程序的运行结果,体会“代码代码重用重用”和和“有返回值函数有返回值函
15、数”的调用。的调用。/p6-2-1#includeusingnamespacestd;intfac(intn)intz=1;for(inti=1;i=n;i+)z=z*i;returnz;intmain()intx=fac(5)+fac(4);/函数调用出现在表达式中函数调用出现在表达式中coutxendl;return0;高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)例例2、阅读程序,写出程序的运行结果,体会、阅读程序,写出程序的运行结果,体会“无返无返回值函数回值函数”的调用。的调用。/p6-2-2#includeusingnamespacestd;voidmaxn
16、um(intx,inty)intw=xy?x:y;coutwendl;intmain()inta=5,b=22;maxnum(a,b);/函数调用作为一条独立语句函数调用作为一条独立语句return0;高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)例例3、阅读程序,写出程序的运行结果,体会函数的、阅读程序,写出程序的运行结果,体会函数的“提前声明提前声明”。/p6-2-3#includeusingnamespacestd;intbig(intx,inty);/函数的提前声明函数的提前声明intmain()intx,y,z;cinxyz;coutbig(big(x,y),
17、z)y)returnx;elsereturny;高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)例例4、统计闰年、统计闰年【问题描述问题描述】输入两个年份输入两个年份x和和y,统计并输出公元,统计并输出公元x年到公元年到公元y年之年之间的所有闰年数(包括间的所有闰年数(包括x年和年和y年),年),1xy3000。【输入格式输入格式】一行两个正整数表示一行两个正整数表示x和和y,之间用一个空格隔开。,之间用一个空格隔开。【输出格式输出格式】一行一个正整数,表示公元一行一个正整数,表示公元x年到公元年到公元y年之间的所有闰年之间的所有闰年数。年数。【输入样例输入样例】2000
18、2004【输出样例输出样例】2高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)/p6-2-4#includeusingnamespacestd;boolrn(intn)if(n%4=0)&(n%100!=0)|(n%400=0)returntrue;elsereturnfalse;intmain()intx,y,t=0;cinxy;for(inti=x;i=y;i+)if(rn(i)t+;couttendl;return0;高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)例例5、数的分离、数的分离【问题描述问题描述】定义一函数定义一函数digit(n
19、,k)分离出整数分离出整数n从右边数第从右边数第k个数字。个数字。如如digit(2076,1)等于等于6,而,而digit(2076,5)等于等于0。main函数输函数输入入n和和k,调用,调用digit(n,k)输出答案,输出答案,n在在longlong范围内。范围内。【输入格式输入格式】一行两个整数分别表示一行两个整数分别表示n和和k,之间用一个空格隔开。,之间用一个空格隔开。【输出格式输出格式】一行一个整数,表示整数一行一个整数,表示整数n从右边数第从右边数第k个数字。个数字。【输入样例输入样例】318593【输出样例输出样例】8高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛
20、课课通(C+)/p6-2-5#includeusingnamespacestd;intdigit(longlongn,intk)inttmp;for(inti=1;ink;coutdigit(n,k)endl;return0;高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)实践巩固实践巩固高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)第第 3 课课 函数的参数函数的参数学习目标学习目标1.理解形式参数与实际参数。理解形式参数与实际参数。2.理解参数传递的三种方式。理解参数传递的三种方式。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通
21、(C+)函数的参数函数的参数参数是函数与函数之间实现通信的数据参数是函数与函数之间实现通信的数据“接口接口”。函数。函数调用的过程就是调用者带着实际参数(如果有)执行函数,调用的过程就是调用者带着实际参数(如果有)执行函数,将实际参数将实际参数“传递传递”给形式参数,执行完函数体后再将计算给形式参数,执行完函数体后再将计算得到的返回值传递给调用者(如果有)。得到的返回值传递给调用者(如果有)。在未调用函数前,函数中的形式参数并不分配内存在未调用函数前,函数中的形式参数并不分配内存空间。只有在被调用执行时,才被分配临时存储空间。函数空间。只有在被调用执行时,才被分配临时存储空间。函数调用结束后,
22、形式参数的内存空间将被操作系统立刻收回。调用结束后,形式参数的内存空间将被操作系统立刻收回。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)函数的参数函数的参数实际参数可以是任何符合形式参数类型的常量、变量、实际参数可以是任何符合形式参数类型的常量、变量、表达式。函数参数传递的过程就是实际参数和形式参数相结表达式。函数参数传递的过程就是实际参数和形式参数相结合的过程,必须遵守三个一致。合的过程,必须遵守三个一致。(1)个数一致。个数一致。(2)顺序一致。顺序一致。(3)类型一致。类型一致。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)例例1、打印字
23、符三角形、打印字符三角形【问题描述问题描述】编写一个函数编写一个函数print(n,ch),表示打印一行,表示打印一行n个英文字母个英文字母ch,并换,并换行。然后,在函数行。然后,在函数main()中输入中输入n和和ch,调用函数,调用函数print()打印一个字打印一个字符三角形。符三角形。【输入格式输入格式】一行一个整数一行一个整数n和一个英文字母和一个英文字母ch,之间用一个空格隔开,之间用一个空格隔开,1n20。【输出格式输出格式】n行,第行,第i行有行有i个字母个字母ch。【输入样例输入样例】3a【输出样例输出样例】aaaaaa高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥
24、赛课课通(C+)/p6-3-1#includeusingnamespacestd;voidprint(inti,charch)for(intj=1;j=i;j+)coutch;coutnch;for(inti=1;i=n;i+)print(i,ch);return0;高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)函数参数的传递方式函数参数的传递方式根据不同的应用需求,函数参数的传递方式,或者说函根据不同的应用需求,函数参数的传递方式,或者说函数参数的调用方式分为三种:数参数的调用方式分为三种:(1)传值(调用)传值(调用):参见例参见例2;(2)传址(调用)传址(调用)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息学 奥赛课课通 单元 电子 课件

限制150内