Nulls.PAS

{* Самая длинная последовательность нулей *}

Unit NULLS;
Interface
Implementation
Begin
 writeln('Найти самую длинную последовательность из нулей в массиве A(i), i=1, 2,.., N. ');
End.

Program Nulls;

Uses Nulls.pas; {* Эту строку можно удалить *}
Uses crt; {* Подключение модулей *}
Const {* Постоянные значения *}
  size = 1000; {Максимальный размер массива}
Var {* В работе нам потребуются переменные: *}
  a      : Array [1..size] Of integer; {Массив}
  n      : integer;
  len    : integer;
  maxlen : integer;
  i      : integer; {реальная размерность, длина последовательности,      макс.длина, счетчик}
  in0    : boolean; {Признак того, что мы внутри последовательности нулей}
Begin
  ClrScr; {Очистили экран}
  Repeat    Writeln; {* Вывод пустой строки *}
    Write ('Введите размерность массива (от 2 до ', size, '):');
  Readln (n);
  Until (n > 1) And (nmaxlen Then
  maxlen := len; {и сравнить с максимальной длиной}
End;
Else Begin {иначе}
  len := 1; {войти внутрь последовательности}
in0 := true;
End;

End
Else Begin {Ненулевой элемент}
  len := 0; {сбросить длину последовательности}
in0 := false; {сбросить признак того, что мы внутри посл.-сти}
End;

End;
Writeln ('Последовательность чисел:');
For i := 1 To n Do {* Цикл для i => [1 .. n] *}
  write (a[i] : 2);
Writeln; {* Пропускаем одну строку *}
Writeln ('Максимальная длина последовательности нулей=', maxlen);
End.....