Процедуры служат для задания последовательности действий, направленных на изменение внешней по отношению к ним программной обстановки. Примерами такого изменения являются синтаксис значений новых переменных, запись информации во внешний файл и т.п. Вызов процедуры осуществляется указанием её имени в том месте программы, где предполагается выполнение кода, указанного в процедуре. Синтаксис объявления процедуры:
Sub <Наименование>[(<формальные параметры>)];
Begin
End Sub <Наименование>;
Функции служат, прежде всего, для определения алгоритма вычисления некоторого значения. В этом отношении функции подобны выражениям, которые также вычисляют значение. Функция обязательно должна возвращать какое-либо значение. Для этого необходимо использовать оператор Return с параметром-результатом данной функции. В теле процедуры оператор Return может быть использован без параметров для выхода из неё. Синтаксис объявления функции:
Function <Наименование>[(<формальные параметры>)]:
<тип значения>
Begin
Return <значение>
End Function <Наименование>;
Все константы, переменные, процедуры/функции, описанные в теле процедуры или функции, являются локальными для неё.
В добавление к локально определенным объектам и формальным параметрам, объекты, определенные во внешнем для процедурыфункции блоке, также видны внутри тела, за исключением тех объектов, которые имеют те же идентификаторы, что и локальные объекты и параметры процедуры/функции.
Использование идентификатора процедуры/функции внутри её тела приведет к её рекурсивному вызову.
Предварительное описание процедур/функций отсутствует. Любая процедура/функция может быть вызвана, если её описание находится в текущей блоке кода, или в одном из объемлющих блоков кода.
Sub Main;
Sub SimpleSub(a, b: Integer; var c: Integer);
Begin // Начало текста процедуры
c := a + b;
End Sub SimpleSub; //
Конец текста процедуры
Var
a: Integer; // Объявление переменных для процедуры Main
Begin
SimpleSub(1, 3, a); //
Вызов процедуры
Debug.WriteLine(a); // Вывод результата, полученного в переменной a
End Sub Main;
Sub Main;
Function SimpleFunc(a, b: Integer): Double;
Var // Объявление переменных для функции
c: Double;
Begin // Начало текста функции
c := (a + b) / 2;
Return c; // Результат, возвращаемый функцией
End Function SimpleFunc; // Конец текста функции
Var // Объявление переменных для процедуры Main
c: Double;
Begin
c := SimpleFunc(4, 5); // Использование функции
End Sub Main;
См. также:
Руководство по языку Fore | Формальные параметры | Классы и объекты | Интерфейсы