Найти количество строк матрицы, все элементы которых различны - Pascal
Формулировка задачи:
Дана целочисленная матрица размера MxN в файле данных.
Найти количество её строк, все элементы которых разичны и разместить результат на экране.
Решение задачи: «Найти количество строк матрицы, все элементы которых различны»
textual
Листинг программы
function AllDifferent(Matr : TMatrix; row : integer):boolean; var j,k : integer; begin AllDifferent := false; for j:=1 to N-1 do for k:=i+1 to N do if Matr[row,j]=Matr[row,k] then Exit; AllDifferent := true; end; begin <чтение матрицы> for i:=1 to M do if AllDifferent(A, i) then WriteLn(i,'-я строка матрицы, все элементы строки различные'); end.
Объяснение кода листинга программы
- Создается функция
AllDifferent, которая принимает в качестве аргументов матрицуMatrи номер строкиrow. Функция возвращает логическое значение -true, если все элементы строки различны, иfalseв противном случае. - В цикле
forперебираются строки матрицы от 1 доN-1. - Для каждой строки перебираются элементы от
i+1доN. - Если элементы равны, то функция
Exitпрекращает выполнение цикла. - Если после выполнения всех циклов функция
AllDifferentне вернулаtrue, то переменнойAllDifferentприсваивается значениеfalse. - Если все элементы строки различны, то в цикле
forперебираются строки матрицы от 1 доM. - Для каждой строки проверяется результат функции
AllDifferent. - Если результат равен
true, то номер строки выводится на экран с добавлением-я строка матрицы, все элементы строки различные.