您的位置:首页 > 其它

第十三周实验报告2

2012-02-14 10:02 281 查看

实验目的:学会使用自定义函数解决实际问题
实验内容:定义自定义函数,计算sin和cos的近似值

* 程序头部注释开始
* 程序的版权和版本声明部分

* Copyright (c) 2011, 烟台大学计算机学院学生

* All rights reserved.

* 文件名称:       求sin(π/2)、cos(87°)的值                      

* 作    者:       徐嘉健                      

* 完成日期:      2011     年   11    月    21   


* 版本号:        number one     

* 对任务及求解方法的描述部分

* 问题描述:自定义函数,用泰勒公式实现计算sin和cos的近似值,要求:(1)求sin、cos时,不能用数学库函数(即不得用#include<Cmath>),而是自己编函数实现,为区别,可以分别起名为mysin和mycos;(2)自定义函数要写在main函数之后;(3)自定义函数的效率问题必须考虑;(4)关于精度:当最后一项的绝对值小于0.00001时,累加结束。

* 程序输出:sin(π/2)、cos(87°)的值(真值分别为1和0.052336,用泰勒公式求解的精度是可以保证的,特此更正。)

* 算法设计:使用泰勒公式

* 程序头部的注释结束

#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)



    double (pi / 2);

    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(pi / 2, 2 * n + 1) / fact;

         n=n+1;

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

     return mysin;

}

double mycos(double)



    double ((87.0 / 180) * pi);

    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((87.0 / 180) * pi, 2 * n) / fact;

         n = n + 1;

    }while(pow((87.0 / 180) * pi, 2 * n) / fact > 0.00001);

 

    return mycos;

}

 

 

 
运行结果:
 



 

经验积累:

1.两个函数的调用,有时候,会有一点错乱复杂,很容易搞晕。

2.分解较难的问题,每次只做其中的每一个简单的小问题,然后将较为简单的问题整合,往往能够得到意想不到的结果。

3.细节很重要,不然思路会很不清晰,所以之前最好大好草稿。


上机感言:
程序编的越来越复杂,当然代码也会写得越来越长,难度也越来越大,真的是让人很是伤脑筋,为了一个明明知道的结果,或非大量的时间和精力,很郁闷的,可是,每当希望的结果透过黑屏传达到我的眼睛里,喜悦总是随之而来,会觉得以前的付出是有回报的,同时又恨开心,我喜欢这样的感觉。

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