Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по Инф_11-12.docx
Скачиваний:
13
Добавлен:
25.12.2018
Размер:
6.65 Mб
Скачать

Лекция №10 операторы циклов

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

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

Блок, ради которого и организуется цикл, называется телом цикла. Остальные операторы служат для управления процессом повторения вычислений: это начальные установки, проверка условия продолжения цикла и модификация параметра цикла (рис.1). Один проход цикла называется итерацией.

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

Проверка условия продолжения цикла выполняется на каждой итерации либо до тела цикла (цикл с предусловием, рис. а), либо после тела цикла (цикл с постусловием, рис б). Разница между ними состоит в том, что тело цикла с постусловием всегда выполняется хотя бы один раз, после чего проверяется надо ли его выполнять еще раз. Проверка необходимости выполнения цикла с предусловием делается до тела цикла, поэтому возможно, что он не выполнится ни разу.

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

В системе программирования VBА имеется большой выбор средств организации циклов, которые можно разделить на две основные группы:

  • циклы Do ... Loop

  • циклы For ... Next

Циклы со счетчиком используют в том случае, когда необходимо выполнить некоторые действия определенное количество раз. Такие циклы в общем случае называются циклами For … Next.

Циклы с условием применяются тогда, когда некоторые действия в программе должны повторяться до тех пор, пока выполняется определенное условие, или до тех пор, пока не будет выполнено некоторое условие. Такие циклы в общем случае называются циклами Do.

Оператор цикла For ... Next:

For <счетчик>=<Нач Зн> То <КонЗн> Step <Приращение>

<Операторы>

Next <Счетчик>

В роли счетчика количества повторений в цикле может выступать любая переменная числового типа. Приращение (шаг изменения значения счетчика) может быть как положительным, так и отрицательным числом. Если приращение равно единице, то конструкция Step может быть вообще опущена. Если приращение отрицательно, то начальное значение, естественно, должно быть больше конечного. В операнде Next счетчик также может быть опущен, однако это не рекомендуется.

Пример

Написать программу на VBA для вычисления значения функции f(x)=sin x, где x Ì [-3;3], Δx=0.3. Вывод результатов осуществить с помощью окна MsgBox.

For x = -3 To 3 Step 0.3

f = Sin(x)

MsgBox f

Next x

Пример

Написать программу на VBA для вычисления значения функции f(x)=sin x, где x Ì [-3;3], Δx=0.3. Вывод результатов осуществить в ячейки рабочего листа.

i = 1

For x = -3 To 3 Step 0.3

f = Sin(x)

Worksheets(“Лист1").Range("A" & i) = f

i = i + 1

Next x

Пример1: Программа вычисления таблицы значений функции y=aex+lnx, где x = 0,6 ( 0,2 ) 2 , т.е. x изменяется от 0,6 до 2 с шагом 0,2, a= -7,25

Private Sub CommandButton1_Click()

Dim x, y, a as single

a= -1.25

For x=0.6 to 2 step 0.2

y=a*exp(-x)+Log(x)

MsgBox ("при x=” & x & “ y= " & y)

Next x

End Sub

Циклы могут быть вложенными, когда внутри одного циклического процесса должен выполняться другой. В этом случае необходимо придерживаться правила - каждый цикл должен иметь как свое начало - слово For, так и свой конец - слово Next, причем каждый раз сначала должен быть закончен внутренний цикл, а затем уже внешний.

Пример 2: Программа вычисления таблицы значений функции y= aex+lnx, где a= -7,25(0,25)9, где x = 0,6 ( 0,2 ) 2

Private Sub CommandButton1_Click()

Dim x As Single, y As Single, a As Single

For a= -7.25 to 9 Step 0.25

For x=0.6 to 2 Step 0.2

y=a*exp(-x)+Log(x)

MsgBox ("при x=” & x & “ y= " & y)

Next x

Next a

End Sub