Например, рассмотрим строки матрицы размерности 5. Если строка состоит из элементов 1, 3, 2, 5, 4, то ее минимальный элемент равен 1, а максимальный – 5. Значения 2,3,4 как раз составляют все те числа, которые попадают в промежуток от 1 до 5, по- этому номер такой строки необходимо напечатать. Если же строка состоит из элементов 7, 6, 3, 2, 5, то весь диапазон от минимального элемента 2 до максимального элемента 7 не заполняется имеющимися в строке значениями. Не хватает значения 4. Поэтому номер такой строки печатать не следует
program lab5;
uses crt;
const n=5;
m=5;
type matr = array [1..n,1..m] of integer;
var a:matr;
i,j,imax,imin,amax,amin,jmin,jmax,x,min,max,k:integer;
b:boolean;
begin
clrscr;
writeln('vvedite matricy:');
for i:=1 to n do
for j:=1 to m do read(a[i,j]);
clrscr;
writeln('ishodnaja matrica:');
for i:=1 to n do
begin
for j:=1 to m do
write(a[i,j]:3);
writeln
end;
writeln('Номера строк, удовлетворяющие условию:');
b:=false;
for i:=1 to n do
begin
for j:=1 to m-1 do //отсортируем строку по возрастанию
for k:=j+1 to m do
if a[i,j]>a[i,k] then
begin
x:=a[i,j];
a[i,j]:=a[i,k];
a[i,k]:=x;
end;
k:=0;
for j:=2 to m do //посчитаем элементы по порядку
if a[i,j]-a[i,j-1]=1 then k:=k+1;
if k=m-1 then //если все
begin
b:=true; //фиксируем
write(i,' '); //выводим
end;
end;
if not b then write('Таких строк нет')
end.