RosettaCodeData/Task/Box-the-compass/Yabasic/box-the-compass.basic

38 lines
1.3 KiB
Plaintext

dim point$(32)
for i =1 to 32
read point$(i)
next i
print "Index\tClosest Point\t\tDegrees"
print "=====\t=============\t\t======="
for i = 0 to 32
heading = i *11.25
resto=mod(i,3)
if resto=1 then
heading = heading +5.62
elseif resto=2 then
heading = heading -5.62
end if
ind = mod(i,32)+1
print ind,"\t",compasspoint$( heading),"\t",heading
next i
end
sub compasspoint$(h)
x = h / 11.25 + 1.5
if (x >= 33.0) x = x - 32.0
return point$(int(x))
end sub
10 data "North ", "North by east ", "North-northeast "
20 data "Northeast by north", "Northeast ", "Northeast by east ", "East-northeast "
30 data "East by north ", "East ", "East by south ", "East-southeast "
40 data "Southeast by east ", "Southeast ", "Southeast by south", "South-southeast "
50 data "South by east ", "South ", "South by west ", "South-southwest "
60 data "Southwest by south", "Southwest ", "Southwest by west ", "West-southwest "
70 data "West by south ", "West ", "West by north ", "West-northwest "
80 data "Northwest by west ", "Northwest ", "Northwest by north", "North-northwest "
90 data "North by west "