Переставляя строки и столбцы, добиться, чтобы максимальный элемент матрицы переместился в левый верхний угол - QBasic

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

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

Помогите пожалуйста составить программу для вот этого задания:

Дана матрица целых чисел размером nхm. Переставляя строки и столбцы, добиться, чтобы максимальный элемент матрицы переместился в левый верхний угол.

Программа нужна в qbasic. Заранее спасибо!

Решение задачи: «Переставляя строки и столбцы, добиться, чтобы максимальный элемент матрицы переместился в левый верхний угол»

textual
Листинг программы
DEFINT A, I-J, M-N
CLS
INPUT "Vvedite M"; m
INPUT "Vvedite N"; n
OPTION BASE 1
DIM a(m, n)
RANDOMIZE TIMER
 
FOR i = 1 TO m
   FOR j = 1 TO n
      a(i, j) = 21 * RND - 10.5
      PRINT USING "####"; a(i, j);
   NEXT j
   PRINT
NEXT i
 
max = a(1, 1)
mi = 1
mj = 1
FOR i = 1 TO m
   FOR j = 1 TO n
      IF a(i, j) > max THEN
         max = a(i, j)
         mi = i
         mj = j
      END IF
   NEXT j
   PRINT
NEXT i
IF (mi = 1) AND (mj = 1) THEN
   PRINT "Perestanovka NE NUSHNA"
   GOTO 100
END IF
 
FOR j = 1 TO n
   SWAP a(1, j), a(mi, j)
NEXT j
  
FOR i = 1 TO m
   SWAP a(i, 1), a(i, mj)
NEXT i
 
FOR i = 1 TO m
   FOR j = 1 TO n
      PRINT USING "####"; a(i, j);
   NEXT j
   PRINT
NEXT i
100
END

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

  1. Ввод размеров матрицы M и N с помощью функции INPUT.
  2. Инициализация матрицы случайными числами с помощью цикла FOR и функции RND.
  3. Нахождение максимального элемента матрицы и его позиции с помощью цикла FOR и условного оператора IF.
  4. Проверка, является ли максимальный элемент элементом главной диагонали. Если да, то выводится сообщение Perestanovka NE NUSHNA и выполнение программы завершается.
  5. Если максимальный элемент не является элементом главной диагонали, то производится перестановка строк и столбцов с помощью функции SWAP, чтобы переместить максимальный элемент в левый верхний угол.
  6. Вывод матрицы после перестановки с помощью цикла FOR и функции PRINT.

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


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

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

14   голосов , оценка 4.071 из 5
Похожие ответы