Тело процедуры или функции часто начинают с объявления локальных переменных, которые используются внутри подпрограммы. Эти объявления могут также включать константы, типы, другие подпрограммы. Область видимости локальных идентификаторов ограничена подпрограммой, где они объявлены.
Процедуры и функции иногда содержат в секции локальных объявлений другие функции и процедуры, так называемые вложенные. Например:
procedure DeleteRandomSymbol(var S: string);
function RandomNumber(S: string):integer;
var
LenString: Integer;
Begin
LenString:=Length(s);
Result:= Random(LenString) + 1;
end;
begin
Delete(S, RandomNumber(s), 1);
end;
|
Область видимости вложенных подпрограмм ограничена подпрограммой, внутри которой они объявлены. В примере функцию RandomNumber можно вызывать только внутри процедуры DeleteRandomSymbol.