使用類的繼承計算三角函數sin(x)的值
#include<iostream>
#include<iomanip>
#define pi 3.14159265358979
using namespace std;
class Trigonometric
{
protected:
double arc;
double value;
public:
Trigonometric(int t)
{
value=0;
arc=(t%360<180)?(t%360*pi/180):(t%180*pi/-180);
}
};
class Sine:public Trigonometric
{
public:
Sine(double d):Trigonometric(d) {};
double f1(double x,int n)
{
for(int i=1;i<n;i++)
x*=x;
return x;
}
double f2(int n)
{
double N=1;
for(;n>=1;n--)
N*=n;
return N;
}
void function()
{
double item=arc;
int n=1,sign=1;
value=arc;
while(int(item*100000))
{
item=0;
n+=2;
sign=-sign;
item=f1(arc,n)/f2(n)*sign;
value+=item;
} ;
};
void show()
{
cout<<"sin("<<arc<<")="<<setprecision(1)<<value<<endl;
};
};
int main()
{
double a;
cout<<"請輸入度數:";
cin>>a;
Sine sin(a);
sin.function();
sin.show();
return 0;
}