`` Algorithms
`` www.scriptol.org
`` Convert roman to decimal digits
array numerals = { 'I', 'V', 'X', 'L', 'C', 'D', 'M' }
array decimals = { 1 , 5 , 10 , 50 , 100 , 500 , 1000 }
natural roman2nat(text roman)
int i, j, k
natural natval = 0
if roman = nil return 0
roman = roman.upper()
k = -1
for text c in roman
j = numerals.find(c) ` search position of letter in list
if j = nil
print c, "not a valid letter"
return 0
/if
if k in 0 -- j ` value in array
natval - (decimals[k] * 2)
natval + decimals[j]
else
natval + decimals[j]
/if
k = j
/for
return natval
int main(int argc, array argv)
int i = 1
if argc < 2
print "Roman to decimal - scriptol.org"
print "roman ...list of numbers..."
print "ex: roman I VI IX"
exit(0)
/if
while argc > 1
text temp = argv[i]
print argv[i], "=", roman2nat(temp)
i + 1
let argc - 1
return 0
main($argc, $argv)