русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Использование параметров


Дата добавления: 2015-06-12; просмотров: 847; Нарушение авторских прав


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

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

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

Позиционные аргументы при вызове процедуры задаются в строго определенном порядке (этот порядок соответствует порядку соответствующих формальных параметров, заданных в списке при описании процедуры), их значения разделяются запятыми. Если значение какого-либо аргумента при обращении к процедуре не задается (это допускается, когда аргумент является необязательным), вместо него ставится запятая, если только пропущенный параметр не является последним в списке. Например:

Answer = InputBox(“Введите имя:”, “Кто Вы?”, ,100, 100)

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



Именованные аргументы позволяют указывать при вызове процедуры значения в произвольном порядке: соответствие между формальными и фактическими параметрами задается по имени. Ниже приведен пример обращения к процедуре Answer, где соответствие между формальными параметрами и передаваемыми в процедуру аргументами устанавливается по имени (символ подчеркивания в конце строки означает, что в следующей строке содержится продолжение оператора):

Answer = InputBox (Prompt := “Введите имя:”, _
Title := “Кто Вы?”, _
Xpos :=100, _
Ypos :=100)

Такой способ передачи аргумента является более информативным при чтении текста программы.

Для передачи аргументов в процедуру существует два способа: передача параметров по ссылке и по значению.

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

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

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

Если включить ключевое слово ByVal в описание процедуры, то аргумент будет передан по значению. Аргументы, переданные по значению, занимают от 2 до 16 байт на процедуру, в зависимости от типа данных аргументов. Типы данных большего размера требуют на передачу немного больше времени. По этой причине обычно не следует передавать по значению, например, строки.

При описании параметров в процедуре может быть использовано ключевое слово Optional, которое применяется для обозначения тех аргументов, которые не являются обязательными. Если какой-либо параметр не является обязательным, то и все аргументы, следующие за ним в списке формальных параметров, также будут необязательными. Все необязательные параметры имеют тип Variant. Ключевое слово Optional записывается перед именем параметра и описанием способа его передачи.

Ключевое слово ParamArray используется для принятия в процедуре произвольного числа аргументов и упаковки их в массив переменных типа Variant. Такое описание можно использовать только для последнего параметра в списке. Более детальную информацию можно получить в справочном руководстве VBA.

В программах на языке VBA используется несколько видов процедур: подпрограммы, функции, свойства. Процедуры реализуют обработку событий. Более подробно средства создания и вызова процедур рассматриваются ниже.



<== предыдущая лекция | следующая лекция ==>
Описания в программах на языке VBA | Option Explicit


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

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