Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
73
Добавлен:
10.04.2015
Размер:
118.27 Кб
Скачать

Лекция для ЗФ

ЦИКЛИЧЕСКИЕ ВЫЧИСЛИТЕЛЬНЫЕ ПРОЦЕССЫ

Понятие цикла

Часто при решении задач приходится многократно выполнять вычисления по одним и тем же формулам с разными исходными данными.

Пример. Составить программу вычисления значения функции y = sin x при x = 0; 0,1; 0,2; …1. Очевидно, что для определения всех значений функции y необходимо вычислять и выводить на экран монитора 11 раз значение sin x, начиная с x = 0 и увеличивая каждый раз аргумент x на 0,1. При решении данной задачи целесообразно использовать циклический алгоритм, реализуемый с помощью специальных операторов циклов.

Цикл – это конструкция в программировании, которая позволяет неоднократно выполнять одну и ту же последовательность операторов внутри программы.

Циклические алгоритмы делятся на арифметические и итерационные.

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

Цикл называется итерационным, если число его повторений заранее неизвестно, например, он заканчивается при выполнении некоторого условия.

Арифметический цикл

Для реализации арифметических циклов используют конструкцию

For … Next.

FOR x = xнач TO xкон [STEP ∆x] ‘Заголовок цикла (означает: Для x, изменяющегося от xнач до xкон с шагом ∆x)

… ‘Операторы (тело цикла)

NEXT [x] ‘Зацикливание (возврат к началу цикла)

x – управляющая переменная (параметр) цикла;

xнач , xкон , ∆x – константы, переменные или арифметические выражения, которые задают соответственно начальное значение, конечное значение и шаг изменения (приращение) параметра цикла.

Количество повторений цикла n можно вычислить по формуле:

После того, как x станет больше xкон, управление передается оператору, следующему за NEXT.

Если шаг ∆x=1, то ключевое слово STEP и параметр ∆x можно опустить.

Изображение цикла в ГСА рассмотрим на примере Ц1.

Пример Ц1: Вычислить значения y = sin x , если 0 ≤ x ≤ 1 и Δx = 0,1.

Здесь xнач = 0, xкон = 1, шаг ∆x = 0,1.

Данный пример является примером табулирования функции – вычисления множества значений функции при различных значениях входящих в неё аргументов.

Составим ГСА решения этой задачи на основе знаний, полученных при изучении темы «Разветвляющиеся вычислительные процессы» (рис. 1).

Рис. 2. ГСА в краткой форме

Рис. 1. ГСА в полной форме

В блоке 2 (см. рис. 1) задается начальное значение аргумента x, в блоке 3 осуществляется сравнение текущего значения x с конечным, затем выполняется расчет и вывод результата. В блоке 6 значение x наращивается, и весь процесс повторяется до тех пор, пока текущее значение x не превысит конечное.

Обычно арифметический цикл в ГСА изображают более компактно (рис. 2), используя для этого символ модификации (блок 2 на рис. 2), в котором указывают параметр цикла, его начальное и конечное значения и шаг изменения. Таким образом, блок 2, реализующий цикл в краткой форме ГСА, объединяет в себе блоки 2, 3 и 6 полной ГСА.

При составлении ГСА и программ циклических процессов нужно уметь выделять:

– начальное значение параметра цикла;

– конечное значение параметра цикла или условие окончания цикла;

– закон изменения параметра цикла;

– тело цикла.

В соответствии с представленной выше ГСА составим в общем виде программу табулирования функции с выводом результатов на лист Excel.

Замечания по применению арифметических циклов

  1. Параметр цикла в операторах FOR и NEXT должен быть одинаковым (можно после NEXT параметр цикла вообще не указывать).

  2. Если конечное значение параметра цикла меньше начального, то шаг изменения параметра цикла должен быть отрицательным.

  3. Не рекомендуется изменять внутри цикла значение параметра цикла или пределы его изменения (x, xнач , xкон )

  4. Запрещается вход в цикл, минуя оператор FOR, т. е. недопустима передача управления извне на операторы, составляющие тело цикла (это приведет к ошибке «NEXT без FOR»).

  5. Допускается выход из цикла в любое время (например, с помощью оператора GOTO).

  6. Если при организации цикла используются дробные числа, то за счет погрешности их представления возможна ситуация, когда последнее значение параметра цикла не будет получено. В этом случае вместо xкон обычно используют значение xкон+∆x/10. Например, как в примере Ц1.

  7. При выходе из цикла сохраняется текущее значение параметра цикла, которое обычно на шаг больше конечного значения.

стр. 4 из 4