Преобразовать массивы X(10) и Y(15), расположив в них подряд только положительные элементы - Pascal ABC
Формулировка задачи:
Преобразовать массивы X(10) и Y(15), расположив в них подряд только положительные элементы. Вместо остальных элементов записать нули. Использовать подпрограмму-процедуру.
Решение задачи: «Преобразовать массивы X(10) и Y(15), расположив в них подряд только положительные элементы»
textual
Листинг программы
type TArray = array of integer; var X, Y: TArray; procedure Create(var A: TArray; n: integer); var i: integer; begin SetLength(A, n); for i := 0 to high(A) do A[i] := random(-10, 10); end; procedure Print(A: TArray); var i: integer; begin for i := 0 to high(A) do write(A[i]:3); writeln; end; procedure Solve(var A: TArray); var i, j: integer; begin for i := 0 to High(A) do if a[i] < 0 then a[i] := 0; j := 0; for i := 0 to high(A) do if a[i] <> 0 then begin a[j] := a[i]; inc(j); if i <> 0 then a[i] := 0; end; end; begin Create(X, 10); Create(Y, 15); Write('x: '); print(x); Write('y: '); print(Y); solve(x); solve(y); Write('x: '); print(x); Write('y: '); print(Y); end.
Объяснение кода листинга программы
- Создается функция-процедура Create, которая принимает массив A и его длину n в качестве параметров. Внутри функции устанавливается длина массива A в n с помощью функции SetLength. Затем, с помощью цикла for, каждому элементу массива A присваивается случайное значение от -10 до 10.
- Создается функция-процедура Print, которая принимает массив A в качестве параметра. Внутри функции используется цикл for для прохода по всем элементам массива A и вывода их значения с помощью функции write. После вывода каждого элемента происходит вызов функции writeln для перехода на новую строку.
- Создается функция-процедура Solve, которая принимает массив A в качестве параметра. Внутри функции используется цикл for для прохода по всем элементам массива A. Если текущий элемент массива A меньше нуля, то ему присваивается значение 0. Затем инициализируется переменная j, которая будет использоваться для копирования элементов массива A в начало массива. Если текущий элемент массива A не равен нулю, то его значение копируется в переменную a[j], а счетчик j увеличивается на 1. Если текущий элемент массива A не равен предыдущему, то значение a[i] устанавливается в 0. После завершения цикла a[i] устанавливается в 0.
- Вызываются функции Create, Print и Solve для массивов X и Y соответственно. Сначала создаются массивы X и Y, затем выводится их содержимое. Затем выполняется преобразование массивов X и Y с помощью функции Solve, при этом выводится содержимое массивов после преобразования.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д