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, после чего они выводятся на экран.