Инф VBA
.pdf
|
90 |
|
|
S=1/2*a*b*alfarad |
'вычисление площади треугольника |
Range (“B4”).Value=”s=” |
|
Range (“C4”).Value=s |
'вывод результата |
|
|
6.Сохраните рабочую книгу. Запустите процедуру вычисления площади с помощью команды Запуск (Run) или нажмите F5.
7.При необходимости устраните ошибки. Проверьте результат, выведенный
влист рабочей книги.
B.Оформим теперь отдельную процедуру, в которой будем вычислять и выводить площадь.
1.Вернитесь в редактор VBA.
2.перейдите в Окно Модуля, щелкнув левой клавишей мыши на Имя модуля (Module1) в окне проекта (Project) .
3.В модуль вставьте новую процедуру Площадь1, выполнив команду меню редактора VB: Вставка→Процедура (Insert→ Procedure);
4.В открывшемся диалоговом окне “Вставка процедуры” установите переключатель “Подпрограмма (Sub)”, в поле имени укажите имя процедуры –
Площадь1. Щелкните на OK. В окне редактирования кода появится заготовка общей процедуры вида:
Public Sub Площадь1()
End Sub
5. Внутри скобок заголовка подпрограммы введите описания её параметров
(исходных данных).
Public Sub Площадь1(a,b As Single, alfag As Single)
6. Под заголовком процедуры поместите код подпрограммы. Сделайте
комментарий к разработанной подпрограмме. Выведите результат с помощью окна вывода.
Dim s As Single 'объявление локальной переменной s
|
91 |
|
|
alfarad=alfarad*3.14/180 'переход от градусов к радианам |
|
S=1/2*a*b*alfarad |
'вычисление площади треугольника |
Range (“B4”).Value=”s=” |
|
Range (“C4”).Value=s |
'вывод результата |
|
|
7. Создайте основную процедуру, вызывающую данную подпрограмму (в
тот же модуль вставить ещё одну процедуру с именем ОсновняПоцедура_B):
Public Sub ОсновняПоцедура_B ()
Dim a,b,akfag As Single
a=Range (“B1”).Value b=Range (“B2”).Value alfag=Range (“B3”).Value
Call Площадь1(a, b, alfag)
End Sub
8.Запустите основную процедуру ОсновняПоцедура_B, проверьте результат вычислений.
9.При необходимости устраните ошибки.
C.Приступим к созданию функции пользователя:
1.В имеющийся модуль вставьте новую процедуру Площадь2, выполнив команду меню редактора VB: Вставка→Процедура (Insert→ Procedure);
2.В открывшемся диалоговом окне Вставка процедуры установите переключатель Функция (Function), в поле имени укажите имя функции –
Площадь2. Щелкните на OK. В окне редактирования кода появится заготовка общей процедуры вида:
Public Function Площадь2()
End Function
3. Внутри скобок заголовка функции введите описания её параметров
(исходных данных).
Public Function Площадь2(a, b As Single, alfag As Single)As Single
92
4. Под заголовком функции поместите код подпрограммы. Сделайте комментарий к разработанной функции. Выведите результат с помощью окна вывода.
alfarad=alfarad*3.14/180 'переход от градусов к радианам Площадь2=1/2*a*b*alfarad 'вычисление площади треугольника
5. Создайте основную процедуру, вызывающую данную подпрограмму (в
тот же модуль вставить ещё одну процедуру с именем ОсновняПоцедура_С):
Public Sub ОсновняПоцедура_С() Dim a, b, akfag, s As Single a=Range (“B1”).Value
b=Range (“B2”).Value alfag=Range (“B3”).Value s= Площадь2(a, b, alfag)
Range (“B4”).Value=”s=”
Range (“C4”).Value=s
End Sub
6.Запустите основную процедуру ОсновняПоцедура_C, проверьте результат вычислений.
7.При необходимости устраните ошибки.
93
Лабораторная работа № 2 на тему: «Разработка программ с разветвляющимсяалгоритмомсиспользованиемдиалоговыхокон»
Постановка задачи.
Составить программу вычисления функции y f (x) и вычислить
значения функции в указанных точках. Ввод данных пользователем и вывод результатов организовать с помощью диалоговых окон. Установить на лист
Excel кнопку или картинку, по нажатию которой будет вызываться программа.
|
2x3 3x 1 |
x 0 |
|
ln (1 x) |
0 x |
y |
||
|
cos x2 |
x |
|
x=-2; -0,892; 1,13; 5,789
Выполнение.
Для решения данной задачи понадобится 2 оператора ветвления в полной
форме.
Ввод и вывод данных. Для нашей задачи исходными данными является значение аргумента x, которое будет вводиться пользователем. Результат –
значение функции y, которое выведем с помощью диалогового окна.
Удобно все данные, их идентификаторы и типы представить в виде
таблицы: |
|
|
|
||
|
|
Идентификаторы и типы исходных данных |
Табл. 11 |
||
|
|
|
|
|
|
|
|
Описание переменной |
Идентификатор |
|
Тип |
|
|
|
|
|
|
|
|
Аргумент |
x |
|
Single |
|
|
|
|
|
|
|
|
Значение функции |
y |
|
Single |
|
|
|
|
|
|
Приступим к созданию процедуры:
1. Загрузите приложение Excel и создайте рабочую книгу с именем
«Лабораторная работа 2».
2. Одним из способов запустите редактор VBA.
94
3.Если в проекте нет модуля, то создайте его, выполнив команду меню редактора VB: Вставка→Модуль(Insert→Module);
4.В модуль вставьте процедуру ВычислениеY, выполнив команду меню редактора VB: Вставка→Процедура (Insert→ Procedure);
5.В открывшемся диалоговом окне “Вставка процедуры” установите переключатель “Подпрограмма (Sub)”, в поле имени укажите имя процедуры –
ВычислениеY. Щелкните на OK. В окне редактирования кода появится заготовка общей процедуры вида:
Public Sub ВычислениеY ()
End Sub
6. Под заголовком поместите код подпрограммы. Сделайте комментарий к
разработанной подпрограмме.
Dim x, y As Single |
'объявили пременные x и y |
Const pi=3.1415926 |
'объявили константу pi |
x=InputBox("Введите x") |
'организовали ввод х |
If x<=0 Then |
'если x<=0, то |
y=2*x^3+3*x-1 |
'вычисляем значение х по первой ветке |
Else |
'иначе |
If x < pi Then |
'если x<pi, то |
y = Log(1 + x) |
'вычисляем значение х по второй ветке |
Else |
'иначе |
y = Cos(x ^ 2) |
'вычисляем значение х по третьей ветке |
End If |
'конец условия |
End If |
'конец условия |
MsgBox "y=" & CStr(y) |
' вывод у в диалоговое окно |
7.Сохраните рабочую книгу. Запустите процедуру вычисления площади с помощью команды Запуск (Run) или нажмите F5.
8.При необходимости устраните ошибки.
95
9. Установим на рабочий лист кнопку. В закладке Разработчик выбрать команды: Вставить→Элементы управления формы (кнопка). На листе появится кнопка с названием ”Кнопка1” и окно ”Назначить макрос объекту”. В
предложенном списке выбрать процедуру ВычислениеY и нажать OK. (Если окна ”Назначить макрос объекту” не появилось, то вызвать контекстное меню кнопки и выбрать команду Назначить макрос….). Переименуйте кнопку: ”Вычисление функции”. Вместо кнопки можно вставить другой объект
(картинку, автофигуру и т.д.) и так же назначит этому объекту макрос.
10.Вычислите функцию у для различных значений x.
Лабораторная работа № 3 на тему: «Разработка программ с операторомциклаFOR…TO…NEXT»
Постановка задачи.
15 |
15 |
1,3 |
n |
|
Вычислить an |
и an , если an |
|
. |
|
|
|
|||
n 2 |
n 2 |
n2 n |
||
Выполнение. |
|
|
|
|
Для реализации данной задачи понадобится оператор цикла с параметром.
Ввод и вывод данных. Начальных данных не вводится. Результат – сумму и произведение выведем в лист: запись “P =”, будем выдавать в ячейку A1, а
значение p в ячейку B1, запись “S =” в ячейку A3, а значение s в ячейку B3.
Удобно все данные, их идентификаторы и типы представить в виде
таблицы: |
|
|
|
||
|
|
Идентификаторы и типы исходных данных |
Табл.12 |
||
|
|
|
|
|
|
|
|
Описание переменной |
Идентификатор |
|
Тип |
|
|
|
|
|
|
|
|
Произведение |
p |
|
Single |
|
|
|
|
|
|
|
|
Сумма |
s |
|
Single |
|
|
|
|
|
|
|
|
Общий член an |
a |
|
Single |
|
|
|
|
|
|
96
Приступим к созданию процедуры:
1.Загрузите приложение Excel и создайте рабочую книгу с именем
«Лабораторная работа 3».
2.Одним из способов запустите редактор VBA.
3.Если в проекте нет модуля, то создайте его, выполнив команду меню редактора VB: Вставка→Модуль(Insert→Module);
4.В модуль вставьте процедуру СуммаПроизв, выполнив команду меню редактора VB: Вставка→Процедура (Insert→ Procedure);
5.В открывшемся диалоговом окне “Вставка процедуры” установите переключатель “Подпрограмма (Sub)”, в поле имени укажите имя процедуры –
СуммаПроизв. Щелкните на OK. В окне редактирования кода появится заготовка общей процедуры вида:
Public Sub СуммаПроизв ()
End Sub
6. Под заголовком поместите код подпрограммы. Сделайте комментарии.
Dim p, s, a As Single |
'объявили переменные |
Dim n As Integer |
'объявили счетчик цикла |
p=1 |
'начальное значение произведения равно1 |
s=0 |
'начальное значение суммы равно0 |
For n=-2 To 15 |
'организуем цикл со счетчиком n |
a=1.3^n/(n^2-n) |
'вычислим значение an |
p=p*a |
'умножим произведение на an |
s=s+a |
'добавим к сумме элемент an |
Next n |
'перейдем к следующему шагу цикла |
Range ("A1").Value ="S =" |
'вывод заголовка S = |
Range ("B1").Value ="P =" |
'вывод заголовка P = |
Range ("A3").Value =s |
'вывод значения суммы |
Range ("B3").Value =p |
'вывод значения произведения |
|
|
97
7.Сохраните рабочую книгу. Запустите процедуру вычисления площади с помощью команды Запуск (Run) или нажмите F5.
8.При необходимости устраните ошибки.
9.Установите на рабочий лист кнопку, так как это делалось в Лабораторной работе 2. Привяжите к кнопке процедуру СуммаПроизв. Переименуйте кнопку: ”Вычисление суммы и произведения”.
Лабораторная работа № 4 на тему: «Разработка программ с циклическимиалгоритмамиразличныхтипов»
Постановка задачи. |
|
|
Составить программу табулирования функции y f (x) |
на отрезке [a;b] в |
|
точках x a; x a h; x a 2h; . . . ; b , где |
h (b a) / m . |
Используйте в |
качестве переменной цикла значение x и операторы цикла:
1.For – Next ,
2.Do While – Loop ,
3.Do – Loop While ,
4.Do Until – Loop ,
5.Do – Loop Until .
|
2x3 3x 1 |
x 0 |
|
|
ln (1 x) |
0 x |
|
y |
a=-1, b=5 |
||
|
cos x2 |
x |
|
|
|
Выполнение.
Для решения данной задачи понадобятся 2 оператора ветвления в полной форме и все операторы циклов.
Ввод и вывод данных. Пользователю вводить данные в задаче не требуется. Результат работы цикла с параметром выведем следующим образом:
заголовки таблицы x и y записываем в ячейки A1 и B1 соответственно, а
значения переменных x и y записываем в соответствующих колонках, начиная с
98
третьей строчки. Результат работы цикла Do While – Loop выведем в столбцы D
иE; цикла Do – Loop While в столбцы G и H; цикла Do Until – Loop в столбцы J
иK; цикла Do – Loop Until в столбцы M и N.
Удобно все данные, их идентификаторы и типы представить в виде
таблицы: |
|
|
|
||
|
|
Идентификаторы и типы исходных данных |
Табл.13 |
||
|
|
|
|
|
|
|
|
Описание переменной |
Идентификатор |
|
Тип |
|
|
|
|
|
|
|
|
Аргумент |
x |
|
Single |
|
|
|
|
|
|
|
|
Значение функции |
y |
|
Single |
|
|
|
|
|
|
Приступим к созданию процедуры:
1. Загрузите приложение Excel и создайте рабочую книгу с именем
«Лабораторная работа 4».
2.Одним из способов запустите редактор VBA.
3.Если в проекте нет модуля, то создайте его, выполнив команду меню редактора VB: Вставка→Модуль(Insert→Module);
4.Вычисление функции y оформим в воде отдельной подпрограммы-
функции. В модуль вставьте функцию “ФункY”, выполнив команду меню редактора VB: Вставка→Процедура (Insert→ Procedure);
5. В открывшемся диалоговом окне “Вставка процедуры” установите переключатель “Функция (Fanction)”, в поле имени укажите имя процедуры – ФункY. Щелкните на OK. В окне редактирования кода появится заготовка общей процедуры вида:
Public Function ФункY()
End Sub
6. Внутри скобок заголовка функции введите описания её параметров
(исходных данных).
Public Function ФункY(x As Single)As Single
99
7. Под заголовком функции поместите код подпрограммы. Сделайте
комментарий к разработанной подпрограмме.
Dim y As Single |
|
Const pi=3.1415926 |
'объявили константу pi |
If x<=0 Then |
'если x<=0, то |
y=2*x^3+3*x-1 |
'вычисляем значение х по первой ветке |
Else |
'иначе |
If x < pi Then |
'если x<pi, то |
y = Log(1 + x) |
'вычисляем значение х по второй ветке |
Else |
'иначе |
y = Cos(x ^ 2) |
'вычисляем значение х по третьей ветке |
End If |
'конец условия |
End If |
'конец условия |
ФункY=y |
'присвоение значения функции |
8. Создайте основную процедуру, (в тот же модуль вставить ещё одну процедуру с именем Табулирование1):
Public Sub Табулирование1 ()
End Sub
9. Под заголовком поместите код подпрограммы.
Const a = -1, b = 5, m = 20
Dim i As Integer
Dim x, y, h As Single Range("A1").Value = "x" Range("B1").Value = "y" h = (b - a) / m
i = 3
For x = a To b + h / 2 Step h y=ФункY(x)
Cells(i, 1).Value = x