RosettaCodeData/Task/Averages-Mean-angle/QB64/averages-mean-angle.qb64
2024-11-04 21:53:44 -08:00

34 lines
886 B
Text

Const PI# = 3.1415926535897932
ReDim angles1#(1 To 2)
angles1#(1) = 350
angles1#(2) = 10
ReDim angles2#(1 To 4)
angles2#(1) = 90
angles2#(2) = 180
angles2#(3) = 270
angles2#(4) = 360
ReDim angles3#(1 To 3)
angles3#(1) = 10
angles3#(2) = 20
angles3#(3) = 30
Print Using "Mean for angles 1 is : ####.## degrees"; MeanAngle#(angles1#())
Print Using "Mean for angles 2 is : ####.## degrees"; MeanAngle#(angles2#())
Print Using "Mean for angles 3 is : ####.## degrees"; MeanAngle#(angles3#())
End
Function MeanAngle# (angles#())
length# = UBound(angles#) - LBound(angles#) + 1
sinSum# = 0.0
cosSum# = 0.0
For i% = LBound(angles#) To UBound(angles#)
sinSum# = sinSum# + Sin(angles#(i%) * PI# / 180.0)
cosSum# = cosSum# + Cos(angles#(i%) * PI# / 180.0)
Next i%
MeanAngle# = _Atan2(sinSum# / length#, cosSum# / length#) * 180.0 / PI#
End Function