Add tasks for all the new languages
This commit is contained in:
parent
9dc3c2bb62
commit
bba7bfd280
13208 changed files with 134745 additions and 0 deletions
36
Task/Haversine-formula/FreeBASIC/haversine-formula.freebasic
Normal file
36
Task/Haversine-formula/FreeBASIC/haversine-formula.freebasic
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
' version 09-10-2016
|
||||
' compile with: fbc -s console
|
||||
|
||||
' Nashville International Airport (BNA) in Nashville, TN, USA,
|
||||
' N 36°07.2', W 86°40.2' (36.12, -86.67)
|
||||
' Los Angeles International Airport (LAX) in Los Angeles, CA, USA,
|
||||
' N 33°56.4', W 118°24.0' (33.94, -118.40).
|
||||
' 6372.8 km is an approximation of the radius of the average circumference
|
||||
|
||||
#Define Pi Atn(1) * 4 ' define Pi = 3.1415..
|
||||
#Define deg2rad Pi / 180 ' define deg to rad 0.01745..
|
||||
#Define earth_radius 6372.8 ' earth radius in km.
|
||||
|
||||
Function Haversine(lat1 As Double, long1 As Double, lat2 As Double, _
|
||||
long2 As Double , radius As Double) As Double
|
||||
|
||||
Dim As Double d_long = deg2rad * (long1 - long2)
|
||||
Dim As Double theta1 = deg2rad * lat1
|
||||
Dim As Double theta2 = deg2rad * lat2
|
||||
Dim As Double dx = Cos(d_long) * Cos(theta1) - Cos(theta2)
|
||||
Dim As Double dy = Sin(d_long) * Cos(theta1)
|
||||
Dim As Double dz = Sin(theta1) - Sin(theta2)
|
||||
Return Asin(Sqr(dx*dx + dy*dy + dz*dz) / 2) * radius * 2
|
||||
|
||||
End Function
|
||||
|
||||
Print
|
||||
Print " Haversine distance between BNA and LAX = "; _
|
||||
Haversine(36.12, -86.67, 33.94, -118.4, earth_radius); " km."
|
||||
|
||||
|
||||
' empty keyboard buffer
|
||||
While Inkey <> "" : Wend
|
||||
Print : Print "hit any key to end program"
|
||||
Sleep
|
||||
End
|
||||
Loading…
Add table
Add a link
Reference in a new issue