Название: Алгоритмы и программы (Афанасьева Т. В.) Жанр: Информационные системы и технологии Просмотров: 1375 |
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
КОНЕЦ
Ввод Х
Пример 8. Составить циклический алгоритм для определения в последо- вательности целых чисел количества четных чисел. Решение. Обозначим за Х переменную, содержащую очередное значение последовательности, за K – количество четных значений (рис. 15). Условие для выбора четных значений Х mod 2=0 (остаток при делении Х на 2 равен 0). Для вычисления количества значений воспользуемся рекуррентной формулой К=К+1 с начальным значением К=0. НАЧАЛО
Ввод X
K=0
X<>0
Х mod 2=0 +
Вывод K K:=K+1
КОНЕЦ
Ввод Х
Задания для самостоятельного выполнения Цель заданий. Приобрести умения в синтезе формальной и алгоритмической моделей решения задач. Сформировать компетенции анализа и синтеза при решении простых задач циклической обработки последовательности значений. Порядок выполнения. Составить формальное и алгоритмическое решения следующих задач обработки последовательности значений: 1. В процессе обучения студент группы сдавал экзамены. Определить средний балл за сданные им экзамены. 2. Некоторая группа студентов сдавала экзамен по дисциплине «Редактор- ское дело». Определить средний балл группы по этой дисциплине. 3. В группе учатся как девушки, так и юноши. Определить, кто лучше сдал экзамен по дисциплине «Информатика» – юноши или девушки? 4. Определить среднюю и общую стоимость книг в книжном магазине. «Эдельвейс» в печатных листах, учитывая коэффициент перевода автор- ских страниц в печатные листы. 6. Определить общую стоимость выпуска книжной продукции издательст- ва «Прогресс» с учетом цены и тиража. 7. В последовательности чисел определить предпоследнее отрицательное число. (При решении введите дополнительную переменную для хранения предпоследнего отрицательного числа). 8. В последовательности целых положительных чисел определить максимальное число. Рекомендуем реализовать такой алгоритм: Вводим Х mах=Х Цикл с постусловием а. Если элемент Х > max то max:=Х (значение этого элемента); б. Вводим новый элемент последовательности Х. Условие выхода из цикла Х=0 9. В последовательности целых чисел определить третье положительное число и подсчитать количество цифр в нем.
Контрольные вопросы 1. Какие алгоритмы относятся к циклическим? 2. Что называют телом цикла? 3. Какие существуют виды циклов? 4. Чем отличается цикл с предусловием от цикла с постусловием?
|
|