Объясните пожалуйста как действует данная программа:
[syntax=pascal]
PROGRAM vz_ub;
USES CRT;
LABEL 1;
CONST n=15;
TYPE t = ARRAY [1..n] OF integer;
VAR
A:t;
i,max,imax,v: integer; {счетчик, возр. посл-ть , № элемента возр.посл-ти, промеж. переменная}
min,imin,u : integer; {убывающая последовательность , № эл-та убыв. посл-ти, промеж. переменная}
BEGIN
CLRSCR;
WRITELN('Enter ',n,' numbers 0<=A<1000 :' );
FOR i:=1 TO n DO READ(A);
v:=0;
u:=0;
FOR i:=1 TO n-1 DO
IF A<A[i+1] THEN
BEGIN
v:=v+1;
u:=0;
IF max<v THEN
BEGIN
max:=v;
imax:=i+1;
END;
END
ELSE IF A>A[i+1] THEN
BEGIN
u:=u+1;
v:=0;
IF min<u THEN
BEGIN
min:=u;
imin:=i+1;
END;
END;
WRITELN (' vozrastaut ');
FOR i:=imax-max TO imax DO
WRITE(' ',A,',');
WRITELN ;
WRITELN (' ubivaiut ');
FOR i:=imin-min TO imin DO
WRITE(' ',A,',');
READKEY;
END.
[/syntax]
Интересует вот этот кусок:
Код: Выделить всё
v:=v+1;
u:=0;
IF max<v THEN
[/syntax]
Зачем зануляется переменная u, и что делаеться этим выражением - v+1 ... max<v !?
[b]Программа выполняет следующме задачи: выводит на экран максимально длинные - строго возрастающие подпоследовательности чисел;строго убывающие подпоследовательности чисел.[/b]
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
Помогите пожалуйста! Спасибо!