0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Римские цифры: от 1 до 50. Как перевести арабское число в римское и обратно

Перевод римские, индийские, арабские цифры (числа)

Века римскими цифрами

Римские цифры, придуманные более 2500 лет тому назад, использовались европейцами на протяжении двух тысячелетий, затем были вытеснены арабскими цифрами. Это произошло потому, что римские цифры записать достаточно сложно, да и любые арифметические действия в римской системе выполнять гораздо сложнее, чем в арабской системе исчисления. Не смотря на то, что сегодня римская система не часто используется, это вовсе не значит, что она стала неактуальна. В большинстве случаев века римскими цифрами обозначают, а вот годы или точные даты принято писать арабскими цифрами.

Римскими цифры также используются при написании порядковых номеров монархов, энциклопедических томов, валентности различных химических элементов. На циферблатах ручных часов также часто используются цифры римской системы исчисления.

Римские цифры представляют собой определенные знаки, с помощью которых записывают десятичные разряды и их половины. Используют для этого всего семь заглавных букв латинского алфавита. Числу 1 соответствует римская цифра I, 5 – V, 10 – X, 50 – L, 100 – C, 500 – D, 1000 – M. При обозначении натуральных чисел эти цифры повторяются. Так 2 можно написать, используя два раза I, то есть 2 – II, 3 — три буквы I, то есть 3 – III. Если меньшая цифра стоит перед большей, то используется принцип вычитания (меньшая цифра вычитается из большей). Так, цифра 4 изображается как IV (то есть 5-1).

В случае, когда большая цифра стоит впереди меньшей, их складывают, например 6 записывается в римской системе, как VI (то есть 5+1).

Если Вы привыкли записывать числа арабскими цифрами, то могут возникнуть некоторые затруднения в том случае, когда нужно записать века римскими цифрами, какое-либо число или дату. Перевести любое число из арабской системы в римскую систему исчисления и наоборот можно очень легко и очень быстро, воспользовавшись удобным конвертером на нашем сайте.

На клавиатуре компьютера достаточно перейти на английский язык, чтобы без труда записать любое число римскими цифрами.

По всей видимости, древние римляне отдавали предпочтение прямым линиям, поэтому все их цифры прямые и строгие. Однако, римские цифры представляют собой ни что иное, как упрощенное изображение пальцев человеческой руки. Цифры с одного до четырех напоминают вытянутые пальцы, цифру пять можно сравнить с раскрытой ладонью, где большой палец оттопырен. А цифра десять напоминает две скрещенные руки. В европейских странах при счете принято разгибать пальцы, а вот в России, наоборот, загибать.

Римские цифры и числа

Конвертер римских чисел онлайн

Введите число, используя арабские (0…9) или римские (I, V, X, L, C, D, M) цифры, и нажмите кнопку Конвертировать .
Корректно конвертируются целые числа от 1 до 3 999 (от I до MMMCMXCIX).

Принципы римской системы счисления

В настоящее время в римской системе счисления используются следующие знаки:

  • I = 1;
  • V = 5;
  • X = 10;
  • L = 50;
  • C = 100;
  • D = 500;
  • M = 1000.

Все целые числа от 1 до 3999 записываются с помощью приведенных выше цифр. При этом:

  • если большая цифра стоит перед меньшей, они складываются:
  • VI = 5 + 1 = 6;
  • XV = 10 + 5 = 15;
  • LX = 50 + 10 = 60;
  • CL = 100 + 50 = 150;
  • если меньшая цифра стоит перед большей (в этом случае она не может повторяться), то меньшая вычитается из большей; вычитаться могут только цифры, обозначающие 1 или степени 10; уменьшаемым может быть только цифра, ближайшая в числовом ряду к вычитаемой:
  • IV = 5 — 1 = 4;
  • IX = 10 — 1 = 9;
  • XL = 50 — 10 = 40;
  • XC = 100 — 10 = 90;
  • цифры V, L, D не могут повторяться; цифры I, X, C, M могут повторяться не более трех раз подряд:
  • VIII = 8;
  • LXXX = 80;
  • DCCC = 800;
  • MMMD = 3500.
  • черта над цифрой увеличивает ее значение в 1 000 раз:
  • V= 5 000;
  • X= 10 000;
  • L= 50 000;
  • C= 100 000;
  • D= 500 000;
  • M= 1 000 000.

