Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab_Sem2_Kurs_1_04.doc
Скачиваний:
4
Добавлен:
27.08.2019
Размер:
359.94 Кб
Скачать

1.1. Процедуры.

Описание процедуры состоит из заголовка процедуры и тела процедуры. Заголовок включает в себя служебное слово procedure, имя процедуры и заключенные в круглые скобки список формальных параметров с указанием их типов:

procedure <имя> (<список формальных параметров>);

Формальные параметры отделяются точкой с запятой (список однотипных параметров может быть перечислен через запятую). После заголовка идут разделы описаний (констант, типов, переменных, процедур и функций, используемых в процедуре) и операторы языка ОР, реализующие алгоритм процедуры.

Например:

procedure f1 (x: real; var y: real; var c: real);

begin

y:=sin(x)/cos(x);

c:=ln(x)/ln(10);

end;

Формальные параметры нельзя описывать в разделе описаний процедуры.

Для обращения к процедуре необходимо использовать оператор вызова процедуры. Он имеет следующий вид:

<имя процедуры> (<список фактических параметров>);

Например:

f1(r, r1, r2);

Фактические параметры в списке отделяются друг от друга запятой. Механизм применения формальных-фактических параметров обеспечивает замену первых параметров последними, что позволяет выполнять процедуру с различными данными. Между фактическими параметрами в операторе вызова процедуры и формальными параметрами в заголовке процедуры устанавливается взаимно однозначное соответствие.

Замечание. Количество, типы и порядок следования формальных и фактических параметров должны совпадать.

1.2. Функции.

Функция, определенная пользователем, состоит из заголовка и тела функции. Заголовок содержит зарезервированное слово function, идентификатор (имя) функции, заключенный в круглые скобки, необязательный список формальных параметров и тип возвращаемого функцией значения:

function <имя> (список формальных параметров): <тип результата> ;

Тело функции представляет собой локальный блок, по структуре аналогичный программе.

Например:

function tan (c: real): real;

begin

tan:=sin(c)/ cos(c);

end;

В теле функции всегда должен быть один оператор, присваивающий значение имени функции.

Обращение к функции осуществляется по имени с указанием списка фактических параметров. Количество, типы и порядок следования формальных и фактических параметров должны совпадать:

<имя функции> (<список фактических параметров>);

Например:

tg: =tan(x);

При использовании процедур и функций переменные объявляются несколько раз в основной программе и подпрограммах.

Переменные и типы, определенные в основной программе до объявления процедур и функций, называются глобальными – они доступны всем функциям и процедурам. Переменные, определенные в какой-либо подпрограмме после раздела описания процедур и функций, называются локальными.

Для правильного определения области действия идентификаторов (переменных) необходимо придерживаться следующих правил:

  • каждая переменная должна быть описана перед тем, как она будет использована;

  • областью действия переменной является та подпрограмма, в которой она будет описана;

  • все переменные в подпрограммах должны быть уникальными;

  • одна и та же переменная может быть по-разному определена в каждой из подпрограмм;

  • если имя подпрограммы совпадает с названием стандартной подпрограммы, то последняя игнорируется, а выполняется подпрограмма пользователя;

  • если внутри какой-либо процедуры встречается переменная с таким же именем, что и глобальная переменная, то внутри процедуры будет действовать локальное описание;

  • каждая подпрограмма может изменить значение глобальной переменной.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]