Переставляя строки и столбцы, добиться того чтобы наибольший элемент оказался в верхнем левом углу - 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
в виде матрицы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д