Римские цифры: от 1 до 50. Как перевести арабское число в римское и обратно

Инструкция по эксплуатации
1). Вводим десятичное число от 1 до 3999999 в едитбокс озаглавленый как «Исходное число».
2). Нажимаем кнопку Преобразовать.
3). Наслаждаемся красотой римских цифр справа от надписи «Результат».

Мат часть
Однажды, меня заинтересовала идея преобразования обычных арабских чисел в римские. Да, до десяти умеет переводить каждый школьник, а вот дальше? Даже альбом у замечательной группы Enigma есть озаглавленный римским числом. И я начал копать.

О преобразовании. Римские цифры это непозиционная система исчесления, то есть всё исчесление идет не от разряда цифры, как в обычной десятичной системе, а непосредственно по значению цифры. Цифр в римской системе всего 7 вот они:

Из этих цифр и составляются все числа. Если цифра стоящая слева от данной цифры меньше её, то она вычитаеться из данной цифры (принцип вычитания). Если больше то складывается (принцип сложения). Например XLVII = XL (40 = 50 — 10) + V (5) + II (2) = 47. Но есть одно исключение. Если мы возьмем число 99 и попытаемся перевести, мы в лоб возьмем 100 (С) и вычтем из ста единицу, то есть получается IC. Удобно, компактно, но не правильно. В класической системе римских цифр число стоящее справа (то есть из которого вычитается) должно быть не больше чем, то что слева умноженное на десять. То есть то же число 99 надо переводить буквально XC(90 = 100 — 10) + IX (9 = 10 — 1) = XCIX. То есть 49 нельзя записывать как IL, только как LXIX. Есть ещё одно правило. Нельзя делать повторения четырёх цифр подряд (исключение составляет цифра четыре, которую изображают в часах как IIII для лучшего восприятия), то есть число 40 нельзя записывать как XXXX, а только как LX. Из всех этих правил вытекает, что максимальное число, которое можно записать римскими цифрами есть MMMCMXCIX = 3999. Но не стоит отчаиваться! Этруски, которые вроде бы придумали рисмские цифры, были умными ребятами и сделали хитро — число подчеркнутое палочкой сверху означает количество тысяч. То есть 4000 нужно записывать как IV . Всё просто.

Читать еще:  Как сделать трафарет в Word (из букв, цифр, изображений)

Отсюда сразу вытекает алгоритм действия:

  • Если число больше или равно 4000 то делим нацело на 1000 и получаем количество тысяч, заосвываем их в этот же алгоритм, что бы вычислить как они выглядят в римских цифрах и их подчеркнуть сверху. И вычитаем из исходного числа эти тысячи. Если меньше то
  • Берём разряд тысяч и переводим в римский эквивалент. Вычитаем их из числа.
  • Берём разряд сотен и переводим в римский эквивалент. Вычитаем их из числа.
  • Дальше также поступаем с десятками и единицами.
  • Повторяем все эти действия пока не вычтеться всё.
  • Ну и полученые цифрки выводим как положено — тысячи подчеркнутые сверху (если их много, если нет, то нужное количество М) и обычным стилем все остальные буквы которые у нас получились.

Коментарий к исходникам
Чуть ниже представлены ссылки на реализацию рассказанного здесь алгоритма. Хочется сказать про них пару слов.
Функция которая реализует непосредственно конвертацию называется digConvert() в которую передаётся целое число, а на выходе получается строка содержащая либо «err» в случае неудачно конвертации, либо строку с конвертированным римским числом. Если переданное число больше чем 3999, то в итоге получается число подчеркнутое сверху и часть которая неподчеркнута. Функция возвращает оба значения через амперсант (&). Это необходимо, что бы в функцие обработчике нажатия кнопки, разделить обе части, с помощью метода строки split(), который на входе получает по какому символу её нужно разделить, а на выходе выдаёт массив разделённых элементов. Для реализации подчеркивания используется следующий способ

