Переставляя строки и столбцы, добиться того чтобы наибольший элемент оказался в верхнем левом углу - Pascal
Формулировка задачи:
Дана вещественная матрица размером 7x4. Переставляя её строки и столбцы , добиться того чтобы наибольший элемент (один из них) оказался в верхнем левом углу. Помогите решить пожалуйста!!!!
Решение задачи: «Переставляя строки и столбцы, добиться того чтобы наибольший элемент оказался в верхнем левом углу»
textual
Листинг программы
const m=7; n=4; var a: array [1..m,1..n] of Real; i, j, mi, mj: Integer; t: Real; begin Randomize; for i:=1 to m do for j:=1 to n do a[i,j]:=-50+100*Random; WriteLn('A ='); for i:=1 to m do begin for j:=1 to n do Write(' ',a[i,j]:7:2); WriteLn; end; mi:=1; mj:=1; for i:=1 to m do for j:=1 to n do if a[mi,mj]<a[i,j] then begin mi:=i; mj:=j; end; if mi<>1 then for j:=1 to n do begin t:=a[1,j]; a[1,j]:=a[mi,j]; a[mi,j]:=t; end; if mj<>1 then for i:=1 to m do begin t:=a[i,1]; a[i,1]:=a[i,mj]; a[i,mj]:=t; end; WriteLn('A''='); for i:=1 to m do begin for j:=1 to n do Write(' ',a[i,j]:7:2); WriteLn; end; end.
Объяснение кода листинга программы
- Объявляется переменная
m
со значением 7 и переменнаяn
с значением 4. - Объявляется массив
a
размером 7x4 для хранения вещественных чисел. - Объявляются переменные
i
,j
,mi
,mj
для циклов и операций с массивом и переменнаяt
для временного хранения значений. - Генерируются случайные числа и заполняется массив
a
случайными значениями в диапазоне от -50 до 50. - Выводится на экран заполненный массив
a
в виде матрицы. - Находится индекс максимального элемента в массиве
a
(индексы сохраняются в переменныхmi
иmj
). - Если индекс максимального элемента не равен (1,1), то происходит перестановка строк и/или столбцов массива таким образом, чтобы максимальный элемент находился в верхнем левом углу.
- Выводится на экран изменённый массив
a
в виде матрицы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д