Сборник задач по VBA
.pdf15. Напишите процедуру |
на языке |
VBA для |
нахождения функции |
||
f (x,a,b) = loga (x) + logb (x2 +1) |
æ |
|
|
ln x ö |
|
ç x > 0, a > 0, |
a ¹ 1; loga |
x = |
|
÷ . Вычисление |
|
|
|||||
|
è |
|
|
ln a ø |
logn (m) оформить в виде функции.
Исходные данные: |
Результат: |
x=3, a=5, b=8 |
f (3,5,8) = 1,7899 |
16. Составьте процедуру на языке VBA для вычисления площади фигуры, представляющей собой «восьмерку» образованной двумя касающимися
окружностями с радиусами r |
и r |
. Вычисление площади окружности ( S = p× r2 ) |
1 |
2 |
|
оформить в виде функции. |
|
|
Исходные данные: |
|
Результат: |
r1 = 2, r2 = 3 |
|
Площадь фигуры равна 40,8407 (ед. кв.) |
17. Напишите процедуру на языке VBA, которая сравнивает столбцы квадратной матрицы 3-го порядка. Сравнение i-го и j-го столбца оформить в виде функции (должна возвращать True – при совпадении столбцов, False – в противном случае).
Исходные данные: |
Результат: |
||||||||
æ |
1 |
1,2 |
1 ö |
|
|
||||
ç |
0 |
1 |
|
0 |
÷ |
Столбец 1 |
не совпадает со столбцом 2 |
||
A = ç |
|
÷ |
|||||||
ç |
- 3 |
8 |
|
|
÷ |
|
|
||
è |
|
- 3ø |
Столбец 1 |
совпадает со столбцом 3 |
|||||
|
|
|
|
|
|
|
|||
18. Напишите |
|
Столбец 2 |
не совпадает со столбцом 3 |
||||||
процедуру |
на языке VBA для нахождения функции |
||||||||
y(x) = |
x2 + x3 |
|
. Вычисление xk |
оформить в виде функции. |
|||||
x4 + x6 + 5 |
|||||||||
|
|
|
|
|
|||||
Исходные данные: |
Результат: |
||||||||
x=1 |
|
|
|
|
|
y(1) = 0,2857 |
19. Напишите процедуру на языке VBA для вычисления разности определителей 2-х квадратных матриц 2-го порядка. Вычисление определителя 2- го порядка оформить в виде функции.
Исходные данные: |
Результат: |
||||
æ 1 |
|
0ö |
Разность равна 2 |
||
A = ç |
|
|
|
÷ |
|
ç |
-1 |
|
3 |
÷ |
|
è |
|
ø |
|
||
æ1 |
5ö |
|
|
||
B = ç |
|
|
÷ |
|
|
ç |
0 |
1 |
÷ |
|
|
è |
ø |
|
|
20. Напишите |
процедуру |
на языке VBA, которая вычисляет значение |
||
функции f (x,n, m) = tg−n (x) + tg−m (x) . Вычисление |
tg−k (x) оформить |
в виде |
||
функции. |
|
|
|
|
Исходные данные: |
Результат: |
|
|
|
x=4, n=2, m=3 |
|
f (4,2,3) = 1,39 |
|
|
21. Напишите |
процедуру |
на языке VBA |
для вычисления |
суммы |
41
Min( A) + Min(B) , где |
|
Min( A) (Min(B)) − минимальный элемент в одномерной |
|||||||||||||||||||||||
матрице A (B) |
|
|
длиной 5 элементов. Вычисление |
минимального элемента из |
|||||||||||||||||||||
матрицы оформить в виде функции. |
|
|
|
|
|
|
|
||||||||||||||||||
Исходные данные: |
|
|
|
|
|
Результат: |
|
|
|
||||||||||||||||
A = (1 |
− 7 |
3 |
0 |
|
1,1) |
|
|
|
|
Сумма равна –9 |
|
|
|||||||||||||
B = (0 |
1,1 |
4 |
− 2 |
5) |
|
|
|
|
|
|
|
|
|
|
|
||||||||||
22. Напишите |
процедуру |
на |
языке |
VBA |
для нахождения |
функции |
|||||||||||||||||||
y(x) = |
|
|
|
|
cos x + 0,5 |
|
|
|
. Вычисление |
|
cos x + k |
|
оформить в виде функции. |
|
|||||||||||
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|||||||||||||||||||||||
|
|
|
|
cos x + 0,7 |
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
Исходные данные: |
|
|
|
|
|
Результат: |
|
|
|
||||||||||||||||
x=2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
y(2) = 0,2954103538 |
|
|
||||||||
23. Напишите |
процедуру |
на |
языке |
VBA, которая |
вычисляет |
значение |
|||||||||||||||||||
функции f (n,m, k) = |
|
(n + k)! |
|
. Вычисление факториала |
оформить |
в виде |
|||||||||||||||||||
(m + k)!+k! |
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
функции (Факториалом числа n называется произведение целых чисел от 1 до n: n!= 1× 2×K× n . Например, 0!= 1, 1!= 1, 4!= 24 ).
Исходные данные: |
Результат: |
n=2, m=1, k=1 |
f (2,1,1) = 2,0000 |
24. Составьте процедуру на языке VBA для вычисления площади треугольника, построенного по трем точкам. Вычисление длины стороны оформить в виде функции.
Исходные данные: |
Результат: |
A(0,0), B(−4,0), C(0,3) |
Площадь треугольника равна 6,000 (ед. кв.) |
25. Напишите процедуру на языке VBA, которая вычисляет значение функции y(x) = cos(sin 2x) + cos(sin 5x) . Вычисление cos(sin kx) оформить в виде
функции.
Исходные данные: |
Результат: |
x=1 |
y(1) =1,18870116131 |
26. Составьте процедуру на языке VBA для вычисления длины линии фигуры, представляющей собой «восьмерку» образованной двумя касающимися
окружностями с радиусами r1 и r2 . Вычисление площади окружности ( S = p× r2 ) оформить в виде функции.
Исходные данные: |
|
|
|
|
|
Результат: |
|
||||||||||||
r1 = 2, r2 = 4 |
|
|
|
|
|
|
|
Длина линии равна 37,69911 (лин. ед.) |
|||||||||||
27. Напишите |
процедуру |
на |
языке |
|
VBA, |
которая вычисляет значение |
|||||||||||||
1 |
|
|
1 |
|
|
|
|
1 |
|
|
|||||||||
функции y(x) = |
|
|
|
|
+ |
|
|
|
|
. Вычисление |
|
|
|
|
|
|
оформить в виде функции. |
||
|
x3 |
|
|
|
x5 |
|
|
|
|
|
|
|
|||||||
|
|
+1 |
|
|
+1 |
|
|
xk |
|
+1 |
|||||||||
|
|
|
|
|
|
||||||||||||||
Исходные данные: |
|
|
|
|
|
Результат: |
|
||||||||||||
x=1 |
|
|
|
|
|
|
|
y(1) =1,00000 |
|||||||||||
28. Напишите |
процедуру |
на |
языке |
VBA, которая вычисляет число |
42
размещений An |
= |
|
n! |
|
|
. Вычисление факториала оформить в виде функции |
|
|
|
|
|
||||
m |
|
(n |
− m)! |
|
|
||
|
|
|
|
||||
(Факториалом числа |
n |
называется |
произведение целых чисел от 1 до n: |
||||
n!= 1× 2×K× n . Например, 0!= 1, 1!= 1, |
3!= 6 ). |
||||||
Исходные данные: |
|
|
|
Результат: |
|||
n=5, m=2 |
|
|
|
|
|
|
Число размещений равно 20 |
29. Напишите процедуру на языке VBA, которая определяет количество четных элементов одномерного массива A длинной n целых элементов. Определение четности элемента оформить в виде функции.
Исходные данные: |
|
|
|
|
|
|
|
Результат: |
|
|||||||||||||
n = 5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
Четных элементов 3 |
||||||||
A = (− 8 2 |
7 |
6 |
5) |
|
|
|
|
|
|
|
|
|
|
|
||||||||
30. Напишите |
процедуру на языке |
VBA, которая вычисляет значение |
||||||||||||||||||||
функции y(x) = |
|
1 |
|
+ |
1 |
|
. Вычисление |
1 |
|
оформить в виде функции. |
||||||||||||
|
|
5x |
|
+1 |
|
|
|
8x |
|
+1 |
|
|
|
k × x |
|
+1 |
|
|||||
|
|
|
|
|
|
|||||||||||||||||
Исходные данные: |
|
|
|
|
|
|
|
Результат: |
|
|||||||||||||
x=0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
y(0) = 2,00 |
|
Часть 7. СОЗДАНИЕ ПОЛЬЗОВАТЕЛЬСКИХ ФОРМ
Начальные сведения по решению задач данной части содержатся в части 8 учебно-методического пособия «Программирование на VBA».
Приступая к решению задач этого раздела, следует вспомнить, что:
üкаждому объекту UserForm присущи определенные свойства, методы и события, которые он наследует от класса объектов UserForm;
üсобытийные процедуры следует записывать в модуль класса, который является частью UserForm;
üобъекты UserForm хранятся в коллекции UserForms проекта, они являются частью проекта;
üобъект UserForm может содержать различные элементы управления.
1. Создайте пользовательскую форму на языке VBA, выводящую значения
ìsin x, если x £ 0, |
|||
ï |
|
|
Добавьте в форму кнопку Отмена для |
функции y = í |
2 |
|
|
ï |
x, если x |
> 0. |
|
îcos |
|
||
завершения работы с пользовательской формой. |
|||
Исходные данные: |
Результат: |
||
x = 0 |
|
|
0,000 |
2.Создайте пользовательскую форму на языке VBA, изменяющую фон цвета на зеленый, желтый и синий. Изменения фона реализовать с помощью переключателей. Добавьте в форму кнопку Отмена для завершения работы с пользовательской формой.
3.Создайте пользовательскую форму на языке VBA, выводящую значения
43
ìcos x, если x £ 0, |
|
|
ï |
|
Добавьте в форму кнопку Отмена для |
функции y = ícos x |
+ ex , если x > 0. |
|
ï |
|
|
î 5 |
|
|
завершения работы с пользовательской формой.
Исходные данные: |
Результат: |
x = 0 |
1,0000 |
4. Создайте пользовательскую |
форму на языке VBA, вычисляющую |
сложение трех чисел. Добавьте в форму кнопку Отмена для завершения работы с пользовательской формой.
Исходные данные: |
Результат: |
||
3, 5, 4 |
|
|
12,0000 |
5. Создайте пользовательскую форму на языке VBA, выводящую значения |
|||
ìtg x, если x £ 0, |
|
||
ï |
|
|
Добавьте в форму кнопку Отмена для |
функции y = íx2 |
- 5, если x > 0. |
||
ï |
|
|
|
4 |
|
||
î |
|
|
|
завершения работы с пользовательской формой. |
|||
Исходные данные: |
Результат: |
||
x = 0 |
|
|
0,0 |
6.Создайте пользовательскую форму на языке VBA, изменяющую фон цвета на синий. Изменения фона реализовать с помощью события Click. Добавьте
вформу кнопку Отмена для завершения работы с пользовательской формой.
7.Создайте пользовательскую форму на языке VBA, выводящую значения
ì x |
+ sin x, если x £ -1, |
|
|||
ïe |
Добавьте в форму кнопку Отмена для |
||||
функции y = í |
|
|
|
|
|
ïx2 |
- |
|
cos x |
, если x > -1. |
|
î |
|
|
|
|
|
|
|
|
|
|
|
завершения работы с пользовательской формой. |
|||||
Исходные данные: |
Результат: |
||||
x =1 |
|
|
|
|
3,559752813 |
8.Создайте пользовательскую форму на языке VBA, изменяющую фон цвета на красный, фиолетовый и оранжевый. Изменения фона реализовать с помощью кнопок. Добавьте в форму кнопку Отмена для завершения работы с пользовательской формой.
9.Создайте пользовательскую форму на языке VBA, выводящую значения
ì x |
+ sin x, если x £ -1, |
|
|||
ïe |
Добавьте в форму кнопку Отмена для |
||||
функции y = í |
|
|
|
|
|
ïx2 |
- |
|
cos x |
, если x > -1. |
|
î |
|
|
|
|
|
|
|
|
|
|
|
завершения работы с пользовательской формой. |
|||||
Исходные данные: |
Результат: |
||||
x =1 |
|
|
|
|
3,559752813 |
10.Создайте пользовательскую форму на языке VBA, выводящую сообщение «Ваши пожелания, пользователь» на событие Click. Добавьте в форму кнопку Отмена для завершения работы с пользовательской формой.
11.Создайте пользовательскую форму на языке VBA, выводящую значения
44
ì5 |
|
|
|
|
|
|
|
|
|
|
|
|
x |
4 |
- x |
2 |
+ e |
x |
|||||
ï |
|
|
|
|
|
|
, если x < 3, Добавьте в форму кнопку Отмена для |
||||
|
|
|
|
|
3 - x |
|
|
|
|||
функции y = í |
|
|
|
|
|
|
|
||||
ï |
|
2 |
sin x, если x ³ 3. |
||||||||
îx |
|
|
завершения работы с пользовательской формой.
Исходные данные: |
Результат: |
x = 0 |
0,33333 |
12. Создайте пользовательскую |
форму на языке VBA, вычисляющую |
умножение трех чисел. Добавьте в форму кнопку Отмена для завершения работы с пользовательской формой.
Исходные данные: |
Результат: |
|||||
–3, 1, 2 |
|
|
|
|
–6,00 |
|
13. Создайте пользовательскую форму на языке VBA, выводящую значения |
||||||
|
ì |
3 |
|
|
|
|
|
x |
, если x < -2, |
|
|||
функции |
ï |
|
|
|
Добавьте в форму кнопку Отмена для |
|
|
|
|
||||
y = íx + 2 |
|
|||||
|
ï1- x2, если x ³ -2. |
|
||||
|
î |
|
|
|
|
|
завершения работы с пользовательской формой. |
||||||
Исходные данные: |
Результат: |
|||||
x = 2 |
|
|
|
|
|
–3,00000 |
14.Создайте пользовательскую форму на языке VBA, выводящую сообщение, какая из 3-х кнопок была нажата. Добавьте в форму кнопку Отмена для завершения работы с пользовательской формой.
15.Создайте пользовательскую форму на языке VBA, выводящую значения
ì |
−x |
, если x < 0, |
|
ïe |
|
Добавьте в форму кнопку Отмена для |
|
функции y = í |
|
|
|
ï |
|
|
|
îsin(px), если x ³ 0. |
|
||
завершения работы с пользовательской формой. |
|||
Исходные данные: |
Результат: |
||
x = −2 |
|
|
7,38905609893 |
16.Создайте пользовательскую форму на языке VBA, выводящую сообщение «Здравствуйте, пользователь» на событие Activate. Добавьте в форму кнопку Отмена для завершения работы с пользовательской формой.
17.Создайте пользовательскую форму на языке VBA, выводящую значения
ì |
−x |
, если x < 0, |
|
ïe |
|
Добавьте в форму кнопку Отмена для |
|
функции y = í |
|
|
|
ï |
|
|
|
îsin(px), если x ³ 0. |
|
||
завершения работы с пользовательской формой. |
|||
Исходные данные: |
Результат: |
||
x = −2 |
|
|
7,38905609893 |
18.Создайте пользовательскую форму на языке VBA, изменяющую фон цвета на зеленый. Изменения фона реализовать с помощью события DblClic.
Добавьте в форму кнопку Отмена для завершения работы с пользовательской формой.
19.Создайте пользовательскую форму на языке VBA, выводящую значения
45
ì |
3 |
+ |
|
x - 6 |
|
, если x |
< 5, |
|
|
|
|
|
|||||||
ï1+ x |
|
|
|
Добавьте в форму кнопку Отмена для |
|||||
функции y = í |
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
|||
ï |
|
|
, если x ³ 5. |
|
|
||||
îx +1+ e |
|
|
|
|
|||||
завершения работы с пользовательской формой. |
|||||||||
Исходные данные: |
|
|
|
|
Результат: |
||||
x = −1 |
|
|
|
|
|
|
|
|
7,0000 |
20.Создайте пользовательскую форму на языке VBA, выводящую сообщение, какой из 3-х переключателей был нажат. Добавьте в форму кнопку Отмена для завершения работы с пользовательской формой.
21.Создайте пользовательскую форму на языке VBA, выводящую значения
ì1+ sin px |
+ x, если x £ -2, |
|
||
ï |
|
2 |
Добавьте в форму кнопку Отмена для |
|
функции y = í |
|
|
||
ï |
3 |
-1, если x > -2. |
|
|
îx |
|
|
||
завершения работы с пользовательской формой. |
||||
Исходные данные: |
|
Результат: |
||
x =1 |
|
|
|
0,00 |
22.Создайте пользовательскую форму на языке VBA, выводящую сообщение «До свидания, пользователь» на событие Terminate. Добавьте в форму кнопку Отмена для завершения работы с пользовательской формой.
23.Создайте пользовательскую форму на языке VBA, выводящую значения
ì |
|
1 |
|
, если x < 1, |
||
ï |
|
|
|
|
|
|
|
+ |
|
cos(2x) |
|
||
функции y = í1 |
|
|
Добавьте в форму кнопку Отмена для |
|||
ïsin(ex ), если x ³ 1. |
||||||
î |
|
|
|
|
|
|
завершения работы с пользовательской формой. |
||||||
Исходные данные: |
|
Результат: |
||||
x = 0 |
|
|
|
0,50000 |
24.Создайте пользовательскую форму на языке VBA, изменяющую фон цвета на событие DblClic. Добавьте в форму кнопку Отмена для завершения работы с пользовательской формой.
25.Создайте пользовательскую форму на языке VBA, выводящую значения
ì |
|
|
|
|
|
|
|
|
|
1+ |
|
x3 |
|
, если x < 0, |
|
||
|
|
|
|
|||||
ï |
|
|
|
|
||||
ï |
|
|
2 |
|
|
|
|
Добавьте в форму кнопку Отмена для |
|
|
|
|
|
|
|||
функции y = í |
x |
|
|
|
|
|||
ï |
|
, если x ³ 0. |
|
|||||
ï |
|
x+1 |
|
|||||
îe |
|
|
|
|
|
|
|
|
завершения работы с пользовательской формой. |
||||||||
Исходные данные: |
Результат: |
|||||||
x = 0 |
|
|
|
|
|
|
|
0,000 |
26.Создайте пользовательскую форму на языке VBA, выводящую сообщение о количестве нажатых галочек из 3-х флажков. Добавьте в форму кнопку Отмена для завершения работы с пользовательской формой.
27.Создайте пользовательскую форму на языке VBA, выводящую значения
46
ì |
1+ |
|
|
|
|
|
|
|
|
||
|
|
1+ x |
|
|
|
, если x < -7, |
|
||||
|
|
|
|||||||||
ï |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|||
2 |
+ sin(5x) |
Добавьте в форму кнопку Отмена для |
|||||||||
функции y = í |
|
||||||||||
ï |
|
- 7x−1, если x ³ -7. |
|
||||||||
îx |
|
||||||||||
завершения работы с пользовательской формой. |
|||||||||||
Исходные данные: |
|
Результат: |
|||||||||
x = 2 |
|
|
|
|
|
|
|
|
|
–5,00000 |
28.Создайте пользовательскую форму на языке VBA, выводящую сообщение «Ваши дальнейшие указания, пользователь» на событие DblClic.
Добавьте в форму кнопку Отмена для завершения работы с пользовательской формой.
29.Создайте пользовательскую форму на языке VBA, выводящую значения
ì |
2 |
sin x, если x < 0, |
|
|
ïx |
|
Добавьте в форму кнопку Отмена для завершения |
||
функции y = í |
x−1 |
|
||
ï |
, если x ³ 0. |
|
||
î6 |
|
|
|
|
работы с пользовательской формой. |
||||
Исходные данные: |
Результат: |
|||
x =1 |
|
|
|
1,0000 |
30. Создайте пользовательскую форму на языке VBA, изменяющую фон цвета на голубой, желтый, зеленый. Изменения фона реализовать с помощью флажков. Добавьте в форму кнопку Отмена для завершения работы с пользовательской формой.
47
|
СОДЕРЖАНИЕ |
|
Введение....................................................................................................................... |
3 |
|
Часть 1. Создание макросов ....................................................................................... |
4 |
|
Часть 2. Создание программ с линейной структурой ............................................... |
6 |
|
Часть 3. Создание программ с разветвляющейся структурой................................ |
11 |
|
Часть 4. |
Создание программ с циклической структурой........................................ |
18 |
Часть 5. |
Создание программ с массивами ............................................................... |
27 |
Часть 6. |
Создание программ с функциями .............................................................. |
38 |
Часть 7. |
Создание пользовательских форм ............................................................. |
43 |
Редактор Т.Л. Матеуш Технический редактор А.А. Щербакова
Подписано в печать 18.09.08. Формат 60×84 1/16. Бумага офсетная. Гарнитура Таймс. Печать трафаретная. Усл. печ. л. 2,8. Уч.-изд. л. 3.
Тираж 73 экз. Заказ 141.
Учреждение образования «Могилевский государственный университет продовольствия»
212027, Могилев, пр-т Шмидта, 3
ЛИ № 02330/0131913 от 08.02.2007 г.
Отпечатано на ризографе редакционно-издательского отдела
учреждения образования «Могилевский государственный университет продовольствия»
212027, Могилев, пр-т Шмидта, 3
ЛП № 226 от 12.02.2003 г.
48