Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Передача параметров с помощью ключевых слов ByVal и ByRef




Чтобы указать, что параметр передается процедуре по значению (by value) или по ссылке (by reference), в объявлении процедуры или функции перед параметрами можно размещать ключевые слова ByVal или ByRef.

При вызове по значению процедуре передается копия параметра (значение констан­ты или переменной). Процедура может изменять значение переданной ко­пии, но при этом изменения не отражаются на значении оригинальной кон­станты или переменной.

При вызове по ссылке процедуре передается адрес параметра в памяти (адрес константы или переменной). При передаче параметра по ссылке вызванная функция или процедура получает возможность изменить само значение параметра. Если для параметра не указано ни одно из ключевых слов ByVal или ByRef, VBScript по умолчанию использует ByRef.

Иногда бывает необходимо предотвратить изменение фактических параметров при исполнении процедуры или функции. Для этого нужно объявить параметр как подлежащий передаче по значению (ByVal).

Пример: передача параметра по значению и по ссылке

Задача: проанализировать две программы, представленные ниже, и ответить на вопрос, какая из них является правильной.

Текст программы 1: option explicit dim a Sub nalog(ByVal a) a=a-(13*a)/100 MsgBox "Зарплата с вычетом”&_ “налога:"&a End Sub a=InputBox ("Введите вашу зарплату без”&_ “вычета налога: ","Окно ввода: ") nalog a MsgBox "Зарплата без вычета налога: "&a   Текст программы 2: option explicit dim a Sub nalog(ByRef a) a=a-(13*a)/100 MsgBox "Зарплата с вычетом”&_ “налога:"&a End Sub a=InputBox ("Введите вашу зарплату без”&_ “вычета налога: ","Окно ввода: ") nalog a MsgBox "Зарплата без вычета налога: "&a

Функции

Функция - это процедура, возвращающая результат некоторого типа. Поэтому, её надо применять, когда вызывающая программа должна вернуть только один результат. Оформляется аналогично процедуре. Отличительные особенности функции: она имеет только один результат выполнения. Результат обозначается именем функции и возвращается (передается) в основную программу. Функция объявляется следующим образом:

 

Function MyFunc (Param1, Param2, Param3 … ParamN)

[Operator1: Operator2]

[Operator3]

MyFunc =result

[OperatorN]

End Function

 

Function и End Function - это служебные слова, означающие начало и конец объявления процедуры.

MyFunc - это имя создаваемой функции

Param1, Param2, Param3 … ParamN - формальные параметры

Operator1: Operator2

Operator3 - раздел операторов, используемых в процедуре.

OperatorN

MyFunc =result – обязательный оператор (в теле функции её возвращаемое значение обязательно должно быть присвоено переменной с именем функции)

 

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

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

 

1. без присваивания: MyFunc Param1, Param2, Param3 … ParamN

2. с присваиванием: x=MyFunc (Param1, Param2, Param3 … ParamN)

MyFunc - имя функции

Param1, Param2, Param3 … ParamN - фактические параметры.

 

Замечание: внутри тела процедуры или функции можно объявлять новые переменные при помощи ключевого слова Dim.

Пример использования функции в программе (без параметров):

Задача: вывести на экран значение выражения: (7+8)*100/5, используя функцию summa

Текст программы:

Function summa

MsgBox ((7+8)*100/5)

End Function

summa

 

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

Пример: передача параметра по значению.

Задача: вывести на экран зарплату сотрудника с вычетом налога (13%) и без вычета.

Текст программы:

option explicit

dim a

Function nalog(ByVal a) ‘параметр подлежит передаче по значению

a=a-(13*a)/100 ‘вычисление зарплаты с вычетом налога

MsgBox "Зарплата с вычетом налога:"&a

nalog=a

End Function

a=InputBox ("Введите вашу зарплату без вычета налога: ","Окно ввода: ")

nalog a ‘вызов функции nalog

 

MsgBox "Зарплата без вычета налога: "&a






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных