АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Подпрограммы-процедуры и подпрограммы-функции

Читайте также:
  1. Глава 7
  2. Заливка ячейки
  3. Тема: Работа с различными функциями

 

Подпрограмма – это блок кода между инструкциями 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 – открытая функция. Возможен вызов из любого модуля.

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 |


Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.)