Упорядочить столбцы матрицы по убыванию произведений их элементов - QBasic (27568)
Формулировка задачи:
Помогите решить задачу
Дана матрица целых чисел X(n, m). Упорядочить ее столбцы по убыванию произведений их элементов.
С вводом матрицы и выводом проблем нет, а вот с решением...
Решение задачи: «Упорядочить столбцы матрицы по убыванию произведений их элементов»
textual
Листинг программы
DEFINT I-N, X-Y RANDOMIZE TIMER CLS INPUT "N = "; n INPUT "M = "; m DIM x(1 TO n, 1 TO m) DIM y(1 TO m) FOR i = 1 TO n FOR j = 1 TO m x(i, j) = 20 * RND - 10 PRINT USING "#####"; x(i, j); NEXT j PRINT NEXT i PRINT FOR j = 1 TO m y(j) = 1 NEXT j FOR j = 1 TO m FOR i = 1 TO n y(j) = y(j) * x(i, j) NEXT i NEXT j FOR j = 1 TO m PRINT USING "##### "; y(j); NEXT j PRINT PRINT FOR k = 1 TO m - 1 FOR j = 1 TO m - 1 IF y(j) < y(j + 1) THEN SWAP y(j), y(j + 1) FOR i = 1 TO n SWAP x(i, j), x(i, j + 1) NEXT i END IF NEXT j NEXT k FOR i = 1 TO n FOR j = 1 TO m PRINT USING "#####"; x(i, j); NEXT j PRINT NEXT i END
Объяснение кода листинга программы
- Сначала в коде идет объявление переменных:
- n, m - переменные для ввода размеров матрицы
- x(1 TO n, 1 TO m) - матрица размером n на m, элементы которой будут случайными числами от -10 до 10
- y(1 TO m) - вектор размером m, инициализированный единицами
- Затем в цикле дважды выводится начальное состояние матрицы x и вектора y
- Далее в цикле происходит перемножение элементов вектора y с элементами матрицы x
- После этого выводится отсортированный вектор y
- Затем в цикле происходит сортировка строк матрицы x по убыванию значений соответствующих элементов вектора y
- В конце кода выводится отсортированная матрица x Таким образом, данный код выполняет следующие действия:
- Создает матрицу x и вектор y.
- Выводит начальное состояние матрицы x и вектора y.
- Производит перемножение элементов вектора y с элементами матрицы x.
- Выводит отсортированный вектор y.
- Сортирует строки матрицы x по убыванию значений соответствующих элементов вектора y.
- Выводит отсортированную матрицу x.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д