Процедуры и функции
Процедуры и функции в языке Т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. Перечислить отличительные особенности функций и процедур.
|