Public Function ФАКТОРИАЛ(N As Integer) As Double
Практическая работа №1
СОЗДАНИЕ ПРОСТЕЙШИХ ПРОЦЕДУР НА ЯЗЫКЕ VBA
Цель работы:приобретение навыков обработки данных с использованием основных элементов языка (оператор присваивания, выражения, объявление переменных, вывод сообщений, организация ввода данных, условный оператор) и среды программирования VBA на примере создания простейших процедур.
Создание простейшего окна вывода сообщений
1. Запустите программу Excel.
2. Откройте редактор VBA (Visual Basic for Application) (Сервис à Макрос à Редактор Visual Basic).
3. Добавьте в проект новый программный модуль (Insert à Module).
4. Добавьте новую процедуру, выполнив команду Insert à Procedure…, а затем введя в поле Name значение MyProcedure и выбрав в поле Type значение Sub.
5. Введите недостающий текст так, чтобы содержимое окна редактора имело следующий вид:
Public Sub MyProcedure()
MsgBox ("Привет!")
End Sub
6. Установите текстовый курсор в пределах введенного текста и запустите созданную процедуру на выполнение с помощью команды Run à Run Sub/User Form.
7. Измените текст процедуры как указано ниже и повторите действия п.6.
Public Sub MyProcedure()
s = MsgBox("Привет!", , "Новое сообщение")
End Sub
8. Сравните полученные результаты.
Создание процедуры вычисления площади круга
1. Измените текст процедуры следующим образом:
Public Sub MyProcedure()
Const Pi As Double = 3.1415993
Dim Radius As Double
Dim S_circles As Double
Radius = 10
S_circles = Pi * Radius ^ 2
s = MsgBox (S_circles, , "Вычисление площади круга")
End Sub
2. Запустите процедуру вычисление площади круга (см. п.6). Измените значение переменной Radius, введя произвольное значение (например, Radius = 12.4), и вновь запустите процедуру. Изменилось ли вычисленное значение? В чем недостаток процедуры?
3. Замените строку
Radius = ...
на
Radius = InputBox("Введите радиус круга:")
4. Запустите измененную процедуру. Проверьте правильность вычислений для нескольких значений радиуса.
5. Замените строку
s = MsgBox (S_circles, , "Вычисление площади круга")
на
MsgBox ("Площадь круга = " + CStr(S_circles))
6. Запустите процедуру. Сравните результат с полученным ранее.
Создание процедуры сравнения двух чисел
1. Измените текст процедуры следующим образом:
Public Sub MyProcedure()
Dim A, B As Double
A = InputBox("Введите число A:")
B = InputBox("Введите число B:")
If A = B Then
MsgBox ("Числа A и B равны.")
Else
If A > B Then
MsgBox ("Число A больше числа B.")
Else
MsgBox ("Число A меньше числа B.")
End If
End If
End Sub
2. Запустите процедуру. Проверьте правильность сравнения для нескольких пар чисел A и B.
Самостоятельная работа
Создать процедуру вычисления следующей функции, обратив внимание на область определения (номер задания соответствует номеру студента в списке группы):
1) ;
2) ;
3) ;
4) ;
5) ;
6) ;
7) ;
8) ;
9) ;
10) ;
11) ;
12) ;
13) ;
14) ;
15) .
16) ;
17) ;
18) ;
19) ;
20) ;
21) ;
22) ;
23) ;
24) ;
25) ;
Отчет должен содержать: цель работы; краткое описание использованных в работе элементов языка VBA; текст созданных процедур и результаты их работы; выводы по результатам работы. При оформлении отчета в печатном виде в нижний колонтитул следует поместить фамилию, инициалы и номер группы обучаемого (8 пт., Arial, выравнивание по правому краю).
Практическая работа № 2
СОЗДАНИЕ ПОЛЬЗОВАТЕЛЬСКОЙ ФУНКЦИИ И ОРГАНИЗАЦИЯ ОБРАЩЕНИЯ К ЯЧЕЙКАМ ЛИСТА MS EXCEL СРЕДСТВАМИ VBA
Цель работы:приобретение навыков обработки данных с использованием оператора цикла, этапов создания пользовательской функции, а также организации обращения к ячейкам листа из процедуры/функции на языке VBA.
Создание пользовательской функции
1. Запустите программу Excel.
2. Откройте редактор VBA (Visual Basic for Application) (Сервис à Макрос à Редактор Visual Basic).
3. Добавьте в проект новый программный модуль (Insert à Module).
4. Добавьте новую процедуру, выполнив команду Insert à Procedure…, а затем и введя в поле Name значение MyProcedure и выбрав в поле Type значение Sub.
5. Введите недостающий текст так, чтобы содержимое окна редактора имело следующий вид:
Public Sub MyProcedure()
Dim N, I As Integer
Dim F As Long
N = InputBox("Введите число N:")
F = 1
For I = 1 To N
F = F * I
Next
MsgBox ("N!=" + CStr(F))
End Sub
6. Установите текстовый курсор в пределах введенного текста и запустите созданную процедуру на выполнение с помощью команды Run à Run Sub/User Form. Проверьте правильность вычисления факториала для значений числа N от 0 до 13. В чем причина возникновения ошибки?
7. Замените в строке Dim F As Long
Long на Double.
8. Снова запустите процедуру и проверьте правильность вычисления факториала для нескольких значений числа N, начиная с 13. Как можно объяснить полученный результат?
9. Для создания на основе имеющейся процедуры пользовательской функции измените введенный ранее текст следующим образом:
Public Function ФАКТОРИАЛ(N As Integer) As Double
Dim I As Integer
Dim F As Double
F = 1
For I = 1 To N
F = F * I
Next
ФАКТОРИАЛ = F
End Function
Для добавления в модуль новой функции можно воспользоваться командой Insert à Procedure…, введя затем в поле Name имя создаваемой функции и выбрав в поле Type значение Function.
10. Выберите Лист 1 книги Excel и установите для всех ячеек формат Числовой, число десятичных знаков – 0. Введите в ячейку A1 число 0, а в ячейку B1 – формулу =ФАКТОРИАЛ(A1).
При создании формулы можно воспользоваться Мастером функций, выбрав категорию Определенные пользователем.
11. Введите в ячейку A2 число 1, выделите диапазон A1:A2 и с помощью автозаполнения заполните ячейки до A21 включительно. Заполните соответствующие ячейки столбца B, также используя автозаполнение.
12. В ячейку C1 введите формулу =ФАКТР(A1). С помощью автозаполнения заполните другие ячейки столбца C (до С21 включительно).
13. Убедитесь в равенстве значений, полученных с помощью созданной функции ФАКТОРИАЛ() и стандартной функции ФАКТР().
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|