您的位置:首页 > 移动开发 > IOS开发

第十三周实验报告2修改版

2012-02-14 10:14 387 查看
 


#include <iostream>

#include<Cmath>  //为便于对比结果,main函数中调用了Cmath中的库函数sin和cos

using namespace std;

const double pi=3.1415926;

double mysin(double);

double mycos(double);

double myabs(double);   //程序中需要求精度的绝对值,也用自定义函数完成吧

int main( )

{

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

    cout << "cos(87°)的值为" << mycos((87.0 / 180) * pi) <<endl;

    cout << "sin(π/2)的更精确的值为" <<sin(pi / 2) << endl;  //库函数提供的值

    cout << "cos(87°)的更精确的值为" << cos((87.0 / 180) * pi) << endl;

    return 0;

}

double mysin(double x)

{

    double mysin = 0;

    int n = 0, i, fact;

    do

    {

        for(i = 1, fact = 1; i <= 2 * n + 1; i++)

        {

            fact = fact * i;

        }

        mysin = mysin + pow(-1, n) * pow(x, 2 * n + 1) / fact;

        n = n + 1;

    }while(pow(x, 2 * n + 1) / fact > 0.00001);

    return mysin;

}

double mycos(double y)



    double mycos = 1;

    int n = 1, i, fact = 1;

    do

    {

        for(i = 2, fact = 1; i <= 2 * n; i++)

        {

            fact = fact * i;

        }

        mycos = mycos + pow(-1, n) * pow(y, 2 * n) / fact;

        n = n + 1;

    }while(pow(y, 2 * n) / fact > 0.00001);

    return mycos;

}

 

运行结果:






#include <iostream>

#include<Cmath>  //为便于对比结果,main函数中调用了Cmath中的库函数sin和cos

using namespace std;

const double pi=3.1415926;

double mysin(double);

double mycos(double);

double myabs(double);   //程序中需要求精度的绝对值,也用自定义函数完成吧

int main( )

{

    cout << "sin(π/3)的值为" << mysin(pi / 3) << endl;

    cout << "cos(88°)的值为" << mycos((88.0 / 180) * pi) << endl;

    cout << "sin(π/3)的更精确的值为" <<sin(pi / 3) << endl;  //库函数提供的值

    cout << "cos(88°)的更精确的值为" << cos((88.0 / 180) * pi) <<endl;

  

    return 0;

}

double mysin(double x)

{

    double mysin = 0;

    int n = 0, i, fact;

    do

    {

        for(i = 1, fact = 1; i <= 2 * n + 1; i++)

        {

            fact = fact * i;

        }

        mysin = mysin + pow(-1, n) * pow(x, 2 * n + 1) / fact;

        n = n + 1;

     }while(pow(x, 2 * n + 1) / fact > 0.00001);

   

     return mysin;

}

double mycos(double y)



    double mycos = 1;

    int n=1, i, fact = 1;

    do

    {

        for(i = 2,fact = 1;i <= 2 * n; i++)

        {

            fact = fact * i;

        }

        mycos = mycos + pow(-1, n) * pow(y, 2 * n) / fact;

        n = n +1 ;

     }while(pow(y, 2 * n) / fact > 0.00001);

   

     return mycos;

}

 




修改感言:

唉~实在是弟子学艺不精啊,可笑还因为得出结果欣喜,结果还是有不足的地方,只是麻烦老师大人,还费心给我指出了,THANK YOU TEACHER,看来计算机也会糊弄人,结果不是一切啊!!!!!!应证了那句话,结果不是那么重要,过程才最important,因为结果有时是假象,呜呜~~~~~~

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  iostream include