Пусть задана целочисленная квадратная матрица размерности n. Известно, что значения элементов матрицы не меньше 0 и не больше 30. Напечатайте номера тех строк матрицы, которые содержат все целочисленные элементы, лежащие в диапазоне от минимального элемента рассматриваемой строки до ее максимального элемента — Pascal(Паскаль)

Например, рассмотрим строки матрицы размерности 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.

Leave a Comment

+ 7 = 12