Студопедия

КАТЕГОРИИ:


Архитектура-(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 Sub. Область действия переменной




End Sub

End Sub

End Sub

Область действия переменной

End Function

End If

Else

End Sub

End Function

End If

Else

fPower = num * fPower(num, pwr - 1) 'рекурсия

 

Sub Test_Rekurs()

MsgBox fPower(2, 3)

Пример 7. Чему равно F(23)&

 

Function F(x As Integer) As Integer

If x <= 1 Then

F = x

ElseIf x MOD 2 <> 0 Then

F= F(5 * x + 1) + 1

F = F(x \ 6) + 1

 

Х = 23 F(23) = F(5 * 23 + 1) + 1 = F(116) + 1 = 5 + 1 = 6

X = 116 F(116) = F(116 \ 6) + 1 = F(19) + 1 = 4 + 1 = 5

X = 19 F(19) = F(5 * 19 + 1) + 1 = F(96) + 1 = 3 + 1 = 4

X = 96 F(96) = F(96 \ 6) + 1 = F(16) + 1 = 2 + 1 = 3

X = 16 F(16) = F(16 \ 6) + 1 = F(2) + 1 = 1 + 1 = 2

X = 2 F(2) = F(2 \ 6) + 1 = F(0) + 1 = 0 + 1 = 1

X = 0 F(0) = X = 0

Ответ: 6.

 

 

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

1. Процедурный уровень. Переменная, объявленная в процедуре, является доступной только в этой процедуре. Они описываются внутри процедуры при помощи инструкции Dim. Поскольку область действия процедурного уровня ограничивает доступ к переменной процедурой, в которой объявляется эта переменная, можно использовать то же имя переменной в разных процедурах. Но внутри своей области определения имя должно быть уникальным.

 

Пример 8. Область действия процедурного уровня

 

Sub HelloWorld()

Dim HelloMsg 'сохраняет текст для MsgBox

HelloMsg = "HelloWorld!"

MsgBox HelloMsg,,"Окно приветствия"

 

Sub HelloDave()

Dim HelloMsg ‘сохраняет текст для MsgBox

HelloMsg = "Hello, Dave!"

MsgBox HelloMsg,, "Другое окно сообщения"

2. Модульный уровень. Переменные уровня модуля используются только в модуле, в котором они описаны при помощи инструкции Dim, размещенной в области описания модуля, т. е. перед описанием процедур. Это необходимо когда несколько процедур должны иметь доступ к одной и той же переменной. Обычно эффективнее вычислить один раз какое-либо значение, сохранить его в переменной, а затем использовать эту переменную в не­скольких процедурах, чем вычислять одно и то же значение снова и снова.

 

Пример 9. Область действия переменной модульного уровня

 

Dim HelloMsg ' переменная модульного уровня

 

Sub HelloWorld()

HelloMsg = "Hello, World!"

MsgBox HelloMsg,, "Окно приветствия"

 

Sub HelloDave()

HelloMsg = "Hello, Dave!"

MsgBox HelloMsg,, "Другое окно сообщения"

 

Имя переменной должно быть уникальным в ее области действия – нельзя объявлять две переменные модульного уровня с одним именем в одном и том же модуле.

 

3. Общие переменные, используемые во всех модулях данного проекта. Описываются при помощи инструкции Public, размещенной в области описания модуля.

Хотя имя переменной должно быть уникальным в области ее действия, можно иметь переменные с одним и тем же именем на разных уровнях области действия. Когда переменные имеют одно имя, но разные области действия, VBA использует переменную с наиболее локальной областью действия. В примере 10 приведен модуль, содержащий три процедуры, каждая из которых используют переменные с одним и тем же именем.

 

Пример 10. Комбинированная модульная и процедурная область действия

 

Dim HelloMsg 'переменная уровня модуля

 

Sub HelloWorld()

HelloMsg = "Hello, World!"

MsgBox HelloMsg,, "Greeting Box"




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


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


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



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




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