Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

37) Процедура Sub..End Sub. Заголовок процедуры. Формальные и фактические параметры. Обращение к процедуре. Порядок выполнения.




37) Процедура Sub... End Sub. Заголовок процедуры. Формальные и фактические параметры. Обращение к процедуре. Порядок выполнения.

Процедура, создаваемая пользователем, имеет следующий формат:

Sub< имя> (< перем1> as< тип1> , < перем2> as< тип2>, …, < перемN> as< типN> )

< тело процедуры>

End Sub

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

 

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

Private Sub Button1_Click(ByVal sender As System. Object, ByVal e As System. EventArgs) Handles Button1. Click ………………………………………….

Call < имя> (< перем1>, < перем2>, …, < перемN> ) ………………………………………….

End Sub

 

Формальными параметрами называются переменные описанные в заголовке программы и используемые только внутри процедуры (функции). Формальные параметры указывают, с какими параметрами следует обращаться к этой процедуре (функции), т. е. их количество, последовательность, тип. Они задаются в заголовке процедуры (функции) в виде списка параметров, разбитого на группы (секции) однотипных параметров, разделенных ‘, ’. Порядок следования групп (секций) произвольный. Количество параметров может быть любым. Для каждого формального параметра следует указать имя и тип. Имена параметров могут быть любыми, они могут совпадать с глобальными именами программы. Необходимо лишь помнить, что в этом случае параметр основной программы с таким именем становится недоступным для непосредственного использования подпрограммой. Но формальные имена не могут совпадать с локальными переменными!!!!, т. к. они располагаются в одном стековом сегменте памяти.

 

Фактическими параметрами называются параметры, которые задаются при вызове процедуры (функции).

Процедура вызывается по имени:

< имя процедуры> {(фактические параметры)};

Правила задания фактических параметров:

· Фактические параметры должны совпадать с формальными по количеству, по порядку следования, по типу.

· Если формальный параметр – параметр-переменная, то фактический параметр при вызове процедуры задается только идентификатором (вызов по ссылке).

· Если формальный параметр – параметр- значение(вызов по значению), то фактический параметр при вызове процедуры задается:

идентификатором

константой

выражением

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

 

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

 

38) Процедура-функция. Описание. Формальные и фактические параметры. Обращение к процедуре-функции. Порядок выполнения.

Процедура-функция, в отличие от процедуры общего вида Sub…End Sub имеет возвращающее значение, которое, как правило, присваивается переменной, имеющей имя данной функции:

Описание процедуры функции имеет следующий формат:

Function< имя> (< перем1> as< тип1> , < перем2> as< тип2>, …, < перемN> as< типN> ) as < тип>

< тело процедуры>

End Function

 

Вызов процедуры-функции похож на вызов стандартной математической функции.

Private Sub Button1_Click(ByVal sender As System. Object, ByVal e As System. EventArgs)_ Handles Button1. Click

……

Z=< имя> (< перем1>, < перем2>, …, < перем3> )

……

End Sub

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

Параметры, указанные в списке оператора вызова процедуры, называются фактическими параметрами.

Ключевые слова ByVal и ByRef определяют способ передачи значений параметров.

ByVal указывает, что аргумент передается по значению.

ByRef указывает, что аргумент передается по ссылке.

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

Параметры, значения которых передаются из процедуры в программу (другую процедуру), называются параметрами-значениями.

Значения параметров-переменных, передаваемых по способу ByVal, не могут изменяться в теле процедуры во время её выполнения, то есть последние значения переменных в программе сохраняются неизменными.

Значения параметров, передаваемых по способу ByRef, изменяют значения соответствующих переменных программы.

 

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

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...