Программование по-русски

ОТДЕЛ Глагол+; ИСПОЛЬЗУЕТ Вывод ИЗ "...\Отделы\Обмен\";
УКАЗ Вывод.Цепь("Слава России!") КОН Глагол.

Исходные тексты

Официальный сайт
Глагола

Наш хостинг: хостинг бесплатно

Главная страница
Скачать
«Разработки на Глаголе»
Другие файлы
Исходные тексты
Статьи и ссылки
Гостевая книга

Дружественные сайты
Шифрование по ГОСТу

Счётчик
Категории:     Готовые приложения  |  Разрабатываемые программы  |  Малые программы  |  Новые решения

Римские числа
Последнее изменение: 02.08.08.
Назад

ОТДЕЛ РимскиеЧисла;

ИСПОЛЬЗУЕТ
  Цепь  ИЗ "...\Отделы\Иное\";

ЗАДАЧА ВАрабское-(число-: РЯД ИЗ ЗНАК): ЦЕЛ;
ПЕР
  результат, зн, зн1, доб, сч: ЦЕЛ;
УКАЗ
  результат := 0; зн := 0;
  ОТ сч := 0 ДО ДЛИНА(число)-1 ВЫП
    зн1 := зн;
    ВЫБРАТЬ число[сч] ИЗ
      'I': зн := 1
    | 'V': зн := 5
    | 'X': зн := 10
    | 'L': зн := 50
    | 'C': зн := 100
    | 'D': зн := 500
    | 'M': зн := 1000
    ИНАЧЕ КОН;
    ЕСЛИ зн > зн1 ТО доб := -2 * зн1 ИНАЧЕ доб := 0 КОН;
    результат := результат + доб + зн
  КОН;
  ВОЗВРАТ результат
КОН ВАрабское;

ЗАДАЧА ВРимское-(число: ЦЕЛ; результат+: РЯД ИЗ ЗНАК);
ПЕР
  римские: РЯД 13 ИЗ РЯД 3 ИЗ ЗНАК;
  арабские: РЯД 13 ИЗ УЗКЦЕЛ;
  сч: ЦЕЛ;
УКАЗ
  римские[0] := "I"; римские[1] := "IV"; римские[2] := "V"; римские[3] := "IX"; римские[4] := "X";
  римские[5] := "XL"; римские[6] := "L"; римские[7] := "XC"; римские[8] := "C"; римские[9] := "CD";
  римские[10] := "D"; римские[11] := "CM"; римские[12] := "M";
  арабские[0] := 1; арабские[1] := 4; арабские[2] := 5; арабские[3] := 9; арабские[4] := 10;
  арабские[5] := 40; арабские[6] := 50; арабские[7] := 90; арабские[8] := 100; арабские[9] := 400;
  арабские[10] := 500; арабские[11] := 900; арабские[12] := 1000;
  результат[0] := 0X;
  ОТ сч := 12 ДО 0 ПО -1 ВЫП
    ПОКА число >= арабские[сч] ВЫП
      число := число - арабские[сч];
      Цепь.Добавить(результат, римские[сч])
    КОН
  КОН
КОН ВРимское;

КОН РимскиеЧисла.
    Сделано в России.