Не запускается программа по переводу арабских чисел в римские - PascalABC.NET
Формулировка задачи:
Писала программу по учебнику, для перевода арабских чисел в римские, и похоже что то упустила.
Вот код:
Выдаёт ошибку " Встречено '.', а ожидалось ';'" если изменить на ';' то " Встречен конец файла, а ожидался оператор".
Я нашла тему на форуме где модератор писал такую программу, но его код отличается от того что в учебнике, а я понять хочу что здесь не так!
P.S. Простите если отредактировала код неправильно, я так и не смогла понять как это делается правильно...
Решение задачи: «Не запускается программа по переводу арабских чисел в римские»
textual
Листинг программы
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:=0; sNumber: string:=''; n: integer:=0; begin repeat writeln('Введите арабское число 1..3999'); number := ReadInteger(); until (number >= 1) and (number <=3999); n := 0; sNumber :=''; while (number > 0) do begin Inc(n); while ARABIC[n] <= number do begin sNumber := sNumber + ROME[n]; number := number - ARABIC[n]; end; end; writeln(sNumber) end.
Объяснение кода листинга программы
- Объявлены два массива: ROME и ARABIC, каждый из которых содержит 13 элементов. ROME содержит римские цифры, а ARABIC - арабские числа, соответствующие римским цифрам.
- Инициализированы две переменные: number и sNumber. Number используется для хранения введенного числа, а sNumber - для хранения строкового представления числа в римской системе счисления.
- Задается начальное значение переменной n равное 0.
- Цикл while с условием (number > 0) выполняется до тех пор, пока number больше нуля.
- Внутри цикла while выполняется еще один цикл while, который ищет наименьшее арабское число в массиве ARABIC, которое больше или равно числу number.
- Внутри внутреннего цикла while к строке sNumber добавляется соответствующая римская цифра из массива ROME.
- Затем значение number уменьшается на значение соответствующего арабского числа из массива ARABIC.
- После завершения внутреннего цикла while, значение переменной n увеличивается на единицу.
- После завершения внешнего цикла while, выводится значение переменной sNumber.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д