- 1、本文档共130页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c041模块化与函数 课件
第四章 模块化与函数;实际问题;算法;;问题抽化成一个模块;模块化程序设计的优点;模块化程序设计图示;模块化程序设计;本章学习目标;本章主要内容;实例1模块化;定义函数(创建模块);调用函数(使用模块);总结规律:设计一个有子函数的程序;函数定义的格式;关于函数定义的说明;函数设计要求;函数调用;关于函数调用的说明;函数调用中的类型问题;函数原型的作用;设计一个函数;函数调用的执行过程;函数调用中的程序控制;;函数的参数传递;函数参数的按值传递;例:输入两整数交换后输出;void swap(int a, int b)
{
int t;
t=a; a=b; b=t;
couta=ab=bendl;
}
运行结果:
x=5 y=10
a=10 b=5
x=5 y=10;按值传递;函数参数的按引用传递;何谓引用?;例:输入两整数交换后输出;void swap(int a, int b)//函数定义
{
int t;
t=a; a=b; b=t;
couta=ab=bendl;
}
运行结果:
x=5 y=10
a=10 b=5
x=10 y=5;函数参数按引用传递;函数总结_三部曲;函数细节方面;2、函数形参和实参;例: 计算x的立方——注意内存;3、函数的返回值
返回语句
形式: return(表达式);
或 return 表达式;
或 return;
功能:使程序控制从被调用函数返回到调用函数中,同时把返回值带给调用函数
说明:
函数中可有多个return语句,但函数被调用后只能有一个值。
若无return语句,遇}时,自动返回主调用函数
若函数类型与return语句中表达式值的类型不一致,按前者为准,自动转换------函数调用转换
void型函数
;例: 函数返回值类型转换;4、函数调用方式
函数语句:
例 printstar( );
函数表达式:
例 m=max(a,b)*2;
函数参数:
例 m=max(a,max(b,c));
;5、函数声明;例 函数说明举例;函数的嵌套调用
嵌套调用
C++规定:函数定义不可嵌套,但可以嵌套调用函数;#include iostream
using namespace std;
int dif(int x,int y,int z);
int max(int x,int y,int z);
int min(int x,int y,int z);
int main()
{ int a,b,c,d;
cinabc;
d=dif(a,b,c);
coutMax-Min“dendl;
return 0;
};递归调用
定义:函数直接或间接的调用自身叫函数的递归调用;例4.10 有5个人坐在一起,问第5个人多少岁?他说比第4个人大两岁。问第4个人岁数,他说比第3个人大两岁。问第3个人,又说比第2个人大两岁。问第2个人,说比第1个人大两岁。最后问第1个人,他说是10岁。请问第5个人多大?;运行结果如下:18
函数调用过程如图所示;#include iostream
using namespace std;
int age(int n)
{int c;
if(n= =1) c=10;
else c=age(n-1)+2;
return(c);
}
int main( )
{coutage(5)endl; 回推 递推
} age(n)=10 (n=1)
运行结果 18 age(n-1)+2 (n1);递归总结;递归算法;递归算法;递归算法;用递归函数实现递归算法;递归过程演示;递归函数的常见错误;例 有以下程序
#include iostream
using namespace std;
int f(int n)
{if (n==1)return 1;
else return f(n-1)+1;
}
int main()
{ int i,j=0;
for(i=1;i3;i++)
j+=f(i);
coutjendl;
return 0;
}
程序运行后的输出结果是:
a)4 b)3 c)2 d)1 ;例:#include iostream
using namespace std;
long fun(int n)
{ long s;
文档评论(0)