КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Функции, возвращающие скалярные значения
Создание простейших функций в Excel Вызов подпрограмм и функций. Синтаксис вызова функции или подпрограммы: [Call] имя [ ArgList ] Call — ключевое слово. Если указано ключевое слово Call, то ArgList (список фактических параметров) заключается в круглые скобки. Если не указано, то необходимо опускать круглые скобки вокруг списка фактических параметров при вызове подпрограммы. имя — имя вызываемой процедуры. ArgList — разделяемый запятыми список переменных или выражений, передаваемых в подпрограмму или функцию. Элементы списка могут включать ключевые слова ByVal или ByRef для описания того, каким образом будут рассматриваться вызываемой процедурой. Однако ключевые слова ByVal или ByRef могут использоваться с инструкцией Call только при вызове процедуры из библиотеки динамической компоновки. При передаче в процедуру полного массива следует воспользоваться именем массива с пустыми скобками. При использовании Call для вызова функции возвращаемое функцией значение отбрасывается. Этим можно воспользоваться при вызове функции, возвращаемое значение которой не анализируется. Например, в п. 2.3.2.B примера 5.2 для вывода информационного сообщения использовалась функция MsgBox, результат которой не анализировался. Однако, поскольку функция возвращает значение типа Integer, была введена локальная переменная и этой переменной присвоен результат возвращаемый функцией. В больших процедурах наличие неиспользуемых переменных ухудшает читаемость кода. С использованием ключевого слова Call обработчик события из 2.3.2.B можно переписать так Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) If CloseMode <> 1 Then Cancel = 1 Call MsgBox("Эта форма закрывается нажатием кнопки Ok", vbInformation + vbApplicationModal, "Info") End If End Sub Будем считать, что создан модуль проекта (Module1). Функции будем программировать этом модуле. Пусть необходимо запрограммировать вычисление следующей функции
С математической точки зрения играет роль независимой переменной, a — параметра. Будем считать эти величины действительными, и . Для программной реализации этой функции воспользуемся инструкцией if. Функцию назовём Triangle. Public Function Triangle(x As Double, a As Double) As Double If x < 0 Then Triangle = x + a Else Triangle = a - x End Function Если теперь ввести в некоторой ячейке лиcта =Triangle(1;1), то получим, как и ожидается, 0. Если ввести =Triangle(-1;1), то — 0, а если =Triangle(0;1), то — 1. В данном случае параметр передаётся функции при каждом её вызове. Если функция вызывается много раз, то это увеличивает время её выполнения. Вместо передачи параметра при каждом вызове, заведём переменную уровня модуля — TriangleParam, т.е. запишем вначале модуля Dim TriangleParam As Double Для реализации функции напишем текст Public Function Triangle2(ByVal x As Double) As Double If x < 0 Then Triangle2 = x + TriangleParam Else Triangle2 = TriangleParam - x End Function Перед вычислением функции Triangle2 нужно присвоить переменной TriangleParam значение. Для этого напишем функцию SetTriangleParam Public Function SetTriangleParam(ByVal a As Double) As Double TriangleParam = a: SetTriangleParam = TriangleParam End Function В этой функции (SetTriangleParam) просто присваивается переменной модуля TriangleParam значение параметра a. Теперь для вычисления функции при разных значениях аргумента, но одном значении параметра, сначала вызовем функцию установки значения параметра, например =SetTriangleParam(1), а затем выполним серию вычислений при фиксированном значении параметра. На рис. приведено изображение фрагмента листа, на котором в первом столбце введены текстовые пояснения, а во втором столбце — функции
Рисунок 5.5 — Слева иллюстрация к примеру п. 5.4.1, справа — к примеру п. 5.4.2 Упражнение 5.1 Запрограммировать, используя Select Case, функцию Вычислить в ряде характерных точек для тестирования «работоспособности».
Дата добавления: 2014-11-07; Просмотров: 342; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |