Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Основное правило Паскаля




Любая подпрограмма перед использованием должна быть описана. Из В можно вызвать А, но не наоборот (использовать опережающее описание). Подпрограмме доступны только те объекты верхнего уровня, которые описаны до объявления переменных данной программы. Эти объекты являются глобальными по отношению к программе.

В Турбо Паскале допускается произвольная последовательность описания констант, переменных, типов, меток и подпрограмм. Раздел описания переменных varможет появляться много раз. Безразличен порядок следования и количество разделов var, const, type, label.

НО При определении области действия этих описаний следует помнить, что имена, описанные ниже по тексту программ, недоступны из ранее описанных подпрограмм.

Пример

var v1:...;

procedure S;

var v2:...;

…………..

end {S};

var v3:...;

…………..

Из процедуры S можно обратиться к переменным v1 и v2, но нельзя использовать v3, т.к. v3 следует в программе за описанием процедуры S.

Имена, локализованные в подпрограмме, могут совпадать с ранее объявленными глобальными переменными. Считается, что локальное имя «закрывает» глобальное, делая его недоступным.

Пример

var

i: integer;

procedure P;

var

i: integer;

begin

writeln(i);

end {P};

begin

i:=1;

P;

end.

Программа печатает всё, что угодно, так как i – не определено. Если описание var i: integer убрать, то будет напечатано значение глобальной переменной 1.

Области действия идентификаторов

 

program ShowScope;
область действия x, y, z, Proc1, Proc2  

var x, y, z: real;

procedure Proc1;

(m, n, me: real);

область действия m, n, me, x, you
var x, you: real;

begin {Proc1}

…………

end; {Proc1}

 

procedure Proc2

(var s, p, x: real);

область действия s, p, x, Blank, hi, bye
const Blank = ' ';

var hi, bye: string;

begin {Proc2}

…………

end; {Proc2}

 

begin {ShowScope}

………………

end. {ShowScope}

 

 

 

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...