Студопедия

КАТЕГОРИИ:

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



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




Читайте также:
  1. L – класс линейных функций.
  2. MS Access. Создание таблиц и запросов.
  3. А)создание венчурных предприятий и структурных подразделений для выполнения особо рискованных проектов;
  4. Автоматическое создание простого отчета.
  5. Агрессия против СССР, создание антигитлеровской коалиции.
  6. Алгоритм минимизации функций в классе нормальных форм
  7. Анатомо-морфологическая база высших психических функций
  8. Арифметические операции над непрерывными функциями. Композиция непрерывных функций
  9. Б. Создание коллегий. Местные органы власти
  10. Базовым принципом концепции МСС является отделение друг от друга функций переноса и коммутации, функций управления вызовом и функций управления услугами.

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

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

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; просмотров: 9; Нарушение авторских прав







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