Упорядочить строки матрицы по возрастанию их наибольших элементов - 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 PRINT NEXT i PRINT PRINT 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 PRINT NEXT
Объяснение кода листинга программы
- Сначала пользователю предлагается ввести количество строк и столбцов матрицы.
- Затем создается матрица x заданного размера, заполненная случайными числами от 0 до 30.
- Далее, в цикле, вычисляется наибольший элемент каждой строки матрицы x и сохраняется в матрице y.
- В следующем цикле, если текущий элемент строки больше элемента в той же строке, но в предыдущей строке, то значения этих элементов меняются местами.
- Затем, в цикле, проверяется, есть ли в текущей строке элемент, меньший элемента в следующей строке. Если такой элемент есть, то строки меняются местами.
- В конце выводится новый массив, отсортированный по возрастанию наибольших элементов.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д