информатика / Информатика_2 семестр / 2-VBA / VBA-Учебные материалы / VBA-4 Циклы простые
.doc
ЦИКЛИЧЕСКИЕ ВЫЧИСЛИТЕЛЬНЫЕ ПРОЦЕССЫ
Понятие цикла
Часто при решении задач приходится многократно выполнять вычисления по одним и тем же формулам с разными исходными данными.
Пример. Составить программу вычисления значения функции 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.
Замечания по применению арифметических циклов
-
Параметр цикла в операторах FOR и NEXT должен быть одинаковым (можно после NEXT параметр цикла вообще не указывать).
-
Если конечное значение параметра цикла меньше начального, то шаг изменения параметра цикла должен быть отрицательным.
-
Не рекомендуется изменять внутри цикла значение параметра цикла или пределы его изменения (x, xнач , xкон )
-
Запрещается вход в цикл, минуя оператор FOR, т. е. недопустима передача управления извне на операторы, составляющие тело цикла (это приведет к ошибке «NEXT без FOR»).
-
Допускается выход из цикла в любое время (например, с помощью оператора GOTO).
-
Если при организации цикла используются дробные числа, то за счет погрешности их представления возможна ситуация, когда последнее значение параметра цикла не будет получено. В этом случае вместо xкон обычно используют значение xкон+∆x/10. Например, как в примере Ц1.
-
При выходе из цикла сохраняется текущее значение параметра цикла, которое обычно на шаг больше конечного значения.
стр.