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