dilbaryan76
?>

Элемент матрицы назовем седловой точкой, если он является наименьшим в своей строке и одновременно наибольшим в своем столбце или, наоборот, является наибольшим в своей строке и наименьшим в своем столбце. для заданной целой матрицы размером n*m напечатать индексы всех ее седловых точек.

Информатика

Ответы

maxborod
Const   n = 4;   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. тестовое решение: исходный массив   35  34 -17 -33  20 -29   -8 -31  -4 -20    8  -1   -39  -7 -12  27  42    9   32  13 -17  37  19 -24 *** седловые точки *** [2,5]
Bordo
Program yxl; uses crt; const n=15; var     mass: array [1..n+2] of integer;     i,j,temp: integer; begin     writeln('*** alphaeus is ***');     writeln('*** ok ***');     writeln(); writeln();     writeln('программа упорядочивает массив по возрастанию ');     writeln('и вставляет числа -2 и 5, не нарушая .'); {создаём массив}     randomize;     writeln('начальный массив: ');     for i: =1 to n do         begin             mass[i]: =random(100)-50;           write(mass[i]: 4,' ');         end; {сортируем массив}     for i: =1 to n-1 do          for j: =i+1 to n do             if mass[i]> mass[j] then                  begin                         temp: =mass[i];                           mass[i]: =mass[j];                           mass[j]: =temp;                 end;     writeln;     writeln('отсортированный массив: ');     for i: =1 to n do         begin             write(mass[i]: 4,' ');         end; {добавляем к массиву числа -2 и 5 и сортируем полученный массив}     mass[n+1]: =-2; mass[n+2]: =5;     for i: =1 to n+1 do          for j: =i+1 to n+2 do             if mass[i]> mass[j] then                  begin                     temp: =mass[i];                       mass[i]: =mass[j];                       mass[j]: =temp;                 end; {выводим итоговый массив}     writeln(' массив: ');     for i: =1 to n+2 do          write(mass[i]: 4,' '); end.
Олег2014
Const n = 15; type arrayofinteger = array [1..n+2] of integer; procedure arrayoutput(a: arrayofinteger; a_length: integer); var i: integer; begin   for i : = 1 to a_length do       write(a[i]: 4, ' ');   writeln; end; procedure arraysort(var a: arrayofinteger; a_length: integer); var i, j, temp: integer; begin   for i : = 1 to a_length-1 do       for j : = i+1 to a_length do           if a[i]> a[j] then begin               temp: =a[i];               a[i]: =a[j];               a[j]: =temp;           end; end; var   mass: arrayofinteger;   i: integer; begin   writeln('программа упорядочивает массив по возрастанию ');   writeln('и вставляет числа -2 и 5, не нарушая .'); {создаём массив}   randomize;   for i : = 1 to n do       mass[i] : = random(100)-50;   writeln('начальный массив: ');   arrayoutput(mass, n);   arraysort(mass, n);   writeln('отсортированный массив: ');   arrayoutput(mass, n); {добавляем к массиву числа -2 и 5 и сортируем полученный массив}   mass[n+1]: =-2;   mass[n+2]: =5;   arraysort(mass, n+2); {выводим итоговый массив}   writeln(' массив: ');   arrayoutput(mass, n+2); end.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Элемент матрицы назовем седловой точкой, если он является наименьшим в своей строке и одновременно наибольшим в своем столбце или, наоборот, является наибольшим в своей строке и наименьшим в своем столбце. для заданной целой матрицы размером n*m напечатать индексы всех ее седловых точек.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

skononova01
sandovo590
Антонович937
e-liza-k
Елена Васильева839
lavorenn
Ильдар-Кугай
elivanova
annashersheva
Aleksandrovich-Mayatskikh
tretyakovamarina201155
Владимирович_Ралина
dyatchina63
kate281078
alakhverdov138