Функции

Что делать, чтобы стать программистом Что делать, чтобы стать программистом

Многие сегодня хотят стать программистами. Хотят. Но ничего не делают для этого. Не делают даже простых вещей. Не хотят даже прочитать книжку из 10 страниц. В итоге так и остаются никем. Потому что мечты не сбываются никогда. Сбываются только планы… Подробнее...

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

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

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

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