Описать процедуру, меняющую порядок следования цифр целого положительного числа на обратный - 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].
- Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д