C++ get sin by taylor series I got most of the code but dont know which part whe
ID: 3854220 • Letter: C
Question
C++ get sin by taylor series I got most of the code but dont know which part when wrong some one please help
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
void ShowProgramHeader();
void Funchtiontable();
double GetSin(double x);
double Square(double Num);
double Sqrt(double Num);
double Exp(double Num);
double Factorial(double Num);
int main()
{
ShowProgramHeader();
double x = 0.0;
//Funchtiontable();
while (x < 0.7853) //radian equivalent of 45 degrees
{
x = x + 0.017453292; //radians equivalent of 1 degree increments
}
cout << endl;
GetSin(x);
return 0;
}
double Square(double Num)
{
double Square = 0.0;
Square = pow(Num,2);
return Square;
}
double Sqrt(double Num)
{
double Sqrt = 0.0;
Sqrt = sqrt(Num);
return Sqrt;
}
double Exp(double Num)
{
double Exp = 0.0;
Exp = exp(Num);
return Exp;
}
double Factorial(double Num)
{
int Factorial = 1;
for(int i = 1; i <= Num; i++)
{
Factorial = Factorial * i;
}
return Factorial;
}
void Funchtiontable()
{
int i = 1;
cout<<"Num"<<setw(10)<<"Sqrt"<<setw(10)<<"Square"<<setw(10)<<"Exp ";
while(i <= 50)
{
if(i<10)
{
cout<<left<<setw(10)<<i<<left<<setw(10)<<Sqrt(i);
cout<<left<<setw(10)<<left<<Square(i)<<left<<setw(10)<<Exp(i)<<endl;
i++;
}
else
{
cout<<left<<setw(10)<<i<<left<<setw(10)<<Sqrt(i);
cout<<left<<setw(10)<<left<<Square(i)<<left<<setw(10)<<Exp(i)<<endl;
i = i + 5;
}
}
}
double GetSin(double x)
{
double Sin = 0.0;
int i = 0;
double sum = 0.0;
cout<<left<<setw(10)<<"Degree"<<left<<setw(10)<<"Sin"<<endl;
while(i <= 45)
{
if(i<15)
{
Sin = Sin + pow(-1,i) * pow(x,2*i+1)/Factorial(2*i+1);
cout<<left<<setw(10)<<i<<left<<setw(10)<<Sin<<endl;
i++;
}
else
{
Sin = Sin + pow(-1,i) * pow(x,(2*i+1))/Factorial(2*i+1);
cout<<left<<setw(10)<<i<<left<<setw(10)<<Sin<<endl;
i = i + 5;
}
}
return x;
}
double GetSin(double x)
{
double Sin = 0.0;
int i = 0;
double sum = 0.0;
cout<<left<<setw(10)<<"Degree"<<left<<setw(10)<<"Sin"<<endl;
while(i <= 45)
{
if(i<15)
{
/*
Sin = Sin + pow(-1,i) * pow(x,2*i+1)/Factorial(2*i+1);
cout<<left<<setw(10)<<i<<left<<setw(10)<<Sin<<endl;
i++;
*/
double top = pow(-1, i) * pow(x, 2 * i + 1);
double bottom = Factorial(2 * i + 1);
sum = sum + (top / bottom);
cout<<left<<setw(10)<<i<<left<<setw(10)<<sum<<endl;
i++;
}
else
{
Sin = Sin + pow(-1,i) * pow(x,(2*i+1))/Factorial(2*i+1);
cout<<left<<setw(10)<<i<<left<<setw(10)<<Sin<<endl;
i = i + 5;
}
}
return x;
}
Explanation / Answer
Hi Let me know if you need this in other format and if you need more implementation[Please do comment]:-
===================================================
Bolded Parts i have done some changes
error:-
1.Defined two times:-double GetSin(double x); with same signature so it will throw error.
2. this method implementation was not present : -void ShowProgramHeader();[Pleae let me know if it has to be implemented.
==========================
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
//void ShowProgramHeader();
void Funchtiontable();
double GetSin(double x);
double Square(double Num);
double Sqrt(double Num);
double Exp(double Num);
double Factorial(double Num);
int main()
{
// ShowProgramHeader();
double x = 0.0;
//Funchtiontable();
while (x < 0.7853) //radian equivalent of 45 degrees
{
x = x + 0.017453292; //radians equivalent of 1 degree increments
}
cout << endl;
GetSin(x);
return 0;
}
double Square(double Num)
{
double Square = 0.0;
Square = pow(Num, 2);
return Square;
}
double Sqrt(double Num)
{
double Sqrt = 0.0;
Sqrt = sqrt(Num);
return Sqrt;
}
double Exp(double Num)
{
double Exp = 0.0;
Exp = exp(Num);
return Exp;
}
double Factorial(double Num)
{
int Factorial = 1;
for (int i = 1; i <= Num; i++)
{
Factorial = Factorial * i;
}
return Factorial;
}
void Funchtiontable()
{
int i = 1;
cout << "Num" << setw(10) << "Sqrt" << setw(10) << "Square" << setw(10)
<< "Exp ";
while (i <= 50)
{
if (i < 10)
{
cout << left << setw(10) << i << left << setw(10) << Sqrt(i);
cout << left << setw(10) << left << Square(i) << left << setw(10)
<< Exp(i) << endl;
i++;
}
else
{
cout << left << setw(10) << i << left << setw(10) << Sqrt(i);
cout << left << setw(10) << left << Square(i) << left << setw(10)
<< Exp(i) << endl;
i = i + 5;
}
}
}
double GetSin(double x)
{
double Sin = 0.0;
int i = 0;
double PI = 3.14159265358979323846;
double sum = 0.0;
cout << left << setw(10) << "Degree" << left << setw(10) << "Sin" << endl;
while (i <= 45)
{
x = i / 180.0 * PI;
if (i < 15)
{
for (int z = 0; z < 9; z++) {
Sin = Sin + pow(-1, z) * pow(x, 2 * z + 1) / Factorial(2 * z + 1);
}
cout << left << setw(10) << i << left << setw(10) << Sin << endl;
i++;
}
else
{
for (int z = 0; z < 9; z++) {
Sin = Sin + pow(-1, z) * pow(x, 2 * z + 1) / Factorial(2 * z + 1);
}
cout << left << setw(10) << i << left << setw(10) << Sin << endl;
i = i + 5;
}
Sin = 0.0;
}
return x;
}
/*double GetSin(double x)
{
double Sin = 0.0;
int i = 0;
double sum = 0.0;
cout << left << setw(10) << "Degree" << left << setw(10) << "Sin" << endl;
while (i <= 45)
{
if (i < 15)
{
Sin = Sin + pow(-1,i) * pow(x,2*i+1)/Factorial(2*i+1);
cout<<left<<setw(10)<<i<<left<<setw(10)<<Sin<<endl;
i++;
double top = pow(-1, i) * pow(x, 2 * i + 1);
double bottom = Factorial(2 * i + 1);
sum = sum + (top / bottom);
cout << left << setw(10) << i << left << setw(10) << sum << endl;
i++;
}
else
{
Sin = Sin + pow(-1, i) * pow(x, (2 * i + 1)) / Factorial(2 * i + 1);
cout << left << setw(10) << i << left << setw(10) << Sin << endl;
i = i + 5;
}
}
return x;
}*/
=========================
OUTPUT
==============================
Degree Sin
0 0
1 0.0174524
2 0.0348995
3 0.052336
4 0.0697565
5 0.0871557
6 0.104528
7 0.121869
8 0.139173
9 0.156434
10 0.173648
11 0.190809
12 0.207912
13 0.224951
14 0.241922
15 0.258819
20 0.34202
25 0.422618
30 0.5
35 0.573576
40 0.642788
45 0.707107
===================
Thanks
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.