Нахождение седловой точки матрицы - 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.
Объяснение кода листинга программы
- В начале кода используются библиотеки crt и randomize, необходимые для работы с генератором случайных чисел и вывода информации на экран.
- Переменная n используется для хранения порядка (размера) матрицы, введенного пользователем.
- Создаются два массива min и max, которые будут использоваться для поиска минимальных и максимальных значений в матрице A.
- Заполняются массивы min и max значениями, начиная с 25, используя вложенный цикл for.
- Используется внешний цикл for для перебора строк матрицы A. Для каждой строки выполняется следующий набор действий:
- Инициализируется переменная i, которая будет использоваться для перебора столбцов текущей строки.
- Используется вложенный цикл for для перебора столбцов текущей строки.
- Если значение A[i,j] меньше значения min[i], то обновляется значение min[i] на значение A[i,j].
- Если значение A[i,j] больше значения max[i], то обновляется значение max[i] на значение A[i,j].
- Выводится значение A[i,j] для каждой пары i и j, используя функцию Write.
- После завершения внешнего цикла for, выводится символ новой строки с помощью функции Writeln.
- Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д