Ecco completo.
#include <stdio.h>
#include <math.h>
#define M_PI 3.14159265358979323846
double seno(double rad,int passi);
double coseno(double rad,int passi);
unsigned int iter_factorial(unsigned int n);
int main()
{
printf("Seno calcolato: %g\n",seno(M_PI/6,10));
printf("Seno esatto: %g\n",sin(M_PI/6));
printf("Coseno calcolato: %g\n",coseno(M_PI/6,10));
printf("Coseno esatto: %g\n",cos(M_PI/6));
printf("Tangente calcolato: %g\n",seno(M_PI/6,10)/coseno(M_PI/6,10));
printf("Tangente esatto: %g\n",tan(M_PI/6));
return 0;
}
unsigned int iter_factorial(unsigned int n)
{
unsigned int ret = 1;
for(unsigned int i = 1; i <= n; ++i)
ret *= i;
return ret;
}
double seno(double rad,int passi)
{
double senTemp = 0.;
for(int n = 0; n < passi; n++)
{
senTemp +=(pow(-1.,(double)n)/(double)iter_factorial(2*n + 1))*pow(rad,2*n + 1);
}
return senTemp;
}
double coseno(double rad,int passi)
{
double cosTemp = 0.;
for(int n = 0; n < passi; n++)
{
cosTemp +=(pow(-1.,(double)n)/(double)iter_factorial(2*n))*pow(rad,2*n);
}
return cosTemp;
}
Come vedi abbiamo li stessi valori in uscita.