22/09/2019, 03:19:44 am *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
¿Perdiste tu email de activación?

Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias: LISTADO ACTUALIZADO DE CURSOS
 
 
Páginas: [1]   Ir Abajo
  Imprimir  
Autor Tema: Problemas con el seno  (Leído 655 veces)
0 Usuarios y 1 Visitante están viendo este tema.
adhemir
Pleno*
*****

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
Brazil Brazil

Mensajes: 268


Ver Perfil
« : 15/11/2011, 03:33:23 pm »

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);
 
       }   
En línea
oveka
Pleno*
*****

Karma: +1/-0
Desconectado Desconectado

Sexo: Masculino
Ukraine Ukraine

Mensajes: 294


Ver Perfil
« Respuesta #1 : 16/11/2011, 06:34:46 am »

Operador x=(gr*3.1415)/360;
Sea gr=180; (180*3.1415)/360=3.1415/2 :¿eh?:??
Son iguales 180===3.1415
En línea
adhemir
Pleno*
*****

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
Brazil Brazil

Mensajes: 268


Ver Perfil
« Respuesta #2 : 16/11/2011, 09:39:37 am »

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
En línea
Páginas: [1]   Ir Arriba
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.4 | SMF © 2006, Simple Machines LLC XHTML 1.0 válido! CSS válido!