Лабораторная работа.Часть 2
.docЛабораторные работы по программированию на VBA
Для реализации процедур на VBA необходимо:
1 – изучить операторы языка VBA;
2 – уметь разрабатывать алгоритмы для решения конкретных задач;
3 – уметь работать в среде редактора Visual Basic в одном из приложений (Word, Excel, Access). Будем рассматривать примеры подпрограмм и функций VBA в среде редактора Visual Basic Excel.
Для входа в среду VBA Excel необходимо выполнить команду Сервис / Макрос / Редактор Visual Basic или воспользоваться горячей клавишей Alt+F11 (непосредственно в среде Microsoft Excel).
Для начала набора текста функции или подпрограммы на языке VBA необходимо находясь в среде VBA выполнить команду - Insert(Вcтавить) / Module(Модуль) и затем воспользоваться командой - Insert(Вcтавить) / Procedure(Процедуру). В появившемся окне необходимо выбрать функцию или подпрограмму и задать ее имя. После этого будут автоматически сформированы операторы начала и конца процедуры и можно переходить непосредственно к набору операторов процедуры на VBA.
Для набора следующей процедуры в том же модуле необходимо повторить команду - Insert(Вcтавить) / Procedure(Процедуру). Если нужно создать новый модуль повторяется команда - Insert(Вcтавить) / Module(Модуль).
Проверка правописания осуществляется командой - Debug(Отладка) / Compile VBAProject(компилировать). Проверка работоспособности разработанной процедуры производится путем ее использования в Excel (вызов функции путем вставки функции из списка функций Excel или вызов подпрограммы путем запуска макроса или пользовательской формы).
№2 Разработка функций для реализации циклических алгоритмов
Алгоритм – набор инструкций, описывающих порядок действий исполнителя для достижения результата решения задачи за конечное число действий, при любом наборе исходных данных.
Циклический алгоритм – алгоритм, предусматривающий многократное повторение одного и того же действия (одних и тех же операций) над новыми исходными данными. К циклическим алгоритмам сводится большинство методов вычислений, перебора вариантов. Цикл программы – последовательность команд (серия, тело цикла), которая может выполняться многократно (для новых исходных данных) до удовлетворения некоторого условия.
Для реализации циклических алгоритмов в VBA используются 3 вида операторов цикла For, While, Do Loop
Формат оператора For
For переменная = начальное_значение To конечное_значение [Step шаг] [операторы] [Exit For] [операторы]
Next [перменная]
Пример цикла For:
For I = 1 To 10
For J = 1 To 10
For K = 1 To 10
...
Next K
Next J
Next I
Цикл For будет выполняться заданное число раз (в примере – 10 раз с шагом 1).
Формат оператора While – цикл с предусловием. Операторы цикла выполняются до тех пор пока, условие оператора while имеет истинное значение. В случае, если при в ходе в цикл условие while имеет ложное значение, то цикл выполняться не будет.
While условие [операторы]
Wend
Пример цикла While
While i <= 10 s=s+i
i=i+1
Wend
Формат оператора Do ... Loop имеет две разновидности
Do [{While | Until} условие] [операторы] [Exit Do] [операторы]
Loop
или
Do [операторы] [Exit Do] [операторы]
Loop [{While | Until} условие]
Примеры функций циклических алгоритмов
функция вычисления суммы S=12+22+…+n2;
Public Function FunS(n)
Dim s As Integer
Dim i As Integer
s = 0
For i = 1 To n
s = s + i ^ 2
Next
FunS=s
End Function
функция вычисления приближенного значения sin(x) по формуле у=x/1!-x3/3!+x5/5!-….+x2n+1/(2n+1)! с заданной погрешностью;
Public Function sinus(x, погрешность)
i = 2
p = x
s = x
While Abs(p) > погрешность
p = -p * x ^ 2 / (i * (i + 1))
i = i + 2
s = s + p
Wend
sinus = s
End Function
Задание для самостоятельного выполнения:
На VBA составить функции для:
найти , где m и n заданные числа;
вычислить сумму кубов трехзначных четных чисел;
оператор mod – остатока от деления.
Пример: (22 mod 5) = 2.
найти сумму S=1*100+2*99+3*98+…+ 50 *51
вычисления произведения P=n!=1*2*….*n;
вычисления приближенного значения cos(x) по формуле у=1-x2/2!+x4/4!-….+x2n/(2n)! для заданного числа n;
вычисления приближенного значения ex по формуле , с заданной точностью E;
Составить блок-схему для одного из реализованных алгоритмов