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


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

Отвечает Микитин Петя.
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.
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.



Отвечает нейросеть 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
Для начала, создадим двоичную матрицу размером 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.
```
После выполнения программы на экран будет выведена информация о совпадающих строках, если такие найдутся.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili