Autor
|
Tema: Razones trigonometricas(C++) (Leído 14,183 veces)
|
Danyel_Casvill
Desconectado
Mensajes: 113
adada
|
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? #include <iostream> #include <math> int main() { int opc; float c,a,b; cout<<" Teorema de pitagoras"<<endl<<endl; cout<<"1.Encontrar la hipotenusa"<<endl; cout<<"2.Encontrar cateto"<<endl; cout<<"3.Salir"<<endl; cin>>opc; switch (opc) { case 1: { cout<<"1.Hipotenusa:"<<endl; cout<<"Ingrese el cateto opuesto:";cin>>a; cout<<"Ingrese el cateto adyacente:";cin>>b; c=pow(a,2)+pow(b,2); cout<<"El valor de la hipotenusa es:"<<sqrt(c); break; } case 2: { cout<<"2.Cateto:"<<endl; cout<<"Ingrese el valor de la hipotenusa:";cin>>c; cout<<"Ingrese el valor del cateto:";cin>>b; a=pow(c,2)-pow(b,2); cout<<"El valor de la hipotenusa es:"<<sqrt(a); break; } default: return 0; } cin.get();cin.get(); return 0; }
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
Mensajes: 3.069
/^$/
|
Para raices se usa sqrt(), también definida en math.h o en cmath.
|
|
|
En línea
|
|
|
|
Danyel_Casvill
Desconectado
Mensajes: 113
adada
|
Gracias!! ahora mi duda sería como hallar potencias grandes ingresadas por usuario. Ya edite el código.
|
|
|
En línea
|
adada
|
|
|
pucheto
Desconectado
Mensajes: 215
|
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
Mensajes: 55
|
Para hayar potencias las puedes hacer con un bucle, o mediante la función pow de la librería cmath o math.h 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
Mensajes: 32
|
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
Mensajes: 113
adada
|
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 ¬¬ Ok ya necesito ayuda xD #include <iostream> #include <math> #define PI 3.14 int main() { int opc; float co,ca,h; cout<<" RAZONES TRIGONOMETRICAS"<<endl<<endl; cout<<"1.Seno"<<endl; cout<<"2.Coseno"<<endl; cout<<"3.Tangente"<<endl; cout<<"4.Salir"<<endl; cin>>opc; switch (opc) { case 1: { cout<<"1.Seno:"<<endl; cout<<"Ingrese el valor del cateto opuesto:";cin>>co; cout<<"Ingrese el valor de la hipotenusa:";cin>>h; ca=(co/h);//Hagan la prueba con 300/10 debería dar 5 ¿no? cout<<"El valor del seno es:"<<sin(ca*PI/180); break; } } cin.get();cin.get(); return 0; }
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
Mensajes: 55
|
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
Mensajes: 113
adada
|
Ok, ya obtuve radianes, ahora para pasarlo a grados seria algo asi? (En un triangulo rectangulo) cout<<"1.Seno:"<<endl; cout<<"Ingrese el valor del cateto opuesto:";cin>>co; cout<<"Ingrese el valor de la hipotenusa:";cin>>h; ca=(co/h); r=sin(ca*PI/180);//r=radianes 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
Mensajes: 55
|
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
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
funciones trigonometricas
Programación Visual Basic
|
Gokuman
|
2
|
2,613
|
22 Abril 2008, 18:53 pm
por Gokuman
|
|
|
¿Por que razones no se asigna memoria?
Programación C/C++
|
do-while
|
2
|
4,779
|
24 Noviembre 2010, 00:21 am
por do-while
|
|
|
Ayuda con Matematicas ( Limite de Identidades Trigonometricas)
Dudas Generales
|
lpnu
|
8
|
9,735
|
20 Octubre 2011, 06:44 am
por xdeadpoolx
|
|
|
Duda razones trigonométricas C++
Programación C/C++
|
Bob1098
|
2
|
2,106
|
7 Abril 2014, 19:56 pm
por noele1995
|
|
|
Ayuda con el siguiente programa.
Programación C/C++
|
padiuwu
|
7
|
3,120
|
3 Septiembre 2018, 15:48 pm
por Serapis
|
|