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




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

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

Решение.

Пример правильного описания алгоритма на русском языке. Заводим переменную MaxNeg для хранения максимального количества подряд идущих отрицательных элементов и счетчик NumNeg для хранения числа отрицательных элементов в последней группе отрицательных элементов. Просматривая элементы массива, сравниваем очередной элемент с 0. Если очередной элемент массива оказывается неотрицательным, то сравниваем текущее значение счетчика NumNeg со значением переменной MaxNeg; если он больше, то заменяем значение переменной MaxNeg значением счетчика, при этом значение NumNeg обнуляется. Так повторяем до конца массива. В конце работы нужно еще раз сравнить значение счетчика со значением переменной MaxNeg и переопределить ее, если счетчик больше. Пример правильной и эффективной программы (на основе алгоритма, использующего однократный проход по массиву):

 

ПРОГРАММА НА ПАСКАЛЕПРОГРАММА НА БЕЙСИКЕ
const N=30;

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

MaxNeg, NumNeg, i: integer;

begin

MaxNeg:=0;

NumNeg: =0 ;

for i := 1 to N do

readln(a[i]);

for i:=1 to N do

begin

if a [ i ] <0 then NumNeg : =Num.Neg+l

else begin

if NumNeg> MaxNeg then

MaxNeg:=NumNeg; NumNeg:=0;

end;

end;

if NumNeg> MaxNeg then

MaxNeg:=NumNeg;

writeln(MaxNeg);

end.

N=30

DIM i, MaxNeg, NumNeg, a(N) AS

INTEGER

MaxNeg=0

NumNeg=0

FOR i = 1 TO N

INPUT A(i)

FOR i = 1 TO N

IF a (i)<0 THEN

NumNeg=NumNeg+l

ELSE

IF NumNeg>MaxNeg THEN

MaxNeg=NumNeg

ENDIF

NumNeg=0

ENDIF

NEXT i

IF NumNeg>MaxNeg' THEN

MaxNeg=NumNeg

ENDIF

PRINT MaxNeg

END