Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция_3_Массивы_2012_матрицы.doc
Скачиваний:
3
Добавлен:
01.03.2025
Размер:
78.34 Кб
Скачать

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.