Определить, найдутся ли в двумерной матрице строки, состоящие из одних и тех же элементов - Turbo Pascal

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

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

Определить, найдутся ли в данной матрицы строки, состоящие из одних и тех же элементов

Решение задачи: «Определить, найдутся ли в двумерной матрице строки, состоящие из одних и тех же элементов»

textual
Листинг программы
const m=5; n=5;
var
  a: array [1..m,1..n] of Byte;
  i, j, k: Integer;
  p, q: set of Byte;
begin
  WriteLn('Введите матрицу ',m,'x',n,':');
  for i:=1 to m do for j:=1 to n do Read(a[i,j]);
  for k:=1 to m-1 do begin
    p:=[]; for j:=1 to n do Include(p,a[k,j]);
    for i:=k+1 to m do begin
      q:=[]; for j:=1 to n do Include(p,a[i,j]);
      if p=q then begin WriteLn(True); Exit; end;
    end;
  end;
  WriteLn(False);
end.

Объяснение кода листинга программы

В данном коде объявлены следующие переменные:

  • m и n - целочисленные переменные, которые задают размеры двумерной матрицы.
  • a - массив типа Byte, который будет использоваться для хранения элементов матрицы.
  • i, j, k - целочисленные переменные, которые будут использоваться для итерации по матрице.
  • p и q - множества (set) типа Byte, которые будут использоваться для проверки наличия одинаковых строк во входной матрице. Код начинается с инициализации переменных m и n, которые задают размеры матрицы. Затем происходит чтение входной матрицы из стандартного ввода. Далее следует цикл, который проходит по всем элементам матрицы. На каждой итерации создается новое множество p, которое изначально пустое. Затем, для каждой строки матрицы, начиная с текущей строки и до конца матрицы, создается новое множество q. Если множество p и q совпадают, то выводится значение True и цикл прерывается. Если же они не совпадают, то выводится значение False. Таким образом, данный код проверяет, есть ли в двумерной матрице строки, состоящие из одних и тех же элементов.

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

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