Дана матрица D размера nхm( n,m <= 20). Сформировать 3 одномерных массива: А – из элементов матрицы D, лежащих в диапазоне от -5 до 5, в порядке следования по строкам, В – из элементов от 10 до 20, С – от 30 до 50. Использовать подпрограмму для выборки в новый массив элементов для одного диапазона.- Pascal(Паскаль)

program MatrixProcessing;

const
  MaxN = 20;
  MaxM = 20;

type
  TMatrix = array[1..MaxN, 1..MaxM] of Integer;
  TArray = array of Integer;

var
  D: TMatrix;
  A, B, C: TArray;
  n, m: Integer;

procedure ReadMatrix(var M: TMatrix; n, m: Integer);
var
  i, j: Integer;
begin
  for i := 1 to n do
    for j := 1 to m do
      Read(M[i, j]);
end;

procedure FilterElements(const M: TMatrix; n, m, low, high: Integer; var Arr: TArray);
var
  i, j, len: Integer;
begin
  len := 0;
  for i := 1 to n do
    for j := 1 to m do
      if (M[i, j] >= low) and (M[i, j] <= high) then
      begin
        SetLength(Arr, len + 1);
        Arr[len] := M[i, j];
        Inc(len);
      end;
end;

procedure PrintArray(const Arr: TArray);
var
  i: Integer;
begin
  for i := Low(Arr) to High(Arr) do
    Write(Arr[i], ' ');
  WriteLn;
end;

begin
  Write('Введите размер матрицы n и m: ');
  ReadLn(n, m);

  WriteLn('Введите элементы матрицы D:');
  ReadMatrix(D, n, m);

  FilterElements(D, n, m, -5, 5, A);
  FilterElements(D, n, m, 10, 20, B);
  FilterElements(D, n, m, 30, 50, C);

  WriteLn('Массив A:');
  PrintArray(A);

  WriteLn('Массив B:');
  PrintArray(B);

  WriteLn('Массив C:');
  PrintArray(C);
end.

В этой программе определены подпрограммы ReadMatrix, FilterElements и PrintArray. ReadMatrix считывает матрицу заданного размера, FilterElements выбирает элементы матрицы, которые попадают в заданный диапазон, и сохраняет их в одномерный массив. PrintArray выводит содержимое одномерного массива на экран. В основной программе сначала считывается матрица D, затем формируются массивы A, B и C, после чего они выводятся на экран.

Leave a Comment

− 5 = 3