Data update
This commit is contained in:
parent
4bb20c9b71
commit
cbaf4c4b64
12390 changed files with 318560 additions and 27248 deletions
40
Task/Haversine-formula/NetRexx/haversine-formula.netrexx
Normal file
40
Task/Haversine-formula/NetRexx/haversine-formula.netrexx
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
/*REXX pgm calculates distance between Nashville & Los Angles airports. */
|
||||
say " Nashville: north 36° 7.2', west 86° 40.2' = 36.12°, -86.67°"
|
||||
say "Los Angles: north 33° 56.4', west 118° 24.0' = 33.94°, -118.40°"
|
||||
say
|
||||
dist=surfaceDistance(36.12, -86.67, 33.94, -118.4)
|
||||
say dist
|
||||
|
||||
bef = Length(dist/1)
|
||||
kdist=format(dist/1,bef,2)
|
||||
mdist=format(dist/1.609344,bef,2)
|
||||
ndist=format(mdist*5280/6076.1,bef,2)
|
||||
say ' distance between= ' kdist " kilometers,"
|
||||
say ' or ' mdist " statute miles,"
|
||||
say ' or ' ndist " nautical or air miles."
|
||||
exit /*stick a fork in it, we're done.*/
|
||||
/*----------------------------------SURFACEDISTANCE subroutine----------*/
|
||||
|
||||
method radians(x) static
|
||||
return x * Math.PI / 180
|
||||
|
||||
method surfaceDistance(lat1,lon1,lat2,lon2) public static /*use haversine formula for dist.*/
|
||||
radius = 6372.8 /*earth's mean radius in km */
|
||||
dLat = radians(lat2 - lat1)
|
||||
dLon = radians(lon2 - lon1)
|
||||
lat1 = radians(lat1)
|
||||
lat2 = radians(lat2)
|
||||
|
||||
a = sin(dLat / 2)**2 + cos(lat1) * cos(lat2) * sin(dLon / 2) ** 2
|
||||
c = 2 * asin(sqrt(a))
|
||||
|
||||
return radius * c
|
||||
|
||||
method cos(x) static
|
||||
return Rexx Math.cos(x)
|
||||
method sin(x) static
|
||||
return Rexx Math.sin(x)
|
||||
method asin(x) static
|
||||
return Rexx Math.asin(x)
|
||||
method sqrt(x) static
|
||||
return Rexx Math.sqrt(x)
|
||||
Loading…
Add table
Add a link
Reference in a new issue