Студопедия
rus | ua | other

Home Random lecture






Процедуры


Date: 2015-10-07; view: 432.


Вызов

Безусловный переход

Условная инструкция Select Case: выбор ветви из набора условий

Использование блока Select Case позволяет принять решение при наличии нескольких условий; синтаксис:

Select Case переменная_выбораCase 1 значение 1инструкция 1Case 2 значение 2инструкция 2.' Case Else выполняется, если не выполнено ни одно из' предыдущих условий Case Else инструкция kEnd Select

Синтаксис Select Case разрешает использование условий < > =, при этом используется ключевое слово Is, пример:

Select Case peopleCase Is < 100000инструкция 1Case Is < 500000инструкция 2End Select

В качестве значения для Case можно указывать не одно значение, а несколько через запятую. Пример использования:

Dim A As SingleA = Val(Text1.Text)Select Case ACase Is < 0: lbl1.Caption = "<0"Case Is = 0: lbl1.Caption = "0"Case Else: lbl1.Caption = ">0"End Select

Инструкция безусловного перехода - это GoTo. Безусловный переход выполняется без анализа условий. Часто используется совместно с инструкцией On Error в обработчиках ошибок, см. ниже, праkтическая работа 50.

Вызов Call в процедуре временно передаeт управление другой процедуре, после завершения которой управление снова передаeтся той процедуре, из которой последовал вызов. Вызов процедуры может выглядеть так: Call имя_вызываемой_процедуры

при этом инструкция Call может отсутствовать. Часто требуется передавать процедуре значения параметров, необходимых для еe выполнения.

Примеры:

' процедура Sub Peter() вызывает процедуру Sub FrZeit(Zeit), ' передавая ей значение 7 для еe аргумента; после ' завершения процедуры Sub FrZeit(Zeit) управление '' возвращается к Sub Peter(). Далее Sub Peter() вызывает ' процедуру Sub Message(); после щелчка пользователя' на кнопке окна, выводимого функцией MsgBox, управление' возвращается к Sub Peter(), которая завершается.Sub Peter()FrZeit 7MessageEnd Sub Sub FrZeit(zeit)For i = 1 To zeit.NextEnd Sub Sub Message()MsgBox "Es ist zu frueh" ' слишком раноEnd Sub ' два способа вызова процедуры с несколькими аргументамиSub Paul()KlPause 15, 25Call KlPause(11, 30)End Sub Sub KlPause(zeit As Integer, Dauer As Integer)If zeit >= 12 ThenDauer = Dauer*2End IfEnd Sub

Процедура есть последовательность инструкций, объединeнных для выполнения. Различают процедуры обработки событий и процедуры общего назначения: процедуры Sub, Function, Property, Event.

Для создания процедуры общего назначения нужно использовать область окна кода ( General ) ( Declarations ) менюИнструменты Добавить процедуру в поле выведенного диалогового окна ввести имя процедуры в поле Тип сделать щелчок на Sub сделать выбор в поле Район ОК выводятся инструкции описания процедур.

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

Вызов процедуры из другой процедуры можно выполнить одним из следующих способов:

· использование имени процедуры, пример:

· If kkKK > 70 Then

· Proc1

End If

· использование вызова Call, пример:

Call Proc1

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

Proc1 44, 56 ' два числа - это передаваемые аргументы,

или: Call Proc1(44, 56)

Список аргументов процедуры, при необходимости с указанием типа, размещают в скобках в строке имени процедуры, при этом в процедурах обработки событий список аргументов определeн событием и не может быть изменeн пользователем.

При программировании необходимо контролировать передачу аргументов.

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

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

Инструкция в процедуре Sub/Function может передавать значения вызываемой процедуре, при этом могут использоваться именованные аргументы, которые можно перечислять в произвольном порядке. Именованный аргумент состоит из:

· имени аргумента,

· символов : = ,

· значения аргумента, пример:

· Private Sub Command1_Click()

· Dim x1 As Variant

· MsgBox Title:="отпуск", Prompt:="Едем в отпуск в Испанию"

· или

· x1 = MsgBox(Title:="отпуск", _

· Prompt:=" Едем в отпуск в Испанию", Buttons:=4)

End Sub


<== previous lecture | next lecture ==>
B. Цикл Do : Loop; расположение условий в начале, конце | Практическая работа 11. Создание функции
lektsiopedia.org - 2013 год. | Page generation: 0.163 s.