欢迎来到天天文库
浏览记录
ID:39957057
大小:1.71 MB
页数:66页
时间:2019-07-16
《a6-函数递推递归》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、函数和递推递归算法结构化程序设计的思想自顶向下、逐步求精的设计方法程序的模块化子程序的概念{∶∶调用子程序f1()∶∶调用子程序f2()∶∶}{∶∶}子程序f1()主程序main(){∶∶}子程序f2()①②③④⑤⑥⑦⑧⑨程序执行顺序示意图函数函数概述利用程序设计中的三种基本控制结构(顺序、分支、循环),可以组成任何程序。但在应用中,还经常用到子程序结构。如果一些程序段在程序的不同地方反复出现,可以将这些程序段作为相对独立的整体,用一个标识符给它起一个名字,凡是程序中出现该程序段的地方,只要简单地写上
2、其标识符即可。这样的程序段,我们称之为子程序。子程序的使用不仅缩短了程序,节省了内存空间及减少了程序的编译时间,而且有利于结构化程序设计。使编制的程序结构清晰,逻辑关系明确,无论是编写、阅读、调试还是修改,都会带来极大的好处。在一个程序中可以只有主程序而没有子程序,但不能没有主程序,也就是说不能单独执行子程序。C++提供了各种标准函数,如abs(),sqrt()等等,这些系统提供的函数为我们编写程序提供了很大的方便。但这些函数只是常用的基本函数,编程时经常需要自定义一些函数。函数——例6.1求:1!+
3、2!+3!+……+10!假设有个阶乘函数js(x);#includeusingnamespacestd;intmain(){intsum=0;for(inti=1;i<=10;i++)sum+=js(i);cout<<"sum="<4、程序中除了主函数名必须为main外,其余函数的名字按照标识符的取名规则可以任意选取。函数名后必须有圆括号,括号中的形式参数(简称形参)表可以是空的(即无参函数),也可以有多个用逗号隔开的形参。形参必须有类型说明,形参可以是变量名、数组名或指针名,它的作用是实现主调函数与被调函数之间的关系。数据类型函数名(形式参数表){函数体//执行语句}函数——定义的例子定义一个函数,返回两个数中的较大数。该函数返回值是整型,有两个整型的形参,用来接受实参传递的两个数据,函数体内的语句是求两个数中的较大者并将其返回主5、调函数。intmax(intx,inty){returnx>y?x:y;}函数——形式函数的形式从结构上可以分为三种:无参函数、有参函数和空函数。它们的定义形式都相同。(1)无参函数无参函数顾名思义即为没有参数传递的函数,无参函数一般不需要带回函数值,所以函数类型说明为void。(2)有参函数有参函数即有参数传递的函数,一般需要带回函数值。例如intmax(intx,inty)函数。(3)空函数空函数即函数体只有一对花括号,没有任何语句的函数。例如:函数名(){}空函数不完成什么工作,只占据一个位置。6、在大型程序设计中,空函数用于扩充函数功能。函数——例6.1求:1!+2!+3!+……+10!编写一个阶乘的函数,我们给此函数取一个名字js。intjs(intn)//函数名js,形参intn{//{}中是函数的函数体ints=1;for(inti=1;i<=n;++i)s*=i;returns;}函数名叫js,只有一个int型的自变量n,函数js属int型。在函数体中,n的阶乘的值在s中,最后由return语句将计算结果s值带回,js()函数执行结束,在主函数中js()值就是s的值。在这里,函数的形式7、参数n是一个接口参数,说得更明确点是入口参数。如果我们调用函数:js(3),那么在程序里所有有n的地方,n被替代成3来计算。在这里,3就被称为实参。函数——例6.1#includeusingnamespacestd;intjs(int);//函数的声明intmain(){intsum=0;for(inti=1;i<=10;++i)sum+=js(i);//函数的调用cout<<"sum="<8、;for(inti=1;i<=n;++i)s*=i;returns;//函数的返回值}函数——声明和调用1、函数的声明调用函数之前先要声明函数原型。在主调函数中,或所有函数定义之前,按如下形式声明:如果是在所有函数定义之前声明了函数原型,那么该函数原型在本程序文件中任何地方都有效,也就是说在本程序文件中任何地方都可以依照该原型调用相应的函数。如果是在某个主调函数内部声明了被调用函数原型,那么该原型就只能在这个函数内部有效。下面对js()函数原型声明是合法
4、程序中除了主函数名必须为main外,其余函数的名字按照标识符的取名规则可以任意选取。函数名后必须有圆括号,括号中的形式参数(简称形参)表可以是空的(即无参函数),也可以有多个用逗号隔开的形参。形参必须有类型说明,形参可以是变量名、数组名或指针名,它的作用是实现主调函数与被调函数之间的关系。数据类型函数名(形式参数表){函数体//执行语句}函数——定义的例子定义一个函数,返回两个数中的较大数。该函数返回值是整型,有两个整型的形参,用来接受实参传递的两个数据,函数体内的语句是求两个数中的较大者并将其返回主
5、调函数。intmax(intx,inty){returnx>y?x:y;}函数——形式函数的形式从结构上可以分为三种:无参函数、有参函数和空函数。它们的定义形式都相同。(1)无参函数无参函数顾名思义即为没有参数传递的函数,无参函数一般不需要带回函数值,所以函数类型说明为void。(2)有参函数有参函数即有参数传递的函数,一般需要带回函数值。例如intmax(intx,inty)函数。(3)空函数空函数即函数体只有一对花括号,没有任何语句的函数。例如:函数名(){}空函数不完成什么工作,只占据一个位置。
6、在大型程序设计中,空函数用于扩充函数功能。函数——例6.1求:1!+2!+3!+……+10!编写一个阶乘的函数,我们给此函数取一个名字js。intjs(intn)//函数名js,形参intn{//{}中是函数的函数体ints=1;for(inti=1;i<=n;++i)s*=i;returns;}函数名叫js,只有一个int型的自变量n,函数js属int型。在函数体中,n的阶乘的值在s中,最后由return语句将计算结果s值带回,js()函数执行结束,在主函数中js()值就是s的值。在这里,函数的形式
7、参数n是一个接口参数,说得更明确点是入口参数。如果我们调用函数:js(3),那么在程序里所有有n的地方,n被替代成3来计算。在这里,3就被称为实参。函数——例6.1#includeusingnamespacestd;intjs(int);//函数的声明intmain(){intsum=0;for(inti=1;i<=10;++i)sum+=js(i);//函数的调用cout<<"sum="<8、;for(inti=1;i<=n;++i)s*=i;returns;//函数的返回值}函数——声明和调用1、函数的声明调用函数之前先要声明函数原型。在主调函数中,或所有函数定义之前,按如下形式声明:如果是在所有函数定义之前声明了函数原型,那么该函数原型在本程序文件中任何地方都有效,也就是说在本程序文件中任何地方都可以依照该原型调用相应的函数。如果是在某个主调函数内部声明了被调用函数原型,那么该原型就只能在这个函数内部有效。下面对js()函数原型声明是合法
8、;for(inti=1;i<=n;++i)s*=i;returns;//函数的返回值}函数——声明和调用1、函数的声明调用函数之前先要声明函数原型。在主调函数中,或所有函数定义之前,按如下形式声明:如果是在所有函数定义之前声明了函数原型,那么该函数原型在本程序文件中任何地方都有效,也就是说在本程序文件中任何地方都可以依照该原型调用相应的函数。如果是在某个主调函数内部声明了被调用函数原型,那么该原型就只能在这个函数内部有效。下面对js()函数原型声明是合法
此文档下载收益归作者所有