Код HTML:
Этот текст будет подчеркнут сверху

Результат: Этот текст будет подчеркнут сверху

Большая таблица Римских цифр от 1 до 1000

* Римские цифры — это натуральные числа, записанные при помощи повторения 7 латинских букв, в определённой прописанной правилами последовательности: I (1), V (5), X (10), L (50), C (100), D (500), M (1000)

* На сегодняшний день в рамках общих правил число 15 правильно записывать в такой последовательности XV и не VVV или XIIIII.

Как понять вроде же 1,2,3,4,5,6,7,8,9,10 называют арабскими цифрами.
А то, как пишут их сегодня арабы небо и земля.

Тоже интересно, что за не понятные закорючки

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

Определи число записанное римскими цифрами cdlxxi

Единственно правильный ответ таков 471

Шестисот сорок один

Благодарю, вот решила выразить своё мнение, работать с вашими табличными данными с планшета очень удобно

От моего отца достались мне крутые командирские часы с такими же номерами

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

Кто я догадываюсь, а вот когда придумал римские цифры?

Точной даты нет, но по упоминаниям в рукописях, учёные сходятся на том, что впервые их начали использовать около 500 года, до нашей эры, для тех кому сложно или вовсе не умеет правильно в уме посчитать, то им +/- 2520 лет

Помогает, когда надо написать римскую цифру. 🙂

Ребят,помогите,что за цифра: IC ?

Формально имеется виду 99, но следует помнить, что «IC» это недопустимый вариант записи латинских цифр, а верный способ будет таким XCIX. Таковы принятые правила.

Не Шестисот сорок один, а D = 500, c = 100, X = 10 l = 1 будет 611 или 612 (я последнею цифру не понял)

Ой да вы правы после X L простите)))

Вам точно поможет эти 3 таблицы для записи дат, там нет ничего сложного https://kvn201.com.ua/table-birth-year-in-roman-numerals.htm

VII. X. MCMXCVIII

Здравствуйте . Может ли кто-нибудь подсказать , что значит XXC и XXD ?

Модератору. Неужели простой вопрос о том , что значат XXC и XXD , содержит нечто криминальное ?

Модерация необходимия мера для избежания спама интернет ботами. Иногда за день может выпасть до 350 новых коментариев, с ссылками и «плохим рекламным текстом не по теме», а ето может сущнествено навредить самому сайтиу. Ещо раз, извените за вынужденые приченёные неудобства.

1) По поводу XXC
Следует помнить, что на самом деле возможно много разных обозначение одного и того же числа. Но есть общие единые для всех правила написание. Например, число 80 можно обозначать, как LXXX (50+10+10+10) и, как XXC (10+10-100), но второй вариант записан не верно.

2) Тоже самое касаеться XXD (10+10-500)

Ето всего лишь неправильная запись числа 480, по правильному нужно написать CDLXXX (-100+500+50+10+10+10)

Класс! Спасибо что не поленились и сделали такую таблицу! 🙂

Инфа нужная, а ты молодец

Здравствуйте, как римскими цифрами прописать дату 5.05.2015?

V.V. MMXV
На сайте есть отдельная страница для такого рода задач, вот посмотрите:
https://kvn201.com.ua/table-birth-year-in-roman-numerals.htm

Добрый день) как пишутся 30.05.1974?

как будет 13.05.2002

Как будет? 1234 и 425

1234 = MCCXXXIV
425 = CDXXV

а сколько будет 2013?

А сколько будет MCCCXII

Сколько будет MCCCXII

20.10.1966 как будет?

На сайте есть отдельная страница для такого рода задач, вот посмотрите:
https://kvn201.com.ua/table-birth-year-in-roman-numerals.htm

Kak будет 728432

