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

End.

Begin

Begin

p:= (a+b+c)/2;

Str:= SQRT(p*(p-a)*(p-b)*(p-c));

end;

write(’ введите стороны: a,b,c,d,e,f,k ’);

readln (a,b,c,d,e,f,k );

Sfig:= Str(a,b,c) + Str(b,d,e) + Str(c,f,k);

writeln (’ площадь фигуры : ’ , Sfig );

 

 

Рис. C Схема алгоритма примера 4

 

При каждом обращении к функции Str вычисляется площадь одного из треугольников, составляющих многогранник, поэтому именно стороны этого треугольника перечисляются в скобках. При 1-м обращении происходит замена формальных параметров a,b,c на фактические a,b и c соответственно. Совпадение имен формальных и фактические параметров случайно. При 2-м обращении происходит замена формальных параметров a,b,c на фактические b,d и e соответственно; при 3-м обращении - на c,f и k соответственно. В подпрограмме используется локальная переменная p.

 

 

В описательной части как основной программы, так и подпрограммы объявляются метки, константы, переменные и другие величины. Те из них, что объявлены в головной программе называются глобальными, а величины, объявленые в подпрограмме- локальными.

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

Локальные(вспомогательные) величины доступны только внутри подпрограммы. Обращение к ним в любом месте, кроме подпрограммы, где она определена невозможно.

Пример 5. В предыдущей программе PL (примера 4) локальной переменной функции Str является p. Она доступна только внутри функции Str и не доступна в основной программе. Это значит, что при обращении к ней в основной программе при трансляции будет выдано сообщение об ошибке, а именно "p-неопределенный идентификатор".

Имена в программах, содержащих подпрограммы, целесообразно выбирать так, чтобы имена локальных и глобальных параметров не совпадали. Это делает программу нагляднее.

В тех случаях, когда в подпрограмме и основной программе используются одни и те же имена параметров (подпрограмма связана с основной программой посредством глобальных переменных), подпрограмму можно организовать без параметров.