>a>>b"/> >a>>b"/>
首页 第5章 函数

第5章 函数

举报
开通vip

第5章 函数第5章函数5.1函数概述5.2函数的定义、调用与说明5.3函数间参数传递5.4内联函数5.5递归函数5.6函数重载5.7函数模板5.8作用域与存储类别5.9应用举例5.1函数概述xyz5.1.1引例已知五边形的各条边的长度,计算其面积。计算多边形面积,可将多边形分解成若干个三角形。计算三角形面积的公式如下:用前面所学的知识实现:#include"math.h"#include"iostream.h"voidmain(){floata,b,c,d,e,f,g,p1,p2,p3,s1,s2,s3,s;cin>>a>>b...

第5章 函数
第5章函数5.1函数概述5.2函数的定义、调用与说明5.3函数间参数传递5.4内联函数5.5递归函数5.6函数重载5.7函数模板5.8作用域与存储类别5.9应用举例5.1函数概述xyz5.1.1引例已知五边形的各条边的长度,计算其面积。计算多边形面积,可将多边形分解成若干个三角形。计算三角形面积的公式如下:用前面所学的知识实现:#include"math.h"#include"iostream.h"voidmain(){floata,b,c,d,e,f,g,p1,p2,p3,s1,s2,s3,s;cin>>a>>b>>c>>d>>e>>f>>g;p1=(a+b+c)/2;s1=sqrt(p1*(p1-a)*(p1-b)*(p1-c));p2=(c+d+e)/2;s2=sqrt(p2*(p2-c)*(p2-d)*(p2-e));p3=(e+f+g)/2;s3=sqrt(p3*(p3-e)*(p3-f)*(p3-g));s=s1+s2+s3;cout< 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 为其提供必要的数据,执行这段程序后,能保存执行结果并将程序返回到原处继续执行。C++中的函数如果从用户使用的角度,可以分为 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 函数和用户自定义函数。所谓标准函数是系统已实现的并通过函数库形式提供的函数,如sqrt、fabs、strlen等等。程序员在编写程序时可以直接使用标准函数,而不用定义它们。在C++中所有的标准函数都被放置在不同的函数库中,并有一个与之对应的头文件。例如,头文件iostream.h中包含了I/O函数;头文件cmath.h中包含了常用的数学函数等。使用标准函数不仅可以提高开发效率,而且又使程序具有很好的可移植性。然而标准函数毕竟有限,对于一些特殊的需要,用户需要自己编写函数用以解决专门的需要。本章将详细介绍C++中的用户自定义函数,但作为一种面向对象的语言,我们推荐在C++中采用面向对象的 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 思想来编写程序。5.1.2基本知识#include"math.h"#include"iostream.h"floatarea(floatx,floaty,floatz)//定义求三角形面积函数{floatl,s;l=(x+y+z)/2;s=sqrt(l*(l-x)*(l-y)*(l-z));returns;}用函数实现:特点:函数具有相对独立的功能函数与函数之间通过参数(输入)和返回值(输出)来联系使用函数有利于代码重用,提高开发效率voidmain()//主函数{floata,b,c,d,e,f,g,s;cin>>a>>b>>c>>d>>e>>f>>g;s=area(a,b,c)+area(c,d,e)+area(e,f,g);cout< 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf ){函数体}将两数的比较独立出来编一函数:【例5.1】求三个整型数中最大的数。intmax(intx,inty){intz;if(x>y)z=x;elsez=y;returnz;//将大的数返回}voidmain(){inta,b,c,m;cin>>a>>b>>c;m=max(a,b);m=max(c,m);cout<#includevoidpic(intn){for(inti=0;i>m>>n;cout<>a>>b;c=max(a,b);cout<y?x:y;}【例5.4】函数说明示例可省略参数名注意:函数调用在前,定义在后,则必须对函数进行说明,函数说明可以放在函数调用之前所在的函数内,也可以放在源文件开头、函数的外部。函数说明和函数定义在返回类型、函数名和参数表上必须要完全一致。5.2.3函数说明(函数原型)float*fun(floatx[],floaty);char*strcat(char*strDest,constchar*strSource);在说明或定义返回值为指针的函数时,只须在函数名前加一指针类型说明符即可。即函数的返回值可以是变量的地址、数组名或指针变量等。如:5.2.4函数返回值为指针【例5.11】拼接两个字符串s1和s2,将拼接后的字符串存于s1中返回。char*strcat1(char*s1,constchar*s2){char*p=s1;while(*p++);--p;while(*p++=*s2++);return(s1);}思考:若不定义为返回指针值的函数,则程序应如何修改?voidmain(){char*p1,*p2;p1=newchar[20];p2=newchar[5];cin>>p1>>p2;cout<>x>>y;swap(x,y);cout<<“x="<>a>>b;swap(&a,&b);cout<>a>>b;copy_string(a,b);cout<>x>>y;swap(x,y);cout<<"x="<=10&&flag)//判断是否降序数if(x/10%10>=x%10)x/=10;elseflag=0;returnflag;}函数在定义时预先给定一个缺省的形参值,调用时给出的优先。5.3.2函数参数缺省#include"iostream.h"#include"math.h"doubles(doublex,doubleeps=1e-6){intn=1;doublew=0.0,t=1.0;while(fabs(t)>=eps){w+=t;t=t*x/(n++);}returnw;}voidmain(){cout<<"s1="<y?x:y;}voidmain(){cout<0)px(x,n)=xn=1x*(1-px(x,n-1))n>1#include"iostream.h"doublepx(doublex,intn){if(n==1)return(x);elsereturn(x*(1-px(x,n-1)));}voidmain(){doublex;intn;cout<<"EnterXandN:";cin>>x>>n;cout<<"px="<>num;printn(num);cout<#includevoidmain(){intx1=-1;doublex2=2.5;longx3=3L;cout<intabs(intx){returnx>0?x:-x;}doubleabs(doublex){returnx>0?x:-x;}longabs(longx){returnx>0?x:-x;}voidmain(){intx1=1;doublex2=2.5;longx3=3L;cout<intmin(inta,intb){returna*、::、?:这五个运算符外,其他运算符都可以重载。由于很多符号是一元运算符和二元运算符公用的(如*既可以用于间接访问也可用于两数相乘),为了避免含混,不得为重载的运算符函数设置默认值,调用时也就不得省略实参。4)除了new和delete这两个较为特殊的运算符以外,任何运算符如果作为成员函数时不得重载为静态函数。=、[]、()、->以及所有的类型转换运算符只能作为成员函数重载,而且是不能针对枚举类型操作数的重载。class与typename等价5.7函数模板函数模板用来定义一个通用函数,可以对不同类型的数据进行相同的处理,其作用与函数重载相似,但代码要简单许多。而使用函数重载则需编写多个函数。利用函数模板定义的函数称为模板函数,形式:template类型函数名(参数表){……}【例5.22】#includetemplateTmin(Ta,Tb){returnaTfun1(Ta,intb)//可含有模板参数表中未给出的数据类型{……}template//模板中可带有多个参数voidfun1(T1a,T2b,T3c){……}templatevoidfun1(inta,intb)//必须至少有一个参数的类型为模板的{……}//类型参数,即使函数体中出现也不可templatevoidfun1(inta,intb){Ti,j;……}【例5.23】定义一个通用的函数,对n个数按递增排序。#include"iostream.h"templatevoidsort(TEMx[],intn){inti,j,k;TEMw;for(i=0;ix[j])k=j;if(i!=k){w=x[i];x[i]=x[k];x[k]=w;}}}voidmain(){inti,a[6]={6,9,2,4,1,0};floatb[4]={5.5,8.0,3.3,0};sort(a,6);sort(b,4);for(i=0;i<6;i++)cout<>x;cout<externinti;voidfun(){//externinti;错误cout<externinti;//不能初始化voidfun(){//externinti;cout<max)max=x[i];if(x[i] 工程 路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理 ,在该工程内分别建立两个或多个文件,编译时由于编译器是以源文件为单位工作的,所以须对每个文件分别进行编译,然后单击运行!要慎用外部变量,因为通过外部变量进行数据传递,会影响函数的独立性,不利于结构化程序的编制和调试。5.9程序举例【例5.28】编一判断质数的函数,验证歌德巴赫猜想:任何大于2的偶数均可表示为两个素数的和。例如:4=2+2(特例,仅此一个),6=3+3,8=3+5,…。程序要求输入任一偶数,输出6到该数范围内的各个满足条件的组合。分析:对一个偶数,分解为两个质数和,既n=a+b。方法是从找最小的质数a为3开始(因2是偶数,另一个必定是偶数,不可能是质数),判断b=n-a是否是质数,若b也是质数,则n符合要求;否则,找下一个质数a,再判断b。程序:#include"iostream.h"intisprime(intm)//判别m是否为质数{for(inti=2;m%i!=0;i++);return(i==m);}voidmain(){intn,x,a,b;cin>>x;for(n=6;n<=x;n+=2)for(a=3;a<=n/2;a+=2)if(isprime(a)&&isprime(n-a)){cout<0。但这样处理的数据是从个位向前的,所以还要作反转处理。程序:#include"iostream.h"#include"string.h"voidmain(){voiditoc(int,char[]);intn;chars[100];cin>>n;itoc(n,s);cout<0);if(sign<0)s[i++]='-';s[i]='\0';reverse(s);}voidreverse(chars[]){intc,i,j;j=strlen(s)-1;for(i=0;i>a>>b>>n;cout<='a'&&s[i]<='z')p[(s[i]-'a')]++;i++;}max=p[0];intk=0;for(i=1;i<26;i++)if(p[i]>max){max=p[i];k=i;}chmax=k+97;}voidmain(){intp[26],i,max;chars[80],chmax;gets(s);freq(s,p,chmax,max);for(i=0;i<26;i++)if(p[i])cout<
本文档为【第5章 函数】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
gch251090
暂无简介~
格式:ppt
大小:430KB
软件:PowerPoint
页数:66
分类:生活休闲
上传时间:2023-02-21
浏览量:0