第四周项目(2)-太乐了

来源:互联网 发布:如何给淘宝运营发奖金 编辑:程序博客网 时间:2024/05/19 20:20


/*
*copyright (c) 2016,烟台大学计算机学院
*All rights reserved.
*文件名称:hellow.cpp
*作者:田甜
*完成日期:2016年3月24日
*版本号:v1.0
*
*问题描述:话说sin和cos是一对夫妇。一天,sin去听相声了,cos在家。过了一会,有人敲门,cos开门一看,是一个不认识的多项式函数。cos问:你是谁啊?他说:我是你的老公sin啊。cos说:你不是去听相声了吗?怎么成这幅摸样了?sin说:是啊,太乐了!
  故事讲完了。下面是sin函数的泰勒展式:
  这里写图片描述(注:x取弧度值,而非角度值)
  用sin泰勒展式编写程序,求出sin(π/2)和sin(56°)的值,精度要求达到小数点后6位(即当最后一项的绝对值小于0.00001时,累加结束,求绝对值的函数也可以自定义函数myabs实现)。

*输入描述:无
*程序输出:sin(π/2)和sin(56°)的值
*/

问题及代码:

#include<iostream>using namespace std;const double pi=3.1415926;double mysin(double x);double myabs(double a);int main(){    cout<<"sin(π/2)的值为"<<mysin(pi/2)<<endl;//调用自定义函数mysin求解    cout<<"sin(56°)的值为"<<mysin((pi/180)*65)<<endl;return 0;}double mysin(double x){    double sum=x,item,y=x;    int jie=1,sign=1,n=1;    do    {        jie=jie*(n+1)*(n+2);//计算分母上的阶乘        y*=x*x;//计算分子        sign=-sign;//每一项改变一次符号        item=y/jie*sign;        sum+=item;//相加求和        n+=2;    }while(myabs(item)>1e-6);//判断最后一项的绝对值    return sum;}double myabs(double a){    return ((a>=0)?a:-a);}

运行结果:

知识点总:

利用do while循环可以计算有一定规律的表达式的值
 学习心得:

声明时一定要在do外,注意y*=x*x而不能用x*=x*x,注意强制类型转换

0 0
原创粉丝点击