Поменять местами максимальный и минимальный элемент главной диагонали матрицы - Turbo Pascal
Формулировка задачи:
В квадратной матрице размером 5х5 узнать максимальный и минимальный элемент главной диагонали. Поменять их местами . получить после этого матрицу !!
Решите пожалуйста
Решение задачи: «Поменять местами максимальный и минимальный элемент главной диагонали матрицы»
textual
Листинг программы
- var a: array [1..5,1..5] of integer;
- i,j,max,min,maxx,maxy,minx,miny:integer;
- BEGIN
- maxx:=1;
- minx:=1;
- maxy:=1;
- miny:=1;
- Randomize;
- For i:=1 to 5 do
- For j:=1 to 5 do
- a[i,j] := Random(100);
- For i:=1 to 5 do begin
- For j:=1 to 5 do
- Write (a[i,j],' ');
- Writeln;
- end;
- max := a[1,1];
- min := max;
- For i:=1 to 5 do begin
- IF a[i,i]>max THEN begin
- max := a[i,i];
- maxx := i;
- maxy := i;
- end
- ELSE IF a[i,i]<min THEN begin
- min := a[i,i];
- minx := i;
- miny := i;
- end;
- end;
- a[maxx,maxy] := min;
- a[minx,miny] := max;
- Writeln;
- For i:=1 to 5 do begin
- For j:=1 to 5 do
- Write (a[i,j],' ');
- Writeln;
- end;
- END.
Объяснение кода листинга программы
- Создается переменная
a
типаarray [1..5,1..5] of integer;
, которая представляет собой матрицу размером 5x5. - Создаются переменные
i
,j
,max
,min
,maxx
,maxy
,minx
иminy
типаinteger
. - Выполняется инициализация переменных
maxx
,minx
,maxy
иminy
:maxx
иminx
устанавливаются равными 1, аmaxy
иminy
также устанавливаются равными 1. - Выполняется цикл
Randomize
, который необходим для генерации случайных чисел. - Выполняется внешний цикл
For i:=1 to 5 do
, который проходит по каждой строке матрицы. - Внутри внешнего цикла выполняется вложенный цикл
For j:=1 to 5 do
, который проходит по каждому элементу матрицы в текущей строке. - В каждой ячейке матрицы
a[i,j]
присваивается случайное число от 0 до 99 с помощью функцииRandom(100)
. - После завершения вложенного цикла для каждой строки матрицы выводится содержимое строки с помощью команды
Write (a[i,j],' ');
. - После вывода всех строк матрицы выполняется команда
Writeln;
, чтобы перейти на новую строку. - После вывода всех строк матрицы выполняется внутренний цикл
For i:=1 to 5 do
, который проходит по каждой строке матрицы. - Внутри внутреннего цикла выполняется проверка условия
IF a[i,i]>max THEN
, гдеmax
— это текущий максимум матрицы. - Если условие истинно, то присваиваются новые значения максимума (
max
), максимальной позиции (maxx
) и минимальной позиции (miny
). - Если условие ложно, то выполняется аналогичная проверка для минимального значения матрицы.
- После завершения внутреннего цикла для каждой строки матрицы выполняется команда
a[maxx,maxy] := min;
, чтобы поменять местами максимум и минимум. - Аналогично выполняется команда
a[minx,miny] := max;
, чтобы поменять местами минимум и максимум. - После выполнения всех команд матрица должна быть изменена таким образом, чтобы максимальный элемент находился в левом нижнем углу, а минимальный — в правом верхнем углу.
- Выполняется еще один цикл
For i:=1 to 5 do
, чтобы вывести измененную матрицу. - В конце программы выполняется команда
END.;
, чтобы завершить выполнение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д