Título: Duda razones trigonométricas C++ Publicado por: Bob1098 en 7 Abril 2014, 17:52 pm Hola buenas. Estaba practicando un poco de trigonometría haciendo un simple programa de C++ que te pide un angulo y el cateto opuesto, y calcula la hipotenusa de un triángulo rectágulo. Funciona bien y parece darme el resultado, pero hay veces que sale negativo =S.
Código: #include <iostream> #include <cmath> using namespace std; int main() { float A, co, h; cout << "Introduce el angulo y el cateto opuesto: "; cin >> A; cin >> co; h = co / (sin(A)); cout << "La hipotenusa es: " << h; cin.get(); return 0; } No sé, yo creo que está bien pero si alguien me pudiera explicar el por qué de un resultado negativo... Gracias de antemano. Título: Re: Duda razones trigonométricas C++ Publicado por: eferion en 7 Abril 2014, 17:54 pm Pondrás valores de ángulo menores de 90º, no??
Por otro lado, "sin" funciona con radianes, no con grados. Tienes que aplicar la conversión A*PI/180 para pasar los grados a radianes. Título: Re: Duda razones trigonométricas C++ Publicado por: noele1995 en 7 Abril 2014, 19:56 pm -Bueno el seno oscila entre 1 y -1 por lo tanto puede devolver tanto positivo como negativo:
(http://upload.wikimedia.org/wikipedia/commons/thumb/7/7f/FunTriR100.svg/650px-FunTriR100.svg.png) Posible solucion: utilizar valor absoluto Código
-Atento a lo que dijo eferion sobre las unidades porque el angulo nunca puede ser mayor de 90 en un triangulo rectangulo y siempre deberia ser positivo el seno,es por lo que te sale negativo. Saludos |