Описать процедуру, меняющую порядок следования цифр целого положительного числа на обратный - Pascal ABC
Формулировка задачи:
описать процедуру InvertDigits(K),меняющую порядок следования цифр целого положительного числа К на обратный (К параметр целого типа, являющийся одновременно входным и выходным ) С помощью этой процедуры поменять порядок следования цифр на обратный для N элементов массива целых чисел
Решение задачи: «Описать процедуру, меняющую порядок следования цифр целого положительного числа на обратный»
textual
Листинг программы
uses crt;
//процедура переворота числа
//входной параметр К-данное число, выходной- М-новое число
procedure InvertDigits(K:integer;var M:integer);
var i:byte;
begin
M:=0;//новое пока=0
while K>0 do//пока данное больше 0 например 123
begin
i:=K mod 10;//берем последнюю цифру 3, 2, 1
M:=M*10+i;//умножаем уже полученное число и прибавляем эту цифру 1, 12, 123
K:=K div 10; //сокращаем данное в 10 раз
end;
end;
const nmax=100; //максимальный размер массива
var a:array[1..nmax] of integer;//тип массива
n,i:integer;//переменные размера и счетчика
begin
randomize;//для того что бы при каждом запуска новые числа
repeat
write('Размер массива от 1 до ',nmax,' n=');
read(n);
until n in [1..nmax];
writeln('Исходный массив');
for i:=1 to n do
begin
a[i]:=10000+random(90000);//я сделал числа от 10000 до 99999, можно изменить
write(a[i]:8)
end;
writeln;
writeln('Смена порядка цифр на обратный');
for i:=1 to n do
begin
InvertDigits(a[i],a[i]);//вызываем процедуру для каждого числа
write(a[i]:8);
end;
end.
Объяснение кода листинга программы
- Создается процедура InvertDigits, которая принимает целочисленный параметр K и переменную M типа integer. Эта процедура меняет порядок следования цифр в числе K на обратный.
- В процедуре используется цикл while, который выполняется, пока значение переменной K больше нуля. На каждой итерации цикла извлекается последняя цифра числа K с помощью оператора mod 10, затем это число добавляется к переменной M с использованием оператора умножения и оператора прибавления. После этого значение числа K сокращается в 10 раз с помощью оператора деления.
- Создается константа nmax, которая определяет максимальный размер массива a типа array[1..nmax] of integer.
- Создаются две переменные n и i типа integer, которые используются для чтения размера массива и для итерации по массиву.
- С помощью функции randomize устанавливается начальное значение генератора случайных чисел.
- Запускается цикл repeat-until, который повторяется, пока значение переменной n не будет находиться в диапазоне от 1 до nmax. На каждой итерации цикла считывается размер массива и выводится сообщение с этим размером.
- В каждой итерации цикла создается переменная a[i] типа integer, которая заполняется случайным числом в диапазоне от 10000 до 99999.
- Выводится исходный массив чисел.
- Вызывается процедура InvertDigits для каждого числа a[i], используя переменную a[i] в качестве аргумента.
- После выполнения процедуры InvertDigits выводится обратный порядок цифр для каждого числа a[i].
- Программа завершается.