Считать, преобразовать цифры файла в римские и записать в другой файл - 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.
Объяснение кода листинга программы
- В строке с объявлением переменных
const
определяются два массива символовRomeDigits
иArabicNumbers
, которые представляют римские и арабские цифры соответственно. - Функция
ArabicToRome
принимает целое число и возвращает строку, представляющую это число в римской системе. Она использует циклwhile
, чтобы последовательно преобразовывать цифры от наибольшей к наименьшей, добавляя их к результирующей строкеres
. - В процедуре
ReadWriteFile
открываются два файла:f
для чтения из файлаarabicnumber.txt
иfr
для записи в файлromenumber.txt
. Затем происходит чтение числа из файлаarabicnumber.txt
, его преобразование в римскую систему с помощью функцииArabicToRome
и запись результата в файлromenumber.txt
. - Основная программа включает вызов процедуры
ReadWriteFile
и затем ожидает ввода с помощьюreadln
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д