Сформировать новую матрицу из тех столбцов исходной, в которой нули и единицы чередуются - QBasic

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

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

Задан двумерный массив А целых чисел из М строк и К столбцов.Массив состоит из нулей и единиц. Сформировать новый двумерный массив Х из тех столбцов массива А, в котором нули и единицы чередуются. Далее из массива Х удалить строки, которые начинаются с нуля.
Помогите пожалуйста!

Решение задачи: «Сформировать новую матрицу из тех столбцов исходной, в которой нули и единицы чередуются»

textual
Листинг программы
CLS
RANDOMIZE TIMER
m = 4
k = 24
DIM A(1 TO m, 1 TO k) AS INTEGER
DIM B(1 TO k) AS INTEGER
 
FOR i = 1 TO m
FOR j = 1 TO k
   A(i, j) = RND
   PRINT USING "###"; A(i, j);
NEXT j: PRINT
NEXT i: PRINT
 
n = 0
 
FOR j = 1 TO k
   FOR i = 1 TO m - 1
      IF A(i, j) + A(i + 1, j) <> 1 THEN 100
   NEXT i
   n = n + 1
   B(j) = 1
100 :
NEXT j
 
jy = 1
 
IF n > 0 THEN
   DIM X(1 TO m, 1 TO n) AS INTEGER
   FOR j = 1 TO k
      IF B(j) = 1 THEN
         FOR i = 1 TO m
            X(i, jy) = A(i, j)
         NEXT i
         jy = jy + 1
      END IF
   NEXT j
 
   FOR i = 1 TO m
   FOR j = 1 TO n
      PRINT USING "###"; X(i, j);
   NEXT j: PRINT
   NEXT i: PRINT
 
   p = 0
   FOR i = 1 TO m
      IF X(i, 1) = 1 THEN p = p + 1
   NEXT i
 
   IF p > 0 THEN
      DIM Y(1 TO p, 1 TO n) AS INTEGER
      ix = 1
 
      FOR i = 1 TO m
         IF X(i, 1) = 1 THEN
            FOR j = 1 TO n
               Y(ix, j) = X(i, j)
            NEXT j
            ix = ix + 1
         END IF
      NEXT i
   END IF
 
   FOR i = 1 TO p
   FOR j = 1 TO n
      PRINT USING "###"; Y(i, j);
   NEXT j: PRINT
   NEXT i: PRINT
END IF
 
END

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

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