с
я
локальными.
Они действуют только в пределах внутреннего бло-
ха. Описания же, стоящие во внешнем блоке, называются гло-
бальными по отношению к внутреннему блоку. Если глобально
описанный объект используется во внутреннем блоке, то на него
распространяется внешнее (глобальное) описание.
В программе N0D1 переменные М, N, К — локальные внутри
процедуры; переменные а, Ь, с — глобальные. Однако внутри про-
цедуры переменные а, Ь, с не используются. Связь между вне-
шним блоком и процедурой осуществляется через параметры.
В программе N0D2 все переменные являются глобальными. В
процедуре Evklid нет ни одной локальной переменной (нет и
параметров). Поэтому переменные Ми N, используемые в проце-
дуре, получают свои значения через оператор присваивания в ос-
новном блоке программы. Результат получается в глобальной пе-
ременной К, значение которой выводится на экран.
Использование механизма передачи через параметры делает
процедуру более универсальной, независимой от основной про-
граммы. Однако в некоторых случаях оказывается удобнее ис-
пользовать передачу через глобальные переменные. Чаще такое
бывает с процедурами, работающими с большими объемами ин-
формации. В этой ситуации глобальное взаимодействие экономит
память ЭВМ.
Функции. Теперь выясним, что такое подпрограмма-функция.
Обычно функция используется в том случае, если результатом
подпрограммы должна быть скалярная (простая) величина. Тип
результата называется типом функции. В Турбо Паскале допуска-
ются функции строкового типа. Синтаксическая диаграмма опи-
сания функции представлена на рис. 29.
Как и у процедуры, у функции в списке формальных парамет-
ров могут присутствовать параметры-переменные и параметры-
значения. Все это аргументы функции. Параметры вообще могут
отсутствовать (если аргументы передаются глобально).
«Эписание функции>
• <Заголовок> И ; ) •<Блок>-
<Заголовок> f \
• •Function—>-<Имя функции>—i х>( : )-КТип»
( )-*<Список формальных параметров>-
Рис.
29
75