Вмассиве а[1..n,1..n] определить номера строки и столбца какой-нибудь седловой точки. некоторый элемент массива называется седловой точкой, если он является одновременно наименьшим в своей строке и наибольшим в своем столбце
250
491
Ответы на вопрос:
Const n = 6; // число строк m = 6; // число столбцов var a: array[1..n, 1..m] of integer; // основной массив rext: array[1..n, 1..2] of integer; // номера столбцов с min и max в строках cext: array[1..2, 1..m] of integer; // номера строк с min и max в столбцах 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; // заполняем массив rext n x 2 for i : = 1 to n do begin amin : = 10000; //заведомо больше a[i,j] amax : = -10000; //заведомо меньше a[i,j] 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; // заполняем массив cext 2 x m for j : = 1 to m do begin amin : = 10000; //заведомо больше a[i,j] amax : = -10000; //заведомо меньше a[i,j] 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. тестовое решение исходный массив 10 25 38 38 45 32 42 36 -39 -6 9 48 -25 -37 40 30 *** седловые точки *** [2,2]
Const n = 5; var i, j: integer; a: array[1..n, 1..n] of integer; min, max: array[1..n] of integer; begin writeln('исходный массив: '); for i : = 1 to n do begin for j : = 1 to n do begin a[i, j] : = random(10); write(a[i, j] : 3); if (j = 1) or (max[i] > a[i, j]) then max[i] : = a[i, j]; if (i = 1) or (min[j] < a[i, j]) then min[j] : = a[i, j]; end; writeln; end; writeln('седловые точки: '); for i : = 1 to n do for j : = 1 to n do if max[i] = min[j] then writeln('[', i, '; ', j, ']'); end.
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
niknikiforov9107.07.2022 08:57
-
sarababy77718.11.2021 19:37
-
djnf25.06.2023 18:35
-
nastya2017414.03.2023 07:59
-
jauprosto21.01.2020 19:58
-
uliatuchakrom914.02.2020 22:35
-
Bloger157922.02.2021 05:02
-
muravyov191006.01.2023 13:26
-
Gadik22812.05.2023 04:41
-
тимур37013.01.2021 05:58
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.