第四周项目2-太乐了

 *All rightreserved. 

 *文件名称:test.cpp 

 *作   者:张明宇

 *完成日期:2016年3月24日 

 */

问题及代码:

故事是这样的:话说sin和cos是一对夫妇。一天,sin去听相声了,cos在家。过了一会,有人敲门,cos开门一看,是一个不认识的多项式函数。cos问:你是谁啊?他说:我是你的老公sin啊。cos说:你不是去听相声了吗?怎么成这幅摸样了?sin说:是啊,太乐了!
故事讲完了。下面是sin函数的泰勒展式:
(注:x取弧度值,而非角度值)
用sin泰勒展式编写程序,求出sin(π/2)和sin(56°)的值,精度要求达到小数点后6位(即当最后一项的绝对值小于0.00001时,累加结束,求绝对值的函数也可以自定义函数myabs实现)。
下面是程序模板,请完成自定义函数的声明和定义,并将main函数中下划线部分补充完整。

#include <iostream>   

using namespace std;  

const double pi=3.1415926;  

int main( )  

{  

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

  cout<<"sin(56°)的值为"<<_____________<<endl;  

    return 0;  

}  

//下面定义mysin函数,求sin值  

//下面定义myabs函数,求绝对值  

#include <iostream>
using namespace std;
const double pi=3.1415926;
int main( )
{
	cout<<"sin(π/2)的值为"<<mysin(pi/2)<<endl;
	cout<<"sin(56°)的值为"<<_____________<<endl;
	return 0;
}
//下面定义mysin函数,求sin值


//下面定义myabs函数,求绝对值

说明:sin听相声“太乐”了,变成了多项式,连太太cos都不认识了。利用泰勒公式将任意函数展开为多项式进行计算,是计算机求解数值问题的一个重要手段。高等数学中的“泰勒定理”为我们解决这一大类问题提供了理论依据与方法指导。高等数学、线性代数等课程为我们提供解决各种问题的基础知识,是大学中最为实用的学科,学好,必须的。
实际上,C++的数学库(#include<Cmath>)中已经提供了sin和cos函数,一般解题中我们直接调用即可,而本题要求自定义函数实现,为区别起见,分别起名为mysin和mycos。
提示:程序的输出应该为:
  sin(π/2)的值为1
  sin(56°)的值为0.829038
#include <iostream>   
using namespace std;  
const double pi=3.1415926;  
double mysin(double x);  
double myabs(double x);  
int main( )  
{  
    cout<<"sin(π/2)的值为"<<mysin(pi/2)<<endl;  
    cout<<"sin(56°)的值为"<<mysin((56.0/180)*pi)<<endl;  
   return 0;  
}  
double mysin(double x)  
{  
    double sum=x,x_pow=x,item;  
    int n=1,fact=1,sign=1;    
    do  
    {  
        fact=fact*(n+1)*(n+2);    
        x_pow*=x*x;               
        sign=-sign;              
        item =x_pow/fact*sign;  
        sum+=item;                 
        n+=2;  
    }while(myabs(item)>1e-5);  
    return sum;  
}      
double myabs(double x)  
{  
    return ((x>=0)?x:-x);  
} 


Java是一种具备卓越性能与广泛平台适应性的高级程序设计语言,最初由Sun Microsystems(现属Oracle公司)的James Gosling及其团队于1995年正式发布。该语言在设计上追求简洁性、稳定性、可移植性以及并发处理能力,同时具备动态执行特性。其核心特征与显著优点可归纳如下: **平台无关性**:遵循“一次编写,随处运行”的理念,Java编写的程序能够在多种操作系统与硬件环境中执行,无需针对不同平台进行修改。这一特性主要依赖于Java虚拟机(JVM)的实现,JVM作为程序与底层系统之间的中间层,负责解释并执行编译后的字节码。 **面向对象范式**:Java全面贯彻面向对象的设计原则,提供对封装、继承、多态等机制的完整支持。这种设计方式有助于构建结构清晰、模块独立的代码,提升软件的可维护性与扩展性。 **并发编程支持**:语言层面集成了多线程处理能力,允许开发者构建能够同时执行多项任务的应用程序。这一特性尤其适用于需要高并发处理的场景,例如服务器端软件、网络服务及大规模分布式系统。 **自动内存管理**:通过内置的垃圾回收机制,Java运行时环境能够自动识别并释放不再使用的对象所占用的内存空间。这不仅降低了开发者在内存管理方面的工作负担,也有效减少了因手动管理内存可能引发的内存泄漏问题。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值