В
Все
У
Українська література
Г
Геометрия
Д
Другие предметы
Э
Экономика
Г
География
О
ОБЖ
М
Математика
М
МХК
Х
Химия
Қ
Қазақ тiлi
Л
Литература
У
Українська мова
О
Обществознание
Ф
Физика
А
Английский язык
А
Алгебра
И
История
Б
Беларуская мова
Б
Биология
М
Музыка
П
Право
И
Информатика
П
Психология
В
Видео-ответы
Н
Немецкий язык
Ф
Французский язык
О
Окружающий мир
Р
Русский язык
sking09
sking09
22.01.2023 08:18 •  Информатика

Объясните все в этом коде: больше всего не понимаю: begin inc(n); while (arabic[n] < = number) do begin snumber : = snumber + rome[n]; number : = number - arabic[n]; //writeln(snumber); end //программа для перевода арабских //чисел в римские const rome: array[1..13] of string = ('m', 'cm', 'd', 'cd', 'c', 'xc', 'l', 'xl', 'x', 'ix', 'v', 'iv', 'i'); arabic: array[1..13] of integer = (1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1); var number: integer; snumber: string; n: integer; // // основная программа // begin while(true) do begin repeat writeln('введите арабское число 1..3999'); number : = readinteger(); //если задан нуль, то работу с программой заканчиваем: if (number = 0) then exit; until ((number > = 1) and (number < = 3999)); //формируем строку с римским числом, //равным заданному числу number: n : = 0; snumber : = ''; while (number > 0) do begin inc(n); while (arabic[n] < = number) do begin snumber : = snumber + rome[n]; number : = number - arabic[n]; //writeln(snumber); end end; writeln(snumber); writeln(); end; end.

Ответ:
alineeeeeel
alineeeeeel
27.08.2020 08:27

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

берется строка типа:

LXIV и посимвольно (иногда по двусимвольно идет справа налево) и переводит в обычные нам цифры. IV - переводит в 4. Потом X переводит в 10, потом L переводит в 50. Складывает полученное, получается 64.  Перевели. Т.к. строка с латинской цифрой большая и не известно сколько там символов(LXIV тут 4), то берется цикл по переменной длине строки. Цикл пройдет все символы строки( 4 их или 10), в цикле будет N количество итераций, столько сколько знаков в латинской цифре.

Цикл это вот это:

while(true) do

begin

repeat

***тут идет итерация цикла***

until ((number >= 1) and (number <= 3999));

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?