Процедура – це незалежна іменована частина програми, яку можна викликати з будь-якого місця програми для виконання певних дій. Щоб процедури працювали їх треба описати в розділі описів і викликати в розділі операторів. Опис процедури розміщують після описання змінних перед begin основної програми. Структура тіла процедури аналогічна структурі програми, тобто містить опис міток, констант, типів, змінних, а також розділ операторів:
procedure <ім’я>;
const…;
type…;
var…;
beqin
<оператори>
end;
Розглянемо як приклад процедуру обчислення дискримінанта квадратного рівняння:
Procedure Discr (A,B,D: real);
Beqin
D:=B*B-4*A*C;
end;
До процедури звертаються з розділу команд основної програми, або іншої підпрограми. Процедуру викликають за допомогою команди Виклику:
<Назва процедури> (<Список фактичних параметрів>);
Параметри, які записують у команді виклику називаються фактичними, а параметри, які записуються в описі процедури називаються формальними. Між фактичними і формальними параметрами має бути відповідність за кількістю і типами, імена можуть бути різними.
Змінні, описані в розділі описів основної програми називаються глобальними. Вони діють у всій програмі включаючи підпрограми. Змінні описані в розділі описів окремої процедури називаються локальними. Вони діють тільки в межах даної процедури. Складемо програму обчислення виразів F1=sh2x+chx і F2=shx+sh2x з використанням процедури розрахунку гіперболічних функцій:
proqram Hyperbolic;
var
X: real;
Cx, Sx, F1, F2: real;
procedure Hpb (Y: real; var Ch:real);
begin
Y:=Exp (Y);
Ch:=(Y+1/Y) /2;
Ch:=(Y)