Срешением в pascal, массивы. вопрос- дана матрица a(nxn). вывести номера строк и столбцов в которых есть одинаковые элементы.

qwaszxpolkmn129 qwaszxpolkmn129    2   15.09.2019 23:10    1

Ответы
nebeca nebeca  07.10.2020 18:30
// PascalABC.NET 3.3, сборка 1623 от 16.01.2018
// Внимание! Если программа не работает, обновите версию!

begin
  var n:=ReadInteger('Количество строк (столбцов) в массиве:');
  Writeln('*** Исходный массив ***');
  var a:=MatrRandom(n,n,10,30);
  a.Println(3); Writeln(3*a.ColCount*'-');
  Write('Строки с повторяющимися элементами: ');
  var (i,k):=(0,0);
  foreach var строка in a.Rows do begin
    i+=1;
    if строка.Count<>строка.Distinct.Count then begin
      k+=1; Print(i)
      end
    end;
  if k=0 then Writeln('нет')
  else Writeln;
  Write('Столбцы с повторяющимися элементами: ');
  (i,k):=(0,0);
  foreach var столбец in a.Cols do begin
    i+=1;
    if столбец.Count<>столбец.Distinct.Count then begin
      k+=1; Print(i)
      end
    end;
  if k=0 then Writeln('нет')
  else Writeln
end.

Пример
Количество строк (столбцов) в массиве: 6
*** Исходный массив ***
 30 16 23 17 19 27
 18 13 21 19 21 11
 30 10 24 27 22 20
 19 28 15 29 15 18
 11 30 22 25 21 15
 27 14 27 28 18 28

Строки с повторяющимися элементами: 2 4 6
Столбцы с повторяющимися элементами: 1 5
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика