elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Razones trigonometricas(C++)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Razones trigonometricas(C++)  (Leído 14,035 veces)
Danyel_Casvill

Desconectado Desconectado

Mensajes: 113


adada


Ver Perfil
Razones trigonometricas(C++)
« en: 9 Junio 2011, 03:10 am »

Hola ^^
Hola pues mi duda es simple, me han estado enseñando en el cole el teorema de pitágoras (estoy empezando noveno), y pense en hacer un programa en C++ que halle la hipotenusa, o algun cateto de un triangulo.
c^2=a^2+b^2  donde c=hipotenusa, a=cateto b=cateto.

Entonces, me han dicho que si quiero hacer potencias en c++ puedo usar math.h o hacer la funcion con un for, como?

Código
  1. #include <iostream>
  2. #include <math>
  3. int main()
  4. {
  5. int opc;
  6. float c,a,b;
  7. cout<<"  Teorema de pitagoras"<<endl<<endl;
  8. cout<<"1.Encontrar la hipotenusa"<<endl;
  9. cout<<"2.Encontrar cateto"<<endl;
  10. cout<<"3.Salir"<<endl;
  11. cin>>opc;
  12. switch (opc)
  13. {
  14.  case 1:
  15.  {
  16.   cout<<"1.Hipotenusa:"<<endl;
  17.   cout<<"Ingrese el cateto opuesto:";cin>>a;
  18.   cout<<"Ingrese el cateto adyacente:";cin>>b;
  19.   c=pow(a,2)+pow(b,2);
  20.   cout<<"El valor de la hipotenusa es:"<<sqrt(c);
  21.   break;
  22.  }
  23.  case 2:
  24.  {
  25.   cout<<"2.Cateto:"<<endl;
  26.   cout<<"Ingrese el valor de la hipotenusa:";cin>>c;
  27.   cout<<"Ingrese el valor del cateto:";cin>>b;
  28.   a=pow(c,2)-pow(b,2);
  29.   cout<<"El valor de la hipotenusa es:"<<sqrt(a);
  30.   break;
  31.  }
  32.  
  33.  default:
  34.  return 0;
  35. }
  36. cin.get();cin.get();
  37. return 0;
  38. }
  39.  
En ese código, suponiendo que a=5 y b=6, se resolveria asi:
^=potencia RC=Raíz Cuadrada
c^2=5^2+6^2
c^2=25+36
c^2=61
RCc^2=RC61 //Para despejar c
c=RC61
c=7.81

Pero en C++ no sabría como entrar la raíz cuadrada ni potencias (ademas lo de potencias lo digo por si en otro programa tenga que encontrar una potencias grande que sea ingresada por el usuario o algo por el estilo).

Pd: No es ninguna tarea, es simplemente hobbie.


« Última modificación: 9 Junio 2011, 20:51 pm por danyhack » En línea

adada
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Raices y Potencias (C++)
« Respuesta #1 en: 9 Junio 2011, 03:12 am »

Para raices se usa sqrt(), también definida en math.h o en cmath.


En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Danyel_Casvill

Desconectado Desconectado

Mensajes: 113


adada


Ver Perfil
Re: Raices y Potencias (C++)
« Respuesta #2 en: 9 Junio 2011, 03:35 am »

  ;D Gracias!! ahora mi duda sería como hallar potencias grandes ingresadas por usuario.
Ya edite el código.
En línea

adada
pucheto

Desconectado Desconectado

Mensajes: 215


Ver Perfil
Re: Raices y Potencias (C++)
« Respuesta #3 en: 9 Junio 2011, 03:41 am »

La raiz cuadrada se podria llegar a calcular usando el metodo de Biseccion y por ahi Newton sobre una cuadratica, (en particular buscas la raiz de f( x ) = x^2 - Numero). Pero lo cuento al mejor estilo anecdota por si queres investigar un poco al respecto.
En línea

Acermax

Desconectado Desconectado

Mensajes: 55


Ver Perfil
Re: Raices y Potencias (C++)
« Respuesta #4 en: 9 Junio 2011, 03:56 am »

Para hayar potencias las puedes hacer con un bucle, o mediante la función pow de la librería cmath o math.h
Código:
double pow (      double base,      double exponent );
long double pow ( long double base, long double exponent );
      float pow (       float base,       float exponent );
     double pow (      double base,         int exponent );
long double pow ( long double base,         int exponent );

Si pones cmath o math.h en cplusplus.com por ejemplo puedes ver sus funciones.

Respecto al método de la bisección. Alguien a quien le acaban de explicar el teoréma de pitágoras no creo que esté capacitado para entender el método de la bisección, aunque igual me equivoco.
En línea

Died

Desconectado Desconectado

Mensajes: 32


Ver Perfil
Re: Raices y Potencias (C++)
« Respuesta #5 en: 9 Junio 2011, 16:57 pm »

Mmm... me vendría bien hacer ese código, me hará ponerme a programar otra vez después de estas semanas. Te tomaré prestada la idea, si lo acabo rápido y tengo ganas lo subo aquí ;)

Un saludo! Sagrini
En línea

Danyel_Casvill

