RosettaCodeData/Task/Averages-Mean-angle/FutureBasic/averages-mean-angle.basic

15 lines
534 B
Plaintext

double local fn MeanAngle( angles as CFArrayRef )
long count = len(angles)
double sinSum = 0.0, cosSum = 0.0
for long i = 0 to count - 1
sinSum += sin(dblval(angles[i]) * M_PI / 180.0)
cosSum += cos(dblval(angles[i]) * M_PI / 180.0)
next
end fn = fn atan2(sinSum / count, cosSum / count) * 180.0 / M_PI
print @"Mean angle of [350,10] = ";fn MeanAngle( @[@350,@10] )
print @"Mean angle of [90,180,270,360] = ";fn MeanAngle( @[@90,@180,@270,@360] )
print @"Mean angle of [10,20,30] = ";fn MeanAngle( @[@10,@20,@30] )
HandleEvents