Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_k_biletam_po_informatike.docx
Скачиваний:
42
Добавлен:
31.03.2015
Размер:
94.61 Кб
Скачать

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

Для того чтобы подпрограмма или функция была доступна во всех модулях и формах

проекта, она должна быть объявлена в модуле с ключевым словом Public.

Подпрограмма или функция, объявленная в форме, доступна процедурам только этой

формы.

В список аргументов подпрограммы рекомендуется включать все входные и все выходные

для этой подпрограммы данные.

В список аргументов функции рекомендуется включать все входные для этой функции

данные. Ее единственный результат возвращается в вызывающую программу через имя

функции.

Должно выполняться следующее соответствие между списком аргументов при

объявлении и списком значений аргументов при обращении:

Аргумент при объявлении

Значение аргумента при обращении

ByVal переменная

Выражение (в частном случае:

константа, переменная, элемент массива,

обращение к функции)

ByRef переменная

Переменная или элемент массива

Массив

Массив

Форма

Форма

Элемент управления

Элемент управления

Если никакое значение не присвоено имени функции, то имя функции принимает

значение по умолчанию: числовая функция принимает значение 0, функция, объявленная

как String, принимает значение пустой строки нулевой длины (“”), функция,

объявленная как Object принимает значение Empty (значение, которое принимает имя

функции, называют возвращаемым значением функции).

Функции в VB.NET могут возвращать не только простую переменную, но и массив.

В этом случае при объявлении типа имени функции после указания ее типа добавляются

скобки:

Function Zentr(ByVal x() As Double) As Double ()

В этом примере функция принимает массив и возвращает массив. Для передачи

через имя функции возвращаемого массива можно применить инструкцию:

Return(ИмяВозвращаемогоМассива)

20)Синтаксис аргументов процедур.

21) Связь аргументов по ссылке, связь аргументов по значению.

Передача значений аргументов при вызове подпрограммы или функции по ссылке

(при этом перед аргументом стоит зарезервированное слово ByRef) означает, что в

процедуру из вызывающей процедуры передается адрес ячейки памяти, по которому

хранится значение аргумента. В этом случае вызываемая процедура использует одну и ту

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

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

вызываемой процедуре означает изменение значения аргумента и в вызывающей

процедуре.

Существо такого способа связи состоит в том,

что аргумент процедуры связан с той же физической ячейкой памяти, что и значение

аргумента в вызывающей процедуре. Следствием этого является ограничение – значением

аргумента не может быть выражение.

Передача значений аргументов по значению при вызове процедуры означает, что

для аргумента выделяется дополнительная ячейка или область памяти, в которую

записывается копия значения передаваемого аргумента В списке аргументов

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

зарезервированное слово ByVal. Для копии требуется дополнительная память. Зато

значение аргумента в вызывающей программе может быть выражением. Изменения

аргумента в вызываемой процедуре не ведут к изменению значения аргумента в

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

внутри вызываемой процедуры и нет необходимости передавать измененные данные

обратно в вызывающую процедуру.

Вместе с тем передача по значению (выделение дополнительной памяти) приводит

к неэффективному использованию памяти. В связи с этим, для строк символов и массивов

нецелесообразно использовать передачу по значению.

22) Необязательные аргументы процедур.(неполный)

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

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

  • Значение по умолчанию для необязательного параметра следует задавать в виде константного выражения.

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

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

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

Пример.

sub name(argument 1, , , argument 4)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]