Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Електронный_лаб_практ_ОПтаАМ_I.doc
Скачиваний:
6
Добавлен:
27.11.2019
Размер:
1.3 Mб
Скачать

1.11. Процедуры и функции

Процедуры и функции в языке ТP представляют собой раз­новидности подпрограмм.

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

Процедура в простейшем случае может не содержать ни парамет­ров, ни описаний переменных, а лишь являться поименованной группой операторов. Такая процедура имеет следующую структуру:

PROCEDURE <имя процедуры>;

BEGIN

. . . } группа операторов

END.

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

PROCEDURE <имя процедуры>;

операторов описания объектов:

LABEL <список меток>;

CONST <объявление поименованных констант>;

TYPE < определение типов данных>;

VAR < определение переменных>;

PROCEDURE <описание процедур>;

FUNCTION <описание функций>;

и исполняемой части:

BEGIN

. . . } группа операторов

END;

Как видно из этого примера, в самой процедуре возможно опи­сание других подпрограмм, что лишний раз подтверждает возмож­ность вложения конструкций в языке ТP.

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

PROCEDURE <имя процедуры> (VAR <имя переменной>: <тип>…);

Далее приводятся операторы описания объектов и исполняемая часть процедуры.

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

Для обращения к процедуре достаточно указать в соответствующем месте общей ТP-программы ее имя и перечислить фактические параметры в круглых скобках:

<Имя процедуры> (параметр 1, …, параметр N);

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

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

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

PROCEDURE <имя процедуры>(<имя переменой>:<тип>…);

Формальные параметры-переменные и параметры-значения могут быть объединены внутри единого списка параметров в заголовке процедуры:

PROCEDURE primer(VAR a,b,c:REAL; d,e:INTEGER);

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

Функции в языке ТP отличаются от процедур следующим:

  • в каждой отдельной реализации вычислительного процесса функция приобретает единственное значение, тип которого явно указывается при ее описании;

  • вычисленное значение функции присваивается непосредствен­но имени функции (как обычной переменной);

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

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

Вопросы для самопроверки:

  1. Дать определение подпрограммы.

  2. Пояснить понятие локальных объектов.

  3. Дать определение формальных параметров-переменных.

  4. Дать определение формальных параметров-значений.

  5. Дать определение фактических параметров.

  6. Раскрыть структуру подпрограммы.

  7. Раскрыть правила вызова процедур и функций в ТП-программе.

  8. Перечислить отличительные особенности функций и процедур.