[Back to MATH SWAG index] [Back to Main SWAG index] [Original]

    {
    >I would like to know if there is a function to convert a year to Roman
    >Numerals (1993 to MCMCMIII).

     Brian Pape, Brian Grammer, Mike Lazar, Christy Reed, Matt Hayes
    }

    program roman;

    const
      num   = 'IVXLCDM';
      value : array [1..7] of integer = (1, 5, 10, 50, 100, 500, 1000);
    var
      i   : byte;
      s   : string;
      sum : integer;
    begin
      writeln('Enter the Roman Numerals: ');
      readln(s);
      i := length(s);
      while (i >= 1) do
      begin
        if i > 1 then
        begin
          if pos(s[i], num) <= (pos(s[i - 1], num)) then
          begin
            sum := sum + value[pos(s[i], num)];
            dec(i);
          end
          else
          begin
            sum := sum + value[pos(s[i],num)] - value[pos(s[i - 1], num)];
            dec(i, 2);
          end;
        end
        else
        begin
          sum := sum + value[pos(s[1], num)];
          dec(i);
        end;
      end;
      WRITELN;
      writeln('Roman numeral: ', s);
      writeln(' Arabic value: ', sum);
    end.

[Back to MATH SWAG index] [Back to Main SWAG index] [Original]