Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Имена называются нелокальными, если они описаны не в самой подпрограмме, а в охватывающем ее блоке (или во внешней подпрог-рамме)




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

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

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

Подпрограмма-функция предназначена для вычисления какого-либо параметра.

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

Все параметры, которые использует подпрограмма, можно разбить на две категории: локальные параметры, объявленные внутри подпрограммы и доступные только ей самой, и глобальные - объявленные в основной программе и доступные как программе, так и всем ее подпрограммам. Обмен информацией между основной программой и подпрограммой может осуществляться только с помощью глобальных параметров.

Подпрограмма может использовать глобальные параметры двояким образом:

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

Определение процедур и функций

 

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

 

PROCEDURE <имя> (<список формальных параметров>);

 

Список формальных параметров записывается в скобках и содержит перечень параметров с указанием их типов. Перед параметрами, которые возвращают результат в основную программу, указывается ключевое слово VAR. Например:

 

PROCEDURE SUMM(A1,A2:REAL; BI,B2:INTEGER; VAR S1,S2:REAL);

 

Допускаются процедуры без, параметров:

 

PROCEDURE <имя>;

 

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

За заголовком процедуры следует раздел описаний подпрограммы (меток, констант, типов, переменных, а также описаний вложенных проце-дур и функций) и блок операторов.

 

Структура описания заголовка функции имеет вид:

 

FUNCTION <имя> (<список формальных параметров>): <тип>;

 

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

Пример:

FUNCTION STEP(x, y: REAL):REAL;

VAR a,b:real;

BEGIN

… …

END;

После описания блока процедуры или функции следует оператор END;, за которым ставится точка с запятой.

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

 

<имя функции>:=<выражение>:

 

например: STEP:=<выражение вещественного типа>.

 

Вложенные подпрограммы

 

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

Переменные, описанные в разделе описания основной программы, называются глобальными. Область действия глобальных переменных - основная программа и ее подпрограммы.

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

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

 




Поделиться с друзьями:


Дата добавления: 2014-01-14; Просмотров: 399; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.