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

End Function



В процедуре Function Fsqr() a и bявляются формальными параметрами. При обращении к процедуре Fsqr() в подпрограмме Sub PR1() переменные
x, y, z являются фактическими параметрами, совпадающими с формальными параметрами a и b по типу, количеству, порядку следования.

8.1.2. Создание процедуры-подпрограммы Sub

Синтаксис процедуры-подпрограммы Sub:

Sub Имя_процедуры ([аргументы])

операторы процедуры

End Sub

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

Для того чтобы вызвать процедуру типа Sub,необходимо использовать оператор, представляющий собой имя вызываемой процедуры, указав список требуемых аргументов. Переда­ча переменной процедуре Sub называется передачей аргумента по ссыл­ке (по умолчании),поскольку переменная может быть модифици­рована в ходе выполнения процедуры и уже измененной возвращена
в программу.

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

Такое объявление аргументов в процедуре обеспечивает большую гибкость в программировании, так как переданную с параметром
ByVal переменную можно модифицировать в процедуре, а в программе она останется неизменной.

Параметры, передающиеся по ссылке, – это параметры, значения которых вычисляются в подпрограмме и передаются из нее в другие подпрограммы. Перед таким параметром ставится ключевое слово ByRef.

П р и м е р 2. Вычислить: ,

где s1 и k1 – сумма и количество нечетных чисел в диапазоне от 10 до 79;

s2 и k2 – сумма и количество нечетных чисел в диапазоне от –5 до –38.

Программный код

Основная подпрограмма:  
Option Explicit  
Sub PR2()  
Dim s1 As Single, s2 As Single, k1 As Single, k2 As Single Dim s As Single, n As Integer, m As Integer, k As Integer Dim f As Single, l As Integer
n = Val(InputBox(“n=”)) ‘Начало диапазона
m = Val(InputBox(«m=»)) ‘Конец диапазона
l = Val(InputBox(«l=»)) ‘Шаг изменения
Call pg (n, m, l, s, k) ‘Обращение к подпрограмме с входными фактическими параметрами: n – начало диапазона, m – конец диапазона, l – шаг изменения; параметры, передаваемые из подпрограммы pg: s – сумма нечетных чисел в диапазоне, k – количество нечетных чисел в диапазоне.
s1 = s: k1 = k ‘Сохранение результатов работы подпрограммы pg (значений s и k)
n = – 5: m = – 38: l = –1 ‘Ввод шага и нового диапазона.
Call pg (n, m, l, s, k) ‘Обращение к подпрограмме с новыми данными.
s2 = s: k2 = k ‘Сохранение результатов работы подпрог-раммы pg (значений s и k).
f = s1 * s2 / (k2 – k1) + 35.6 ‘Расчет окончательного значения.
MsgBox (“f=” & f)  
End Sub  
Вызываемая подпрограмма:  
Sub pg (ByVal n1 As Integer, ByVal m1 As Integer, ByVal l1 As Integer, ByRef ss As Single, ByRef kk As Integer) ‘n1, m1, l1 – формальные парамет- ры, передающиеся по значению; ss, kk – параметры, передающиеся по ссылке
Dim I As Integer ss = 0: kk = 0 For I = n1 To m1 Step l1 If I Mod 2 <> 0 Then ss = ss + I: kk = kk + 1 Next i End Sub




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



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