Duda razones trigonométricas C++

Iniciado por Bob1098, 7 Abril 2014, 17:52 PM

0 Miembros y 1 Visitante están viendo este tema.

Bob1098

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.
#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.

eferion

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.

noele1995

-Bueno el seno oscila entre 1 y -1 por lo tanto puede devolver tanto positivo como negativo:



Posible solucion: utilizar valor absoluto
Código (cpp) [Seleccionar]
x = abs(x);

-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