您的位置:首页 > 编程语言 > C语言/C++

C++扬帆远航——15(项目二,太乐了)

2016-03-24 19:03 387 查看
/*
* Copyright (c) 2016,烟台大学计算机与控制工程学院
* All rights reserved.
* 文件名:tailezhanshi.cpp
* 作者:常轩
* 微信公众号:Worldhello
* 完成日期:2016年3月23日
* 版本号:V1.0
* 问题描述:运用泰勒展式求出π/2,与56°的正弦值
* 程序输入:无
* 程序输出:见运行结果
*/

#include <iostream>
using namespace std;
float mysin(float a);
float myabs(float n);
const double pi=3.1415926;
int main()
{

cout<<"sin(π/2)的值为"<<mysin(pi/2)<<endl;
cout<<"sin(56)的值为"<<mysin((56.0/180.0)*pi)<<endl;

return 0;
}

float mysin(float a)
{

float n=0;
float m;
int i,j;
float x=1;
int ji=1;
for(i=1;;i++)
{
if(i%2!=0)
{
for(j=1;j<=2*i-1;j++)
{
x=x*a;
ji=ji*j;
}
m=x/ji;
ji=1;
x=1;
}
else
{
for(j=1;j<=2*i-1;j++)
{
x=x*a;
ji=ji*j;
}
m=(-1)*x/ji;
ji=1;
x=1;
}
n=m+n;
float t;
t=m;
if(m<0)
t=myabs(m);
if(t<0.00001)
{
break;

}

}
return n;
}
float myabs(float n)
{
n=-n;
return n;
}

运行结果:



心得:

       分清程序的层次,每一步该做什么,然后在定义变量的时候注意使用正确的类型,不然会导致最后结果有很小的误差。在做此程序的时候,也不是一口气做完没有Bug。做完之后又进行单步运行,才发现程序中有好多问题,不过最后都改正了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: