Нахождение седловой точки матрицы - 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.
- Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д