Переставляя строки и столбцы, добиться, чтобы максимальный элемент матрицы переместился в левый верхний угол - 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
Объяснение кода листинга программы
- Ввод размеров матрицы M и N с помощью функции INPUT.
- Инициализация матрицы случайными числами с помощью цикла FOR и функции RND.
- Нахождение максимального элемента матрицы и его позиции с помощью цикла FOR и условного оператора IF.
- Проверка, является ли максимальный элемент элементом главной диагонали. Если да, то выводится сообщение
Perestanovka NE NUSHNA
и выполнение программы завершается. - Если максимальный элемент не является элементом главной диагонали, то производится перестановка строк и столбцов с помощью функции SWAP, чтобы переместить максимальный элемент в левый верхний угол.
- Вывод матрицы после перестановки с помощью цикла FOR и функции PRINT.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д