Считать, преобразовать цифры файла в римские и записать в другой файл - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

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

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

textual
Листинг программы
const
  {римские цифры}
  RomeDigits: array [1..13] of string[2] =
  ('I', 'IV', 'V', 'IX', 'X', 'XL', 'L', 'XC', 'C', 'CD', 'D', 'CM', 'M');
  
  {соответствующие римским цифрам}
  ArabicNumbers: array [1..13] of integer =
  (1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000);
 
{Функция перевода арабского числа в римское}
function ArabicToRome(n: integer): string;
var
  i: integer;
  res: string;
begin
  res := '';
  i := 13; 
  while n > 0 do 
  begin
    while ArabicNumbers[i] > n do
      i := i - 1;
    res := res + RomeDigits[i];
    n := n - ArabicNumbers[i];
  end;
  ArabicToRome := res;
end;
 
procedure ReadWriteFile;
var
  fr, f: text;
  arabic: integer;
begin
  assign(f, 'arabicnumber.txt');
  assign(fr, 'romenumber.txt');  
  reset(f);
  rewrite(fr);
  while not seekeof(f) do
  begin
    read(f, arabic);
    write(fr, ArabicToRome(arabic), ' ');    
  end;
  close(f);
  close(fr);  
end;
 
{основная программа}
var
  arabic: integer;{арабское число}
 
begin
  ReadWriteFile;
  readln;
end.

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

  1. В строке с объявлением переменных const определяются два массива символов RomeDigits и ArabicNumbers, которые представляют римские и арабские цифры соответственно.
  2. Функция ArabicToRome принимает целое число и возвращает строку, представляющую это число в римской системе. Она использует цикл while, чтобы последовательно преобразовывать цифры от наибольшей к наименьшей, добавляя их к результирующей строке res.
  3. В процедуре ReadWriteFile открываются два файла: f для чтения из файла arabicnumber.txt и fr для записи в файл romenumber.txt. Затем происходит чтение числа из файла arabicnumber.txt, его преобразование в римскую систему с помощью функции ArabicToRome и запись результата в файл romenumber.txt.
  4. Основная программа включает вызов процедуры ReadWriteFile и затем ожидает ввода с помощью readln.

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


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

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

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