Не запускается программа по переводу арабских чисел в римские - 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.

Объяснение кода листинга программы

  1. Объявлены два массива: ROME и ARABIC, каждый из которых содержит 13 элементов. ROME содержит римские цифры, а ARABIC - арабские числа, соответствующие римским цифрам.
  2. Инициализированы две переменные: number и sNumber. Number используется для хранения введенного числа, а sNumber - для хранения строкового представления числа в римской системе счисления.
  3. Задается начальное значение переменной n равное 0.
  4. Цикл while с условием (number > 0) выполняется до тех пор, пока number больше нуля.
  5. Внутри цикла while выполняется еще один цикл while, который ищет наименьшее арабское число в массиве ARABIC, которое больше или равно числу number.
  6. Внутри внутреннего цикла while к строке sNumber добавляется соответствующая римская цифра из массива ROME.
  7. Затем значение number уменьшается на значение соответствующего арабского числа из массива ARABIC.
  8. После завершения внутреннего цикла while, значение переменной n увеличивается на единицу.
  9. После завершения внешнего цикла while, выводится значение переменной sNumber.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.111 из 5
Похожие ответы