Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алгоритмы обработки данных.doc
Скачиваний:
7
Добавлен:
24.11.2018
Размер:
595.46 Кб
Скачать

5. Циклические алгоритмы

5.1. Организация циклов с предусловием и постусловием

Как уже отмечалось в разделе 2, в типовую структуру цикл входит две разновидности: цикл с предусловием и цикл с постусловием. Обе они реализуются одним и тем же набором символов (рис.5.1.), которые выполняют следующие действия:

      • – задание начального значения параметру цикла;

      • – проверка условия: для а) – возможности выполнения цикла; для б) – возможности выхода из цикла;

      • – рабочая часть цикла (тело цикла);

      • – блок модификации (изменения) параметра цикла; если этот блок в схеме будет пропущен, то, как правило, возникает ситуация, когда цикл будет выполняться бесконечно долго, т.к. значение параметра цикла остается неизменным. Говорят, что в этом случае имеет место бесконечный цикл.

Как видно из приведенных схем, в случае а) сначала проверяется условие: можно ли выполнить цикл, и, если ответ положительный, то цикл выполняется. В случае б) сначала выполняется цикл, а затем проверяется условие: можно ли выйти из цикла, и, если ответ положительный, то работа цикла завершается.

Рис.4.2. Схема алгоритма примера 4.2.

а) б)

Рис.5.1. Организация цикла: а) – с предусловием; б) – с постусловием

В отличие от цикла с предусловием, цикл с постусловием выполняется хотя бы один раз, каким бы не было задано начальное значение параметра цикла, а вот цикл с предусловием при неверно заданном начальном значении параметра может быть не выполнен ни разу.

5.2. Табуляция функции одной переменной

Пример 5.1. Табулировать функцию на заданном отрезке [xнач.,xкон.] с шагом Δx. Результаты оформить в виде таблицы

Х

y

………

……………

……………

……………

……………..

………………

………………

………………

} Заголовок

Основная

часть

} подножие

Решение. Табулировать функцию – значит рассчитать ряд ее значений в зависимости от значений аргумента x, который принимает значения:

Можно заранее определить, сколько значений аргумента и функции нужно будет вывести в таблицу, если применить для подсчета формулу

,

где [ ] – означает, что у полученного в результате деления числа нужно выделить целую часть. Таким образом, нужно n раз повторить одни и те же действия: вычислять и выводить в таблицу x и y. Есть смысл для этой цели использовать циклический алгоритм, построенный на базе цикла с предусловием (рис.5.1(а)) (хотя можно и с постусловием). Параметром цикла будет являться переменная x, значения которой на каждом шаге цикла будут

вычисляться следующим образом: .

Проиллюстрируем постановку этой задачи графически (рис.5.2.).

Чтобы оформить таблицу необходимо учесть, что такие элементы, как заголовок и подножие таблицы выводятся только один раз (т.е. вне цикла), а вот основная часть, состоящая из отдельных строк, содержащих значения x и y - внутри цикла. С учетом этого получим схему программы, приведенную на рис.5.3.

Рис.5.2. Графическая иллюстрация табулирования функции на отрезке

Замечание. Если бы функция имела вид такой, как у функции, рассмотренной в примере 4.2 (т.е. прежде чем рассчитать ее, нужно выбрать расчетную формулу), то вместо символа процесс, определяющего расчет функции, в схеме программы нужно поставить структуру ветвление.