Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_VB.doc
Скачиваний:
7
Добавлен:
24.12.2018
Размер:
851.97 Кб
Скачать

Процедуры и функции

Sub-процедуры

Процедуры – это, как правило, маленькие подпрограммы, которые можно вызывать из других мест программы.

Событийные процедуры

Обработчики событий в Visual Basic реализуются как процедуры. Такие процедуры в VB всегда привязаны как к совершаемому событию, так и к объекту, над которым это событие совершается. Это отражается в том, что имя процедуры, которое в этом случае формирует VB, складывается из имени объекта и названия события. Фактически весь программный код состоит из некоторого набора таких процедур-событий.

Private Sub Commandl_Click()

Тело процедуры

end Sub

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

Процедуры пользователя

Можно создавать и собственные процедуры не связанные с объектами на форме, если в вашем приложении есть часто повторяющаяся последовательность кодов, - это существенно сократит время набора команды и упростит алгоритм. Для создания собственной процедуры необходимо в общей части кода программы (General/Declaration) ввести Sub, затем задать имя и нажать клавишу Enter. В полученной конструкции набрать свой код программы.

Sub имя()

Тело процедуры

End Sub

Такие процедуры называют еще пользовательскими или главными процедурами.

Вызов процедур

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

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

Call имя процедуры

или просто записав ее имя, перечислив ее фактические параметры через запятую без скобок.

Примеры.

1) Вычислить сумму где f={5;-3;1;2}.

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

Sub proizv(k,z,p)

Dim i as integer

p=1

For i=1 to k

p=p*z(i)

Next

End sub

Здесь k- количество сомножителей, z- имя массива, элементы которого перемножаются, p – параметр, в котором будет храниться значение вычисленного произведения.

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

Private Sub Command1_click()

Dim F(4), F1(4), S,p,p1 as single

Dim i as integer

For i=1 to 4

F(i)=val(inputbox(“Введите f”))

F1(i)=sin(f(i))

Next

Proizv 4,f,p1

Proizv 3,f1,p2

S=p1+p2

Print “Сумма произведений равна”; s

End sub

Здесь после ввода в память массивов f и f1 дважды вызывается процедура proizv. При этом первый раз в нее передаются фактические значения для формальных параметров k и z, соответственно равны 4 и f, а результат сохраняется как значение переменной p1. Во второй раз – значения параметров k и z, соответственно равны 3 и f1, а результат сохраняется как значение переменной p2.

  1. Процедура с нулевым списком параметров должна очистить форму и установить размер выводимых на форму символов в 30 пунктов и тип символов курсив.

Процедура

Обращение к процедуре

Обращение к процедуре

Sub a1()

Cls

Font.size=30

Fontitalic=true

End sub

Private Sub Form_Load()

A1

Print “Пример процедуры”

End sub

Private sub form_click()

A1

Print “Привет”

End sub

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