Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Конвертация арабских цифр в римские

Delphi , Синтаксис , Преобразования

Конвертация арабских цифр в римские

Автор: http://www.lmc-mediaagentur.de/dpool

function IntToRoman(num: Cardinal): string; {returns num in capital roman digits}
const
  Nvals = 13;
  vals: array[1..Nvals] of word = (1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500,
    900, 1000);
  roms: array[1..Nvals] of string[2] = ('I', 'IV', 'V', 'IX', 'X', 'XL', 'L',
    'XC', 'C', 'CD', 'D', 'CM', 'M');
var
  b: 1..Nvals;
begin
  result := '';
  b := Nvals;
  while num > 0 do
  begin
    while vals[b] > num do
      dec(b);
    dec(num, vals[b]);
    result := result + roms[b]
  end;
end;

Here's the translation of the text into Russian:

Функция IntToRoman - это функция на языке Pascal, которая конвертирует целое число в его соответствующее римское числовое представление. Вот разбивка кода:

Подпись функции Функция принимает одиночный параметр num типа Cardinal (вероятно, неотрицательное целое число) и возвращает строку, представляющую римское числовое эквивалент.

Константы В коде есть два константных массива: vals и roms. Массив vals содержит десятичные значения, соответствующие каждому римскому числу, а массив roms содержит сами римские числа. Массивы имеют 13 элементов каждый, что достаточно для конвертации целых чисел до 3999 (поскольку MCMXCIX).

Переменные В коде есть две переменные: b и result. Переменная b - это целое число, которое будет перебирать массив vals, а переменная result - это строка, которая будет накапливать римское числовое представление.

Основной логик Функция повторяется до тех пор, пока входное число num не станет равным 0. В каждом повторении: 1. Она находит наибольшее десятичное значение в массиве vals, которое меньше или равно num. Это делается путем уменьшения b до тех пор, пока vals[b] больше не будет превышать num. 2. Она вычитает найденное десятичное значение из num с помощью процедуры dec. 3. Она добавляет соответствующее римское число (из roms[b]) к строке result.

Заявление возвращения Функция возвращает строку result, которая теперь содержит римское числовое представление входного целого числа.

Альтернативное решение: В современных диалектах Pascal можно использовать более компактный и читаемый подход с помощью цикла с явным индексом переменной:

Функция IntToRoman конвертирует арабские цифры в римские цифры, используя таблицу соответствий арабских и римских цифр.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Преобразования ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100

Время компиляции файла: 2024-05-19 17:53:24
2024-05-20 07:04:32/0.0069868564605713/2