|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Подпрограммы-процедуры и подпрограммы-функции
Подпрограмма – это блок кода между инструкциями Sub и End Sub или Function и End Function. Подпрограмма-процедура – это блок кода, заключенный между инструкциями Sub и End Sub. Обычно подпрограмму-процедуру принято называть процедурой. При написании программы нужно учесть одно правило: «Внутри одной процедуры не может быть описана другая процедура». Синтаксис: Sub <имя> (ByVal <параметр 1> As <тип>, ByVal <параметр 2> As <тип>, ByRef <параметр 3>, ByRef <параметр 4>) <блок кода процедуры> End Sub В скобках указываются необходимые параметры, если параметров нет, то просто пустые парные скобки. Например, напишем программу, выводящую на экран окно с приветствием: Sub Программа_Привет() MsgBox(“ПРИВЕТ”) End Sub Другой пример: Sub qwer(ByVal x As Single, y As Single, ByRef S As Single) Dim Z As Single Dim P As Single Z=Sin(2*x+3*y) P=Cos(x^2+y^3) S=Z+P End Sub Параметры, указанные в скобках заголовка процедуры, называются формальными. Параметры, указанные в списке оператора вызова процедуры, называются фактическими параметрами. Ключевые слова ByVal и ByRefопределяют способ передачи значений параметров. ByVal используется для указания, что аргумент передается по значению. ByRef – аргумент передается по ссылке. Значения фактических параметров, передаваемых по способу ByVal, не могут изменяться в теле процедуры во время ее выполнения, то есть во время выполнения процедуры в программе сохраняются неизменными последние значения переменных. Значения фактических параметров, передаваемых по способу ByRef, изменяются в случае их изменения в вызываемой процедуре. Вызов процедуры из другой процедуры можно произвести несколькими способами. Первый способ: <Имя процедуры> <Список фактических параметров>. Список должен соответствовать списку формальных параметров, заданному в заголовке процедуры, по количеству и типу. Пример: qwer x,y,s ‘оператор вызова процедуры Если требуется использовать несколько процедур с одинаковыми именами, расположенными в разных модулях, то при их вызове перед именем процедуры через точку необходимо указывать имя модуля, в котором расположена процедура. Синтаксис: <Имя модуля>.<Имя процедуры> <Список фактических параметров> Второй способ вызова процедуры реализуется с помощью инструкции Call. Синтаксис: Call <Имя процедуры> (<Список фактических параметров>) В отличие от первого способа здесь список фактических параметров заключается в скобки. Пример: Call qwer(x,y,s) Подпрограмма-функция – это блок кода, заключенный между инструкциями Function и End Function. В ней может быть реализован любой алгоритм, но при этом функция обязательно возвращает какое-нибудь значение. Значение возвращается через имя функции. Синтаксис: Function <имя функции> (ByVal <параметр> As <тип>) As <Тип> <код функции> End Function Пример: Function f(ByVal x As Single) As Single f=Sin(x^2)+Cos(3*x) End Function Оператор вызова функции состоит из имени функции и списка фактических параметров, заключенных в скобки. Пример: y=f(x) ‘Оператор вызова функции При необходимости можно указать область видимости процедуры или функции. Private Sub Программа_Привет() – закрытая процедура. Возможен вызов из модуля, где она находится, то есть подпрограмма доступна для других процедур только того модуля, в котором она описана. Public Sub Программа_Привет() –открытая процедура. Возможен вызов из любого модуля, то есть подпрограмма доступна для всех других процедур во всех модулях. Static Sub Программа_Привет() – указывает, что значения локальных переменных процедуры сохраняются в промежутках времени между вызовами этой процедуры. Private Function f(ByVal x As Single, ByVal y As Single) As Single – закрытая функция. Возможен вызов из модуля, где она находится. Public Function f(ByVal x As Single, ByVal y As Single) As Single – открытая функция. Возможен вызов из любого модуля.
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |