基于函数思想的程序设计_03

上传人:痛*** 文档编号:244261882 上传时间:2024-10-03 格式:PPT 页数:42 大小:794KB
返回 下载 相关 举报
基于函数思想的程序设计_03_第1页
第1页 / 共42页
基于函数思想的程序设计_03_第2页
第2页 / 共42页
基于函数思想的程序设计_03_第3页
第3页 / 共42页
点击查看更多>>
资源描述
单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Database&Information System Lab,*,单击此处编辑母版标题样式,http:/,高级语言程序设计,C+,张海威,南开大学信息技术科学学院,基于函数思想的程序设计,函数的基本概念,1,函数编程的基本思想,2,函数程序设计举例,3,函数程序设计练习,4,2,Database&Information System Lab,函数的基本概念,函数的引入,程序中功能相同,结构相似的代码段可以用函数进行描述,程序的功能相对独立,用来解决某个问题,具有明显的入口和出口,入口:参数,出口:返回值,Database&Information System Lab,3,函数的基本概念,函数说明,原型,定义,函数参数,函数返回值,函数的调用,Database&Information System Lab,4,函数的基本概念,Database&Information System Lab,5,函数的基本概念,函数原型,也称为函数声明,用来指明函数的名称、参数以及返回值类型,函数原型格式为:,();,例如,int,add(,int,a,int,b);,inline void,swap(,float,&s,float,void,print(,char,*);,Database&Information System Lab,6,函数的基本概念,函数原型,属性说明:可缺省,一般可以是下面的关键字之一,inline,:表示该函数为内联函数,static,:表示该函数为静态函数,virtual,:表示该函数为虚函数,friend,:表示该函数为某类,(class),的友元函数,返回值类型,函数处理得到的结果的类型,函数名,标识符,Database&Information System Lab,7,函数的基本概念,函数原型,参数表,空参数表,void,printroot();,void,型参数,void,printroot(,void,);,*,float,cuberoot(,float,);,float,cuberoot(,float,x);,Database&Information System Lab,8,函数的基本概念,函数定义,函数定义与函数原型的主要区别是它还包括函数体,其格式为,(),函数体,复合语句即程序块,由完成函数功能所需的全部语句构成,Database&Information System Lab,9,函数的基本概念,函数的说明和定义,“,函数原型,”,的说明方式,“,函数定义,”,的说明方式,Database&Information System Lab,10,#include,using namespace,std;,void,printStar(,int,);,/,函数原型,int,main()printStar(10);,/,调用函数,void,printStar(,int,k),/,函数定义,#include,using namespace,std;,void,printStar(,int,k),/,函数定义,int,main()printStar(10);,/,调用函数,函数的基本概念,函数的说明和定义,两种说明方式的区别,函数原型的参数表中,,参数名可以省略,;函数定义的参数表中,,必须给出参数名(省略参数名为,无名参数,),函数原型的函数体,可以出现在函数调用之后;函数定义的函数体,必须出现在调用之前,函数原型的参数表后面加分号,“,;,”,函数定义的参数表后面是函数体,即花括号,“,”,函数定义不能出现在任何函数体中,函数原型可以出现在其它函数体中,Database&Information System Lab,11,函数的基本概念,函数的参数,C+,语言的函数分为无参函数和有参函数,函数的参数,无参数,一个参数,多个参数,函数参数表的写法,一般写法,省略参数名(无名参数),参数赋初值,Database&Information System Lab,12,函数的基本概念,函数的参数,形参和实参,函数说明中的参数称为,形式参数(形参),,函数调用中的参数称为,实际参数(实参),实参表,在,参数个数,、,参数顺序,、以及,参数类型,等方面要与被调函数的,形参表,之间有一个,一一对应,的,相互匹配,关系,编译器将根据参数的顺序,来逐一实现实参与对应形参的,“,结合,”,,而后执行一遍函数体(而完成本次的函数调用),Database&Information System Lab,13,函数的基本概念,函数的参数,全部数据类型都可以作函数的参数,基本类型,导出类型,用户定义类型,形参与实参的,一致性,注意数组、指针等导出类型作参数时的一致性,Database&Information System Lab,14,函数的基本概念,函数的调用,函数调用是已定义函数的一次实际运行,与某类型的一个变量和后文中某类的一个对象类似,函数调用是函数定义的一个,“,实例,”,在,C+,程序中,除,main,函数外,其它任一函数的执行都是,通过在,main,函数中直接或间接地调用该函数而引发,的。调用一个函数就是,去执行该函数之函数体,的过程,Database&Information System Lab,15,函数的基本概念,函数的调用,函数调用过程,Database&Information System Lab,16,函数的基本概念,函数的调用,函数调用的执行顺序,根据调用语句中的函数名在整个程序中搜索同名函数定义;,对实参数的参数个数,类型,顺序进行核对,判定是否与函数定义中的形参表对应一致,根据参数的类型(值参数或引用参数)进行值参数的值传递或引用参数的换名,运行函数体代码,返回调用点,并返回所要求的函数值,Database&Information System Lab,17,函数的基本概念,函数的调用,无参函数调用格式,(),例如:,printStar();,有参函数调用格式,(),例如:,printStar(26);,Database&Information System Lab,18,函数的基本概念,函数的返回,函数的返回表示函数执行结束,将执行结果(无论是否有具体的数据)返回到调用函数的地方,函数返回时完成的任务,把运行控制从函数体返回到函数调用点,根据返回值要求,返回所需要的数据值,返回值类型,void,数值型,引用类型,Database&Information System Lab,19,函数的基本概念,函数的返回,返回值类型,空型(,void,),如果函数无值返回,应说明为,void,类型。未作类型说明的函数,系统认为是,int,类型函数,应返回一整型值,值型:返回一个具有类型的值,包括,int,、,float,、,char,、,bool,等,当函数要返回的值不止一个时,,情况比较复杂,一般它可以以,结构或类,的形式,也可以以结构,数组或对象,指针类型,方式实现,这样的实例在后面的章节可以见到,引用类型:,详见第,6,章,Database&Information System Lab,20,函数的基本概念,函数的返回,函数返回用,return,语句表示,return,语句有如下几种写法,return,;,/,函数返回值类型为空(,void,),return,;,/,与函数返回值的类型一致,return,(,),;,/,与前一种写法等价,Database&Information System Lab,21,第一种,格式的,return,用于立即从被调函数中返回,当函数,类型为,void,时,应使用这种格式的返回语句。,当函数,类型为非,void,型时,应使用,第二或第三种,格式的,return,语句,此两种格式的语句效果完全相同(可将第二种格式看成是第三种格式的省略形式),系统此时都将计算出表达式的值,并,“,携带,”,该值立即从被调函数中返回,函数的基本概念,无返回值函数,完成固定的功能,例如,输入输出某些数据,有返回值函数,在调用的位置,当做与返回值类型相同的变量使用,例如:函数,add(a,b),,返回值为,int,程序中:,int c=add(a,b);,是将,add(a,b),的值赋给整型变量,c,Database&Information System Lab,22,基于函数思想的程序设计,函数的基本概念,1,函数编程的基本思想,2,函数程序设计举例,3,函数程序设计练习,4,23,Database&Information System Lab,函数的设计思想,任务分解,将要解决的问题分为若干子问题,判断哪些子问题可以用函数实现,函数的设计,设计函数的入口:参数,设计函数的出口:返回值,函数返回值的使用,函数体设计,根据解决问题的逻辑,构造函数体,注意函数返回的时机,Database&Information System Lab,24,函数的设计思想,函数体的构成,对参数进行操作,参数为,“,地址,”,,操作影响实参,对主调函数有影响,参数为,“,数值,”,,操作不影响实参,只有返回值对主调函数有影响,返回语句,分支语句块中,函数体结束前,必须保证函数的每种执行流程,都能返回,Database&Information System Lab,25,函数的设计思想,例,1.,求一元二次方程的平方根,任务分解,输入系数:,a,b,c,求,求实根,函数设计,设计函数求,参数为:,a,b,c,;返回值为值,返回值的使用,大于等于,0,,则将返回值代入求根公式,小于,0,,输出,“,无实根,”,Database&Information System Lab,26,函数的设计思想,例,2.,输入一个字符串,按字符,ASCII,码由小到大的顺序输出,任务分解,输入字符串,由小到大排序,输出排序后的结果,函数设计,排序函数,参数为:字符数组,无返回值,交换函数,参数为:引用类型字符,无返回值,返回值使用,void,型,无返回值,Database&Information System Lab,27,函数的设计思想,例,3.,找出,1000,以内的水仙花数,任务分解,从,1,至,1000,遍历,判断水仙花数,输出水仙花数,函数设计,判断水仙花数,参数为,1000,以内的整数,返回值为,bool,类型,,true,为是,,false,为不是,返回值使用,逻辑值,可以用于逻辑表达式,Database&Information System Lab,28,基于函数思想的程序设计,函数的基本概念,1,函数编程的基本思想,2,函数程序设计举例,3,函数程序设计练习,4,29,Database&Information System Lab,函数设计示例,1742,年,6,月,7,日,哥德巴赫写信给欧拉,提出了以下猜想:任何一个大于等于,6,的偶数都可以表示成为两个奇素数之和;任何一个大于等于,9,的奇数都可以表示成为三个奇素数之和,这就是著名的哥德巴赫猜想。,请编写程序验证在,10000,以内哥德巴赫猜想是否成立。如果成立输出,Yes,否则输出,No,Database&Information System Lab,30,函数设计示例,程序设计过程,任务分解,从,6,至,10000,之内,验证每一个大于等于,6,的偶数是否符合猜想,从,6,至,10000,之内,验证每一个大于等于,9,的奇数是否符合猜想,判断一个数是否为素数,将两个猜想放在一起判断是否符合猜想,Database&Information System Lab,31,函数设计示例,程序设计过程,函数设计,判断大于等于,6,的偶数是否符合猜想,参数:要去判断的偶数,返回值:整型,,1,符合猜想,,0,不符合,判断大于等于,9,的奇数是否符合猜想,参数:要去判断的奇数,返回值:整型,,1,符合猜想,,0,不符合,判断一个数是否为素数,参数:要判断的数,返回值:整型,,1,为素数,,0,为非素数,Datab
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!