В двоичной матрице размером 10х10 найти совпадающие строки. Матрицу выводить из файла.

Ответы

Ответ дал: Аноним
0
// PascalABC.Net 3.0, сборка 1064
const
  n = 10;
var
  ms: array[1..n] of string;
  t: string;
  i, j: integer;
  f: Text;
begin
  { Чтение матрицы из файла }
  Assign(f, 'in.txt'); Reset(f);
  for i := 1 to n do Readln(f, ms[i]);
  Close(f);
  { Вывод матрицы на экран }
  Writeln('*** Бинарная матрица ***');
  for i := 1 to n do Writeln(ms[i]);
  { Сортировка обменом (простейшая) }
  for i := 1 to n - 1 do
    for j := 1 to n - 1 do
      if ms[j] > ms[j + 1] then
      begin t := ms[j]; ms[j] := ms[j + 1]; ms[j + 1] := t end;
  { Поиск одинаковых строк }
  Writeln('Совпадающие строки');
  j := 1; t := ms[1];
  for i := 2 to n do
  begin
    if ms[i] = t then Inc(j)
    else begin
      if j > 1 then begin Writeln(t); j := 1 end;
      t := ms[i]
    end
  end;
  if j > 1 then Writeln(t)
end.

Контрольное решение:
*** Бинарная матрица ***
1 1 0 1 0 1 0 1 0 1
0 0 1 0 1 0 1 0 1 0
1 0 1 0 1 0 1 0 1 0
1 1 0 1 0 1 0 1 0 0
0 0 1 0 1 0 1 0 1 1
0 1 0 1 0 1 0 1 0 1
1 1 0 1 0 1 0 1 0 1
0 0 1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1 0 1
Совпадающие строки
0 0 1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1 0 1
1 0 1 0 1 0 1 0 1 0
1 1 0 1 0 1 0 1 0 1

Вас заинтересует