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

Операторы

Begin

end;

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

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

Формальные параметры – это идентификаторы входных данных для подпрограммы. Если формальные параметры получают конкретные значения, то они называются фактическими. Формальные параметры могут получить конкретные значения только в той программе, где производится обращение к данной подпрограмме.

Тип и порядок записи фактических параметров должны быть такими же, как и формальных параметров. В противном случае результат работы программы будет непредсказуемым. Из этого следует, что фактические параметры используются при обращении к подпрограмме из основной, а формальные параметры – только в самой подпрограмме.

Задача 1. Вычислить площадь треугольника, зная его стороны и диагональ.

program pl;

var AB, BC, CD, DA,AC, s1, s2, s: real;

procedure st(a, b, c: real; var s: real);

var p: real;

begin

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

s:=sqrt(p*(p-a)*(p-b)*(p-c))

end;

begin

write('Введите стороны и диагональ:');

readln(AB, BC, CD, DA,AC);

st(AB,BC,AC,s1);

st(CD,DA,AC,s2);

writeln('Ответ: ', s1+s2)

end.

Как видно из примера, объявление и тело подпрограмм находится в разделе описаний. В заголовке подпрограммы содержится список формальных параметров с указанием их типа, которые условно можно разделить на входные и выходные (перед ними стоит служебное var). При обращении к процедуре указывается ее имя и список фактических параметров. Формальные и фактические параметры должны соответствовать по количеству и по типу.

Вызов процедуры осуществляется следующим образом:

<Идентификатор (имя) процедуры>(<список фактических параметров>);

При составлении подпрограмм с параметрами надо соблюдать следующие правила:

1) каждая подпрограмма имеет свое имя и список формальных параметров;

2) процедура из основной программы вызывается командой вызова, которая по форме ничем не отличается от вызова команды исполнителя. Результат присваивается одной или нескольким переменным, которые находятся в списке формальных параметров. Но результатом могут быть, конечно, не только значения переменных, но какое либо действие, выполненное ЭВМ.

Существуют понятия локальных и глобальных меток, констант, типов и переменных. Поясним эти понятия на примере переменных.

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

Аналогично, переменные, описанные в процедурах и функциях, являются глобальными по отношению к внутренним процедурам и функциям, которые описаны позже. Остальные переменные называются локальными. Их область действия локализована, т.е. ограничена, той подпрограммой, где они описаны.

Исходные данные для работы подпрограммы можно передавать через глобальные переменные, а также через параметры. Таким образом, параметры в заголовке подпрограммы называются формальным и, а параметры при вызове подпрограммы называются фактическими.

Формальные параметры подпрограммы также относятся к его локальным переменным.

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: