
- •Инструментальная среда языка программирования vba
- •2.1 Разработка программ линейной структуры в среде vba
- •3) Выполните ввод числовых значений:
- •2.2 Разработка программ разветвленной структуры в среде vba
- •2.3 Разработка программ циклической структуры в среде vba
- •Введите в Окно редактирования кода Листа программу:
- •992, Г. Кемерово, пр. Кузнецкий, 39. Тел. 25-75-00.
2.3 Разработка программ циклической структуры в среде vba
Часто при решении задач приходится многократно вычислять значения по одним и тем же математическим зависимостям для различных значений входящих в них величин. Такие многократно повторяемые участки вычислительного процесса называются циклами.
Пример 4. Составить в виде блок-схемы и программы алгоритм накопления суммы. Сложить число «2» четыре раза.
Решение. При составлении алгоритма решения данной задачи можно использовать алгоритмическую структуру цикл со счётчиком. В качестве счетчика будет использоваться переменная i. Так как число «2» добавляется к сумме 4 раза, то за счётчик цикла можно принять количество суммирований, и он будет принимать значения от 1 до 4 с шагом 1. Блок-схема данного алгоритма имеет вид (рисунок 7):
Перед началом цикла необходимо присвоить сумме начальное значение: Sum = 0.
После этого в цикле следует выполнять оператор:
Sum = Sum + 2
По окончании цикла результат работы программы будет находиться в переменной Sum.
Рисунок 7 – Блок-схема алгоритма Пример 4
Введите в Окно редактирования кода Листа программу, в которой содержится оператор Цикл со счётчиком. Он записывается следующим образом:
For СчетчикЦикла = НачальноеЗначение То КонечноеЗначение [Step Шаг]
Операторы тела цикла
Next [СчетчикЦикла]
СчетчикЦикла |
- числовая переменная, используемая как счетчик повторений цикла; |
НачальноеЗначение |
- начальное значение счетчика цикла; |
КонечноеЗначение |
- конечное значение счетчика цикла; |
Шаг |
- приращение счетчика при каждом шаге цикла (если параметр Step не указан, то по умолчанию значение приращения равно 1); |
Операторы тела цикла |
- операторы, выполнение которых нужно повторить определенное количество раз. |
Оператор Next увеличивает значение счетчика (параметра) цикла на заданный шаг и передает управление на продолжение цикла, то есть на оператор For, где анализируется полученное значение счетчика цикла. Текущее значение счетчика цикла сравнивается с конечным значением. Если текущее значение параметра цикла больше конечного его значения, то происходит выход из цикла на оператор, следующий за оператором Next.
Текст программы:
Sub Пример4( )
Dim i, Sum As Integer
Sum = 0
For i = 1 To 4
Sum = Sum + 2
Next i
Debug.Print "2+2+2+2= "; Sum
End Sub
2) Запустите программу на счёт кнопкой Run Sub ;
В окно Immediate программа выведет результат вычислений:
2+2+2+2= 8
Пример 5. Требуется вычислить произведение натуральных чисел от 1 до n (факториал числа n): Р= 1*2*...*n = n!
Решение. При составлении алгоритма для решения данной задачи так же можно использовать алгоритмическую структуру цикл со счётчиком. В качестве счетчика, как и в предыдущем примере, будет использоваться переменная i. В данном случае за счётчик можно принять сами числа, произведение которых вычисляется, так как числа изменяются от 1 до n с шагом 1.
Блок-схема данного алгоритма имеет вид (рисунок 8):
Перед началом цикла необходимо присвоить произведению начальное значение: Р= 1
После этого в цикле следует выполнять оператор: Р = P * i
По окончании цикла результат работы программы будет находиться в переменной Р. Так как в результате может получиться число больше чем 32767, переменная P должна быть объявлена в программе как длинное целое (Long).
Рисунок 8 – Блок-схема алгоритма Пример 5
Введите в Окно редактирования кода Листа программу, в которой содержится оператор Цикл со счётчиком.
Текст программы:
Sub Пример5()
Dim i, n As Integer
Dim P As Long
n = InputBox("Введите число для вычисления его факториала", "Окно ввода")
P = 1
For i = 1 To n
P = P * i
Next i
Debug.Print "Факториал числа " ; n ; "=" ; P
End Sub
2) Запустите программу на счёт кнопкой Run Sub ;
3) Выполните ввод числовых значений. В диалоговое окно с подсказкой – «Введите число для вычисления его факториала»
наберите с клавиатуры – 5
В окно Immediate программа выведет результат вычислений:
Факториал числа 5 = 120
Пример 6. Вычислить стоимость порции сыра весом 250, 300, 350, …, 1000гр. (цена 1кг – 128руб. 50коп.).
Решение. Используем для решения этой задачи алгоритмическую структуру цикл со счётчиком. За счётчик в данном случае можно принять Вес порции сыра, так как он изменяются от 250 до 1000 с шагом 50.
В цикле следует выполнять оператор:
Общая_Стоим = Стоим_кг * Вес / 1000
Результат работы программы будет находиться в переменной Общая_Стоим и выводиться при каждом повторе цикла.
Блок-схема
данного алгоритма имеет вид (рисунок
9):
Рисунок 9 – Блок-схема алгоритма Пример 6