Согласие на обработку персональных данных.



04.11.2017
Новые видео и статья Функция Odd.

29.10.2017
Новые видео и статья Функция Low.

23.10.2017
Новая задача Даны натуральные числа от 1 до 33.

22.10.2017
Добавлен раздел Статьи по С/С++.

03.10.2017
Новая книга 1001 вопрос начинающего программиста.

Функции

Основы программирования Основы программирования
Каждый профессионал когда-то был чайником. Наверняка вам знакомо состояние, когда “не знаешь как начать думать, чтобы до такого додуматься”. Наверняка вы сталкивались с ситуацией, когда вы просто не знаете, с чего начать. Эта книга ориентирована как раз на таких людей, кто хотел бы стать программистом, но совершенно не знает, как начать этот путь. Подробнее...

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

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

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

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