Из строк исходной матрицы составить новую по правилу - QBasic

Узнай цену своей работы

Формулировка задачи:

Задан двумерный массив А из N строк и M cтолбцов. Отдельно составить матрицу В из тех строк матрицы А, для которых всякий элемент имеет равного ему соседа слева или справа.

Решение задачи: «Из строк исходной матрицы составить новую по правилу»

textual
Листинг программы
  1. CLS
  2. RANDOMIZE TIMER
  3. n = 12
  4. m = 4
  5. DIM A(1 TO n, m + 1) AS INTEGER
  6. DIM X(1 TO n) AS INTEGER
  7.  
  8. FOR i = 1 TO n
  9.    A(i, 0) = 100
  10.    A(i, m + 1) = 100
  11. NEXT i
  12.  
  13. FOR i = 1 TO n
  14. FOR j = 1 TO m
  15.    A(i, j) = RND
  16.    PRINT USING "###"; A(i, j);
  17. NEXT j: PRINT
  18. NEXT i: PRINT
  19.  
  20. FOR i = 1 TO n
  21.    FOR j = 1 TO m
  22.       IF A(i, j) <> A(i, j - 1) AND A(i, j) <> A(i, j + 1) THEN 100
  23.    NEXT j
  24.    k = k + 1
  25.    X(i) = 1
  26. 100
  27. NEXT i
  28.  
  29. IF k > 0 THEN
  30.    DIM B(k, m) AS INTEGER
  31.  
  32.    ii = 1
  33.    FOR i = 1 TO n
  34.       IF X(i) = 1 THEN
  35.          FOR j = 1 TO m
  36.             B(ii, j) = A(i, j)
  37.          NEXT j
  38.          ii = ii + 1
  39.       END IF
  40.    NEXT i
  41.  
  42.    FOR i = 1 TO k
  43.    FOR j = 1 TO m
  44.       PRINT USING "###"; B(i, j);
  45.    NEXT j: PRINT
  46.    NEXT i
  47. END IF
  48. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы