【项目-太乐了】

(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++项目参考解答-太乐了相关推荐

  1. C++项目参考解答:累加求圆周率

    [项目-累加求圆周率] 用如下公式求π的近似值(计算直到最后一项的绝对值小于10−5) π4=1−13+15−17+... [参考解答] #include <iostream> using ...

  2. 第12周项目2:太乐了(先听故事,再编程序)

    /* * Copyright (c) 2013, 烟台大学计算机与控制工程学院 * All rights reserved. * 作 者: 孔令玺 * 完成日期:2013 年 11 月 17日 * 版 ...

  3. 第十一周 项目七:太乐了(泰勒公式)

    问题及代码: /* * Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名称:Project4.cpp * 作 者:李楠 * 完成日期 ...

  4. 《C语言及程序设计》实践参考——太乐了

    返回:贺老师课程教学链接  项目要求 [项目7-太乐了] 先听故事,再编程序. 故事是这样的:话说sin和cos是一对夫妇.一天,sin去听相声了,cos在家.过了一会,有人敲门,cos开门一看,是一 ...

  5. C++第12周项目6——太乐了!

    课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565 [项目6-泰勒展开] 先听故事,再编程序.故事是这样的:话说sin和cos ...

  6. 太极创客的项目太乐1号的改造

    太极创客的项目太乐1号原始地址:http://www.taichi-maker.com/homepage/arduino-tutorial-index/arduino-hardware/#taile1 ...

  7. 第11周项目七 太乐(泰勒)了

    问题描述:   (1)先听故事,再编程序. 故事是这样的:话说 sin 和 cos 是一对夫妇.一天,sin 去听相声了,cos 在家.过了一会,有人 敲门,cos 开门一看,是一个不认识的多项式函数 ...

  8. C++实践参考解答 个人所得税计算器

    [项目:个人所得税计算器] 编写选择结构程序,输入个人月收入总额,计算出他本月应缴税款和税后收入(计算办法见附:关于个人所得税的有关背景知识). (1)自选if语句的嵌套或/和switch语句完成程序 ...

  9. .NET破解之太乐地图下载器【非暴破】

    不知不觉,接触破解逆向已经三个月了,从当初的门外汉到现在的小白,这个过程只有经历过才知道其中的苦与乐: 有无知.困惑.痛苦.惊喜.彻悟.欣慰-- 有无助的软件脱壳,茫然的代码分析,有无趣的反复测试, ...

最新文章

  1. 注释参数opengl的surfaceview使用findViewById返回null问题解决
  2. listview 滑动更改标题
  3. 2018中国互联网企业100强揭晓!阿里巴巴名列榜首
  4. 大学生如何找到适合自己的Java行业
  5. Jquery 每天记一点2009-7-2
  6. 各种排序算法的时间复杂度
  7. pymavlink 源码剖析(二)之生成代码
  8. vue05-REST 请求
  9. JavaScript提高:003:easy UI实现tab页面自适应问题
  10. Android: 例如用户模块 保持登录后数据实时同步改变
  11. QProcess 使用
  12. 系统安装之十 U盘安装原版win10
  13. 扎克伯格让员工学会高效工作的26张PPT
  14. MS520,参数,非接触式读卡IC
  15. 【模拟电路仿真】LM324加法器电路(激励源与正弦信号源的使用)
  16. 程序员必读: 摸清Hash表的脾性
  17. 仿淘宝商品详情页[带有视频和图片的轮播功能]
  18. runOnUiThread
  19. vmware搭建多台虚拟机-桥接模式
  20. label 标签的巧妙使用

热门文章

  1. Thymeleaf模板使用实例+模板分页
  2. android进度条动画圆环虚线,实线和虚线进度条控件 Android CircleProgressBar
  3. 蓝桥杯单片机省赛第十一届赛题二
  4. 完全免费!这个AE模板、AE插件网站,绝对是视频作者的福音
  5. 多线程之死锁介绍及预防
  6. Coremail邮件安全竞赛正式启动
  7. nougat什么时候发布的_如何在Android Nougat中管理,自定义和阻止通知
  8. java父类强转成子类
  9. 使用Retrofit+RxJava下载文件并实现APP更新
  10. 平凡的世界和你我(田润生与郝红梅)