Подпрограммы-функции

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 <описания переменных>;]

[<описания подпрограмм>]