Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
ОБЩИЕ ПРОЦЕДУРЫ
Общая процедура - это обособленная часть программы, выполняющая действие, которое является типичным для данной программы. Общая процедура может быть реализована в виде подпрограммы (процедуры типа Sub) или в виде функции (процедуры типа Function). Отличие общих процедур от процедур обработки событий состоит в том, что они начинают работать не после какого–либо события, а после обращения к ним из какого–либо места программы. Кроме того, сам программист придумывает им названия, составляет алгоритмы и записывает коды для них.
ПОДПРОГРАММЫ–ПРОЦЕДУРЫ
Подпрограммой называется программа, имеющая собственное название, пользуясь которым, ее можно исполнить из другой программы. Ее название оформляется в самом начале подпрограммы строкой
Private/Public Sub <НАЗВАНИЕ ПРОГРАММЫ>
и заканчивается строкой End Sub. Подпрограммы Private доступны только в пределах формы, в кодовом окне элемента которой размещены, подпрограммы Public размещаются в модуле и доступны из любого места проекта. Если подпрограмме для ее работы должны передаваться какие–либо значения переменных, то в названии подпрограммы в скобках должны указываться наименования переменных того же типа, что и эти значения. При составлении подпрограммы следует использовать эти наименования. При выполнении же подпрограммы каждый раз вместо них будут автоматически подставляться значения, переданные при обращении к подпрограмме. Пример названия подпрограммы:
Public Sub summir(a As Integer, b As String) .
Обращение к подпрограмме производится любым из следующих способов, показанных на примере:
summir 5, "Общий итог"
Call summir(5, "Общий итог")
Кстати, код любого элемента управления также оформлен как подпрограмма, поэтому к нему можно обратиться не только щелкнув мышью, но и программным путем.
Создание подпрограммы–процедуры и обращение к ней из основной программы проследим на примере решения такой задачи:
Задача 1. Составить проект программы, в котором по заданным координатам вершин выпуклого пятиугольника определяется его площадь.
Программный код для решения задачи разделим на две части. В подпрограмму вынесем вычисление площади одного треугольника, а в основной программе выполним ввод исходных данных и вычисление площади пятиугольника.
Программный код подпрограммы–процедуры можно представить в таком виде:
|
Программный код основной программы:
|
ПОДПРОГРАММЫ–ФУНКЦИИ
Подпрограмма–функция отличается от подпрограммы–процедуры тем, что она не вызывается из какого либо места программы, а включается в состав выражения, значение которого как–то используется в каком–либо месте программы. Подпрограмма–функция также имеет свое название. Ее название оформляется в самом начале подпрограммы–функции строкой
[Private/Public] Function <Название функции> As <Тип функции>
и заканчивается строкой End Function. Назначение служебных слов Private и Public такое же, как для подпрограмм–процедур. Если подпрограмме–функции для ее работы должны передаваться какие–либо значения переменных, то в названии подпрограммы–функции в скобках должны указываться наименования переменных того же типа, что и эти значения.
Подпрограмма–функция возвращает одно значение, которое присваивается названию функции в теле подпрограммы–функции, поэтому мы обязательно должны указать тип функции - тип возвращаемого значения. Обращение к подпрограмме–функции производится написанием имени подпрограммы–функции с указанием в скобках имен переменных того же типа, что и в подпрограмме–функции.
Продемонстрируем использование подпрограмм–функций на примере решения такой задачи.
Задача 2. Составить проект программы, в котором определяется: счастливый ли троллейбусный билет вы приобрели?
Номера троллейбусных билетов представляют собой шестизначные числа. Счастливым считается тот билет, у которого сумма первых трех цифр равна сумме трех последних.
Разобьем решение задачи на две составные части: в основной будем осуществлять ввод исходного числа, его проверку на принадлежность диапазону шестизначных чисел и вывод ответа, а во второй в подпрограмме–функции luck будем определять, является ли число счастливым, а в подпрограмме–функции s находить сумму трех цифр числа.
Программный код подпрограммы–функции luck:
|
Программный код подпрограммы–функции s:
|
Программный код основной процедуры:
|
Примечание. В VB есть два способа передачи аргументов в процедуру (общую или событийную) - по значению (ByVal) или по ссылке (ByRef). Различие между ними состоит в том, что при передаче аргумента по ссылке процедура может изменить это значение во время работы с ним, а при передаче по значению - нет.
Следует отметить, что приведенные выше примеры демонстрируют использование подпрограмм-процедур и функций с передачей параметров по умолчанию “по значению”.
Рассмотрим, как происходит передача значений по значению (ByVal) или по ссылке (ByRef), решая следующую простейшую задачу.
Задача 3. Ввести в основной программе два числа, в подпрограмме – процедуре возвести эти числа в квадрат, передав первое число по значению, второе по ссылке, и в основной программе вывести числа до обращения к процедуре и после обращения к ней.
Программный код подпрограммы–процедуры kv, расположенной в Области General формы:
|

Программный код основной процедуры:
|
Результат работы программы представлен на рис. 1.

Рис. 1. Результат работы программы задачи 3
РЕКУРСИЯ
Рекурсия - это такой способ организации вычислительного процесса, при котором подпрограмма в ходе выполнения составляющих ее операторов обращается сама к себе. Можно создавать рекурсивные подпрограммы–процедуры и подпрограммы–функции.
Использование рекурсивной функции и рекурсивной процедуры рассмотрим, решая такую задачу.
Задача 1: Вычислить N! (вычисление факториала).
Здесь N – натуральное число, введенное с клавиатуры.
T – значение N!.
Решение задачи с помощью рекурсивной функции можно выполнить с помощью такого программного кода.
Программный код рекурсивной подпрограммы–функции fak, расположенной в Области General формы:
|
Программный код основной процедуры:
|
Решение этой же задачи с помощью рекурсивной процедуры можно выполнить с помощью такого программного кода.
Программный код рекурсивной подпрограммы–процедуры fak, расположенной в Области General формы:
|
Программный код основной процедуры:
|


