Каждая процедура или функция снабжается списком так называемых формальных параметров. Часть этих параметров объявляется выходными (входными в Паскале являются все). При взгляде “изнутри” все параметры являются обычными переменными с одним отличием: их значение известно к началу действия процедуры. После окончания действия процедуры некоторые параметры или все изменяют свое значение. При этом программист должен позаботиться о том, чтобы выходные параметры принимали нужные значения. При взгляде “извне” программист, если он хочет, чтобы процедура выполнилась, должен всего лишь указать значения параметров при входе в процедуру, а при выходе из нее получить значения тех параметров, которые объявлены выходными. Значения, присваиваемые формальным параметрам процедуры при обращении к ней, называются фактическими параметрами обращения к этой процедуре (или вызова процедуры).
В языке Паскаль взгляд “изнутри” реализуется в разделе описания процедур и функций. Этот раздел помещается после всех разделов объявлений программы, но до операторной части самой программы (то есть тела программы). В этом разделе описываются все процедуры и функции, используемые в программе. В Турбо Паскале строение текста одной процедуры или функции в точности аналогично строению всей программы: заголовок, разделы объявлений, вложенные процедуры и функции и тело процедуры (функции). Вложенными называются такие процедуры и функции, текст которых помещен внутрь текста данной процедуры или функции. Надо отметить, что в стандартном Паскале вложение процедур и функций не допускается.
Разделы объявлений и тело процедуры идентичны соответствующим разделам программы. Заголовок процедуры состоит из ключевого слова procedure, имени процедуры и списка описаний формальных параметров в круглых скобках. Список параметров может быть пустым, тогда он опускается:
procedure [( )]
Элементы списка отделяются друг от друга точкой с запятой. Описание формального параметра включает идентификатор формального параметра и указание его типа, разделенные двоеточием. Если параметр должен быть выходным, перед именем параметра ставится ключевое слово var. Указание типа в процедурах имеет одну особенность, отличающую его от указания типа при объявлении переменной: в качестве типа может использоваться только имя стандартного или пользовательского (определенного ранее в программе в разделе типов) типа, а не сложная конструкция вроде array … of или record … end. Если несколько идущих подряд параметров имеют одинаковый тип, то их описания можно объединить, поместив вместо одного имени параметра список имен, разделенных запятой. В общем случае формат описания формального параметра следующий:
[var] :
Для того, чтобы процедура фактически выполнилась, где-нибудь в программе или в другой процедуре должен стоять оператор вызова процедуры. Оператор вызова процедуры в общем случае применяется тогда, когда необходимо выполнить некоторое стандартное действие, встроенное в систему Турбо Паскаль или предварительно оформленное в программе в виде процедуры или функции. Формат оператора вызова процедуры следующий:
( )
Фактические параметры в списке разделены запятыми. Каждый фактический параметр согласно положению в списке соответствует своему формальному параметру и должен быть значением того типа, который был задан при описании формального параметра. Если параметр был описан как выходной с помощью ключевого слова var, то фактический параметр в операторе вызова процедуры обязан выражаться только именем переменной программы, а не произвольным выражением. В таком случае переменная на месте выходного параметра программы к началу выполнения следующего после вызова процедуры оператора примет то значение, которое имел соответствующий формальный параметр процедуры к концу работы процедуры.
8th Май 2011
|
Теги:
|