Название: Алгоритмы и программы (Афанасьева Т. В.)

Жанр: Информационные системы и технологии

Просмотров: 1348


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

 

Последовательность значений – это набор однотипных величин, которые вводятся и обрабатываются циклически. Примером последо- вательности целых чисел может быть следующий набор значений: (2, 5, –

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

 

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

Решение. Обозначим за Х переменную, содержащую очередное значение последовательности, за S – сумму   положительных значений, за Р – произведение отрицательных значений. Полученный алгоритм приведен на рис. 14. Условие для выбора  вычислений  Х>0.  Для  вычисления  суммы  значений  воспользуемся рекуррентной формулой S=S+X с начальным значением S=0, для вычисления произведения – рекуррентной формулой  P=P*X  с начальным значением Р=1. Условие выхода из цикла – неравенство Х<>0.

НАЧАЛО

 

Ввод X

 

P:=1

 

S:=0

 

+

X<>0

 

+

X>0

 

 

Вывод P, S

P:=P*X

S:=S+X

 

 

КОНЕЦ

 

 

Ввод Х

 

 

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

 

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

вательности целых чисел  количества четных чисел.

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

НАЧАЛО

 

Ввод X

 

K=0

 

+

X<>0

 

Х mod 2=0      +

 

 

Вывод K

K:=K+1

 

 

КОНЕЦ

 

 

Ввод Х

 

 

Рис. 15. Алгоритм определения количества четных чисел в последовательности значений

 

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

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

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

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

2. Некоторая группа студентов сдавала экзамен по дисциплине «Редактор-

ское дело». Определить средний балл группы по этой дисциплине.

3. В группе учатся как девушки, так и юноши. Определить, кто лучше сдал экзамен по дисциплине «Информатика» – юноши или девушки?

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

«Эдельвейс» в печатных листах, учитывая коэффициент перевода автор-

ских страниц в печатные листы.

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

ва «Прогресс» с учетом цены и тиража.

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

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

Вводим Х

mах=Х

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

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

то max:=Х (значение этого элемента); б. Вводим новый элемент последовательности Х. Условие выхода из цикла Х=0

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

 

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

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

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

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

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