СДАМ ГИА: РЕШУ ЕГЭ
Образовательный портал для подготовки к экзаменам
Информатика
≡ информатика
сайты - меню - вход - новости


Задания
Версия для печати и копирования в MS Word
Задание 25 № 3653

Опишите на русском языке или одном из языков программирования алгоритм подсчета максимального количества подряд идущих четных элементов в целочисленном массиве длины 30.

Решение.

Пример правильного описания алгоритма на русском языке.

Заводим переменную MaxEven для хранения максимального количества подряд идущих четных элементов и счетчик NumEven для хранения числа четных элементов в последней группе четных элементов. Просматривая элементы массива, проверяем последний элемент на четность. Если очередной элемент массива оказывается нечетным, то сравниваем текущее значение счетчика NumEven со значением переменной MaxEven; если он больше, то заменяем значение переменной MaxEven значением счетчика, при этом значение NumEven обнуляется. Так повторяем до конца массива.

В конце работы нужно еще раз сравнить значение счетчика со значением переменной MaxEven и переопределить ее, если счетчик больше.

Пример правильной и эффективной программы (на основе алгоритма, использующего однократный проход по массиву):

 

ПАСКАЛЬБЕЙСИК
const N=30;

var а:array[1..N] of integer;

MaxEven, NumEven, i: integer;

begin

for i:=1 to N do readln(a[i]);

 

MaxEven:=0;

NumEven:=0;

for i:=1 to N do

begin

if a[i] mod 2=0 then

NumEven: =NumEven + 1

else begin

if NumEven> MaxEven then

MaxEven:=NumEven;

NumEven:=0;

end;

end;

if NumEven> MaxEven then

MaxEven:=NumEven;

writeln(MaxEven);

end.

N=30

DIM i, MaxEven, NumEven AS INTEGER

DIM a(N) AS INTEGER

FOR i = 1 TO N

INPUT a(i)

MaxEven=0

NumEven=0

FOR i = 1 TO N

IF a (i)<0 THEN

NumEven=NumEven+1

ELSE

IF NumEven>MaxEven THEN

MaxEven=NumEven

ENDIF

NumEven=0

ENDIF

NEXT i

IF NumEven>MaxEven THEN

MaxEven=NumEven

ENDIF

PRINT MaxEven

END