Переменные, описанные в разделе описаний подпрограммы, называются ее локальными переменными. Переменные же, описанные вне подпрограммы, называются глобальными по отношению к ней.
Параметры подпрограммы считаются ее локальными переменными.
Если имя локальной переменной совпадает с именем глобальной переменной, то локальная переменная скрывает глобальную, так что к глобальной переменной нельзя обратиться внутри подпрограммы. Например:
var i: real; procedure p; var i: integer; begin // к глобальной переменной i внутри процедуры нельзя обратиться i:=5; // присваивание локальной переменной i; ... end;