ДВУМЕРНЫЕ МАССИВЫ. ОБРАБОТКА С УСЛОВИЕМ Pascal ABC #4
Если разность максимального и минимального элементов массива
A(n,m) больше 20, то уменьшить все положительные элементы
вдвое, иначе – найти произведение отрицательных элементов
каждого столбца.
помогите пожалуйста решить эту задачу
program ArrayProcessing;
const
n = 3; // количество строк
m = 4; // количество столбцов
var
A: array[1..n, 1..m] of integer;
maxElement, minElement: integer;
i, j: integer;
diff: integer;
product: array[1..m] of integer;
begin
Randomize;
for i := 1 to n do
for j := 1 to m do
A[i, j] := Random(101) - 50;
WriteLn('Исходный массив:');
for i := 1 to n do begin
for j := 1 to m do
Write(A[i, j]:6);
WriteLn;
end;
maxElement := A[1, 1];
minElement := A[1, 1];
for i := 1 to n do
for j := 1 to m do begin
if A[i, j] > maxElement then
maxElement := A[i, j];
if A[i, j] < minElement then
minElement := A[i, j];
end;
diff := maxElement - minElement;
WriteLn('Максимальный элемент:', maxElement);
WriteLn('Минимальный элемент:', minElement);
WriteLn('Разница:', diff);
if diff > 20 then begin
for i := 1 to n do
for j := 1 to m do
if A[i, j] > 0 then
A[i, j] := A[i, j] div 2;
for i := 1 to n do begin
for j := 1 to m do
Write(A[i, j]:6);
WriteLn;
end;
end else begin
for j := 1 to m do
product[j] := 1;
for i := 1 to n do
for j := 1 to m do
if A[i, j] < 0 then
product[j] := product[j] * A[i, j];
WriteLn('Произведение отрицательных элементов для каждого столбца:');
for j := 1 to m do
Write(product[j]:10);
WriteLn;
end;
end.
17-