Дана матрица 5*5, числа в диапазоне от 1 до 20. Необходимо найти седловые точки. Распечатать значения и индексы A(i,j) — QBasic(Бейсик)

DIM A(1 TO 5, 1 TO 5) ' Матрица
 
CLS
' Считываем матрицу из DATA
FOR i = 1 TO 5
  FOR j = 1 TO 5
    READ A(i, j)
NEXT j, i
' Находим седловые точки
FOR i = 1 TO 5 ' цикл по строкам
  ' найдем максимум в строке
  maxstr = A(i, 1)
  FOR counter = 2 TO 5
    IF A(i, counter) > maxstr THEN
      maxstr = A(i, counter)
    END IF
  NEXT counter
  ' теперь проверим для всех значений =maxstr, являются ли они
  ' минимумом в своем столбце
  FOR j = 1 TO 5
    IF A(i, j) = maxstr THEN
      imin = 1
      FOR counter = 1 TO 5
        IF A(counter, j) < A(i, j) THEN ' Есть меньший элемент
          imin = 0
        END IF
      NEXT counter
      ' Если элемент минимален в столбце - то это седловая точка
      IF imin = 1 THEN
        PRINT "Седловая точка A("; i; ","; j; ")="; A(i, j)
      END IF
    END IF
  NEXT j
NEXT i
END
' Матрица
DATA  1, 3,15, 5, 6
DATA 12,11,13,10,15
DATA  5, 7,10, 4,15
DATA 13,11,11, 7, 7
DATA  3, 7,10,10, 1

Leave a Comment