三角函数表

/*
要求在main()函数中调用show_sin_table(min_angle, max_angle),
显示角度值为min_angle到max_angle之间的所有角度(间隔为1度)
的正弦值。要求不能用数学库函数,将项目6中的mysin函数拷贝到
这个程序中,用于计算sin值。例如show_sin_table(0, 90)可以显
示出所有0到90度的正弦值。为取得更好的效果,可以考虑像英尺
到米的转换一样,以速查表格的形式给出结果。、

参考解答:
*/


#include <iostream>   
#include <iomanip>   
using namespace std;  
double mysin(double);  
double myabs(double);  
void show_sin_table(int, int);  
const double pi=3.1415926;  
int main( )  
{  
    show_sin_table(0, 90);  
    //show_sin_table(135, 180);  //程序在显示这部分时进入了死循环,原因待查   
    return 0;  
}  
//下面定义show_sin_table()函数   
void show_sin_table(int iFromAngle, int iToAngle)  
{  
    int x,count=0;  
    cout<<"由"<<iFromAngle<<"°到"<<iToAngle<<"°的三角函数表: "<<endl;  
    cout<<setiosflags(ios::fixed)<<setiosflags(ios::right)<<setprecision(3);  
    for(x=0; x<3;x++)  
        cout<<setw(8)<<" 角度x"<<setw(8)<< "  sin(x)";  
    cout<<"\n";  
    //逐个地转换并输出   
    for(x=iFromAngle;x<=iToAngle; x++)  
    {  
        cout<<setw(8)<<x<<setw(8);  
        cout<<mysin(x*pi/180);   
        if (count%3==2)cout<<"\n";  
        ++count;  
    }   
    cout<<"\n";     
    return;  
}  
  
//下面定义mysin函数   
double mysin(double x)    
{    
    double sum=x,x_pow=x,item;    
    int n=1,fact=1,sign=1;     //定义变量时赋初值,已经将第一项考虑到累加和sum中     
    do    
    {    
        fact=fact*(n+1)*(n+2);  //fact用于表示阶乘,在公式中作分母     
        x_pow*=x*x;             //x_pow是分子中用于表示阶乘,在公式中作分母     
        sign=-sign;             //确定即将要累加的这一项的符号     
        item =x_pow/fact*sign; //计算出要累加的项     
        sum+=item;              //将该项累加上去     
        n+=2;    
    }while(myabs(item)>1e-5);    
    return sum;    
}    
  
  
//下面定义myabs函数   
double myabs(double x)  
{  
    return ((x>=0)?x:-x);  
}  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值