Функции

Lazarus IDE: Основы программирования в Windows Lazarus IDE: Основы программирования в Windows

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

Практически всё, что было сказано о процедурах, является справедливым и для функций. Существенное отличие только одно - функция может возвращать результат. Хотя на самом деле это отличие не такое уж и существенное, поэтому во многих языках программирования (например, в С/С++) подпрограммы не делятся на функции и процедуры.

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

function Идентификатор(ВходныеПараметры; 
                var ВходныеВыходныеПараметры) : Результат;
БлокПодпрограмм;
begin
 ИсходныйКодФункции;
end;

Это упрощённый синтаксис. Полный вариант см. в документации на среду разработки.

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

Пример использования функции:

function TestFunc(x, y : integer; var R : integer) : integer;
begin
  x := x * 2;
  y := y * 2;
  R := x + y;
  TestFunc := R * 2;
end; 

{**********************************************************************
ОСНОВНАЯ ПРОГРАММА  
**********************************************************************}
begin
  WriteLn(TestFunc(100, 50, Res));   //600
  WriteLn(Res);                      //300
  ReadLn;
end.
 ВАЖНО! 
Как видите, в конце тела функции мы указываем имя функции и присваиваем ей какой-то результат. Но вместо имени функции можно использовать слово Result. В некоторых случаях это удобнее. Пример:
function TestFunc(x, y : integer; var R : integer) : integer;
begin
  x := x * 2;
  y := y * 2;
  R := x + y;
  Result := R * 2;
end;

Этот пример работает точно также, как пример, рассмотренный выше.

См. также:


Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su

Яндекс.Метрика