Описание процедуры включает заголовок (имя) и тело процедуры. Заголовок состоит из зарезервированного слова procedure, идентификатора (имени) процедуры и, необязательного, заключенного в круглые скобки, списка формальных параметров с указанием типа каждого параметра. Тело процедуры представляет собой отдельный блок, по структуре аналогичный программе:
procedure <имя> (параметры); const…; type …; var …; begin <операторы> end;
В заголовке процедуры определяется имя процедуры и ее параметры (если они есть). Для вызова процедуры также необходимо указать ее имя и параметры (если они есть). В теле процедуры задаются операторы, выполняющиеся при вызове процедуры. Функции имеют почти такой же формат, что и процедуры, за исключением того, что они начинаются с заголовка function и того, что заголовок оканчивается типом возвращаемого значения функции <(типом функции ):
function <имя> (параметры):<тип результата>; const ...; type var ...; begin <операторы> end;
В разделе операторов должен находиться, по крайней мере, один оператор, присваивающий имени функции какое-либо значение. В точку вызова возвращается результат последнего присваивания.
Как видите, процедуры и функции могут иметь свои собственные константы, типы данных, переменные и даже собственные процедуры и функции. Но все эти элементы могут использоваться только в тех процедурах и функциях, в которых они определены.
Задание:
- Определить является ли написанное процедурой или функцией (в чем их главное различие)?
-С какими параметрами работает?
-Какого типа результат возвращает?
ArcTan(R:real):Real;
Odd(X): Boolean;
Abs(R:real):Real;
Delete (var S: String; Index, Count: Integer);
Exit
Clrscr;
KeyPressed: Boolean;
Обратить внимание, что у некоторых процедур и функции не указаны параметры. Почему? Разберем данный вопрос.
Все переменные, постоянные, типы и т.д., описанные внутри подпрограммы называются локальными и действительны только в пределах описанного блока, и блоках содержащихся внутри него. Все они создаются при входе в процедуру и уничтожаются при выходе из нее.
Переменные, постоянные и типы, описанные в основной программе, называются глобальными.
Глобальные и локальные переменные могут иметь одинаковые имена, так как им соответствуют разные объекты, но это не рекомендуется из-за возможной путаницы.