Програмка на обработку символьной информации. Превратить введенное число в римское и вывести на экран - Pascal ABC
Формулировка задачи:
Организовать ввод с клавиатуры любого года в пределах от 1 до 3999. Превратить введенное число в римское и вывести на экран.
Далее приведено значение римских цифр:
http://www.cyberforum.ru/attachment....1&d=1386600805
Решение задачи: «Програмка на обработку символьной информации. Превратить введенное число в римское и вывести на экран»
textual
Листинг программы
uses crt; const Tab_per: array[1..13] of record ar: word; rm: string[2]; end = ((ar: 1000; rm:'M'), (ar: 900; rm: 'CM'), (ar: 500; rm: 'D'), (ar: 400; rm: 'CD'), (ar: 100; rm: 'C'), (ar: 90; rm: 'XC'), (ar: 50; rm: 'L'), (ar: 40; rm: 'XL'), (ar: 10; rm: 'X'), (ar: 9;rm: 'IX'), (ar: 5; rm: 'V'), (ar: 4; rm: 'IV'), (ar: 1; rm: 'I')); var rimch: string; arch: longint; num: byte; symb: string[2]; znch: word; begin clrscr; Write('Vvedite arabskoe chislo: '); ReadLn(arch); rimch := ''; num := 1; repeat symb := Tab_per[num].rm; znch := Tab_per[num].ar; while znch <= arch do begin rimch := rimch + symb; Dec(arch, znch); end; Inc(num); until arch <= 0; WriteLn('Rimskoe chislo: ', rimch); Readln end.
Объяснение кода листинга программы
- Объявлены константы для перевода чисел в римскую систему счисления.
- Введена переменная rimch для хранения результата.
- Введена переменная arch для хранения введенного числа.
- Введена переменная num для подсчета количества использований каждого символа в массиве Tab_per.
- Введена переменная symb для временного хранения значения из массива Tab_per.
- Введена переменная znch для хранения числового значения каждого символа из массива Tab_per.
- Выводится приглашение для ввода арабского числа.
- Считывается арабское число и сохраняется в переменной arch.
- Устанавливается начальное значение для переменной rimch.
- Устанавливается начальное значение для переменной num.
- Организован цикл для обработки каждого элемента массива Tab_per.
- Внутри цикла проверяется, что значение znch не больше arch.
- Если это так, то добавляется символ из массива Tab_per в переменную rimch.
- Значение arch уменьшается на значение znch.
- Увеличивается значение переменной num.
- Цикл продолжается до тех пор, пока arch больше или равно нулю.
- Выводится результат в римской системе счисления.
- Запрашивается ввод для продолжения работы программы.