Desconectado Desconectado

Mensajes: 113


adada


Ver Perfil
Re: Raices y Potencias (C++)
« Respuesta #6 en: 9 Junio 2011, 17:50 pm »

Gracias a todos, ya el código esta hecho

Died ¿Eres sagrini?¿Te cambiaste el nombre?
Ok toma la idea, aunque ahora estoy intentado hacer un programa que halle el seno, coseno y la tangente. Si tengo alguna duda pregunto :D

¬¬ Ok ya necesito ayuda xD

Código
  1. #include <iostream>
  2. #include <math>
  3. #define PI 3.14
  4. int main()
  5. {
  6. int opc;
  7. float co,ca,h;
  8. cout<<"      RAZONES TRIGONOMETRICAS"<<endl<<endl;
  9. cout<<"1.Seno"<<endl;
  10. cout<<"2.Coseno"<<endl;
  11. cout<<"3.Tangente"<<endl;
  12. cout<<"4.Salir"<<endl;
  13. cin>>opc;
  14. switch (opc)
  15. {
  16.  case 1:
  17.  {
  18.   cout<<"1.Seno:"<<endl;
  19.   cout<<"Ingrese el valor del cateto opuesto:";cin>>co;
  20.   cout<<"Ingrese el valor de la hipotenusa:";cin>>h;
  21.   ca=(co/h);//Hagan la prueba con 300/10 debería dar 5 ¿no?
  22.   cout<<"El valor del seno es:"<<sin(ca*PI/180);
  23.   break;
  24.  }
  25. }
  26. cin.get();cin.get();
  27. return 0;
  28. }

El caso es que asi es como entiendo deberia hacerse, pero me da un resultado muy diferente como 0.4... Alguna sugerencia?

Aaa y otra cosa, co=cateto opuesto, ca=ct. adyacente y h=hipotenusa. En el caso de encontrar el seno, co lo utilice como resultado de la operacion.
sin=co/h  cos=ca/h  Tg=co/ca
« Última modificación: 9 Junio 2011, 18:13 pm por danyhack » En línea

adada
Acermax

Desconectado Desconectado

Mensajes: 55


Ver Perfil
Re: Raices y Potencias (C++)
« Respuesta #7 en: 9 Junio 2011, 18:38 pm »

Algo haces mal para que te de 5 como resultado xD. El seno varía entre -1 y 1 sin desplazamiento... de hecho el resultado que debería dar es 0,49 con ese 300/10.

Date cuenta que estas cuentas debes hacerlas en radianes, si no lo estás haciendo ya.
En línea

Danyel_Casvill

Desconectado Desconectado

Mensajes: 113


adada


Ver Perfil
Re: Raices y Potencias (C++)
« Respuesta #8 en: 9 Junio 2011, 20:50 pm »

Ok, ya obtuve radianes, ahora para pasarlo a grados seria algo asi?
(En un triangulo rectangulo)
Código
  1. cout<<"1.Seno:"<<endl;
  2.   cout<<"Ingrese el valor del cateto opuesto:";cin>>co;
  3.   cout<<"Ingrese el valor de la hipotenusa:";cin>>h;
  4.   ca=(co/h);
  5.   r=sin(ca*PI/180);//r=radianes
  6.   cout<<"El valor del seno es:"<<r*(180/PI);

Es asi o me equivoco? y, para pasarlo a minutos y segundos se multiplica la parte decimal por 60?
En línea

adada
Acermax

Desconectado Desconectado

Mensajes: 55


Ver Perfil
Re: Razones trigonometricas(C++)
« Respuesta #9 en: 9 Junio 2011, 21:15 pm »

Edito:

A ver, primero debes pasar el valor en grados a radianes, la relación es sencilla 2*PI radianes=360º. Una vez que lo pasas puedes operar en radianes. Con eso ya tienes el resultado del seno, que creo que es lo que tu quieres, o me equivoco?

Bueno, pues eso es lo que tienes guardado en "r", y ese debería ser el resultado que ti quieres y el correcto.

Otra cosa sería que quieras pasarlo a grados de nuevo, tienes que aplicar el arcoseno a "r", y el resultado convertirlo de nuevo a grados con la misma relación.
« Última modificación: 9 Junio 2011, 21:48 pm por Acermax » En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
funciones trigonometricas
Programación Visual Basic
Gokuman 2 2,590 Último mensaje 22 Abril 2008, 18:53 pm
por Gokuman
¿Por que razones no se asigna memoria?
Programación C/C++
do-while 2 4,747 Último mensaje 24 Noviembre 2010, 00:21 am
por do-while
Ayuda con Matematicas ( Limite de Identidades Trigonometricas)
Dudas Generales
lpnu 8 9,687 Último mensaje 20 Octubre 2011, 06:44 am
por xdeadpoolx
Duda razones trigonométricas C++
Programación C/C++
Bob1098 2 2,071 Último mensaje 7 Abril 2014, 19:56 pm
por noele1995
Ayuda con el siguiente programa.
Programación C/C++
padiuwu 7 3,061 Último mensaje 3 Septiembre 2018, 15:48 pm
por Serapis
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines