I,j : integer;
Imax,jmax,imin,jmin : integer;
Begin
Writeln (' ВВЕДИТЕ ЧИСЛО СТРОК МАТРИЦЫ, <= 30 ');
Readln(M);
Writeln (' ВВЕДИТЕ ЧИСЛО СТОЛБЦОВ МАТРИЦЫ, <= 30 ');
Readln(N);
For I:=1 to M do
For J:=1 to N do
BEGIN
Writeln (' A [' , i, ', ' , j, ' ] = ');
Readln( A[I,J]);
end;
{ ПЕЧАТЬ МАТРИЦЫ В МАТРИЧНОЙ ФОРМЕ }
For I:=1 to M do
Begin
{ ПЕЧАТЬ ОЧЕРЕДНОЙ СТРОКИ }
For J:=1 to N do
Write (' A [' , i, ', ' , j, ' ] = ', A[ I,J ] :6);
{ ПЕРЕХОД НА НОВУЮ СТРОКУ }
Writeln ;
End;
IMAX:=1; JMAX:=1; {координаты максимального элемента}
IMIN :=1; JMIN:=1; {координаты минимального элемента}
FOR I:=1 TO M DO
Begin
For J:=1 to N do
If A[ IMAX, JMAX ]< A[I,J]
then Begin
IMAX:=I;
JMAX:=J;
End
еlse If A[IMIN, JMIN] > A[I,J]
then Begin
IMIN :=I;
JMIN:=J;
End;
End;
WRITELN(' МАКСИМУМ = ', A[ IMAX, JMAX ],
' СТРОКА= ', IMAX, ' СТОЛБЕЦ = ', JMAX );
WRITELN(' МИНИМУМ = ', A[IMIN, JMIN],
' СТРОКА= ', IMIN, ' СТОЛБЕЦ = ', JMIN );
readln;
End.
Поменять местами максимальный и минимальный элементы, найденные среди элементов четных строк матрицы А(M,N).
Здесь используется цикл WHILE для индексации строк, т.к. нас интересуют только четные строки, следовательно, шаг для строк должен быть равен 2. В цикле FOR этого сделать нельзя.
Program Obmen;
Var
A: array[1..30,1..30] of integer;
I,j : integer;
Imax,jmax,imin,jmin : integer;
T,M,N: integer;
Begin
Writeln (' ВВЕДИТЕ ЧИСЛО СТРОК МАТРИЦЫ, <= 30 ');
Readln(M);
Writeln (' ВВЕДИТЕ ЧИСЛО СТОЛБЦОВ МАТРИЦЫ, <= 30 ');
Readln(N);
For I:=1 to M do
For J:=1 to N do
BEGIN
Writeln (' A [' , i, ', ' , j, ' ] = ');
Readln( A[I,J]);
end;
IMAX:=1; JMAX:=1; {координаты максимального элемента}
IMIN :=1; JMIN:=1; {координаты минимального элемента}
I:=2;
While (I<=M) do
Begin
For J:=1 to N do
If A[ IMAX, JMAX ]< A[I,J]
then Begin
IMAX:=I;
JMAX:=J;
End
еlse If A[IMIN,, JMIN] > A[I,J]
then Begin
IMIN :=I;
JMIN:=J;
End;
I:=I+2;
End;
T:= A[IMAX, JMAX];
A[IMAX, JMAX]:= A[IMIN, JMIN];
A[IMIN, JMIN] :=T;
For I:=1 to M do
Begin
For J:=1 to N do
Write (' A [' , i, ', ' , j, ' ] = ', A[ I,J ] :6);
Writeln ;
End;
readln;
End.
