Работа 3.7 Упр.18 ГДЗ Семакин 10 класс (Информатика)
Рассмотрим вариант решения задания из учебника Семакин, Хеннер, Шеина 10 класс, Бином: 18. Дана вещественная матрица размером n х m. Переставляя ее строки и столбцы, добиться того, чтобы наибольший элемент (или один из них) оказался в верхнем левом углу. *Цитирирование задания со ссылкой на учебник производится исключительно в учебных целях для лучшего понимания разбора решения задания. 10 semakin10 pract/3-7/18 98
Нужно найти максимальный элемент матрицы и переставить строки и столбцы так, чтобы этот элемент оказался в позиции $$a_{1,1}$$.
Для этого:
- сначала заполняем матрицу;
- находим координаты максимального элемента $$x$$ и $$y$$;
- меняем местами строку с номером $$y$$ и первую строку;
- меняем местами столбец с номером $$x$$ и первый столбец;
- выводим полученную матрицу.
Если максимальных элементов несколько, достаточно, чтобы в левом верхнем углу оказался один из них.
const n = 7;
m = 4;type
matr = array[1..n, 1..m] of integer;procedure zapolnenie(var mas: matr);
var
i, j: integer;
begin
for i := 1 to n do
for j := 1 to m do
mas[i, j] := random(9) + 1;
end;procedure max(const mas: matr; var x, y: integer);
var
i, j: integer;
maxx: integer;
begin
maxx := mas[1, 1];
y := 1;
x := 1;
for i := 1 to n do
for j := 1 to m do
if mas[i, j] > maxx then
begin
maxx := mas[i, j];
y := i;
x := j;
end;
end;procedure vivod(const mas: matr);
var
i, j: integer;
begin
for i := 1 to n do
begin
for j := 1 to m do
Write(mas[i, j]:5);
Writeln;
end;
Writeln;
end;procedure vverh(var mas: matr; const y: integer);
var
i, j, c: integer;
begin
for i := y downto 2 do
for j := 1 to m do
begin
c := mas[i — 1, j];
mas[i — 1, j] := mas[i, j];
mas[i, j] := c;
end;
end;procedure vlevo(var mas: matr; const x: integer);
var
i, j, c: integer;
begin
for j := x downto 2 do
for i := 1 to n do
begin
c := mas[i, j — 1];
mas[i, j — 1] := mas[i, j];
mas[i, j] := c;
end;
end;var
mas: matr;
x, y: integer;begin
zapolnenie(mas);
max(mas, x, y);
vivod(mas);
vverh(mas, y);
vlevo(mas, x);
vivod(mas);
end.
После выполнения программы максимальный элемент матрицы окажется в левом верхнем углу.