7.1. Функции пользователя
Если имеются однотипные вычисления в программе, то целесообразно выделять операторы, реализующие их, в отдельную пользовательскую подпрограмму. Тогда в так называемой основной программе можно будет не писать каждый раз заново похожие операторы, а просто обращаться к подпрограмме.
Различают два типа пользовательских подпрограмм:
– подпрограммы типа Function (функция), которые производят действия, определенные ее программным кодом, и в результате этого действия возвращают одно значение определенного типа;
– подпрограммы типа Sub (процедуры), которые производят действия, определенные ее программным кодом, и возвращают столько значений, сколько необходимо.
Функция пользователя в общем виде имеет следующий вид:
Function <имя функции> (<аргум.1> <As тип>, ...) <As тип>
<программный код для определения функции>
End Function
Описание функции пользователя начинается с заголовка, в котором указывается имя функции после ключевого слова Function, в скобках через запятую перечисляются формальные аргументы с указанием их типа и после скобок указывается тип данных, которому принадлежит значение, возвращаемое функцией. При этом типы аргументов функции и самой функции можно не указывать, в этом случае им присваивается тип Variant. Конечный результат помещается в переменную с тем же именем, что и имя функции.
Заканчивается описание функции пользователя ключевыми словами End Function.
Например, функция v(h, r), вычисляющая объем цилиндра v в зависимости от его высоты h и радиуса основания r, может быть задана в следующем виде:
Function v(h As Single, r As Single) As Single
v = 3.14 * h * r ^ 2
End Function
Для обращения к функции пользователя в так называемой основной программе записывается имя функции, а в скобках – фактические аргументы, которые должны соответствовать формальным по количеству, типу и порядку расположения.
Например, ниже приведен фрагмент программы вычисления объема тела из двух поставленных друг на друга цилиндров высотой по 10 см и радиусами основания соответственно 3 и 5 см:
Dim vol As Single
vol = v(10, 3) + v(10, 5)
MsgBox «объем равен» & vol & «см3»
Необходимо отметить, что в скобках перед аргументами функции выражением ByVal можно указать, что фактический аргумент как параметр передается в функцию по его значению, иначе, по умолчанию, параметр будет передаваться в функцию по ссылке – ByRef.
Дело в том, что когда по умолчанию значения формальных параметров передаются в процедуру по ссылке, то VBА для них не отводит дополнительного места в памяти. Поэтому формальные параметры не являются настоящими переменными – это только ссылки на значения соответствующих переменных из вызывающей программы. Если же в ходе выполнения функции пользователя эти параметры меняют свои значения, то в итоге может быть получен неверный результат. Чтобы этого не произошло, используется передача формального параметра в процедуру по его значению с помощью записи ByVal перед именем параметра. В этом случае VBА будет хранить в памяти копию оригинала значения формального параметра как переменной и ее значения останутся неизменными после выполнения процедуры.
Например, заголовок функции может иметь следующий вид:
Function F(ByVal x As Single, n As Integer) As Single
Здесь объявляется функция F вещественного типа (Single), зависящая от двух аргументов: x вещественного типа (Single), передаваемого в процедуру по значению, и n − целочисленного типа (Integer), передаваемого в процедуру по ссылке.
Пример 7.1. Функция пользователя F(k) для расчета факториала числа k: k! = 1 * 2 * 3 * … * k.
Программа имеет вид:
Function F(k)
Dim i As Integer
F = 1
For i = 2 To k
F = F * i
Next i
End Function
Теперь для вычисления выражения С = М!N! / (M + N)! можно использовать следующую программу:
Sub CommandButton1_Click()
Dim С As Single
Dim N As Integer, M As Integer
M = Val(InputBox("Введите М"))
N = Val(InputBox("Введите N"))
C = F(M) * F(N) / F(M + 1)
MsgBox C
End Sub
- Н. Н. Пустовалова, а. И. Бракович
- Информатика и компьютерная графика
- Курс лекций
- Для студентов всех специальностей
- Введение
- 1. Архитектура и принципы функционирования компьютера
- 1.1. Обобщенная схема компьютера
- 1.2. Операционные системы
- 1.3. Программы группы «Стандартные»
- 1.4. Группа программ Microsoft Office
- 1.5. Задание для выполнения на компьютере
- 2. Приложение microsoft word
- 2.1. Основные операции в приложении Word
- 2.2. Таблицы и диаграммы
- 2.3. Задание для выполнения на компьютере
- Программирование циклических процессов
- Введение
- 1. Циклические программы
- 1.1. Постановка задачи
- 2. Схема алгоритма программы
- 3. Оформление документов в приложении word
- 3.1. Текстовые эффекты и ввод формул
- 3.2. Оформление документа, его редактирование и печать
- 3.4 Задание для выполнения на компьютере
- 3. Текст программы
- 4. Вычисление суммы
- Заключение
- Оглавление
- 4. Приложение microsoft excel
- 4.1. Основные операции в приложении Excel
- 4.2. Вычисления по формулам
- 4.3. Построение диаграмм, обработка данных и печать
- 4.4. Задание для выполнения на компьютере
- Зарплата работников за январь
- 5. Язык vba. Линейные и циклические программы
- 5.1. Общие сведения о принципах программирования в Excel
- 5.2. Основные конструкции vba
- Запись математических функций на языке vba
- 5.3. Линейные программы. Расчет по формулам
- 5.4. Циклические программы
- 5.5. Задание для выполнения на компьютере
- Исходные данные для расчета
- 6. Разветвления в циклических программах
- 6.1. Условный оператор If
- 6.2. Вычисление сумм, произведений, экстремумов
- 6.3. Одномерные массивы
- 6.4. Задание для выполнения на компьютере
- Исходные данные для расчета
- Исходные данные для расчета
- 7 Функции и процедуры пользователя
- 7.1. Функции пользователя
- 7.2. Создание пользовательской функции листа
- 7.3. Процедуры пользователя типа Sub
- 7.3. Задание для выполнения на компьютере
- Исходные данные для расчета
- 8. Формы пользователя
- 8.1. Свойства и методы
- 8.2. Примеры использования форм
- 8.3. Работа со списками
- 8.4. Использование комбинированного списка
- 8.5. Работа с простым списком
- 8.6. Задание для выполнения на компьютере
- 9. Пример разработки инженерного проекта
- 9.1. Постановка и решение задачи
- 9.2. Формирование новой таблицы программным путем
- Пятый этап служит для просмотра писем, на шестом этапе можно их печатать.
- 9.4. Задание для выполнения на компьютере
- 10. Базы данных
- 10.1. Access – реляционная база данных
- 10.2. Создание таблиц и установление связей
- Заполнение, сохранение и редактирование данных в таблице. Порядок заполнения таблиц зависит от связей в таблицах. Вначале заполняются таблицы главные, затем – подчиненные.
- 10.3. Задание для выполнения на компьютере
- 11. Формирование запросов в access
- 11.1. Условный запрос
- 11.2. Запросы с вычисляемыми полями
- 11.5. Запросы с сортировкой и запросы на обновление
- 11.6. Задание для выполнения на компьютере
- 12. Создание форм и отчетов
- 12.1. Формы
- 12.2 Разработка отчетов
- Создание отчета с помощью Мастера. Для создания отчета необходимо:
- Создание отчета с помощью Конструктора. Если отчет включает поля из нескольких таблиц, то предварительно нужно построить запрос, включающий эти поля.
- 12.3. Задание для выполнения на компьютере
- 13. Приложение powerpoint
- 13.1. Создание презентации
- 13.2. Создание слайдов и объектов
- 13.3. Презентация
- 13.4. Особенности работы с приложением PowerPoint 2007
- 13.5. Задание для выполнения на компьютере
- 14. Компьютерная графика. Приложение ms visio
- 14.1. Виды компьютерной графики
- 14.2. Разрешение изображения и цветовые модели
- 14.3. Приложение Microsoft Visio 2003
- Текстовые элементы. Текстовые элементы служат для создания заголовков, пояснений, обозначений, подписей в специальных полях фигур.
- 14.4. Операции над фигурами в ms Visio
- 14.5. Задание для выполнения на компьютере
- 15. Создание и оформление документов ms visio
- 15.1. Настройка параметров листа и стиль
- Масштаб документа. В пункте меню Вид имеются команды масштабирования: Вид/Масштаб и Вид/Положение&Масштаб.
- 15.2. Соединение фигур
- 15.3. Группировка фигур. Слои и печать
- 15.4. Пользовательская среда разработки
- 15.5. Задание для выполнения на компьютере
- 16. Графический редактор adobe photoshop
- 16.1. Основные инструменты и окна
- 16.2. Создание изображений
- 16.3. Слои в графическом редакторе Adobe Photoshop
- 16.4. Выделение областей
- 16.5. Сохранение файлов с изображениями
- 16.6. Задание для выполнения на компьютере
- 17 Обработка изображений в adobe photoshop
- 17.1. Просмотр рисунка, изменение размеров и поворот
- 17.2. Работа с текстом
- 17.3. Корректировка изображений
- 17.4. Использование фильтров
- 17.5. Создание коллажа
- 17.6. Задание для выполнения на компьютере
- 18. Приложение mathcad
- 18.1. Ввод и форматирование информации
- 18.2. Вычисления в Mathcad
- 18.3. Построение графиков
- 18.4. Задание для выполнения на компьютере
- 19. Вычисление интегралов и решение уравнений
- 2. Содержание задания
- 3. Выполнить вычисления в пакете MathCad. Результаты сравнить между собой.
- Приближенное решение уравнений
- 19.2. Приближенное вычисление интеграла в приложениях Mathcad и Excel
- 19.3. Численные методы решения уравнений
- Приближенное решение уравнений
- 19.4. Решение уравнений в приложениях Mathcad и Excel
- 19.5. Задание для выполнения на компьютере
- Исходные данные для расчета
- 20. Решение систем уравнений
- 20.1. Системы линейных уравнений
- 20.2. Решение систем линейных уравнений в приложениях Mathcad и Excel
- 20.3. Решение систем нелинейных уравнений в приложении Mathcad
- 20.4. Задание для выполнения на компьютере
- Исходные данные для расчета
- 21. Математические модели и оптимизация процессов
- 21.1. Модель одномерного объекта
- 21.2. Получение математических моделей в приложениях Mathcad и Excel
- 21.3. Модель многомерного объекта
- Значения критерия Стьюдента
- Коэффициенты критерия Фишера
- 21.4. Задание для выполнения на компьютере
- Исходные данные для расчета
- 22. Методы оптимизации
- 22.1. Метод сканирования
- 22.2. Метод случайного поиска
- 22.3. Решение задач оптимизации в приложениях Mathcad и Excel
- 22.4. Задание для выполнения на компьютере
- Исходные данные для оптимизации процессов
- Модели в виде уравнений регрессии
- 23. Решение дифференциальных уравнений
- 23.1. Решение уравнений первого порядка
- 23.2. Системы дифференциальных уравнений и уравнения высших порядков
- 23.3. Решение дифференциальных уравнений в приложении Mathcad
- 23.4. Задание для выполнения на компьютере
- Исходные данные для расчета
- 24. Приложение macromedia flash
- 24.1. Создание объектов
- 24.2. Анимация
- 24.3. Маскирование слоев
- 24.4. Символы. Создание кнопок
- 24.5. Задание для выполнения на компьютере
- 25. Компьютерные сети
- 25.1. Сеть Интернет
- 25.2. Язык гипертекстовой разметки html
- 25.4. Задание для выполнения на компьютере
- 26. Разработка web-страниц
- 26.1. Гиперссылки и рисунки в Web-документах
- 26.2. Использование таблиц
- 26.3. Создание web-страниц в приложении FrontPage
- 26.4. Задание для выполнения на компьютере
- 27. Защита информации и компьютерные вирусы
- Литература
- Содержание
- Информатика и компьютерная графика
- 220006. Минск, Свердлова, 13а.
- 220006. Минск, Свердлова, 13.