15 мая "Исходники.РУ" отмечают 20-летие присутствия в сети!
Поздравляем всех причастных и неравнодушных с юбилеем сайта!
И огромное спасибо всем, кто был с нами все эти годы!

Главная Информер Журнал Форум Wiki DRKB Discuz!ML Помощь проекту


Как преобразовать числовое значение в римскую интерпретацию.

Компилятор: Delphi

 

function DecToRoman(intDecimal: longint): string;
const
  arrRomans: array [1..13] of String = ('I', 'IV', 'V', 'IX', 'X', 'XL', 'L', 'XC', 'C', 'CD', 'D', 'CM', 'M');
  arrArabics: array [1..13] of integer = (1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000);
var
  i: integer;
begin
  // инициализируем результат
  result := '';

     for i := 13 downto 1 do
         while ( iDecimal >= aArabics [ i ] ) do begin
               iDecimal := iDecimal - aArabics [ i ];
               result := result + aRomans [ i ];
         end;
end;