Autor Tema: Problemas con el seno

0 Usuarios y 1 Visitante están viendo este tema.

15 Noviembre, 2011, 07:33 pm
Leído 1835 veces

adhemir

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 278
  • Karma: +0/-0
  • Sexo: Masculino
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);
 
       }   

16 Noviembre, 2011, 10:34 am
Respuesta #1

oveka

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 294
  • Karma: +1/-0
  • Sexo: Masculino
Operador x=(gr*3.1415)/360;
Sea gr=180; (180*3.1415)/360=3.1415/2 ?????
Son iguales 180===3.1415

16 Noviembre, 2011, 01:39 pm
Respuesta #2

adhemir

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 278
  • Karma: +0/-0
  • Sexo: Masculino
bueno me equivoque en digitar era:
x=(gr*3.1415)/180;


y la parte final, la hice manualmente
y pienso que es assi:
if(i%2!=0)
 {s=s+potencia(x,n)/factorial(n);
}
 else
{ s=s-potencia(x,n)/factorial(n);
}
}         
 return (s);
 
       }   
y veo que assi funciona, , veo que el libro staba errado en esta , parte