/*
* Copyright (c) 2012, 烟台大学计算机学院
* All rights reserved.
* 作 者:张浩
* 完成日期:2012 年11月22日
* 版 本 号:v1.0
* 输入描述:三角函数
* 问题描述: 略
* 程序输出:略
* 问题分析: 略
* 算法设计: 略
*/
#include <iostream>
#include<cmath>
using namespace std;
const double pai=3.1415926;
double mysin(double);
double mycos(double);
double myjds(double);
int main(){
cout<<"sin(π/2)的值为:"<<mysin(pai/2);
cout<<",利用库函数求的sin(π/2)的值为:"<<sin(pai/2)<<endl<<endl;
cout<<"sin(56°)的值为"<<sin((56.0/180)*pai);
cout<<",利用库函数求的sin(56°)的值为:"<<sin((56.0/180)*pai)<<endl<<endl;
cout<<"cos(87°)的值为:"<<mycos((87.0/180)*pai);
cout<<",利用库函数求的cos(87°)的值为:"<<cos((87.0/180)*pai)<<endl<<endl;
cout<<"cos(π/3)的值为:"<<mycos(pai/3);
cout<<",利用用库函数求的cos(π/3)的值为:"<<cos(pai/3)<<endl;
return 0;
}
double mysin(double x)
{
double sum=1,x_pow=1,t;
int n=1,g=1,r=1;
do
{
g=g*(n+1)*(n+2);
x_pow=x*x;
r=-r;
t=x_pow/g*r;
sum+=t;
n+=2;
}while(myjds(t)>0.00001);
return sum;
}
double mycos(double x)
{
double sum=1,x_pow=1,t;
int n=0,g=1,r=1;
do
{
g=g*(n+1)*(n+2);
x_pow=x*x;
r=-r;
t=x_pow/g*r;
sum+=t;
n+=2;
}while(myjds( t)>0.00001);
return sum;
}
double myjds(double x){
return ((x>=0)? x:-x );
}
运行结果:
心得体会:数学学好才重要啊!!!!