КАТЕГОРИИ: Архитектура-(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) |
Передача параметров с помощью ключевых слов ByVal и ByRef
Или OperatorN
Естественно именование процедуры должно проходить по определённым правилам, таким же, как при именовании переменной или, проще говоря, состоять только из латинских букв и цифр. Каждая процедура или функция имеет свое УНИКАЛЬНОЕ имя. В скобках за именем процедуры следуют формальные параметры, от которых будет зависеть результат выполнения процедуры. Формальные параметры - это наименования переменных, через которые передается информация из основной программы или другой процедуры в процедуру. Говоря о процедурах и функциях, следует отметить, что переменные, используемые в программе, могут быть локальными и глобальными. Локальные переменные (объявленные только в процедуре или функции) существуют только во время выполнения процедуры или функции. Глобальные переменные (объявленные в самой программе) распространяются, в том числе и на процедуры и функции. Такие переменные существуют, пока программа выполняется. Для того, чтобы "запустить" процедуру в работу, необходимо к ней обратиться (ее вызвать). Вызов процедуры производится следующим образом:
MyProc Param1, Param2, Param3 … ParamN call MyProc(Param1, Param2, Param3 … ParamN)
MyProc - имя процедуры, Param1, Param2, Param3 … ParamN - фактические параметры. Замечание: список фактических параметров может отсутствовать. Соответствие между фактическими и формальными параметрами должно быть следующим: 1. Количество фактических параметров должно быть равно количеству формальных параметров; 2. Соответствующие фактические и формальные параметры должны совпадать по порядку следования и по типу. Соответствующие параметры не обязательно должны быть одинаково обозначены (имя формального параметра может быть не таким как у фактического).
Выполнение оператора вызова процедуры состоит в следующем: 1. все формальные параметры заменяются соответствующими фактическими; 2. после этого создается так называемый динамический экземпляр процедуры, который и выполняется; 3. после выполнения процедуры происходит передача управления в основную программу, т.е. начинает выполняться оператор, следующий за оператором вызова процедуры. Пример использования процедуры в программе (без параметров): Задача: вывести на экран значение выражения: (7+8)*100/5, используя процедуру summa Текст программы:
Sub summa MsgBox ((7+8)*100/5) End Sub
summa
Замечание: объявлять процедуру вы можете в любой части программы (в начале, в середине, в конце).
Пример использования процедуры в программе (с параметрами): Задача: ввести значения трёх переменных при помощи функции vvod, и распечатать значение введённых переменных. Текст программы: option explicit 'Запрет на использование необъявленных переменных dim a, b, c 'Описание глобальных переменных
Sub vvod(x) 'Процедура ввода значений переменных, х – формальный параметр x=InputBox("Введите значение переменной: ","Окно ввода") End Sub
vvod a 'Обращение к процедуре vvod, а – фактический параметр vvod b 'Обращение к процедуре vvod, b – фактический параметр vvod c 'Обращение к процедуре vvod, c – фактический параметр
'Вывод введённых значений переменных на экран MsgBox "Вы ввели три переменных: "&a&" "&b&" "&c Чтобы указать, что параметр передается процедуре по значению (by value) или по ссылке (by reference), в объявлении процедуры или функции перед параметрами можно размещать ключевые слова ByVal или ByRef. При вызове по значению процедуре передается копия параметра (значение константы или переменной). Процедура может изменять значение переданной копии, но при этом изменения не отражаются на значении оригинальной константы или переменной. При вызове по ссылке процедуре передается адрес параметра в памяти (адрес константы или переменной). При передаче параметра по ссылке вызванная функция или процедура получает возможность изменить само значение параметра. Если для параметра не указано ни одно из ключевых слов ByVal или ByRef, VBScript по умолчанию использует ByRef. Иногда бывает необходимо предотвратить изменение фактических параметров при исполнении процедуры или функции. Для этого нужно объявить параметр как подлежащий передаче по значению (ByVal).
Пример: передача параметра по значению и по ссылке Задача: проанализировать две программы, представленные ниже, и ответить на вопрос, какая из них является правильной.
Дата добавления: 2014-12-29; Просмотров: 334; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |