Вопрос задан 28.10.2023 в 13:09. Предмет Информатика. Спрашивает Богданов Богдан.

ПОМОГИТЕ ПОЖАЛУСТА!!!! В двоичной матрице размером 10х10 найти совпадающие строки. на PascalABC

0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Микитин Петя.
Procedure sovp;
var
  i, j, r, c: byte;
  ar: array[1..10, 1..10]of byte;
  s: array[1..4] of string;
  b: boolean;
label l1;
 begin
  r := random(2, 3);
  l1:
  c := 1;
  b := false;
  for i := 1 to 10 do
    for j := 1 to 10 do
    begin
    ar[i, j] := random(0, 1);
    if(i < 5) then s[i] := '';
    end;
     for i := 1 to 9 do
      begin
       for j := 1 to 10 do
       begin
        if(ar[i, j] <> ar[i + 1, j]) then b := true;
       end;
      if(b = false) then
     begin
      s[c] := i + ' строка совпалает с ' + (i + 1) + ' строкой';
      c := c + 1;
     end;
    b := false;
  end;
 if(c <> r) then goto l1
  else
  begin
    for var k := 1 to c do if(k<>c)then writeln(s[k]);
    for i := 1 to 10 do
    begin
      for j := 1 to 10 do write(ar[i, j], ' ');
        writeln;
    end;
  end;
   end;
 begin
  sovp;
end. 
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Для решения задачи, нам понадобится создать двоичную матрицу размером 10х10 и найти все совпадающие строки.

Для начала, создадим двоичную матрицу размером 10х10:

```pascal
const
N = 10; // размер матрицы

var
matrix: array[1..N, 1..N] of Integer;
```

Мы объявляем константу N, которая определяет размер матрицы, и переменную matrix, которая будет представлять саму матрицу.

Теперь заполним матрицу случайными значениями (0 или 1):

```pascal
var
i, j: Integer;

Randomize; // инициализация генератора случайных чисел

for i := 1 to N do
begin
for j := 1 to N do
begin
matrix[i, j] := Random(2); // случайное число 0 или 1
end;
end;
```

Мы с помощью вложенных циклов for проходим по каждому элементу матрицы и присваиваем ему случайное значение 0 или 1.

Теперь найдем совпадающие строки:

```pascal
var
k, l: Integer;
found: Boolean;

for i := 1 to N do
begin
for j := i + 1 to N do
begin
found := True;

for k := 1 to N do
begin
if matrix[i, k] <> matrix[j, k] then
begin
found := False;
Break;
end;
end;

if found then
begin
WriteLn('Совпадающие строки: ', i, ' и ', j);
end;
end;
end;
```

Мы с помощью вложенных циклов for проходим по каждой паре строк и сравниваем их элементы. Если все элементы совпадают, то выводим номера совпадающих строк.

Итоговый код программы:

```pascal
const
N = 10; // размер матрицы

var
matrix: array[1..N, 1..N] of Integer;
i, j, k, l: Integer;
found: Boolean;

begin
Randomize; // инициализация генератора случайных чисел

// заполняем матрицу случайными значениями
for i := 1 to N do
begin
for j := 1 to N do
begin
matrix[i, j] := Random(2); // случайное число 0 или 1
end;
end;

// находим совпадающие строки
for i := 1 to N do
begin
for j := i + 1 to N do
begin
found := True;

for k := 1 to N do
begin
if matrix[i, k] <> matrix[j, k] then
begin
found := False;
Break;
end;
end;

if found then
begin
WriteLn('Совпадающие строки: ', i, ' и ', j);
end;
end;
end;
end.
```

После выполнения программы на экран будет выведена информация о совпадающих строках, если такие найдутся.
0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос