网站大量收购独家精品文档,联系QQ:2885784924

(C++语言程序的设计)第11讲 函数1.ppt

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
(C++语言程序的设计)第11讲 函数1.ppt

* HZAU信息学院计算机应用系 姚娟 HZAU 理学院计算机系 姚娟 C++语言程序设计 第11讲 函数1 引例:计算x的n次方 …… int main( ) { double x(5.0), val(1.0); int n=3; for(int i=0;in;i++) val=val*x; double f=val; coutx的n次方的值为:fendl; return 0; } ? 如何计算53+32 int main( ) { double x(5.0), val1(1.0),val2(1.0); int n=3; for(int i=0;in;i++) val1=val1*x; x=3.0; n=2; for(int i=0;in;i++) val2=val2*x; double f=val1+val2; cout 结果为:fendl; return 0; } val1=power(x,n); val2=power(x,n); double f=power(5.0,3)+power(3.0,2); 例11-1编写一个求x的n次方的函数 #include iostream using namespace std; int main() { double power(double x, int n); cout5 to the power 2 is power(5,2)endl; return 0; } double power(double x, int n) { double val=1.0; for(int i=0;in;i++) val=val*x; return(val); } 函数的声明 函数是面向对象程序设计中,对功能的抽象 函数声明的语法形式 类型标识符 函数名(形式参数表) { 语句序列 } 形式参数表 type1 name1,type2 name2, ...,typen namen 函数的声明与使用 是被初始化的内部变量,寿命和可见性仅限于函数内部 若无返回值,写void 函数调用的执行过程 main() 调fun() 结束 fun() 返回 ① ② ④ ⑥ ⑦ 保存: 返回地址 当前现场 ③ 恢复: 主调程序现场 返回地址 ⑤ 嵌套调用 main{} 调fun1() 结束 fun1() 调fun2() 返回 fun2() 返回 ① ② ③ ⑦ ④ ⑤ ⑥ ⑧ ⑨ 在一个子函数中调用另一个函数称为函数嵌套调用 例11-2 输入两个整数,求平方和。 #include iostream using namespace std; int main() { int a,b; int fun1(int x,int y); cinab; couta、b的平方和: fun1(a,b)endl; return 0; } int fun1(int x,int y) { int fun2(int m); return (fun2(x)+fun2(y)); } int fun2(int m) { return (m*m); } 运行结果: 3 4 a、b的平方和:25 递归调用 函数直接或间接地调用自身,称为递归调用。 递归过程的两个阶段: 递推: 4!=4×3!→3!=3×2!→2!=2×1!→1!=1×0!→0!=1 未知 已知 回归: 4!=4×3!=24←3!=3×2!=6←2!=2×1!=2←1!=1×0!=1←0!=1 未知 已知 例11-3 求n! 分析:计算n!的公式如下: 这是一个递归形式的公式,应该用递归函数实现。 源程序: #include iostream using namespace std; int fac(int n) { int f; if (n0) coutn0,data error!endl; else if (n==0) f=1; else f=fac(n-1)*n; return(f); } int main() { long fac(int n); int n,y; coutEnter a positive integer:; cinn; y=fac(n); coutn!=yendl; return 0; } 运行结果: Enter a positive integer:8 8!=40320 函数的参数传

文档评论(0)

youngyu0329 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档