Функции
Выше мы уже говорили о том, что функция подобно процедуре может восприниматься как отдельная программа. Однако результатом выполнения функции всегда будет определенное число. Это почти единственная разница между процедурой и функцией.
Чтобы выявить соответствие и различие, ниже приводятся два примера одного типа. В этих программах демонстрируется обычное сложение. В одной программе используется процедура, в другой функция.
Обратите внимание на то, что результат процедуры присваивается переменной.
Мы вызываем процедуру с помощью выражения sum(12,3,a). Таким образом, результат выполнения процедуры присваивается переменной а. Описанный способ всегда используется для присвоения результата глобальной переменной (переменная a объявлена вне процедуры).
В программе с функцией целой переменной a присваивается результат вычисления функции sum(12,3): a:=sum(12,3).
Сравните это выражение с выражениями, где используются стандартные функции, например, a:=sqr(2).
Мы видим, что имя функции всегда стоит справа от знака равенства и непосредственно после имени записывается в скобках значение аргумента функции. Слева от знака равенства стоит переменная, которой в конечном итоге присваивается значение функции.
Вам будет понятно, что с помощью выражения a:=sum(12,3) целой переменной a присваивается сумма целочисленных значений 12 и 3.
Обратите внимание на заголовок функции.
Сходство между процедурой и функцией заключается в том, что в обоих случаях используется блок структура, при которой могут быть объявлены новые переменные, метки и т.д.
Различие состоит в том, что значение у функции всегда должно рассчитываться. Тип этого значения должен объявляться в заголовке. Кроме того, у функции, по крайней мере, 1 раз должно встречаться имя функции, стоящее слева от оператора присваивания и выражения, вычисляющего конечное значение.
Достарыңызбен бөлісу: |