Если перевести буквально 728432 из арабской в римскую систему счисления: DCCXXVIII CDXXXII

Здравствуйте,как пишется 21.04.1993 и 11.06.2000

На сайте есть отдельная страница для такого рода задач, вот посмотрите:
https://kvn201.com.ua/table-birth-year-in-roman-numerals.htm

Здраствуйте, А как будет 2019?
Заранее Спасибо

Читать еще:  Как научиться быстро печатать на клавиатуре, не смотря на нее [в слепую!]

21.04.1993-ХХI.IV. MCMXCIII.
11.06.2000-XI.VI.MM

Здрвсте скажите пожалуиста а как написать 12.02.1987г.

На сайте есть отдельная страница для такого рода задач, посмотрите пожайлуста: https://kvn201.com.ua/table-birth-year-in-roman-numerals.htm

КАК НАПИСАТЬ 100000

«C» (над буквой должна быть горизонтальная черточка)

А XYII и XYIII это сколько?

Никакой, символа Y нет. Возможно била опечатка или при копировании произошла автоматическая транслитерация и V стало Y , тогда скорее всего ето походу XYII = 17 (Х-10, V-5, I-1 ) и соответственно XYIII = 18 (Х-10, V-5, I-1)

Здравствуйте, подскажите пожалуйста, как написать 1.4. 2019 .
I.IV.MMXIX. правильно.

как будет 213090?

Скажите пожалуйста как будет 908987

Такие цифры имеют особое обозначение, Увы я не могу записать результат поскольку система записи комментариев не позволяет некоторые символы. Например чёрточка над знаками. Посему рекомендую найти онлайн калькулятор и все быстро самому перевести или переписать на бумагу.

Как будет на римские 12.02.1996

Такое число даже в программе «Титло» нельзя вычислить, но число 90898 по программе «Титло»

но, но на других сайтах пишут:

для составления больших чисел: любое число, записанное с горизонтальной линией над ним, подразумевает, что его следует умножить на 1000, чтобы получить результат. (Изредка используется двойное подчеркивание — сверху и снизу.)

_
V=5 x 1000 = 5000 (пять тысяч) ; горизонтальная черта сверху — это знак умножения числа V на тысячу;
_
M=1000 x 1000 = 1000000 (миллион); горизонтальная черта сверху — это знак умножения числа M на тысячу
___
MDL=1550 x 1000 = 1550000; горизонтальная черта сверху — это знак умножения числа MDL на тысячу

>>
онлайн калькулятор
Иван Краевед

Я бы лучше делили на триады, тогда число

908987=CMVIII_CMLXXXVII // апостроф к римским числам не идёт для разделения разрядов. Использую для разделения разрядов римских чисел знак подчёркивания вместо пробела для того, чтоб показать, что это одно и то же число.

Если знать историю, то арабские цифры пришли из Индии, вроде бы.

Римские цифры

Римские цифры — цифры, использовавшиеся древними римлянами в своей непозиционной системе счисления.

Натуральные числа записываются при помощи повторения этих цифр. При этом, если большая цифра стоит перед меньшей, то они складываются (принцип сложения), если же меньшая — перед большей, то меньшая вычитается из большей (принцип вычитания). Последнее правило применяется только во избежание четырёхкратного повторения одной и той же цифры.

Римские цифры появились за 500 лет до нашей эры у этрусков.

Содержание

Цифры

В русском языке для закрепления в памяти буквенных обозначений цифр в порядке убывания существуют мнемонические правила:

Mы Dаем Cоветы Lишь Xорошо Vоспитанным Iндивидуумам

Соответственно M, D, C, L, X, V, I

Примеры

Для правильной записи больших чисел римскими цифрами необходимо сначала записать число тысяч, затем сотен, затем десятков и, наконец, единиц.

