Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2 семестр / Сборник задач по VBA

.pdf
Скачиваний:
269
Добавлен:
09.04.2015
Размер:
378.28 Кб
Скачать

15. Напишите процедуру

на языке

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) = tgn (x) + tgm (x) . Вычисление

tgk (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