- •Лабораторная работа № 4. Циклический вычислительный процесс.
- •Повторение фиксированное число раз: циклы Fоr.
- •Применение цикла For.. Next
- •Пример цикла For.. Next с возрастающим счетчиком:
- •Пример цикла For.. Next с убывающим счетчиком:
- •Повторение неопределенное число раз: циклы Do
- •Создание циклов с помощью Do Until.
- •Циклы с проверкой условия перед выполнением.
- •Создание циклов с помощью Do While.
- •Пример цикла Do While
- •Создание циклов с помощью Do…Loop While
- •Создание циклов с помощью Do…Loop Until
- •Задания
- •Контрольные вопросы.
Пример цикла For.. Next с возрастающим счетчиком:
Эта процедура получает от пользователя два числа, в заданном ими диапазоне суммирует все целые числа, а затем выводит на экран полученное значение. Если, например, вы запустили эту программу и ввели значения 4 и 8, то будут просуммированы числа 4, 5, 6, 7 и 8, а на экране будет отображено число 30.
Sub Demo_ForNext()
Dim k As Integer
Dim uStart As String
Dim uEnd As String
Dim uSum As Long
uStart = InputBox("Введите натуральное число:")
uEnd = InputBox("Введите второе натуральное число")
uSum = 0
For k = uStart To uEnd
uSum = uSum + k
Next k
MsgBox "Сумма натурального ряда от" & uStart &
_" до" & uEnd & " равна: " & uSum
E
nd
Sub
Пример цикла For.. Next с убывающим счетчиком:
Этот пример делает то же самое, но счетчик цикла работает с убыванием.
Sum Demo_ForNextDown()
Dim k As Integer
Dim uStart As Integer
Dim uEnd As Integer
Dim uSum As Long
uStart = InputBox("Введите натуральное число:")
uEnd = InputBox("Введите второе натуральное число")
uSum = 0
For k = uStart To uEnd Step -1
uSum = uSum + k
Next k
MsgBox "Сумма натурального ряда от" & uStart & _
" до" & uEnd & " равна: " & uSum
End Sub
|
|
Повторение неопределенное число раз: циклы Do
В VBA имеется очень мощная инструкция для создания в процедурах и функциях циклических структур, повторяющихся неопределенное число раз. Все такие циклы создаются с помощью единственной инструкции — инструкции Do. Она обладает такими возможностями и такой гибкостью, что у нее фактически четыре конструкции, относящиеся к двум основным категориям.
Эти категории состоят, из циклов Do, которые проверяют условие определителя перед выполнением тела цикла, и, во-вторых, из тех циклов Do, которые проверяют это условие после выполнения тела цикла. Независимо от того, проверяется ил определитель до или после выполнения тела цикла, существует два способа контролировать, сколько раз выполняется неопределенный цикл.
Циклы, контролируемые счетчиками. В этом случае тело цикла выполняется, пока значение некоторого счетчика находится ниже или выше указанной границы; в этом есть определенное сходство с циклов For .. Next, за исключением того, что на программисте лежит ответственность за инициализацию этого счетчика, а также за увеличение или уменьшение его значения. Такие циклы Do имеет смысл писать, когда счетчик не является регулярным, а также когда нельзя определить конечную границу, пока не началось выполнение самого цикла. Например, требуется пройти первые 16 строк листа, иногда увеличивая за один раз значение строки на 1, а иногда за один раз – на 2. В связи с тем, увеличение номера строка (то есть шаг счетчика) меняется, цикл For .. Next использовать нельзя; вместо него надо исследовать цикл Do.
Циклы, контролируемые событиями. В этом случае значением определителя имеет значение True или False, в зависимости от некоторого события или действия, имевшего место во время выполнения цикла. Например, вы написали цикл, выполняемый неопределенное число раз, пока пользователь не ведет известное число в диалоговом окне. Ввод такого числа как раз и является тем событием, которое завершит цикл. А вот другой пример: можно выполнять операции над ячейками листа, пока не будет достигнута пустая ячейка. Переход в пустую ячейку и будет событием, завершающим цикл.
