Подпрограммы-функции
Begin
Подпрограммы-процедуры
Блоки подпрограмм
Типизированные константы типа запись
Ид_переменной_записи.Ид_поля
Приведем несколько примеров использования десигнаторов полей:
{заполнение полей переменной Zap1}
Zap1.No := 1 ;
Zap1.Name := 'Иванов П.С.';
Zap1.Phone := '478556';
{запись полной строки в таблицу Tab}
Tab[1] = Zap;
Такие конструкции могут быть использованы при написании текста программы так же, как и идентификаторы обычных переменных, имеющих тип поля записи.
Описание константы записи содержит заключенные в скобки и разделенные символом ; конструкции, определяющие значения каждого из полей.
Поля должны указываться в том же порядке, как они следуют в описании типа запись. Если запись содержит поля файлового типа, то для этого типа записи нельзя описать константу.
Синтаксис выражения-константы двумерного массива:
(Ид_поля1: Знач1; Ид_поля2: Знач2;...)
Пример описания константы записи:
type Point = record
x,y: real;
end;
Month = (Jan,Feb,Mar,Apr,May,Jun,Jly,Aug,Sep,Oct,Nov,Dec);
Date = record
d: 1..31;
m: Month;
y: 1900..1999;
end;
const Origon : Point = (x: 0.0; y: 0.0);
SomeDay : Date = (d: 2; m: Dec; y: 1960);
Блоки подпрограмм позволяют включать в основной программный блок дополнительные алгоритмические блоки, которые могут быть запущены на исполнение из основной программы любое количество раз.
Блоки подпрограмм описывают самостоятельный законченный алгоритм.
В языке Pascal имеется два типа блока подпрограмм:
§ процедура;
§ функция.
В заголовке процедуры определяется её идентификатор и формальные параметры.
Синтаксис описания блока процедуры:
{заголовок процедуры}
Procedure Ид_процедуры [(список_формальных_параметров)];
{раздел описаний}
[const <описания констант>;]
[type <описания типов>;]
[var <описания переменных>;]
[<описания подпрограмм>]
{раздел операторов}
end;
Запуск процедуры осуществляется с помощью оператора вызова процедуры:
Синтаксис вызова процедуры:
Ид_процедуры [(список_фактических_параметров)];
Если в содержащемся в процедуре операторе внутри модуля процедуры используется идентификатор процедуры, то процедура будет выполняться рекурсивно (будет при выполнении обращаться сама к себе). Такой вызов подпрограммы называют рекурсивным.
В заголовке функции определяется идентификатор функции, формальные параметры (если они имеются) и тип результата функции.
{заголовок функции}
function Ид_функции (список_формальных_параметров): тип_результата;
{раздел описаний}
[const <описания констант>;]
[type <описания типов>;]
[var <описания переменных>;]
[<описания подпрограмм>]