Необходимо вывести на экран длиннейшую возрастающую последовательность чисел из массива A1..An- Pascal(Паскаль)

Пример ввода:
8
5 1 10 1 2 3 4 5
Пример вывода:
1 2 3 4 5
uses crt;
const nmax=100;
var a:array[1..nmax] of integer;
      i,j,n,k,p1,max:byte;
begin
clrscr;
repeat
write('Размер массива от 2 до ',nmax,' n=');
readln (n);
until n in [2..nmax];
writeln('Введите ',n,' элементов массива:');
for i:=1 to n do
readln (a[i]);
clrscr;
writeln('Массив:');
for i:=1 to n do
write(a[i],' ');
writeln;
writeln;
{Поиск позиции и длины максимальной цепи}
max:=0;{Первоначальные значения}
i:=2;p1:=0;
while i<=n do
if a[i]>a[i-1] then
  begin
   k:=1;j:=i;
   while (a[j]>a[j-1])and(j<=n) do
    begin
     inc(j);
     inc (k); {Если возрастает - наращиваем счётчик}
    end;
   if k>max then
    begin
     max:=k;
     p1:=i-1;
    end;
   i:=i+k;{перепрыгиваем}
  end
else inc(i);
writeln; {Выводим результат}
if max=0 then write('Участков возрастания нет!')
else
 begin
  writeln('Максимальная длина=',max);
  for i:=p1 to p1+max-1 do
  write (a[i],' ');
 end;
readln
end.

Leave a Comment

− 2 = 6