Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Пользовательские процедуры



Cоздать собственную процедуру, доступную в данной форме можно двумя способами:

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

2. С помощью команды Tools ®Add Procedure…

Структура пользовательской процедуры:

Sub Имя процедуры ([Список формальных параметров]) Описание локальных переменных Операторы тела процедуры End Sub

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

Обращение к процедуре осуществляется в основной программе путем задания имени процедуры и списка фактических параметров без круглых скобок.

Имя процедуры [Cписок фактических параметров]

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

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

Private Sub A() Cls Font.size=30 FontItalic=true End Sub Private Sub Command1_Click() A Print “Пример процедуры” End Sub

Пример 2. Процедура позволяет накоплять сумму.

Private Sub Sum(Chislo) Static S As Integer S=S+ Chislo End Sub

Если бы в данном примере переменная S не была объявлена с помощью Static, то ее значение каждый раз бы обнулялось.

Пример 3.

Вычислить площадь четырехгранника, если даны длины его ребер.   Вычисление площади треугольника по формуле Герона оформить с помощью процедуры.
'Описание процедуры вычисления площади треугольника по формуле ГерронаPrivate Sub Sq(x,y,z,s) 'Имя процедуры – Sq. 'Формальные параметры: входные x,y,z, 'Выходной параметр s Dim p As Single p=(x+y+z)/2 'Вычисление полупериметра s=Sqr(p*(p-x)*(p-y)*(p-z)) 'Вычисление площади End Sub Private Sub Command1_Click() Dim a,b,c,d,e,f,s,s1,s2,s3,s4 As Single 'Задание длин ребер четырехгранника} a=Val(Text1.Text) b=Val(Text2.Text) c=Val(Text3.Text) d=Val(Text4.Text) e=Val(Text5.Text) f=Val(Text6.Text) 'Обращение к процедуре Sq для вычисления площади каждой грани ' с перечислением фактических параметров Sq a,b,c,s1 Sq c,d,e,s2 Sq b,e,f,s3 Sq a,f,d,s4 s=s1+s2+s3+s4 'Вычисление площади поверхности четырехгранника Text7.Text=Str(s) End Sub  
     

Способ передачи аргументов

В VB аргументы могут передаваться двумя способами: либо как ссылки (ByRef), либо как значения (ByVal).

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

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

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





Дата публикования: 2014-12-28; Прочитано: 128 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...