Чем отличаются процедуры и функции?

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

Заголовки процедуры и функции имеют вид:

Procedure <имя_процедуры> (<список формальных параметров>);

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

Список формальных параметров – это имена переменных с указанием их типов, над которыми подпрограмма осуществляет действия.

Пример заголовков процедуры и функции:

Procedure primer1 (x, y: real; z: integer);

Function primer2 (n, m: byte): integer;

Вызов подпрограммы происходит при каждом употреблении ее имени в основной программе. При вызове подпрограммы начинают выполняться ее операторы до завершающего слова end или специального выхода из подпрограммы – exit. После выхода из подпрограммы управление передается команде, следующей за обращением к подпрограмме.

Отличия процедуры от функции связаны со способом вызова.

Для вызова процедуры приводится ее имя и в скобках приводится список передаваемых и получаемых параметров. Вызов процедуры – оператор (это важно!).

Вызов функции производится по ее имени и списку параметров, но, в отличие от процедуры, результат функции имеет определенное значение, поэтому функции используются не как операторы, а как выражения или операнды в выражениях (это важно!). Для того чтобы функция получила численное значение, в теле функции необходимо присвоить ей это значение.

Пример обращения к процедуре и функции:

Primer1 (sin(2), k, 3); {обращение к процедуре, используется как
оператор}

F:= primer2 (i, 2*j); {обращение к функции, используется как
операнд выражения}

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: