第四章-函数课件_第1页
第四章-函数课件_第2页
第四章-函数课件_第3页
第四章-函数课件_第4页
第四章-函数课件_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【知识点】

什么是函数?如何定义?

什么是函数原型声明?什么情况下必须要进行函数原型声明?引用标准库函数如何进行声明?

函数如何调用?上节内容复习.判断素数.例:1!+2!+3!+…+n!循环体内多次调用.【主要内容】

掌握函数的嵌套调用及递归调用

掌握内联函数掌握重载函数,理解同名函数的实现掌握默认参数值的函数本节内容.函数不允许嵌套定义可以嵌套调用三、函数的嵌套.课堂练习编写定义函数boolF(intm),功能是判别素数,要求:在主函数中输入一个整数,通过调用函数F来判断,若为素数则输出该数.课堂练习编写定义函数intF1(intm,intn),功能是求两整数的最大公约数,函数intF2(intm,intn),功能是求两整数的最小公倍数,要求:在主函数中输入整数,通过调用函数F1和F2..在函数调用中出现直接/间接调用函数本身函数的递归调用.递推-已知条件从已知条件回归-逐一求值用递归方法求4!递归调用的特点:原有的问题能够分解成一个新的问题;而新的问题又用到原有问题的解法,这就出现了递归。按照这一原则分解下去,每次出现的新问题是原问题简化后的子问题,而最终分解出来的新问题是一个已知解的问题。只有有限调用才有意义。.有一个使递归能结束的条件和值如:if(n==0||n==1)return1;

能用递归形式表示,并且递归向

终止条件发展如:returnfac(n-1)*n;算法简单但消耗机时占用空间大.若采用递归定义,可表示为如下形式:

sum(n)=1(n=1)sum(n)=sum(n-1)+n(n>1)填空:求1到n的累加和.intsum(intn){if(n<=0)cout<<”dataerror”;if(n==1)

else

}return1returnn+sum(n-1).填空:求1到10的阶乘#include<iostream.h>

//函数原型说明voidmain(){for(intk=0;k<=10;k++)cout<<

<<endl;//函数调用}doublefun(intn)//函数定义{If(n<=1)

return1;

else

return;

//返回}doublefun(int)fun(k)n*fun(n-1).课堂练习用递归的方法编写函数求Fibonacci数列。Fibonacci数列F(n)递归地定义为:F(n)=1

n<=2

F(n)=

F(n-1)+F(n-2)

n>21,1,2,3,5,8,13,21,….【例】

#include<iostream.h>inlineintmax(intx,inty){ if(x>y)returnx;elsereturny;}voidmain(){ inta,b,c,d,e,m; a=34; b=56; c=22; d=100; e=88; m=max(a,b);

m=max(m,c); m=max(m,d); m=max(m,e);cout<<“max=”<<m;}引入原因解决程序中函数调用的效率问题.4.4函数的内联做法:将一些反复被执行的简单语句序列做成小函数。用法:在函数声明前加inline关键字作用:不损害可读性又能提高性能inline返回值类型函数名(形参表){函数体}定义方法.(1)内联函数体<=5行,不允许出现循环和开关语句,不允许出现递归,不能含有静态数据和数组申明;(2)定义必须出现在第一次被调用前;(3)不能进行异常接口申明;(4)适合被频繁调用的小函数使用原则.引入原因解决同一个函数名赋予多个含义,只是处理对象(参数)不同.#include<iostream.h>intmax(intx,inty){return((x>y)?x:y);}doublemax(doublex,doubley){return((x>y)?x:y);}voidmain()

{cout<<max(10,20)<<endl;

cout<<max(1.23,2.34)<<endl;

}编译器会根据参数的个数或类型进行匹配自动调用相应函数重载方式4.5函数的重载.4.6设置函数参数的默认值122035.从右向左设置原则int

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论