欢迎来到天天文库
浏览记录
ID:42667133
大小:64.50 KB
页数:6页
时间:2019-09-19
《用递归的与函数嵌套调用的方法求台劳级数》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、课程实验报告课程名称:班级 日期 成绩评定 姓名实验室 老师签名 学号实验名称 所用软件VC++6.0实验目的及内容实验 原理步骤、(1)解题思路:(你参考一下,6.1.8编程实例那一节)定义一个函数,power(x,n)=x^n/(n!);函数里面的下面语句if(n==1)c=x;elsec=(power(x,n-1)*x)/n;returnc;通过递归的调用自己,得出结果。这个函数可以表示,x,x^2/(2!),…….再定义一个和函数,Sum(x,n)=power(x,1)+power(x,2)+…..利用下面的语句for(intk=i=1;i<=n;i+=2,
2、k++){if(k%2==0)s=s-power(x,i);elses=s+power(x,i);}通过在和函数里,嵌套调用power函数,就可以得出来结果。(2)调试过程:intmain(intargc,char*argv[]){floatsum(intn);floatx=1;floaty;y=sum(20);cout<3、urns;}floatpower(floatx,intn){floatc;if(n==1)c=x;elsec=power(x,n-1)*x/n;returnc;}编译时调试中遇到的问题:Compiling...223.cppF:C3223.cpp(6):errorC2065:'cout':undeclaredidentifierF:C3223.cpp(6):errorC2296:'<<':illegal,leftoperandhastype'float'F:C3223.cpp(6):errorC2297:'<<':illegal,rightopera4、ndhastype'float'执行cl.exe时出错.3.exe-1error(s),0warning(s)经检查是没有语句,#include导致不能调用cout函数.加入语句后再调试出现:Compiling...2.cppF:C22.cpp(20):errorC2065:'x':undeclaredidentifier执行cl.exe时出错.2.exe-1error(s),0warning(s)经检查,原来,嵌套调用的函数sum与power,sum函数并没有声明形参x,就调用了power(floatx,intn)函数形式,导致编译时,5、并不知道,x是什么.将程序改正,将floatsum(intn);改为,floatsum(floatx,intn),y=sum(20);改为y=sum(1.5,20);调试后,出现,2.exe-0error(s),0warning(s)说明编译已经通过。运行时调试遇到的问题。正确的结果应为:实际运行结果为:经过调试,发现问题出现在下面的语句中:s=power(x,1);for(i=1;i<=n;i+=2){s=s+power(x,n)*(-1);}台劳级数中,当为奇数项时,就为正,当偶数项时,就应为负。上面语句中,当i=1,时,和s=0,当i=2,和s=-x^2/2;不6、符合事实。将语句改为:s=0;for(intk=i=1;i<=n;i+=2,k++){if(k%2==0)s=s-power(x,i);elses=s+power(x,i);}当台劳级数项数为奇数时,就应该加上这一项;当项数为偶数时,就应该减去这一项。我们引入变量k来标记台劳级数的项数,i表示函数列中x的次数。列如,i=5时,表示x^5/(5!)(3)经过调试正确运行的程序如下:#includeintmain(intargc,char*argv[]){floatsum(floatx,intn);floaty;y=sum(1.5,20);cout7、<
3、urns;}floatpower(floatx,intn){floatc;if(n==1)c=x;elsec=power(x,n-1)*x/n;returnc;}编译时调试中遇到的问题:Compiling...223.cppF:C3223.cpp(6):errorC2065:'cout':undeclaredidentifierF:C3223.cpp(6):errorC2296:'<<':illegal,leftoperandhastype'float'F:C3223.cpp(6):errorC2297:'<<':illegal,rightopera
4、ndhastype'float'执行cl.exe时出错.3.exe-1error(s),0warning(s)经检查是没有语句,#include导致不能调用cout函数.加入语句后再调试出现:Compiling...2.cppF:C22.cpp(20):errorC2065:'x':undeclaredidentifier执行cl.exe时出错.2.exe-1error(s),0warning(s)经检查,原来,嵌套调用的函数sum与power,sum函数并没有声明形参x,就调用了power(floatx,intn)函数形式,导致编译时,
5、并不知道,x是什么.将程序改正,将floatsum(intn);改为,floatsum(floatx,intn),y=sum(20);改为y=sum(1.5,20);调试后,出现,2.exe-0error(s),0warning(s)说明编译已经通过。运行时调试遇到的问题。正确的结果应为:实际运行结果为:经过调试,发现问题出现在下面的语句中:s=power(x,1);for(i=1;i<=n;i+=2){s=s+power(x,n)*(-1);}台劳级数中,当为奇数项时,就为正,当偶数项时,就应为负。上面语句中,当i=1,时,和s=0,当i=2,和s=-x^2/2;不
6、符合事实。将语句改为:s=0;for(intk=i=1;i<=n;i+=2,k++){if(k%2==0)s=s-power(x,i);elses=s+power(x,i);}当台劳级数项数为奇数时,就应该加上这一项;当项数为偶数时,就应该减去这一项。我们引入变量k来标记台劳级数的项数,i表示函数列中x的次数。列如,i=5时,表示x^5/(5!)(3)经过调试正确运行的程序如下:#includeintmain(intargc,char*argv[]){floatsum(floatx,intn);floaty;y=sum(1.5,20);cout
7、<
此文档下载收益归作者所有