При этом некоторые из цифр (I, X, C, M) могут повторяться, но не более трёх раз; таким образом, с их помощью можно записать любое целое число не более 3999 (MMMCMXCIX). В ранние периоды существовали знаки для обозначения бо́льших цифр — 5000, 10 000, 50 000 и 100 000 [источник не указан 683 дня] (тогда максимальное число по упомянутому правилу равно 399 999). При записи чисел в римской системе счисления меньшая цифра может стоять справа от большей; в этом случае она прибавляется к ней. Например, число 283 по-римски записывается как CCLXXXIII, то есть 100+100+50+30+3=283. Здесь цифра, изображающая сотню, повторена два раза, а цифры, изображающие соответственно десяток и единицу, повторены по три раза.

Пример: число 1988. Одна тысяча M, девять сотен CM, восемь десятков LXXX, восемь единиц VIII. Запишем их вместе: MCMLXXXVIII.

Довольно часто, чтобы выделить числа в тексте, над ними рисовали черту: LXIV . Иногда черту рисовали и сверху, и снизу: XXXII — в частности, так принято выделять римские цифры в русском рукописном тексте (в типографском наборе это не используют из-за технической сложности). У других авторов черта сверху могла обозначать увеличение значения цифры в 1000 раз: V M = 6000.

Повсеместно записывать число «четыре» как «IV» стали только в XIX веке, до этого наиболее часто употреблялась запись «IIII». Однако запись «IV» можно встретить уже в документах манускрипта «Forme of Cury», датируемых 1390 годом. На циферблатах часов в большинстве случаев традиционно используется «IIII» вместо «IV», главным образом, по эстетическим соображениям: такое написание обеспечивает визуальную симметрию с цифрами «VIII» на противоположной стороне, а перевёрнутую «IV» прочесть труднее, чем «IIII».

Меньшая цифра может быть записана и слева от большей, тогда её следует вычесть из большей. В этом случае повторения меньшей цифры не допускаются. По-римски число 94 будет XCIV=100-10+5-1=94 — так называемое «правило вычитания» (появилось в эпоху поздней античности, а до этого римляне писали число 4 как IIII, а число 40 — как XXXX). Существует шесть вариантов использования «правила вычитания»:

Необходимо отметить, что другие способы «вычитания» не допустимы; так, число 99 должно быть записано как XCIX, но не как IC. Однако, в наши дни в некоторых случаях используется и упрощенная запись римских чисел: например, в программе Microsoft Excel при преобразовании арабских цифр в римские при помощи функции «РИМСКОЕ()» можно использовать несколько видов представления чисел, от классического до сильно упрощенного (так, число 499 может быть записано как CDXCIX, LDVLIV, XDIX, VDIV или ID). Упрощение состоит в том, что для уменьшения какой-либо цифры слева от неё может писаться любая другая цифра:

  • 999. Тысяча (M), вычтем 1 (I), получим 999 (IM) вместо CMXCIX. Следствие: 1999 — MIM вместо MCMXCIX
  • 95. Сто (C), вычтем 5 (V), получим 95 (VC) вместо XCV
  • 1950: Тысяча (M), вычтем 50 (L), получим 950 (LM). Следствие: 1950 — MLM вместо MCML

С помощью римских цифр можно записывать и большие числа. Для этого над теми цифрами, которые обозначают тысячи, ставится черта, а над цифрами, которые обозначают миллионы, — двойная черта. Например, число 123123 будет выглядеть так:

А миллион как I , но только не с одной, а с двумя чертами во главе: I

Читать еще:  Как защитить от редактирования ячейки в Excel — запрет ввода ошибочных данных

Применение

В русском языке римские цифры используются в следующих случаях:

  • Номер века или тысячелетия: XIX век, II тысячелетие до н. э.
  • Порядковый номер монарха: Карл V, Екатерина II.
  • Номер тома в многотомной книге (иногда — номера частей книги, разделов или глав).
  • В некоторых изданиях — номера листов с предисловием к книге, чтобы не исправлять ссылки внутри основного текста при изменении предисловия.
  • Маркировка циферблатов часов «под старину».
  • Иные важные события или пункты списка, например: V постулат Евклида, II мировая война, XX съезд КПСС, Игры XXII Олимпиады и т. п.
  • Валентность химических элементов.
  • Порядковый номер ступени в звукоряде.

