Конечно, давайте разберем оба вопроса.
1) Процедура в Pascal ABC, которая выводит на экран в столбик все цифры переданного числа
Для выполнения этой задачи, нам нужно создать процедуру, которая будет принимать число в качестве параметра, конвертировать его в строку и затем выводить каждую цифру в отдельной строке.
Вот пример кода для этой задачи:
program OutputDigitsInColumn;
procedure PrintDigitsInColumn(number: Integer);
var
numStr: String;
i: Integer;
begin
numStr := IntToStr(number); // Преобразуем число в строку
for i := 1 to Length(numStr) do
begin
Writeln(numStr[i]); // Выводим каждую цифру в отдельной строке
end;
end;
var
inputNumber: Integer;
begin
Write('Введите число: ');
Readln(inputNumber);
PrintDigitsInColumn(inputNumber);
end.
2) Процедура, которая выводит на экран запись числа в римской системе счисления
Для выполнения этой задачи нам нужно написать процедуру, которая будет преобразовывать арабские числа в римские. Римская система счисления использует следующие символы: I (1), V (5), X (10), L (50), C (100), D (500), M (1000).
Вот пример кода для этой задачи:
program ConvertToRoman;
function IntToRoman(num: Integer): String;
const
values: array[1.13] of Integer = (1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1);
symbols: array[1.13] of String = ('M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I');
var
i: Integer;
result: String;
begin
result := '';
for i := 1 to 13 do
begin
while num >= values[i] do
begin
num := num - values[i];
result := result + symbols[i];
end;
end;
IntToRoman := result;
end;
procedure PrintRomanNumber(number: Integer);
begin
Writeln(IntToRoman(number));
end;
var
inputNumber: Integer;
begin
Write('Введите число: ');
Readln(inputNumber);
PrintRomanNumber(inputNumber);
end.
Объяснение кода
1. Процедура для вывода цифр числа в столбик:
IntToStr(number)
: Преобразует число в строку.
Length(numStr)
: Возвращает длину строки.
- Цикл
for
используется для перебора каждого символа строки и вывода его на экран.
2. Процедура для преобразования числа в римскую систему счисления:
- Используются массивы
values
и symbols
для хранения значений и соответствующих римских символов.
- В цикле
for
проверяется, сколько раз текущее значение из массива values
может быть вычтено из числа num
, и соответствующий римский символ добавляется к результату.
- Цикл продолжается до тех пор, пока все значения не будут обработаны.
Таким образом, обе процедуры выполняют свои задачи корректно и выводят требуемую информацию.