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

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

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

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

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

textual
Листинг программы
Uses crt;
Var A:array[1..100,1..100] of integer; n,i,j:integer;
min:array[1..100] of integer; max:array[1..100] of integer;
Begin
ClrScr; Randomize;
Write('n='); Readln(n);{ввод порядка(размера) матрицы}
For i:=1 to n do
 Begin 
 min[i]:=25;
 For j:=1 to n do
  Begin
   A[i,j]:=random(51)-25;
   If A[i,j]<min[i] then min[i]:=A[i,j];{находим минимумы в столбцах}
  End;
 End;
For i:=1 to n do
 Begin
 max[i]:=0;
 For j:=1 to n do
  Begin
   If A[j,i]>max[i] then max[i]:=A[j,i];{находим максимумы в строках}
  End;
 End;
For i:=1 to n do
 Begin
  For j:=1 to n do
   Begin
    If (A[i,j]=max[i]) and (A[i,j]=min[j]) then TextColor(4) else TextColor(8);{сравниваем минимумы и максимумы, "седловой" элемент будет выделен красным цветом}
    Write(A[i,j]:4);
   End;
  Writeln;
 End;
Readln;
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
Похожие ответы