При наборе текста исходного кода программисты достаточно часто сталкиваются с необходимостью многократно выполнять одни и те же действия на одном или нескольких этапах обработки данных. При тщательной проверке алгоритмов такого рода легко заметить фрагменты кода, одинаковые по выполняемым действиям и различающиеся только значениями исходных данных. В этом случае повторяющаяся группа операторов оформляется в виде самостоятельной программной единицы - подпрограммы - и записывается только один раз, а в соответствующих местах программы обеспечивается лишь обращение к ней.
В языке Pascal подпрограммы реализуются в виде процедур и функций, которые вводятся в программу с помощью своего описания.
Все процедуры и функции в программе должны иметь уникальные имена. Исключение составляют так называемые перегружаемые методы, специально отмеченные директивой overload.
Процедуры
Процедура представляет собой набор сгруппированных вместе операторов, используемых под одним именем. Процедура состоит из заголовка и тела процедуры. Заголовок начинается ключевым словом procedure, затем следуют имя процедуры и при необходимости заключенный в круглые скобки список параметров. Также при необходимости объявление процедуры может завершаться специальными директивами.
После вызова процедуры последовательно выполняются операторы, заключенные между ключевыми словами begin..end. Ключевому слову begin могут предшествовать блоки объявления типов, констант и переменных (type, const и var). Переменные, объявленные внутри тела процедуры, называются локальными. Такое название связано с тем, что жизненный цикл этой переменной начинается с вызовом процедуры и заканчивается в момент ее завершения. Локальные переменные недоступны извне процедуры.
procedure имя_процедуры (параметр1, параметрN); директивы;
локальные_объявления
begin
<операторы> end;
Рассмотрим следующий пример. Процедура SquareRectangle() вычисляет площадь прямоугольника, а затем выводит на экран результат.
procedure SquareRectangle(X, Y : integer); begin
Square:=X*Y;
WriteLn(Square);
end;
Для того чтобы вызвать эту процедуру из программы, необходимо указать имя процедуры и передать ее параметры (соблюдая их последовательность):
SquareRectangle(100, 200);
®Язык Object Pascal допускает любой уровень вложенности процедур и функций. Иными словами, процедура, описанная в главной программе, в свою очередь может включать внутренние процедуры и функции.