Общие процедуры. Область видимости процедур
Анимация
Для создания анимации (иллюзии движения на экране какого-либо объекта) применяется принцип смены кадров (изображений), как это делается в мультипликации. Программа, имитирующая движение должна реализовывать следующие этапы:
создание изображения на экране;
реализация временной паузы для того, чтобы глаз зафиксировал изображение;
проведение коррекции изображения.
Для регулирования скорости движения объекта используется пустой цикл: чем большее количество раз он будет выполняться, тем медленнее будет двигаться объект.
При разработке сложного алгоритма необходимо стараться выделить в нем последовательности действий, которые выполняют решение каких-либо подзадач и могут многократно вызываться из основного алгоритма ( например, необходимо нарисовать несколько одинаковых домиков разного размера или рассчитать площадь кольца). Такие алгоритмы называются вспомогательными и в процедурных языках программирования реализуются в форме подпрограмм, которые вызываются из основной программы. В Vb вспомогательные алгоритмы реализуются с помощью общих процедур. Общие процедуры создаются в тех случаях, когда в программном модуле можно выделить многократно повторяющиеся последовательности действий.
Определение процедуры
Каждой общей процедуре дается уникальное название – имя процедуры и устанавливается список входных и выходных параметров.
Список входных параметров представляет собой набор переменных, значение которых должно быть установлено до начала выполнения процедуры.
Список выходных параметров представляет собой набор переменных, значение которых должно быть установлено после окончания выполнения процедуры.
Синтаксис общей процедуры:
Sub ИмяПроцедуры(СписокПараметров)
Программный код
End Sub
Вызов общей процедуры
Запуск общих процедур реализуется путем вызова из других процедур. Общая процедура вызывается на выполнение либо с помощью оператора Call, либо по имени:
Call ИмяПроцедуры(СписокПараметров)
или
ИмяПроцедуры СписокПараметров
Область видимости процедуры
Программный модуль формы может включать несколько процедур. В VB процедуры могут быть двух типов: общие и событийные. Событийные процедуры позволяют создавать интерактивные приложения, так как дают возможность выполнять тот или иной алгоритм с помощью определенного действия (например, щелчка по кнопке Выполнить). Общая процедура начинает выполняться сама после ее вызова из другой процедуры. Общие и событийные процедуры могут быть локальными и глобальными.
Локальная процедура доступна только внутри данного программного модуля и не может быть вызвана из другого модуля. Локальная процедура задается с помощью ключевого слова Private :
Private Sub ИмяПроцедуры
Программный код
End Sub
Глобальные процедуры доступны, т.е. могут быть вызваны, из всех программных модулей проекта. Глобальная процедура задается с помощью ключевого слова Public (по умолчанию, если перед ключевым словом Sub отсутствуют ключевые слова, процедура является глобальной):
Public Sub ИмяПроцедуры
Программный код
End Sub
Задача: Определить площадь кругового кольца с заданным внешним R1 и внутренним R2 радиусами, используя подпрограмму вычисления площади круга.
Блок-схема решения задачи:
Программный код:
Dim p As Single
Dim sngr As Single
Dim sngR1 As Single
Dim sngS1 As Single
Dim sngS2 As Single
Dim sngS3 As Single
Dim sngS As Single
Private Sub krug(sngX, sngS As Single)
p = 3.1415
sngS = p * sngX ^ 2
End Sub
Private Sub cmd1_Click()
sngr = CSng(txt1.Text)
sngR1 = CSng(txt2.Text)
Call krug(sngr, sngS1)
Call krug(sngR1, sngS2)
sngS3 = sngS1 - sngS2
txt3.Text = CStr(sngS3)
End Sub
Private Sub cmd2_Click()
End
End Sub