Задана матрица размера n x m. Требуется вывести количество столбцов, элементы которых монотонно возрастают — Pascal(Паскаль)

const nmax=20;
var a:array[1..nmax,1..nmax] of integer;
    m,n,i,j,ks,f:byte;
begin
clrscr;
repeat
write('Количество строк до ',nmax,' n=');
readln(n);
until n in [1..nmax];
repeat
write('Количество столбцов до ',nmax,' m=');
readln(m);
until m in [1..nmax];
writeln('Введите элементы матрицы по столбцам:');
for j:=1 to m do
 begin
  writeln('Столбец ',j);
  for i:=1 to n do
   begin
    write('a[',i,',',j,']=');
    readln(a[i,j]);
   end;
 end;
clrscr;
writeln('Исходная матрица:');
for i:=1 to n do
 begin
  for j:=1 to m do
  write(a[i,j]:4);
  writeln;
 end;
writeln;
ks:=0;{количество столбцов, упорядоченных строго по возрастанию, типа 1 8 25 40}
for j:=1 to m do
 begin
  f:=0;{флаг фиксации нарушения последовательности}
  for i:=2 to n do
  if a[i,j]<=a[i-1,j] then{если нарушена последовательность}
   begin
    f:=1;{меняем значение флага}
    break;{выходим из цикла}
   end;
  if f=0 then ks:=ks+1;{если флаг не сменился, считаем столбец}
 end;
write('Количество столбцов упорядоченных строго по возрастанию=',ks);
readln
end.

Leave a Comment

− 1 = 8