Запись в матрицу результатов побитовых операций

Задача

Заполнить первые две строки двумерного массива 4x8 случайными нулями и единицами. В третью строку записать результат побитовой операции И над числами в соответствующих столбцах первых двух строк, в четвертую - результат побитовой операции ИЛИ. Например, если в первой ячейке первой строки находится 0, а в первой ячейке второй строки 1, то в первой ячейке третьей строки будет 0 (результат И над 0 и 1), а в первой ячейке четвертой строки 1 (результат ИЛИ).

Пояснение к задаче и алгоритм решения

  1. Заполнить две первые строки матрицы случайными нулями и единицами. При заполнении выводить на экран.
  2. В цикле по столбцам матрицы заполнять третью и четвертую строки результатами побитовых операций И и ИЛИ соответственно над элементами первых двух строк одноименных столбцов.
  3. Вывести на экран две последние строки двумерного массива.

Исходный код на языке программирования Pascal

var
    a: array[1..4,1..8] of integer;
    i,j: byte;
 
begin
    randomize;
    for i:=1 to 2 do begin
        for j:=1 to 8 do begin
            a[i,j] := random(2);
            write(a[i,j]:4);
        end;
        writeln;
    end;
 
    for j:=1 to 8 do begin
        a[3,j] := a[1,j] and a[2,j];
        a[4,j] := a[1,j] or a[2,j];
    end;
 
    writeln;
    for i:=3 to 4 do begin
        for j:=1 to 8 do
            write(a[i,j]:4);
        writeln;
    end;
end.

Особенности решения на языке программирования Pascal

Пример(ы) выполнения программы на языке Pascal:

   1   0   1   1   0   1   0   1
   0   1   1   1   1   1   0   0

   0   0   1   1   0   1   0   0
   1   1   1   1   1   1   0   1

Исходный код на языке программирования C

#include <stdio.h>
 
main() {
    int a[4][8], i, j;
    srand(time(NULL));
    for (i=0; i<2; i++) {
        for (j=0; j<8; j++) {
            a[i][j] = rand()%2;
            printf("%4d", a[i][j]);
        }
        printf("\n");
    }
    printf("\n");
 
    for (j=0; j<8; j++) {
        a[2][j] = a[0][j] & a[1][j];
        a[3][j] = a[0][j] | a[1][j];
    }
 
    for (i=2; i<4; i++) {
        for (j=0; j<8; j++) {
            printf("%4d", a[i][j]);
        }
        printf("\n");
    }
}

Пример(ы) выполнения программы на языке C

   1   0   0   1   1   0   1   0
   1   1   0   1   0   0   1   1

   1   0   0   1   0   0   1   0
   1   1   0   1   1   0   1   1

Исходный код на языке программирования Python

from random import random
a = []
for i in range(2):
    z = []
    for j in range(8):
        n = int(random() * 2)
        z.append(n)
        print("%3d" % n, end='')
    print()
    a.append(z)
print()
 
b_and = []
b_or = []
for j in range(8):
    b_and.append(a[0][j] & a[1][j])
    b_or.append(a[0][j] | a[1][j])
a.append(b_and)
a.append(b_or)    
 
for i in range(2,4):
    for j in range(8):
        print("%3d" % a[i][j], end='')
    print()

Пример(ы) выполнения программы на языке Python

  0  1  0  0  0  0  1  1
  1  1  1  0  0  1  1  0

  0  1  0  0  0  0  1  0
  1  1  1  0  0  1  1  1

Исходный код на языке программирования Basic

dim a(4,8)
for i=0 to 1
        for j=0 to 7
                a[i,j] = int(rand*2)
                print a[i,j] + "  ";
        next j
        print
next i
print
 
for j=0 to 7
        a[2,j] = a[0,j] & a[1,j]
        a[3,j] = a[0,j] | a[1,j]
next j
 
for i=2 to 3
        for j=0 to 7
                print a[i,j] + "  ";
        next j
        print
next i

Пример(ы) выполнения программы на языке Basic

1  0  0  1  1  1  1  0  
1  1  0  0  1  1  1  0  
 
1  0  0  0  1  1  1  0  
1  1  0  1  1  1  1  0

Тема

Матрицы

Уровень сложности

Средний

Дата публикации