Нахождение седловой точки матрицы - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

В квадратной матрице определить номера строки и столбца какой-нибудь "седловой" точки. Некоторый элемент массива называется "седловой" точкой, если он является одновременно наименьшим в своей строке и наибольшим в своем столбце. Желательно чтобы программа была с рандомным массивом и без использования типа "Boolean"

Решение задачи: «Нахождение седловой точки матрицы»

textual
Листинг программы
  1. Uses crt;
  2. Var A:array[1..100,1..100] of integer; n,i,j:integer;
  3. min:array[1..100] of integer; max:array[1..100] of integer;
  4. Begin
  5. ClrScr; Randomize;
  6. Write('n='); Readln(n);{ввод порядка(размера) матрицы}
  7. For i:=1 to n do
  8.  Begin
  9.  min[i]:=25;
  10.  For j:=1 to n do
  11.   Begin
  12.    A[i,j]:=random(51)-25;
  13.    If A[i,j]<min[i] then min[i]:=A[i,j];{находим минимумы в столбцах}
  14.   End;
  15.  End;
  16. For i:=1 to n do
  17.  Begin
  18.  max[i]:=0;
  19.  For j:=1 to n do
  20.   Begin
  21.    If A[j,i]>max[i] then max[i]:=A[j,i];{находим максимумы в строках}
  22.   End;
  23.  End;
  24. For i:=1 to n do
  25.  Begin
  26.   For j:=1 to n do
  27.    Begin
  28.     If (A[i,j]=max[i]) and (A[i,j]=min[j]) then TextColor(4) else TextColor(8);{сравниваем минимумы и максимумы, "седловой" элемент будет выделен красным цветом}
  29.     Write(A[i,j]:4);
  30.    End;
  31.   Writeln;
  32.  End;
  33. Readln;
  34. End.

Объяснение кода листинга программы

  1. В начале кода используются библиотеки crt и randomize, необходимые для работы с генератором случайных чисел и вывода информации на экран.
  2. Переменная n используется для хранения порядка (размера) матрицы, введенного пользователем.
  3. Создаются два массива min и max, которые будут использоваться для поиска минимальных и максимальных значений в матрице A.
  4. Заполняются массивы min и max значениями, начиная с 25, используя вложенный цикл for.
  5. Используется внешний цикл for для перебора строк матрицы A. Для каждой строки выполняется следующий набор действий:
    • Инициализируется переменная i, которая будет использоваться для перебора столбцов текущей строки.
    • Используется вложенный цикл for для перебора столбцов текущей строки.
    • Если значение A[i,j] меньше значения min[i], то обновляется значение min[i] на значение A[i,j].
    • Если значение A[i,j] больше значения max[i], то обновляется значение max[i] на значение A[i,j].
  6. Выводится значение A[i,j] для каждой пары i и j, используя функцию Write.
  7. После завершения внешнего цикла for, выводится символ новой строки с помощью функции Writeln.
  8. Конец программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.6 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы