Локальные и глобальные переменные

Переменные, описанные в разделе описаний подпрограммы, называются ее локальными переменными. Переменные же, описанные вне подпрограммы, называются глобальными по отношению к ней.

Параметры подпрограммы считаются ее локальными переменными.

Если имя локальной переменной совпадает с именем глобальной переменной, то локальная переменная скрывает глобальную, так что к глобальной переменной нельзя обратиться внутри подпрограммы. Например:

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