Duda 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 problema es que pascal no trabaja con grados, sino con radianes, por lo que tendrías que hacer la conversión de la siguiente forma
d:=sqr(vi)*sin(2*grad*pi/180))/g;
Te recomiendo que a la hora de mostrar el resultado lo hagas con dos decimales en lugar de 1, ya que si no el resultado que te dará para esos datos es de 14139.2

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas