RosettaCodeData/Task/Haversine-formula/QBasic/haversine-formula.basic

20 lines
623 B
Plaintext

CONST pi = 3.141593 ' define pi
CONST radio = 6372.8 ' radio de la tierra en km
PRINT : PRINT " Distancia de Haversine:";
PRINT Haversine!(36.12, -86.67, 33.94, -118.4); "km"
END
FUNCTION Haversine! (lat1!, long1!, lat2!, long2!)
deg2rad! = pi / 180 ' define grados a radianes 0.01745..
dLong! = deg2rad! * (long1! - long2!)
theta1! = deg2rad! * lat1!
theta2! = deg2rad! * lat2!
dx! = COS(dLong!) * COS(theta1!) - COS(theta2!)
dy! = SIN(dLong!) * COS(theta1!)
dz! = SIN(theta1!) - SIN(theta2!)
Haversine! = (SQR(dx! * dx! + dy! * dy! + dz! * dz!) / 2) * radio * 2
END FUNCTION