Hola qué tal, trate de implementar la función seno hasta con 17 términos así como está el pseudocódigo en el libro Joyanes Aguilar, ejemplo 6.3,
pero cuando compilo,y pongo 180 me resulta seno(180)=2.1415
y seno(360)=6.28291, que es falso. ¿Dónde estará el error???
#include <cstdlib>
#include <iostream>
float factorial(int n);
float potencia(float x, int n);
float seno(float gr);
using namespace std;
int main()
{
float gr;
cout<<"escriba angulo en grados:"<<endl;
cin>>gr;
cout<<"seno( "<<gr<< ")= "<<seno(gr)<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
float factorial(int n)
{float f;
int i;
f=1;
for(i=1;i<=n;i++)
{f=f*i;}
return (f);
}
float potencia(float x, int n)
{float pot;
int i;
pot=1;
for(i=1;i<=n;i++)
{ pot=pot*x;
}
return (pot);
}
float seno(float gr)
{
float x,s;
int n,i;
x=(gr*3.1415)/360;
s=x;
for(i=2;i<=17;i++)
{n=2*i-1;
if(i%2!=0)
{s=s-potencia(x,n)/factorial(n);
}
else
{ s=s+potencia(x,n)/factorial(n);
}
}
return (s);
}