Функции

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

function NameFunc(Param : Тип) : Тип_возвращаемого_значения;var //объявление переменных (необязательно)begin //тело функции Result := результат вычислений;end;

Здесь следует обратить внимание на два момента: после имени функции и параметров в круглых скобках, после двоеточия, указывается тип возвращаемого значения. Кроме того, в каждой функции по умолчанию имеется переменная Result, которая имеет тот же тип, что и тип возвращаемого значения. Эту переменную специально объявлять не нужно, она уже готова к работе. В отличие от других языков, в Delphi этой переменной можно присваивать значение неоднократно. Результатом будет последнее присвоенное значение.

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

Result := результат вычислений;

будет полностью идентичной строке

NameFunc := результат вычислений;

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

function Delenie(a,b : Integer) : Real;begin Result := a / b;end;

Теперь заменим ту строку, где в третью переменную записывается результат деления первых двух, на вызов функции и передачу ей этих двух чисел:

Perem3 := Delenie(Perem1, Perem2);

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