Студопедия

КАТЕГОРИИ:


Архитектура-(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; Просмотров: 319; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.