Студопедия

КАТЕГОРИИ:


Архитектура-(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)

End Function. Function CalculateSquareRoot(NumberArg As Double) As Double




End If

Function CalculateSquareRoot(NumberArg As Double) As Double

...

End If

Exit Function

...

Function BinarySearch(...) As Boolean

' Значение не найдено. Возвращается значение False.

If lower > upper Then

BinarySearch = False

End Function

Переменные, используемые в процедурах Function, разбиваются на две категории: явно описанные внутри процедуры и не описанные внутри процедуры. Переменные, которые явно описаны в процедуре (с помощью ключевого слова Dim или эквивалентного ему), всегда являются локальными для этой процедуры. Переменные, которые используются, но явно не описаны в процедуре, также являются локальными, если они явно не описаны на более высоком уровне.
В процедуре допускается использование переменной, которая явно не описана в этой процедуре, но при этом может возникать конфликт имен, если на уровне модуля был определен элемент с тем же самым именем. Если в процедуре содержится ссылка на неописанную переменную, имя которой совпадает с именем другой процедуры, константы или переменной, то подразумевается, что процедура ссылается на это имя на уровне модуля. Чтобы избежать возникновения конфликтов такого рода, следует пользоваться явным описанием переменных. Для включения обязательного явного описания переменных используется инструкция Option Explicit.
В языке Visual Basic возможна реорганизация арифметических выражений для увеличения скорости их выполнения. Избегайте применения процедуры Function в арифметическом выражении, если эта процедура изменяет значения переменных, используемых в этом же выражении.

Пример
В данном примере инструкция Function используется для объявления имени, аргументов и кода, составляющих основу процедуры Function. В последнем примере используются инициализированные аргументы Optional с заданным типом.

' Следующая функция, определенная пользователем, возвращает

' квадратный корень из переданного ей аргумента.

If NumberArg < 0 Then ' Анализирует аргумент.

Exit Function ' Возврат в вызывающую процедуру . Else

CalculateSquareRoot = Sqr(NumberArg) ' Возвращает квадратный корень.

Ключевое слово ParamArray позволяет функции принимать переменное число аргументов. В следующем описании FirstArg передается по значению.

Function CalcSum(ByVal FirstArg As Integer, ParamArray OtherArgs())

Dim ReturnValue

' Если функция вызывается следующим образом:

ReturnValue = CalcSum(4, 3,2,1)

' Локальные переменные принимают следующие значения: FirstArg = 4,

' OtherArgs(1) = 3, OtherArgs(2) = 2 и т.п., если нижняя граница

' индексов массивов равняется 1.

Аргументы OptionalVariant.

' Если аргументы функции описаны следующим образом:

Function MyFunc(MyStr As String, Optional MyArg1 As _ Integer = 5, Optional MyArg2 = "Мария")




Поделиться с друзьями:


Дата добавления: 2015-06-27; Просмотров: 362; Нарушение авторских прав?; Мы поможем в написании вашей работы!


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



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




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