Алгоритмы обработки последовательности чисел

Последовательность значений– это набор однотипных величин, которые вводятся и обрабатываются циклически. Примером последовательности целых чисел может быть следующий набор значений: (2, 5, –4, 10, 1, 0). Последовательности значений отличаются от массивов значений тем, что в памяти одновременно все значения последовательности не хранятся. Для обозначения значения последовательности используют одну переменную, в которую на каждом шаге итерации вводится очередное значение последовательности. Отличительной особенностью последовательности является также возможность содержания неопределенного или неизвестного заранее количества ее значений. В этом случае критерием окончания последовательности служит некоторое особое значение, например, ноль.

 

Пример 7. В числовой последовательности определить сумму положительных и

произведение отрицательных чисел. Реализовать с помощью цикла с предусловием. Признак конца последовательности – значение 0.

Решение. Обозначим за Х переменную, содержащую очередное значение

последовательности, за S – сумму положительных значений, за Р – произведение

отрицательных значений. Полученный алгоритм приведен на рис. 14. Условие для

выбора вычислений Х>0. Для вычисления суммы значений воспользуемся

рекуррентной формулой S=S+X с начальным значением S=0, для вычисления

произведения – рекуррентной формулой P=P*X с начальным значением Р=1. Условие выхода из цикла – неравенство Х<>0.

 

Пример 8. Составить циклический алгоритм для определения в последовательности целых чисел количества четных чисел.

Решение. Обозначим за Х переменную, содержащую очередное значение

последовательности, за K – количество четных значений (рис. 15). Условие для выбора четных значений Х mod 2=0 (остаток при делении Х на 2 равен 0). Для вычисления количества значений воспользуемся рекуррентной формулой К=К+1 с начальным значением К=0.

 

 

 

 

 

Задания для самостоятельного выполнения

Цель заданий. Приобрести умения в синтезе формальной и алгоритмической моделей решения задач. Сформировать компетенции анализа и синтеза при решении простых задач циклической обработки последовательности значений.

Порядок выполнения. Составить формальное и алгоритмическое решения следующих задач обработки последовательности значений:

1. В процессе обучения студент группы сдавал экзамены. Определить средний балл за сданные им экзамены.

2. Некоторая группа студентов сдавала экзамен по дисциплине «Редакторское дело». Определить средний балл группы по этой дисциплине.

3. В группе учатся как девушки, так и юноши. Определить, кто лучше сдал

экзамен по дисциплине «Информатика» – юноши или девушки?

4. Определить среднюю и общую стоимость книг в книжном магазине.

5. Определить объем выпуска книжной продукции издательства «Эдельвейс» в печатных листах, учитывая коэффициент перевода авторских страниц в печатные листы.

6. Определить общую стоимость выпуска книжной продукции издательства «Прогресс» с учетом цены и тиража.

7. В последовательности чисел определить предпоследнее отрицательное число. (При решении введите дополнительную переменную для хранения предпоследнего отрицательного числа).

8. В последовательности целых положительных чисел определить максимальное число. Рекомендуем реализовать такой алгоритм:

Вводим Х

mах=Х

Цикл с постусловием

а. Если элемент Х > max

то max:=Х (значение этого элемента);

б. Вводим новый элемент последовательности Х.

Условие выхода из цикла Х=0

9. В последовательности целых чисел определить третье положительное число и подсчитать количество цифр в нем.

 

Контрольные вопросы

1. Какие алгоритмы относятся к циклическим?

2. Что называют телом цикла?

3. Какие существуют виды циклов?

4. Чем отличается цикл с предусловием от цикла с постусловием?