Римские цифры широко употреблялись в СССР при указании даты для обозначения месяца года: 11/III-85 или 9.XI.89. Для указания дат жизни и смерти на надгробиях часто использовался особый формат, где месяц года также обозначался римскими цифрами. С переходом на компьютерную обработку информации форматы даты, основанные на римских цифрах, практически вышли из употребления.

В других языках сфера применения римских цифр может иметь особенности, например, в западных странах римскими цифрами иногда записывается номер года.

Если разложить цифры графически, то получается следующее:

MaxSpT-Blog

Задание: Написать программу(-ы) для перевода из 10-й системы в римскую и обратно.

Специфика: Римская система счисления не является позиционной, то есть разобраться с переводом в один традиционный цикл не получится.

Первые идеи: Первое что мне пришло в голову, так это разобраться что есть римские цифры и какой у них диапазон. Римскими цифрами можно задать число от 1 до 3999 (I-MMMIM).

Справка по Римским цифрам была взята отсюда.Вот краткая таблица однозначного перевода:

Идея алгоритма перевода из Римских в 10-е:

  1. Получать на вход строку (заведомо правильную)
  2. Считывать по одному(двум) элементу(-ам) и по соответствующему символу добавлять к переменной-сумме какое-либо число. Т.е. нашли I=>sum++, V=>sum=sum+5 и т.д.

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

Итак, слои проверки строки, которые покрывают большинство ошибок в выполнении программы:

  1. Проверить строку на корректность, т.е. проверить принадлежит ли каждый элемент строки одной из римских цифр.
  2. Проверить строку на повторяющиеся одиночные-тройные символы. Скажем, III=3, а вот IIII(по идее 4, но 4=IV)-такого числа в Римской системе счисления нет, так же как и VIIII (по идее 9, но 9=IX)
  3. Посимвольно проверить не стоит ли цифра с меньшим номиналом, перед старшей, исключением являются IV, IX, XV и подобные, полный список можно будет посмотреть ниже.

Данные проверки ловят большинство ошибок, но опять же я не уверен, что не найдется примера, на котором программа сложится.

Идея алгоритма перевода из 10-х в Римские:

  1. Считать число
  2. Найти кол-во тысяч, добавить в выходную строку соответствующие символы.
  3. Найти кол-во сотен, добавить в выходную строку соответствующие символы.
  4. Найти кол-во десятков, добавить в выходную строку соответствующие символы.
  5. Найти кол-во единиц, добавить в выходную строку соответствующие символы.
  6. Учесть исключения, скажем 999=IM(исключение), а 998=CMXCVIII

-Почему именной такой порядок? Идти же можно в любом другом ?

Да, можно идти в любом другом, но зачем париться насчет порядка символов в строке после преобразования?

Чтобы не быть голословным, я представлю свой код программы на Pascal.

Большинство кода для выполнения задачи тут не нужно (Потому что он написан по принципу «Because i can») для вас будут интересны пункты (Ctrl+F) :

(тут всего 175 строчек, не печальтесь)
program RimToArab;
const M=7;

function getPriority(a: char):integer;
var p:integer;
begin
p:=0;
if (a =’M’)then p:=14;
if (a=’D’) then p:=11;
if (a=’C’) then p:=9;
if (a=’L’) then p:=7;
if (a=’X’) then p:=5;
if (a=’V’) then p:=3;
if (a=’I’) then p:=1;
getPriority:=p;
end;

function getPriority(a,b: char):integer;
var p:integer;
begin
p:=0;
if (a =’I’)and(b=’M’)then p:=13;
if (a =’C’)and(b=’M’)then p:=12;
if (a=’C’)and(b=’D’) then p:=10;
if (a=’X’)and(b=’C’) then p:=8;
if (a=’X’)and(b=’L’) then p:=6;
if (a=’I’)and(b=’X’) then p:=4;
if (a=’I’)and(b=’V’)then p:=2;
getPriority:=p;
end;

