23/02/2020, 08:05:09 *
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: Renovado el procedimiento de inserción de archivos GEOGEBRA en los mensajes.
 
 
Páginas: [1]   Ir Abajo
  Imprimir  
Autor Tema: Problemas con el seno  (Leído 699 veces)
0 Usuarios y 1 Visitante están viendo este tema.
adhemir
Pleno*
*****

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
Brazil Brazil

Mensajes: 278


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

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 »

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: 278


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

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!