RosettaCodeData/Task/Angle-difference-between-tw.../FreeBASIC/angle-difference-between-tw...

50 lines
1.2 KiB
Plaintext

' version 28-01-2019
' compile with: fbc -s console
#Include "string.bi"
Function frmt(num As Double) As String
Dim As String temp = Format(num, "#######.#############")
Dim As Integer i = Len(temp) -1
If temp[i] = Asc(".") Then temp[i] = 32
If InStr(temp, ".") = 0 Then
Return Right(Space(10) + temp, 9) + Space(13)
End If
temp = Space(10) + temp + Space(13)
Return Mid(temp, InStr(temp, ".") -8, 22)
End Function
' ------=< MAIN >=------
Dim As Double b1, b2, bb1, bb2, diff
Print
Print " b1 b2 difference"
Print " -----------------------------------------------------------"
Do
Read b1, b2
If b1 = 0 And b2 = 0 Then Exit Do
diff = b2 - b1
diff = diff - Int(diff / 360) * 360
If diff > 180 Then diff -= 360
Print frmt(b1); frmt(b2); frmt(diff)
Loop
Data 20,45, -45,45, -85,90
Data -95,90, -45,125, -45,145
Data 29.4803,-88.6381, -78.3251,-159.036
Data -70099.74233810938, 29840.67437876723
Data -165313.6666297357, 33693.9894517456
Data 1174.8380510598456, -154146.66490124757
Data 60175.77306795546, 42213.07192354373
' empty keyboard buffer
While InKey <> "" : Wend
Print : Print "hit any key to end program"
Sleep
End