Из строк исходной матрицы составить новую по правилу - 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

Объяснение кода листинга программы

  1. CLS - очистка экрана
  2. RANDOMIZE TIMER - инициализация генератора случайных чисел
  3. n = 12 - размер первой размерности матрицы (количество строк)
  4. m = 4 - размер второй размерности матрицы (количество столбцов)
  5. DIM A(1 TO n, m + 1) AS INTEGER - создание двухмерной матрицы A размером n на (m+1) и заполнение ее значениями по умолчанию (100) по правилу лебеди (первый и последний столбцы)
  6. DIM X(1 TO n) AS INTEGER - создание одномерной матрицы X размером n и заполнение ее значениями по умолчанию (1)
  7. FOR i = 1 TO n - заполнение матрицы A случайными значениями (RND) и их печать (USING ###)
  8. FOR i = 1 TO n - проверка условия для матрицы X (если X(i) = 1, то элемент матрицы B(i,j) присваивается значению элемента матрицы A(i,j))
  9. IF k > 0 THEN - проверка условия для переменной k (если k больше 0, то происходит печать матрицы B)
  10. DIM B(k, m) AS INTEGER - создание двухмерной матрицы B размером k на m и заполнение ее значениями по умолчанию (0)
  11. ii = 1 - инициализация счетчика для перебора строк матрицы B
  12. FOR i = 1 TO n - перебор строк матрицы A и проверка условия для присвоения значения X(i) = 1
  13. FOR j = 1 TO m - перебор столбцов матрицы B и печать значений элементов матрицы B (USING ###)
  14. NEXT j: PRINT - переход к следующему столбцу матрицы B
  15. NEXT i: PRINT - переход к следующей строке матрицы B
  16. FOR i = 1 TO k - перебор строк матрицы B и печать значений элементов матрицы B (USING ###)
  17. END IF - завершение проверки условия для переменной k
  18. END - завершение программы

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.857 из 5
Похожие ответы