var k,g,i,des,sot,tic,err,t,prior,minPrior : integer; inpstr,outstr: string;
ErrorArray:array [1..M]of string;

ErrorArray[1]:=’VV’;ErrorArray[2]:=’IIII’;ErrorArray[3]:=’MMMM’;ErrorArray[4]:=’XXXX’;ErrorArray[5]:=’CCCC’;ErrorArray[6]:=’LL’;ErrorArray[7]:=’DD’;
err:=0;
k:=0;
i:=0;
g:=1;

writeln(‘Введите число 1-3999 или I-MMMIM(англ)’);
readln(inpstr);
val(inpstr,t,err);
if (err<>0)and(Length(inpstr)>0) then
begin
err:=0;
minPrior:=14;
prior:=getPriority(inpstr[1]);

for t:=1 to M do if (Pos(ErrorArray[t],inpstr)<>0) then err:=10;<Первичная проверка строки>
for t:=1 to Length(inpstr) do if not(inpstr[t] in [‘M’,’D’,’C’,’L’,’X’,’V’,’I’]) then begin writeln(‘Ошибка преобразования(0):*’,inpstr[t],’*’);err:=10;break;end;

t:=1;
while (t minPrior)then begin writeln(‘Ошибка преобразования(1):*’,inpstr[t],inpstr[t+1],’*’);err:=10;break;end;

if(prior minPrior)
then begin writeln(‘Ошибка преобразования(2):*’,inpstr[t],inpstr[t+1],’*’);err:=10;break;end;
t:=t+1;
end;

if (prior>0)and(minPrior>=getPriority(inpstr[t])) then minPrior:=getPriority(inpstr[t])
else if (prior =getPriority(inpstr[t-1],inpstr[t])) then minPrior:=getPriority(inpstr[t-1],inpstr[t]);
Inc(t);

if err<>0 then writeln(‘Римское число не корректно’)
else begin
while g =1) and (k 3999)) then begin writeln(‘Арабское число не корректно ‘, i); end <Основной алгоритм перевода Арабских цифр в Римские>
else begin

if i=3999 then begin outstr:=’MMMIM’;i:=0; end;
if i=2999 then begin outstr:=’MMIM’;i:=0; end;
if i=2999 then begin outstr:=’MIM’;i:=0; end;
if i=1999 then begin outstr:=’MIM’;i:=0; end;
if i= 999 then begin outstr:=’IM’;i:=0; end;

<Выдираем тысячи>
tic:=i div 1000;
if tic>0 then
begin
while tic<>0 do
begin
outstr:=outstr+’M’;
Dec(tic);
end;
if tic=0 then i:=i mod 1000;
end;

<Выдираем Сотни >
sot:=i div 100;
if sot>0
then begin
if sot=4 then begin sot:=0; outstr:= outstr+’CD’; end
else if sot=9 then begin sot:=0; outstr:= outstr+’CM’; end
else if ((sot>=5) and (sot 0 then while sot<>0 do
begin
outstr:=outstr+’C’;
Dec(sot);
end;
if sot=0 then i:=i mod 100;
end;

<Выдираем десятки>
des:=i div 10;
if des > 0
then
begin
if des=4 then begin des:=0; outstr:=outstr + ‘XL’; end
else if des=9 then begin outstr:=outstr+’XC’; des:=0; end
else if ((des>=5)and(des 0 then while des<>0 do
begin
outstr:=outstr+’X’;
Dec(des);
end;
if des=0 then i:=i mod 10;
end;

<Выдираем единицы>
if i>0 then
begin
if i=4 then begin outstr:=outstr+’IV’; i:=0; end
else if i=9 then begin outstr:=outstr+’IX’; i:=0; end
else if ((i>=5) and (i 0 then while i<>0 do
begin outstr:=outstr+’I’;
Dec(i);
end;
end;
end;
end;
if Length(outstr)<>0 then writeln(‘выходная строка: ‘,outstr);
readln();
END.

Ссылка на основную публикацию
Статьи c упоминанием слов:
Adblock
detector