本文主要是介绍三角函数--char4,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
编制三角函数表:
要求在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);
}
这篇关于三角函数--char4的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!