Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Создание пользовательских функций. Вы уже научились создавать собственные процедуры, но еще не знаете о том, как создать их старшую сестру




Вы уже научились создавать собственные процедуры, но еще не знаете о том, как создать их старшую сестру, функцию.

Функция, как и процедура, — изолированный фрагмент кода, способный включать в себя произвольное число операторов. И, так же как и процедуры, функции можно добавлять в модули. В модуле может сосуществовать рядом любое количество процедур и функций.

Function DoSomething()

'Здесь код функции

End Function

Главное отличие функции от процедуры заключается в том, что функция формирует ко­нечный результат. Другими словами, функции предоставляют порцию нужных вам данных.

Вы задаете результат, написав строку кода, которая присваивает окончательное значение имени функции. (По существу, вы считаете, что имя функции — это переменная, в которой можно хранить некоторые данные.)


Далее приведен пример:

Function GetMyFavoriteColor()

GetMyFavoriteColor = "Magenta" End Function

Эта функция названа GetMyFavoriteColor (получение моего любимого цвета). Ее ре­зультат — текстовая строка "Magenta" (пурпурный).

Вызов функции несколько отличается от вызова процедуры. Для вызова процедуры вы используете имя модуля, за которым следует точка, а затем имя процедуры. Этот же способ можно применить и для вызова функции:

MyModule.GetMyFavoriteColor

Но возникает проблема. Этот шаг запускает функцию GetMyFavoriteColor, но отбра­сывает результат (строку с текстом Magenta).

Если вас интересует результат, можно вызвать функцию в операторе присваивания. В приведенном далее коде создана переменная для хранения результата и последующего отображения его в окне сообщения:

' Создается переменная для хранения результата

Dim Color

 

' Вызывается функция и результат сохраняется в переменной

Color = MyModule.GetMyFavoriteColor

 

' Результат отображается в окне сообщения

MsgBox "Your favorite color is " & Color

Если вы по-настоящему сообразительны, то можете сократить этот код до одной строки и вообще избежать использования переменной Color:

MsgBox "Your favorite color is " & MyModule.GetMyFavoriteColor

Функция GetMyFavoriteColor предельно проста, т. к. не использует аргументы. Но ни­что не мешает вам проявить большую изобретательность. Рассмотрите следующую пользо­вательскую функцию, которая принимает два аргумента — длину и ширину — и вычисляет площадь, перемножая их:

Function Area(Length, Width)

Area = Length * Width

End Function

Эти два параметра определяются в скобках после имени функции. Количество парамет­ров может быть любым при условии, что вы отделяете один от другого запятой.

Далее приведен пример вызова данной функции и отображения результата. В нем для определения параметров Length (длина) и Width (ширина) применяются числовые кон­станты. Но их вполне можно заменить именем поля, переменной или свойством, которые вы хотите использовать в функции Area.

MsgBox "The area of a 4x4 rectangle is " & Area(4, 4)


На экране появится:

The area of a 4x4 rectangle is 16

Ни функция GetMyFavoriteColor (), ни функция Area () не продемонстрировали ни­чего впечатляющего, но в следующем разделе этой главы вы создадите гораздо более мощ­ную функцию для проверки номеров кредитных карт.

 

 


Поделиться:

Дата добавления: 2014-11-13; просмотров: 146; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты