VAX и Berceley Pascal
set of базовый-тип
.
основной-тип:
порядковый-тип
Примеры
type
Mnojestvo=set of char;
Функции и процедуры языка Паскаль
Функции и процедуры являются объектами, описывающими опре-
деленные фрагменты алгоритма, реализуемого программой, поэтому
они называются подпрограммами.
В отличие от других сложных объектов, например оператора
варианта, подпрограмма выполняется только после её вызова, т.е.
в зависимости от ситуации: после использования оператора проце-
дуры или вызова функции. Оператор процедуры может находиться в
любом месте программы, в котором может использоваться, напри-
мер, пустой оператор, а вызов функции может осуществляться
только в выражении в виде обозначения функции.
Подпрограммы, как и переменные, должны быть описаны. Опи-
сание подпрограммы может находиться в декларативной части бло-
ка. Описание подпрограммы, называемое иногда определением, сос-
тоит из заголовка и блока, являющегося телом подпрограммы. За-
головок процедуры состоит из ключевого слова procedure, за ко-
торым следуют имя процедуры, заключенный в круглые скобки пере-
чень параметров и точка с запятой. Заголовок функции состоит из
ключевого слова function, за которым следует заключенный в
круглые скобки перечень параметров функции, двоеточие, опреде-
ление типа результата функции и точка с запятой. Если перечень
параметров под программы пустой, то он опускается вместе со
скобками.
Необходимо, чтобы при выполнении функции был выполнен опе-
ратор присваивания, в котором слева от оператора присваивания
.
находится имя функции, а справа выражение, соответствующее типу
результата функции. Могут измениться некоторые параметры вызова.
Синтаксис
описание-подпрограммы:
описание-процедуры
описание-функции
описание-процедуры:
procedure имя-процедуры (перечень-параметров);
procedure имя-процедуры;
описание-функции:
function имя-процедуры (перечень-параметров):
тип-результата;
function имя-процедуры: тип-результата;
имя-процедуры:
идентификатор
тип-результата:
идентификатор-простого-типа
идентификатор-простого-типа:
идентификатор
Элементы перечня параметров подпрограммы разделяются точ-
кой с запятой. Каждый элемент перечня содержит список идентифи-
каторов параметров, за которым следует двоеточие и идентифика-
тор типа параметров данного списка.
При обращении к подпрограмме происходит согласование фор-
мальных параметров подпрограммы с фактическими параметрами её
вызова. Количество фактических параметров должно быть равно ко-
личеству формальных параметров. Значения параметров передаются
в порядке появления их в заголовке подпрограммы и в обращении к
ней.
Связь формальных и фактических параметров может осущест-
.
вляться по значению и по ссылке. В первом случае формальный па-
раметр рассматривается как локальная переменная подпрограммы,
которой в момент её выполнения (для данного вызова подпрограм-
мы) присвоено значение фактического параметра. В втором случае
формальный параметр как бы замещает фактический. Для использо-
вания такого рода связи формальных ифактических параметров пе-
ред списком идентификаторов параметров должно быть ключевое
слово var&
Особым случаем связи по ссылки является связь формального
и фактического параметров, когда последний представляет собой
имя подпрограммы. Одно из ограничений языка Паскаль по отноше-
нию к стандартному Паскалю состоит в том, что такого рода связь
отсутствует.
Синтаксис
элемент-перечня-параметров:
список-имён-параметров: обозначение-типа
var список-имён-параметров: обозначение-типа
var список-имен-параметров
обозначение-типа:
идентификатор-типа
идентификатор-типа:
идентификатор
имя-параметра:
идентификатор
И в заключении отмечу, что Berkeley Pascal имеет в отличие
от стандартного Паскаля свои нестандартные функции и процедуры
(argc:integer; возвращает число аргументов в командной строке;
Random(0..1):real; датчик случайных чисел;
argv(integer,string); получение аргумента командной строки по
номеру и т.д.), что значительно облегчает разработку программ и
возможности этого языка.