欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    《函数及其应》PPT课件.ppt

    • 资源ID:5469833       资源大小:230KB        全文页数:47页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《函数及其应》PPT课件.ppt

    第5章 函数及其应用,5.1 函数种类5.1.1 命令函数例如:getchar(),putchar()等。5.1.2标准库函数例如:fabs(),pow(),rand(),sin(x),sqrt(),fexp()5.1.3自定义函数,5.2 自定义函数的概念及使用方法例1:求两个数中的最大数#include int imax(int m,int n)return(mn?m:n);void main()int a=6,b=9;coutimax(a,b);,例2:求x的n次方#include iostream.hvoid main()float mpow(float,int);coutpow=mpow(3.,3)endl;float mpow(float a,int n)int i;float k=1;for(i=1;i=n;i+)k=k*a;return(k);,5.3 自定义函数的三种形式5.3.1 无参函数,例如main(),getchar()等。主函数与子函数之间不传输数据。例:输出字符四方形*void print()int i;for(i=1;i5;i+)cout“*n”;,5.3.2.空函数 例:null()5.3.3.有参函数 如例1,例2说明:C+语言程序由一个主函数和若干个子函数组成。子函数也有类型和函数值。子函数程序体可以作为单独的文件存放,如果单独存放,应在主函数中作为头文件进行说明。,函数有无返回值,应使用return语句,注意使用()和;。子函数中有两个变量,一个是传递变量,此变量称做形参、一个是子函数内部使用的变量。传递变量的类型说明要放在外边或放在函数名字右边的()内。如果放在函数名字右边的()内,每一个实参要分别说明。使用函数时,自变量位置的表达式称做实参,实参可以是变量、常量或表达式。实参和形参的个数、类型位置要一致。用return 返回的值只有一个。一个函数程序,可以出现多个return 语句。,当函数不返回值时,return 可以省略。函数的类型一定与return 返回的值的类型一致。当函数不返回值时,应在函数名字前加void,又叫无类型。使用函数有三种使用方法:作为语句:putchar();作为表达式:a=max(x,y)+zpow(x,n)作为实参:a=max(max(a,b),c)函数程序中不允许在定义函数。函数可以单独编译可保存,均放在项目中。,5.4 函数间的数据传递及函数原型5.4.1 函数的参数和返回值 实参的值与形参的值能实现传递,这叫虚实结合,又叫实哑结合。只能将实参值传给形参的,这叫值传递,又叫单向传递。如果能够实现互相传递,这叫地址传递。5.4.2 函数原型 子函数程序体可以放在主函数后边,也可以放在主函数前边。如果放在后边,应在主函数中进行说明,说明时可以出现变量名,或用另外的名。整型函数和字符函数可以不说明。,例:交换两个变量的值(在函数中完成、分别在子函数和主函数中输出,观察结果)5.4.3 引用传递目的和作用:能实现地址传递实现方法:在函数说明和函数定义时,类型说明后,变量名前加&例:通过使用引用传递,计算圆周长和圆的面积(此方法可以从函数中带回多个计算结果),#include iomanip.h#include iostream.hmain()float res(float,float res(float 例:编写函数(过程、子程序)程序求n的阶乘 f(n)求三个数的最大数(可以求多个数的最大数)求两个正整数的最大公约数(可以求多个数的最大公约数)f(m,n)求n+(n+1)+(n+2)+(n+k)用子函数完成x2,x3,xn,5.5 C+库函数 被直接调用的函数称为库(内部)函数。函数名 函数原型 要用到的头文件abs()int abs(int n)stdlib.hfabs()double abs(double x)math.hcos()double cos(double x)math.hexp()double exp(double x)math.hlog()double log(double x)math.hpow()double pow(double x,double y)math.hsqrt()double sqrt(double x)math.hsin()double sin(double x)math.htan()double tan(double x)math.hkbhit()int kbhit()conio.hexit()void exit(int n)stdlib.hrand()double rand(double x)stdlib.h,5.6 作用域和存储类5.6.1 作用域1.块作用域 块内说明的变量只能在本块有效。2.文件作用域 文件作用域就是全局作用域。,例:读程序,观察全局变量和局部变量的关系#include int i;/全局变量,文件作用域void main()i=5;/文件作用域的i赋初值/子块1 int i;/局部变量,块作用域 i=7;couti=iendl;/输出7 couti=iendl;/输出5,3.函数原型作用域 函数的作用域只限定在函数原型的函数中。4.函数作用域 在函数内均有效,不受块作用域的限制,只有标号属于函数作用域(在goto语句中使用)。5.6.2 存储类 1.局部变量及其概念形参是局部变量。在一个复合语句中定义的变量。在一个函数中定义的变量。,2.全局(外部)变量及其概念函数外部定义的变量。用extern 说明的变量。3.动态(自动)变量程序运行期间,分配内存单元,运行结束,内存单元就释放。形参、局部变量都是动态变量。动态变量用auto说明或省略。,4.静态变量调用函数结束,变量值保留,下次调用值仍存在。静态变量用static 说明。数组只有定义成静态时,才能初始化。静态变量自动赋0值。何时需要定义静态数组:保留函数的变量值和数组初始化。,例:读程序,理解静态变量#include#include void main()int count(int);do count(0);while(!kbhit();cout”Function COUNT()have been called”count(1)”timesn”,int count(int i)static int c=0;if(i)return c;else return+c;return 0;说明:未从键盘上按下键时,反复循环调函数count(),C一直自加,从键盘上一旦按下键时,结束循环,输出C值。,5.寄存器变量作用:存取速度快。特点:只允许使用三个寄存器变量,且必须是形参和局部变量才能使用。用法:用 register 说明。,5.7 内联函数 大量、多次调用函数,要占计算机很多时间,为了用空间换时间,才用内联函数。只要在定义函数,或者对函数原型说明时,在行首加上inline 即可。例:求圆面积#includeinline double calArea(double radius)return 3.14*radius*radius;,void main()double r=3.0;/r是圆的半径double area;area=calArea(r);/调用内联函数,编译时此处被替换为calArea函数体语句coutareaendl;return 0;,5.8 带有缺省参数的函数 函数说明时,先对形参初始化,调用函数时,若给实参,就使用实参,否则使用说明时给出的初始值。例:求四方体体积#include#include int get_volume(int length,int width=2,int height=3);,void main()int x=10,y=12,z=15;cout Some box data is;cout get_volume(x,y,z)endl;cout Some box data is;cout get_volume(x,y)endl;cout Some box data is;cout get_volume(x)endl;,cout Some box data is;cout get_volume(x,7)endl;cout Some box data is;cout get_volume(5,5,5)endl;return 0;int get_volume(int length,int width,int height)coutsetw(5)lengthsetw(5)widthsetw(5)height;return(length*width*height);,说明:默认参数的说明一定要放在函数使用之前。对形参的初始化可以是任意表达式。如部分形参初始化,必须自右向左。如果函数说明出现在不同程序块,允许提供和使用不同的默认值。,5.9 参数数目可变函数 根据需要,函数的参数可多可少,函数参数多少可变的函数称参数数目可变函数。例:从n个数中找出最大数#include#include,int main()int a,b,c,d,e;int max(int,int.);cinabcde;coutThe bigger between a and b is max(2,a,b)endl;coutThe bigger in the five number is max(5,a,b,c,d,e)endl;return 0;,int max(int num,int integer.)va_list ap;int m=integer;va_start(ap,integer);for(int i=1;im)m=t;coutiendl;va_end(ap);return m;,说明:必须使用头文件stdarg.h。定义函数和函数原型的书写要求。要用到三个专用函数和一个类型定义关键字:va_start,va_arg,va_end和va_list。请将此题改为求实型数最大值。5.10 函数重载(overload)一个函数可以当几个函数使用。根据形参的类型,调用不同的函数。函数定义不能少。,例:用一个函数add()实现两个整型数相加和两个实型数相加#includevoid main(void)int m,n;double x,y;int add(int m,int n);double add(double x,double y);coutmn;,coutxy;coutreal number x+y=add(x,y)endl;int add(int m,int n)return m+n;double add(double x,double y)return x+y;,5.11 外部函数能被其他文件调用的函数称为外部函数。外部函数要用extern 说明。5.12 函数递归函数递归的两个基本条件1.边界条件2.递归表达式3.函数自身调用自身,举例:计算 n!(c=f(n-1)*n)#include long fac(int n)long f;if(n=1)c=1;else c=fac(n-1)*n;return(f);,void main()long fac(int n);int n;long y;coutn;y=fac(n);coutn!=yendl;,1.计算 1+2+3+1002.计算 0,1,1,2,3,5,8,.第前20项(return(f(n-1)+f(n-2);)5.13 编译予处理概念:在对程序编译之前就进行替换处理,称予处理(有三种:嵌入指令(文件包含)、宏定义、和条件编译)。用途:1.有利于程序的移植与兼容.2.增加程序的兼容性.3.减少程序的运行时间4.减少程序的长度,5.13.1 嵌入指令#include 方法:建立多个*.cpp文件,按执行顺序放在#include 中。5.13.2 宏定义方法与用途1.不带参数的宏定义(用一个标识符代表一个字符串或一个常量,不做语法检查。)#define PI 3.14159(宏定义的标识符常使用大写字母,以有别于变量),#define N 100(N可以用作数组的下标)#define R 3#define A PI*R*R#define C CONPUTER#define pr cin#define N“n”例:prxN,2.带参数的宏定义(用一个标识符代表一个函数,不做语法检查。)#define PI 3.14159#define circle(A,L,R)A=PI*R*R;L=2*PI*PI#define MAX(x,y)(x)(y)?(x)?(y)#define mul(x1,x2)x1*x2/注意(x1)*(x2)例:定义一个求两个数之积的宏名mul,且求:2+3,6+2和3.1,3的积#define mul(x1,x2)x1*x2main()coutmul(2+3,6+2)mul(3.1,2);,说明:1.根据计算的结果决定其类型。2.实参是表达式时,形参要用()。3.一个#define 只能定义一个宏名。4.带参宏近似带参函数的定义及用法。5.带参宏的宏中可以有进出两种参数。6.宏名可以作为定义数组时的下标(static int aN)7.如果要修改宏名的内容,只能用define。8.可以使用#undef 解除宏定义。,例:定义一个宏,求x 的绝对值#define abs(x)(x0?x:-x)使用时:int a=-3;coutabs(a);例:定义一个宏,判断x 是否是偶数(偶数取 1)#define num(x)(x%2?0:1),5.13.3 条件编译指令格式1:#if#else#endif,格式2(连续判断)#if#elif#else#endif,例:读程序,理解条件编译#include#define NUM 100main()#if num=100 cout”hello”endl;#else cout”thank”endl;#endifreturn 0;,以上程序相当于:main()#include cout”hello”endl;return 0;,5.13.4 测试某个宏是否定义#ifdef(如果定义则)#ifndef(如果没有定义则)#endif(定义结束)5.14程序的多文件组织5.14.1 连接属性内部连接 同一程序块内。外部连接 不同程序块实现的程序块连接,5.14.2 分割编译 独立编译、独立保存,最后再连接。,

    注意事项

    本文(《函数及其应》PPT课件.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开