Из строк исходной матрицы составить новую по правилу - 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 - завершение программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д