В языке Паскаль предусмотренная возможность объединения любой последовательности операторов в самостоятельную программу, которая называется процедурой.
В простейшем случае процедура может являться лишь поименованной группой операторов, например:
procedure aa;
begin
d:=x; x:=y; y:=d
end;
В такой процедуре без параметров и без объявления переменных все имена предполагаются известными программе, объявленными ранее. Эти переменные называются глобальными. Переменная может быть локализована, т.е. объявлена в процедуре.
Процедура с параметрами перечисляет переменные - параметры, которые будут использоваться при выполнении процедуры. Такие параметры указываются в круглых скобках после имени процедуры, например:
procedure tr(a,b,c:real; var y:real);
Указанные в скобках параметры называются формальными. Если перед именем формального параметра стоит слово var, то такой параметр есть параметр-переменная, в противном случае - значение.
Для обращения к процедуре достаточно указать ее имя и список фактических параметров в круглых скобках, например:
tr(p1, p2, p3, rez);
При обращении требуется, чтобы фактические параметры p1,p2, p3,rez имели тот же тип, что и формальные параметры a,b,c,y.В нашем случае тип real. Фактический параметр, соответствующий параметру-переменной, может быть только переменной. Фактический параметр, соответствующий параметру-значению может быть любым выражением соответствующего типа, в частности константой. Например, обратиться к tr можно так:
tr (2.5,sqr(x)+4,a+b*x,r);
Результатом выполнения процедуры может быть значение, помещенное в переменную некоторого типа. Если такая переменная введена в список формальных параметров, то она должна быть обязательно параметром - переменной.
Процедура имеет ту же структуру, что и главная программа, т.е. состоит из заголовка и блока. Блок содержит разделы label, const, type, var и выполняемую часть (от begin до end;).
Процедура помещается в главной программе после раздела var и перед begin программы. В любой процедуре может содержаться обращение к ранее описанной процедуре.