iránytű fokok konvertálása

Az adatok számok formájában érkeznek. pl. 330. Ez az iránytű szerint ÉÉNY-nak felel meg. Ezeket a számokat szeretném szöveges formába átalakítani. Hogyan álljak neki ha a bashban keresem a megoldást?

Hozzászólások

Challenge accepted, mondjuk bashhez már későn van, de ilyet csak tud...


function deg2txt(deg){
   var fokok = "É ÉÉK ÉK KÉK K KDK DK DDK D DDNY DNY NYDNY NY NYÉNY ÉNY ÉÉNY".split(" ");
   var idx = Math.floor((deg % 360)/ 360.0 * fokok.length);
   return fokok[idx];
}
window.alert(deg2txt(345));


#!/bin/bash

[[ -z "${1##*[!0-9]*}" || ${1} -gt 359 ]] && echo "Invaild input" && exit 1
[[ ${1} -le 45 || ${1} -gt 315 ]] && echo "N" && exit 0
[[ ${1} -le 135 ]] && echo "E" && exit 0
[[ ${1} -le 225 ]] && echo "S" && exit 0
[[ ${1} -le 315 ]] && echo "W"

--
Debian Linux rulez... :D
RIP Ian Murdock

Így oldottam meg, mivel ez matek. Bedobtam egy tömbbe, és kiszámoltatom. Lebegőpontos számítás helyett kerekítve lett, mind a bemenet mind a kimenet.


windD="$1"
compass=( É ÉÉK ÉK KÉK K KDK DK DDK D DDNY DNY NYDNY NY NYÉNY ÉNY ÉÉNY )
((roundedwindD="${windD} * 100 + 1125 "))
((index="${roundedwindD} / 2250 %16 "))
direction="${compass[${index}]}"
echo "direction=${direction}"

Ez tipikusan nem kódolási, hanem elvi munka.
Remélem, kinövöd a pánik-fórum-megoldom. Sorozatot idővel.