Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
36
Task/Roman-numerals-Decode/Seed7/roman-numerals-decode.seed7
Normal file
36
Task/Roman-numerals-Decode/Seed7/roman-numerals-decode.seed7
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
$ include "seed7_05.s7i";
|
||||
|
||||
const func integer: ROMAN parse (in string: roman) is func
|
||||
result
|
||||
var integer: arabic is 0;
|
||||
local
|
||||
var integer: index is 0;
|
||||
var integer: number is 0;
|
||||
var integer: lastval is 0;
|
||||
begin
|
||||
for index range length(roman) downto 1 do
|
||||
case roman[index] of
|
||||
when {'M', 'm'}: number := 1000;
|
||||
when {'D', 'd'}: number := 500;
|
||||
when {'C', 'c'}: number := 100;
|
||||
when {'L', 'l'}: number := 50;
|
||||
when {'X', 'x'}: number := 10;
|
||||
when {'V', 'v'}: number := 5;
|
||||
when {'I', 'i'}: number := 1;
|
||||
otherwise: raise RANGE_ERROR;
|
||||
end case;
|
||||
if number < lastval then
|
||||
arabic -:= number;
|
||||
else
|
||||
arabic +:= number;
|
||||
end if;
|
||||
lastval := number;
|
||||
end for;
|
||||
end func;
|
||||
|
||||
const proc: main is func
|
||||
begin
|
||||
writeln(ROMAN parse "MCMXC");
|
||||
writeln(ROMAN parse "MMVIII");
|
||||
writeln(ROMAN parse "MDCLXVI");
|
||||
end func;
|
||||
Loading…
Add table
Add a link
Reference in a new issue