Обработка числовых последовательностей всегда основывается на использовании оператора цикла. Это может быть безусловный цикл FOR I:=N1 TO N2 DO
<тело цикла>;
где I — переменная цикла, которая должна быть перечисляемого типа (целая, символьная и т. д.);
N1 — начальное значение переменной цикла;
N2 — конечное значение переменной цикла.
Безусловный цикл выполняется заданное число раз. Чтобы прервать выполнение досрочно, необходимо увеличить I до конечного значения (I := N2) либо использовать оператор BREAK. В языке PASCAL предлагаются к использованию циклы, исполнение которых зависит от какого-либо условия. Таких циклов два:
В цикле с постусловием сначала выполняется тело цикло, I только потом проверяется условие. Например, проверка на то, чтобы задать длину последовательности, осуществляется следующим образом: REPEAT
WRITE(‘BBEДИTE ДЛИНУ ПОСЛЕДОВАТЕЛЬНОСТИ N = ‘);
READLN (N);
UNTIL N>0;
Цикл выполняется до тех пор, пока пользователь не введет положительное число. Для цикла с предусловием проверка проводится до начала очередной итерации: BEGIN
WRLTE(‘BBEДИTE ДЛИНУ ПОСЛЕДОВАТЕЛЬНОСТИ N = ‘);
READLN (N);
END;
Для последовательностей характерно, что в каждый момент времени нам доступен только один элемент последовательности. Поэтому все алгоритмы строятся с учетом однократного последовательного просмотра.
Упражнение 1. Вводится последовательность из N целых чисел. Найти сумму всех отрицательных чисел. Упражнение 2. Вводится последовательность из N целых чисел. Найти, сколько в ней нулей. Упражнение 3. Вводится последовательность из N целых чисел. Найти наибольшее число.
Упражнение 4. Вводится последовательность целых чисел, 0 — конец последовательности. Найти два наименьших числа
|