Задана вещественная матрица размера NxM. Поменять местами столбцы матрицы содержащиедве максимальные суммы элементов.Если таких столбцов несколько, то только последние из них.
Code
uses crt;
const n1 = 10; m1 = 10;
type mas = array[1..n1, 1..m1] of real;
var a: mas; i, j, n, m: integer;
sum, max1, max2 : real;
index_max1, index_max2 : integer;
begin
randomize;
writeln('введите кол-во строк');
readln(n);
writeln('введите кол-во столбцов');
readln(m);
writeln('введите элементы массива');
for i := 1 to n do begin
for j := 1 to m do
begin
{writeln('введите А[', i, ',', j, ']');
readln(a[i, j]); }
a[i, j] := Random(11);
Write(a[i, j]:5:0,' ');
end;
WriteLn;
end;
index_max1 := 0;
index_max2 := 0;
for j := 1 to m do
begin
sum := 0;
for i := 1 to n do
sum := sum + a[i, j];
if index_max1 = 0 then begin
index_max1 := j;
max1 := sum
end
else begin
if index_max2 = 0 then begin
index_max2 := index_max1;
max2 := max1;
index_max1 := j;
max1 := sum
end
else { оба максимальных значения уже не пустые,
сравним их с очередной суммой }
if sum>=max1 then begin
index_max2 := index_max1;
max2 := max1;
index_max1 := j;
max1 := sum
end
else
if sum>=max2 then begin
index_max2 := j;
max2 := sum
end;
end;
writeln('сумма ', j, 'столбца = ', sum:5:0);
end;
writeln(' Максимальные суммы двух столбцов равны: ');
WriteLn(' меняем местами столбцы с номерами ',index_max1,' и ',index_max2);
WriteLn(' стобец № ',index_max1,' = ', max1:5:2);
WriteLn(' стобец № ',index_max2,' = ', max2:5:2);
этот код(вычисление макс. сумм столбцов) работает только для квадратной матрицы((