Из строк исходной матрицы составить новую по правилу - QBasic
Формулировка задачи:
Задан двумерный массив А из N строк и M cтолбцов. Отдельно составить матрицу В из тех строк матрицы А, для которых всякий элемент имеет равного ему соседа слева или справа.
Решение задачи: «Из строк исходной матрицы составить новую по правилу»
textual
Листинг программы
CLS RANDOMIZE TIMER n = 12 m = 4 DIM A(1 TO n, m + 1) AS INTEGER DIM X(1 TO n) AS INTEGER FOR i = 1 TO n A(i, 0) = 100 A(i, m + 1) = 100 NEXT i FOR i = 1 TO n FOR j = 1 TO m A(i, j) = RND PRINT USING "###"; A(i, j); NEXT j: PRINT NEXT i: PRINT FOR i = 1 TO n FOR j = 1 TO m IF A(i, j) <> A(i, j - 1) AND A(i, j) <> A(i, j + 1) THEN 100 NEXT j k = k + 1 X(i) = 1 100 NEXT i IF k > 0 THEN DIM B(k, m) AS INTEGER ii = 1 FOR i = 1 TO n IF X(i) = 1 THEN FOR j = 1 TO m B(ii, j) = A(i, j) NEXT j ii = ii + 1 END IF NEXT i FOR i = 1 TO k FOR j = 1 TO m PRINT USING "###"; B(i, j); NEXT j: PRINT NEXT i END IF END
Объяснение кода листинга программы
- CLS - очистка экрана
- RANDOMIZE TIMER - инициализация генератора случайных чисел
- n = 12 - размер первой размерности матрицы (количество строк)
- m = 4 - размер второй размерности матрицы (количество столбцов)
- DIM A(1 TO n, m + 1) AS INTEGER - создание двухмерной матрицы A размером n на (m+1) и заполнение ее значениями по умолчанию (100) по правилу
лебеди
(первый и последний столбцы) - DIM X(1 TO n) AS INTEGER - создание одномерной матрицы X размером n и заполнение ее значениями по умолчанию (1)
- FOR i = 1 TO n - заполнение матрицы A случайными значениями (RND) и их печать (USING
###
) - FOR i = 1 TO n - проверка условия для матрицы X (если X(i) = 1, то элемент матрицы B(i,j) присваивается значению элемента матрицы A(i,j))
- IF k > 0 THEN - проверка условия для переменной k (если k больше 0, то происходит печать матрицы B)
- DIM B(k, m) AS INTEGER - создание двухмерной матрицы B размером k на m и заполнение ее значениями по умолчанию (0)
- ii = 1 - инициализация счетчика для перебора строк матрицы B
- FOR i = 1 TO n - перебор строк матрицы A и проверка условия для присвоения значения X(i) = 1
- FOR j = 1 TO m - перебор столбцов матрицы B и печать значений элементов матрицы B (USING
###
) - NEXT j: PRINT - переход к следующему столбцу матрицы B
- NEXT i: PRINT - переход к следующей строке матрицы B
- FOR i = 1 TO k - перебор строк матрицы B и печать значений элементов матрицы B (USING
###
) - END IF - завершение проверки условия для переменной k
- END - завершение программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д