C++项目参考解答-太乐了
【项目-太乐了】
(1)先听故事,再编程序。
故事是这样的:话说sin和cos是一对夫妇。一天,sin去听相声了,cos在家。过了一会,有人敲门,cos开门一看,是一个不认识的多项式函数。cos问:你是谁啊?他说:我是你的老公sin啊。cos说:你不是去听相声了吗?怎么成这幅摸样了?sin说:是啊,太乐了!
故事讲完了。下面是sin函数的泰勒展式:
(注:x取弧度值,而非角度值)
用sin泰勒展式编写程序,求出sin(π/2)和sin(56°)的值,精度要求达到小数点后6位(即当最后一项的绝对值小于0.000001时,累加结束,求绝对值的函数也可以自定义函数myabs实现)。
下面是程序模板,请完成自定义函数的声明和定义,并将main函数中下划线部分补充完整。
#include <iostream>
using namespace std;
const double pi=3.1415926;
int main( )
{cout<<"sin(π/2)的值为"<<mysin(pi/2)<<endl;cout<<"sin(56°)的值为"<<_____________<<endl;return 0;
}
//下面定义mysin函数,求sin值//下面定义myabs函数,求绝对值
说明:sin听相声“太乐”了,变成了多项式,连太太cos都不认识了。利用泰勒公式将任意函数展开为多项式进行计算,是计算机求解数值问题的一个重要手段。高等数学中的“泰勒定理”为我们解决这一大类问题提供了理论依据与方法指导。高等数学、线性代数等课程为我们提供解决各种问题的基础知识,是大学中最为实用的学科,学好,必须的。
实际上,C++的数学库(#include<Cmath>)中已经提供了sin和cos函数,一般解题中我们直接调用即可,而本题要求自定义函数实现,为区别起见,分别起名为mysin和mycos。
提示:程序的输出应该为:
sin(π/2)的值为1
sin(56°)的值为0.829038
参考解答:
#include <iostream>
using namespace std;
const double pi=3.1415926;
double mysin(double x);
double myabs(double x);
int main( )
{cout<<"sin(π/2)的值为"<<mysin(pi/2)<<endl;cout<<"sin(56°)的值为"<<mysin((56.0/180)*pi)<<endl;return 0;
}
//下面定义mysin函数,求sin值
double mysin(double x)
{double sum=x,x_pow=x,item;int n=1,fact=1,sign=1; //定义变量时赋初值,已经将第一项考虑到累加和sum中do{fact=fact*(n+1)*(n+2); //fact用于表示阶乘,在公式中作分母x_pow*=x*x; //x_pow是分子中用于表示阶乘,在公式中作分母sign=-sign; //确定即将要累加的这一项的符号item =x_pow/fact*sign; //计算出要累加的项sum+=item; //将该项累加上去n+=2;}while(myabs(item)>1e-6);return sum;
}//下面定义myabs函数
double myabs(double x)
{return ((x>=0)?x:-x);
}
(2)将上面的工作用多文件组织起来。其中,main()函数保存在一个文件中,所有自定义函数保存到另外一个文件中,运行程序并得到正确的结果,体会在实际的工程项目中这样组织程序的好处。
C++项目参考解答-太乐了相关推荐
- C++项目参考解答:累加求圆周率
[项目-累加求圆周率] 用如下公式求π的近似值(计算直到最后一项的绝对值小于10−5) π4=1−13+15−17+... [参考解答] #include <iostream> using ...
- 第12周项目2:太乐了(先听故事,再编程序)
/* * Copyright (c) 2013, 烟台大学计算机与控制工程学院 * All rights reserved. * 作 者: 孔令玺 * 完成日期:2013 年 11 月 17日 * 版 ...
- 第十一周 项目七:太乐了(泰勒公式)
问题及代码: /* * Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名称:Project4.cpp * 作 者:李楠 * 完成日期 ...
- 《C语言及程序设计》实践参考——太乐了
返回:贺老师课程教学链接 项目要求 [项目7-太乐了] 先听故事,再编程序. 故事是这样的:话说sin和cos是一对夫妇.一天,sin去听相声了,cos在家.过了一会,有人敲门,cos开门一看,是一 ...
- C++第12周项目6——太乐了!
课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565 [项目6-泰勒展开] 先听故事,再编程序.故事是这样的:话说sin和cos ...
- 太极创客的项目太乐1号的改造
太极创客的项目太乐1号原始地址:http://www.taichi-maker.com/homepage/arduino-tutorial-index/arduino-hardware/#taile1 ...
- 第11周项目七 太乐(泰勒)了
问题描述: (1)先听故事,再编程序. 故事是这样的:话说 sin 和 cos 是一对夫妇.一天,sin 去听相声了,cos 在家.过了一会,有人 敲门,cos 开门一看,是一个不认识的多项式函数 ...
- C++实践参考解答 个人所得税计算器
[项目:个人所得税计算器] 编写选择结构程序,输入个人月收入总额,计算出他本月应缴税款和税后收入(计算办法见附:关于个人所得税的有关背景知识). (1)自选if语句的嵌套或/和switch语句完成程序 ...
- .NET破解之太乐地图下载器【非暴破】
不知不觉,接触破解逆向已经三个月了,从当初的门外汉到现在的小白,这个过程只有经历过才知道其中的苦与乐: 有无知.困惑.痛苦.惊喜.彻悟.欣慰-- 有无助的软件脱壳,茫然的代码分析,有无趣的反复测试, ...
最新文章
- 注释参数opengl的surfaceview使用findViewById返回null问题解决
- listview 滑动更改标题
- 2018中国互联网企业100强揭晓!阿里巴巴名列榜首
- 大学生如何找到适合自己的Java行业
- Jquery 每天记一点2009-7-2
- 各种排序算法的时间复杂度
- pymavlink 源码剖析(二)之生成代码
- vue05-REST 请求
- JavaScript提高:003:easy UI实现tab页面自适应问题
- Android: 例如用户模块 保持登录后数据实时同步改变
- QProcess 使用
- 系统安装之十 U盘安装原版win10
- 扎克伯格让员工学会高效工作的26张PPT
- MS520,参数,非接触式读卡IC
- 【模拟电路仿真】LM324加法器电路(激励源与正弦信号源的使用)
- 程序员必读: 摸清Hash表的脾性
- 仿淘宝商品详情页[带有视频和图片的轮播功能]
- runOnUiThread
- vmware搭建多台虚拟机-桥接模式
- label 标签的巧妙使用