Валера Гурдуза
S:11:07:50 28.10
R:11:07:52 28.10
program MatrixRowSwap;
type
matrix = array[1..100, 1..100] of integer;
var
A: matrix;
m, n, maxRow: integer;
// Процедура для ввода матрицы
procedure Vvod(var mat: matrix; rows, cols: integer);
var
i, j: integer;
begin
writeln(*Введите элементы матрицы:*);
for i := 1 to rows do
for j := 1 to cols do
readln(mat[i, j]);
end;
// Процедура для вывода матрицы
procedure PrintMatrix(mat: matrix; rows, cols: integer);
var
i, j: integer;
begin
writeln(*Матрица:*);
for i := 1 to rows do
begin
for j := 1 to cols do
write(mat[i, j]:4);
writeln;
end;
end;
// Функция для нахождения номера строки с максимальным элементом
function FindMaxRow(mat: matrix; rows, cols: integer): integer;
var
i, j, max, maxRow: integer;
begin
max := mat[1, 1];
maxRow := 1;
for i := 1 to rows do
for j := 1 to cols do
if mat[i, j] > max then
begin
max := mat[i, j];
maxRow := i;
end;
FindMaxRow := maxRow;
end;
// Процедура для перестановки первой строки и строки с максимальным элементом
procedure SwapRows(var mat: matrix; cols, row1, row2: integer);
var
j, temp: integer;
begin
for j := 1 to cols do
begin
temp := mat[row1, j];
mat[row1, j] := mat[row2, j];
mat[row2, j] := temp;
end;
end;
begin
writeln(*Введите количество строк и столбцов матрицы:*);
readln(m, n);
Vvod(A, m, n);
// Находим номер строки с максимальным элементом
maxRow := FindMaxRow(A, m, n);
// Проверка, требуется ли перестановка строк
if maxRow = 1 then
writeln(*Максимальный элемент уже находится в первой строке, перестановка не требуется.*)
else
begin
SwapRows(A, n, 1, maxRow);
writeln(*Перестановка выполнена. Первая строка и строка с максимальным элементом поменяны местами.*);
PrintMatrix(A, m, n);
end;
end.