Преобразовать массивы 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.

Объяснение кода листинга программы

  1. Создается функция-процедура Create, которая принимает массив A и его длину n в качестве параметров. Внутри функции устанавливается длина массива A в n с помощью функции SetLength. Затем, с помощью цикла for, каждому элементу массива A присваивается случайное значение от -10 до 10.
  2. Создается функция-процедура Print, которая принимает массив A в качестве параметра. Внутри функции используется цикл for для прохода по всем элементам массива A и вывода их значения с помощью функции write. После вывода каждого элемента происходит вызов функции writeln для перехода на новую строку.
  3. Создается функция-процедура Solve, которая принимает массив A в качестве параметра. Внутри функции используется цикл for для прохода по всем элементам массива A. Если текущий элемент массива A меньше нуля, то ему присваивается значение 0. Затем инициализируется переменная j, которая будет использоваться для копирования элементов массива A в начало массива. Если текущий элемент массива A не равен нулю, то его значение копируется в переменную a[j], а счетчик j увеличивается на 1. Если текущий элемент массива A не равен предыдущему, то значение a[i] устанавливается в 0. После завершения цикла a[i] устанавливается в 0.
  4. Вызываются функции Create, Print и Solve для массивов X и Y соответственно. Сначала создаются массивы X и Y, затем выводится их содержимое. Затем выполняется преобразование массивов X и Y с помощью функции Solve, при этом выводится содержимое массивов после преобразования.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.077 из 5
Похожие ответы