Haversine formula: Difference between revisions
Content added Content deleted
m (→{{header|TypeScript}}: Adjusted tag for slightly better syntax highlighting) |
(→{{header|Commodore BASIC}}: Move to correct alphabetical location.) |
||
Line 799: | Line 799: | ||
The distance between BNA and LAX is about 2887.26 km.</pre> |
The distance between BNA and LAX is about 2887.26 km.</pre> |
||
=={{header|Commodore BASIC}}== |
|||
… on listing {PI} has to be replaced on Commodore C64 by keyboard combination "Commodore key" plus "up arrow" |
|||
<lang BASIC> |
|||
10 REM================================ |
|||
15 REM HAVERSINE FORMULA |
|||
20 REM |
|||
25 REM 2021-09-24 |
|||
30 REM EN.WIKIPEDIA.ORG/WIKI/HAVERSINE_FORMULA |
|||
35 REM |
|||
40 REM C64 HAS PI CONSTANT |
|||
45 REM X1 LONGITUDE 1 |
|||
50 REM Y1 LATITUDE 1 |
|||
55 REM X2 LONGITUDE 2 |
|||
60 REM Y2 LATITUDE 2 |
|||
65 REM |
|||
70 REM V1, 2021-10-02, ALVALONGO |
|||
75 REM =============================== |
|||
100 REM MAIN |
|||
110 PRINT CHR$(147);CHR$(5);"HAVERSINE FORMULA" |
|||
120 PRINT "GREAT-CIRCLE DISTANCE" |
|||
130 R=6372.8:REM AVERAGE EARTH RADIUS IN KILOMETERS |
|||
200 REM GET DATA |
|||
210 PRINT |
|||
220 INPUT "LONGITUDE 1=";X1 |
|||
230 INPUT "LATITUDE 1=";Y1 |
|||
240 PRINT |
|||
250 INPUT "LONGITUDE 2=";X2 |
|||
260 INPUT "LATITUDE 2=";Y2 |
|||
270 GOSUB 500 |
|||
280 PRINT |
|||
290 PRINT "DISTANCE=";D;" KM" |
|||
300 GET K$:IF K$="" THEN 300 |
|||
310 GOTO 210 |
|||
490 END |
|||
500 REM HAVERSINE FORMULA ------------ |
|||
510 DR={PI}/180:REM DEGREES TO RADIANS |
|||
520 A=SIN((X2-X1)*DR/2) |
|||
530 A=A*A |
|||
540 B=COS(Y1*DR)*COS(Y2*DR) |
|||
550 C=SIN((Y2-Y1)*DR/2) |
|||
560 C=C*C |
|||
570 D=SQR(C+B*A) |
|||
580 E=D/SQR(1-D*D) |
|||
590 F=ATN(E) |
|||
600 D=2*R*F |
|||
610 RETURN |
|||
</lang> |
|||