Переместить наибольший элемент матрицы в левый верхний угол - Free Pascal
Формулировка задачи:
дано действительную матрицу N*N. Сделать так, чтобы один с элементов матрицы, что имеет наибольшее значения, размещался бы в левом верхнем углу матрицы.
Решение задачи: «Переместить наибольший элемент матрицы в левый верхний угол»
textual
Листинг программы
const
n=10;
var
max:real;
i,j,imax,jmax:integer;
a:array [1..n,1..n] of real;
begin
randomize;
for i:=1 to n do
begin
for j:=1 to n do
begin
a[i,j]:=n*random;
write(a[i,j]:6:2);
end;
writeln;
end;
max:=a[1,1];
imax:=1;
jmax:=1;
for i:=1 to n do
for j:=1 to n do
if a[i,j]>max then
begin
max:=a[i,j];
imax:=i;
jmax:=j;
end;
a[1,1]:=a[imax,jmax];
writeln('Максимум: ',max:8:2,', строка: ',imax,', столбец: ',jmax);
for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j]:6:2);
writeln;
end;
readln;
end.
Объяснение кода листинга программы
- Объявляются переменные: — n — размерность матрицы (10х10); — max — для хранения наибольшего элемента; — i, j, imax, jmax — для поиска наибольшего элемента; — a — массив для хранения элементов матрицы.
- Заполняются элементы матрицы случайными числами с помощью цикла и функции randomize.
- Находится наибольший элемент матрицы с помощью циклов и условия if. Переменные imax и jmax хранят номер строки и столбца наибольшего элемента.
- наибольший элемент копируется в левый верхний угол матрицы.
- Выводится сообщение с наибольшим элементом, его номером строки и номером столбца.
- Выводится заполненная матрица.
- Программа ожидает ввода пользователя для завершения работы.