# include <iostream>
# include <math.h>
# include <cstdlib>
using namespace std;
double cosin_value( double value);
double sin_value( double value);
double big_degree (double value);
double big_radian (double value);
double x;
double value;
double degree;
double radian;
const double PI = 3.14159;
char choice;
char yes ;
int main()
{
bool end = false;
while (!end) //user requested to repeat the program
{
cout << "******** Trigonometric Program ********" << endl;
cout << "Please enter an angle value => ";
cin >> value; //request user to input a value
bool valid_choice = false;
while(!valid_choice)
{
cout << "Is the angle in Degree or Radian?" << endl;
cout << "\t" << "Type D if it is in Degree" << endl;
cout << "\t" << "Type R if it is in Radian" << endl;
cout << "Your response => ";
cin >> choice; //degree or radian?
cout.setf(ios::fixed);
cout.setf(ios::showpoint);
cout.precision(10);
if (choice == 'D' || choice == 'd')
{
degree = (value*PI)/180;
cout << value << " " << "Degree = " << degree << " " << "Radian" ;
valid_choice = true;
}
else if (choice == 'R' || choice == 'r')
{
big_radian (value);
valid_choice = true;
}
else
{
cout << "Invalid choice!"<< "Please select again =) " << endl;
valid_choice = false;
}
cout << endl;
}
cout << endl;
cout << endl;
cout << "\t" << "\t" << "Results" << endl;
cout << "========================================" << endl; //interface
if (choice == 'D' || choice == 'd')
{
cout << " "<< "x = " << "\t" << "" << degree << " " << "Radian" << endl;
}
else if (choice == 'R' || choice == 'r')
{
cout << " "<< "x = " << "\t" << "" << radian << " " << "Radian" << endl;
}
if (choice == 'D' || choice == 'd')
{
big_degree (value);
cout << " " << "sin(x) = " << "\t" << sin_value(degree) << endl;
cout << " " << "cos(x) = " << "\t" << cosin_value(degree) << endl;
cout << " " << "tan(x) = " << "\t" << sin_value(degree)/cosin_value(degree) << endl;
}
else if (choice == 'R' || choice == 'r')
{
cout << " " << "sin(x) = " << "\t" << sin_value(radian) << endl;
cout << " " << "cos(x) = " << "\t" << cosin_value(radian) << endl;
cout << " " << "tan(x) = " << "\t" << sin_value(radian)/cosin_value(radian) << endl;
}
cout << "========================================" << endl;
system("pause");
cout << "Do you want to continue?" <<endl;
cout << "\t" << "Type Y to continue" << endl;
cout << "\t" << "Type any other key to stop" << endl;
cout << "Your Response => " ;
cin >> yes;
if (yes == 'Y' || yes == 'y')
{
end = false;
}
else
{
end = true;
cout << "Thanks you, good bye!!" << endl;
}
cout << endl;
}
return 0;
}
// Sine,cosine functions
// angle -360<value<360
double sin_value( double value)
{
int count=1;
double sine, num, dem, sign, term;
sine=0;
sign = 1;
num = value;
dem = count;
while ( count <= 20 )
{
term = (num/dem);
sine = sine + term*sign;
num = num*value*value;
count = count + 2;
dem = dem * count * (count-1);
sign = -sign;
}
return (sine);
}
double cosin_value( double value)
{
int count=0;
double cosine, num, dem, sign, term;
cosine=0;
sign = 1;
num = 1;
dem = 1;
while ( count <= 20 )
{
term = (num/dem);
cosine = cosine + term*sign;
num = num*value*value;
count = count + 2;
dem = dem * count * (count-1);
sign = -sign;
}
return (cosine);
}
double big_degree (double value)
{
int result;
const int angle=360;
if (value >= 360 || value <= -360)
{
result=value/angle;
degree=(value-(result* angle))*PI/180;
}
else
{
degree = (value*PI)/180;
}
return (degree);
}
double big_radian (double value)
{
int result;
if (value >= 2*PI || value <= -2*PI)
{
result=value/(2*PI);
radian=(value-(result* 2*PI));
}
else
{
radian = value;
}
return (radian);
}