Упорядочить строки матрицы по возрастанию их наибольших элементов - QBasic
Формулировка задачи:
Как я понимаю надо найти максимальный элемент каждой строки, сравнить их каким-то макаром между собой и затем проранжировать строки по полученным данным. Интересует алгоритм, которым этого можно добиться. Спасибо.
Решение задачи: «Упорядочить строки матрицы по возрастанию их наибольших элементов»
textual
Листинг программы
- CLS
- INPUT "kol-vo strok:", n
- INPUT "kol-vo stolbcov", m
- DIM x(n, m)
- RANDOMIZE TIMER
- PRINT "ishodnyj massiv"
- FOR i = 1 TO n
- FOR j = 1 TO m
- x(i, j) = INT(RND * 30)
- PRINT x(i, j);
- NEXT j
- NEXT i
- DIM y(n)
- FOR i = 1 TO n
- y(i) = x(i, 1)
- FOR j = 1 TO m
- IF x(i, j) > y(i) THEN y(i) = x(i, j)
- NEXT
- NEXT
- FOR i = 1 TO n
- FOR j = 2 TO n
- IF y(j) < y(j - 1) THEN SWAP y(j), y(j - 1): FOR k = 1 TO m: SWAP x(j, k), x(j - 1, k): NEXT
- NEXT
- NEXT
- PRINT "novyj massiv"
- FOR i = 1 TO n
- FOR j = 1 TO m
- PRINT x(i, j);
- NEXT
- NEXT
Объяснение кода листинга программы
- Сначала пользователю предлагается ввести количество строк и столбцов матрицы.
- Затем создается матрица x заданного размера, заполненная случайными числами от 0 до 30.
- Далее, в цикле, вычисляется наибольший элемент каждой строки матрицы x и сохраняется в матрице y.
- В следующем цикле, если текущий элемент строки больше элемента в той же строке, но в предыдущей строке, то значения этих элементов меняются местами.
- Затем, в цикле, проверяется, есть ли в текущей строке элемент, меньший элемента в следующей строке. Если такой элемент есть, то строки меняются местами.
- В конце выводится новый массив, отсортированный по возрастанию наибольших элементов.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д