Ayuda con función seno

Tengo que realizar un programa de balística que calcule la distancia recorrida en función de la velocidad inicial y el angulo de partida, el program es sencillo, pero la duda que tengo es que hay un error en calculo del seno del angulo, que lleva el programa, ya que no me arroja el valor exacto:pr ejemplo para un angulo de 30 y velocidad inicial 400 el resultado debería ser 14139.19, pero me arroja otro valor. Así que si me ayudaras te lo agradecería, el código que realice es el siguiente:
program balistica; { SIMULAR EL DISPARO DE UNA BALA }
uses
wincrt;
var
grad,vi:real;
d:real;
const
g=9.8;
begin
writeln('INGRESE LOS GRADOS DE INCLINACION');
readln(grad);
writeln('INGRESE LA VELOCIDAD INICIAL EN mts/sg');
readln(vi);
d:= (sqr(vi)*sin(2*grad))/g;
writeln('LA DISTANCIA QUE RECORRIO LA BALA ES: ',d:3:1 ,'mts/sg');
end.

1 Respuesta

Respuesta
1
El truco esta en que las funciones trigonométricas trabajan con radianes y no con grados sexagesimales. Entonces, tienes que hacer una conversión y la fórmula quedara así:
d:= (sqr(vi)*sin(2*grad*3.14159/180))/g;
¿Te diste cuenta? Se multiplica los grados sexagesimales por el valor de PI y luego se divide entre 180. Si quieres, puedes declarar una constante con nombre Pi.
Eso es todo, sale el valor que mencionas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas