Задания
Версия для печати и копирования в MS WordОпишите на русском языке или одном из языков программирования алгоритм подсчета максимального количества подряд идущих четных элементов в целочисленном массиве длины 30.
Решение.
Спрятать критерииconst N=30;
var a: array[1..N] of integer;
MaxEven, NumEven, i: integer;
begin
MaxEven:=0;
NumEven:=0;
for i:=1 to N do
read(a[i]);
for i:=1 to N do
if (a[i] mod 2 = 0) then
NumEven:=NumEven+1
else begin
if NumEven>=MaxEven then
MaxEven:=NumEven;
NumEven:=0;
end;
if NumEven>=MaxEven then
MaxEven:=NumEven;
Writeln(MaxEven);
end.


Предлагаю свой вариант решения, использующий логические функции.
NOT odd можно заменить на "a[i] mod 2 = 0".
program naz;
const
n=10;
var
a:array[1..n] of integer;
i,b,max : integer;
BEGIN
for i:=1 to n do
read(a[i]);
max:=1;
b:=1;
for i:=1 to n-1 do
begin
if (NOT odd(a[i])) and (NOT odd(a[i+1])) then inc(b) else b:=1;
if b>max then max:=b;
end;
writeln(max);
END.
Логические функции это хорошо, а двойная проверка каждого элемента на чётность — не очень. Массив проверяется от начала до конца, на чётность достаточно проверять каждое последующее значение: предыдущее уже проверено на предыдущем шаге.