Процедуры

Примеры написания пользовательских функций

program FuncProc;

function BiggerThanTen(I: Integer);

// Выводит на экран сообщение, если 1 больше 10

begin

if I > 10 then

writeln('Funky.');

end;

function IsPositive(I: Integer): Boolean;

// Возвращает True, если 1 больше или равен 0

begin

Result := I >= 0;

end;

var

Num: Integer;

begin

Num := 23;

BiggerThanTen(Num);

if IsPositive(Num) then

writeln(Num, ' Is positive.')

else

writeln(Num, ' Is negative.');

end.

 

Локальная переменная Result (результат) функции IsPositive() имеет специальное назначение. В каждой функции Delphi существует локальная переменная с этим именем, предназначенная для размещения возвращаемого значения.

Вернуть значение из функции можно, присвоив его имени функции внутри кода самой функции. Это стандартный синтаксис языка Delphi, сохранившейся со времен языка Borland Pascal. При присвоении в теле функции ее имени будьте внимательны, поскольку существует принципиальное различие между использованием имени функции слева от оператора присвоения и использованием его в любом другом месте кода. Имя функции слева от знака равенства означает присвоение функции возвращаемого значения, а имя функции в любом другом месте внутри кода функции приведет к ее рекурсивному вызову!

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

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

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

Все процедуры и функции языка Delphi подразделяются на две группы: встроенные и определенные программистом.

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

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