Функции

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

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

program prim1; var a: integer; proceduresum(b,c: integer; var k:integer); begin k:= b +c; end; begin sum(12,3, a); writeln(‘sum=’, a); end.
program prim2; var a: integer; function sum(b,c: integer): integer; begin sum:= b +c; end; begin a:=sum(12,3); writeln(‘sum=’, a); end.

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

Мы вызываем процедуру с помощью выражения sum(12,3, a). Таким образом, результат выполнения процедуры присваивается переменной а. Описанный способ всегда используется для присвоения результата глобальной переменной (переменная a объявлена вне процедуры).

В программе с функцией целой переменной a присваивается результат вычисления функции sum(12,3): a:=sum(12,3).

Сравните это выражение с выражениями, где используются стандартные функции, например, a:=sqr(2).

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

Вам будет понятно, что с помощью выражения a:=sum(12,3) целой переменной a присваивается сумма целочисленных значений 12 и 3.

Обратите внимание на заголовок функции.

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

Различие состоит в том, что значение у функции всегда должно рассчитываться. Тип этого значения должен объявляться в заголовке. Кроме того, у функции, по крайней мере, 1 раз должно встречаться имя функции, стоящее слева от оператора присваивания и выражения, вычисляющего конечное значение.

Параметр-значение


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



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