Работа 3.7 Упр.17 ГДЗ Семакин 10 класс (Информатика)
Рассмотрим вариант решения задания из учебника Семакин, Хеннер, Шеина 10 класс, Бином: 17. Элемент матрицы назовем седловой точкой, если он является наименьшим в своей строке и одновременно наибольшим в своем столбце или, наоборот, является наибольшим в своей строке и наименьшим в своем столбце. Для заданной целой матрицы размером n х m напечатать индексы всех ее седловых точек. *Цитирирование задания со ссылкой на учебник производится исключительно в учебных целях для лучшего понимания разбора решения задания. 10 semakin10 pract/3-7/17 98
Седловой точкой матрицы называется элемент, который одновременно:
- является наименьшим в своей строке и наибольшим в своём столбце;
- или является наибольшим в своей строке и наименьшим в своём столбце.
Чтобы найти все такие элементы, удобно сначала для каждой строки определить её минимум и максимум, а затем для каждого столбца — его минимум и максимум. После этого проверяем каждый элемент матрицы по двум условиям.
var
n, m, i, j: integer;
const
n = 4;
m = 6;
var
a: array[1..n, 1..m] of integer;
Rext: array[1..n, 1..2] of integer;
Cext: array[1..2, 1..m] of integer;
i, j, amin, amax: integer;
begin
Randomize;
writeln(‘Исходный массив’);
for i := 1 to n do
begin
for j := 1 to m do
begin
a[i, j] := random(100) — 50;
write(a[i, j]:4);
end;
writeln;
end;for i := 1 to n do
begin
amin := 10000;
amax := -10000;
for j := 1 to m do
begin
if amin > a[i, j] then
begin
amin := a[i, j];
Rext[i, 1] := j;
end;
if amax < a[i, j] then
begin
amax := a[i, j];
Rext[i, 2] := j;
end;
end;
end;for j := 1 to m do
begin
amin := 10000;
amax := -10000;
for i := 1 to n do
begin
if amin > a[i, j] then
begin
amin := a[i, j];
Cext[1, j] := i;
end;
if amax < a[i, j] then
begin
amax := a[i, j];
Cext[2, j] := i;
end;
end;
end;writeln;
writeln(‘*** Седловые точки ***’);
for i := 1 to n do
begin
j := Rext[i, 1];
if Cext[2, j] = i then
write(‘(‘, i, ‘,’, j, ‘)’)
else
begin
j := Rext[i, 2];
if Cext[1, j] = i then
write(‘(‘, i, ‘,’, j, ‘)’);
end;
end;
writeln;
end.
Программа выводит исходную матрицу, затем находит все её седловые точки и печатает их индексы.
Ответ: программа, находящая и выводящая индексы всех седловых точек матрицы.