Учебники

Паскаль — Функции

Подпрограмма — это программный модуль / модуль, который выполняет определенную задачу. Эти подпрограммы объединяются в большие программы. Это в основном называется «Модульный дизайн». Подпрограмма может быть вызвана подпрограммой / программой, которая называется вызывающей программой.

Паскаль предоставляет два вида подпрограмм —

  • Функции — эти подпрограммы возвращают одно значение.

  • Процедуры — эти подпрограммы не возвращают значение напрямую.

Функции — эти подпрограммы возвращают одно значение.

Процедуры — эти подпрограммы не возвращают значение напрямую.

функции

Функция — это группа операторов, которые вместе выполняют задачу. Каждая программа на Паскале имеет как минимум одну функцию, которая является самой программой, и все самые тривиальные программы могут определять дополнительные функции.

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

Стандартная библиотека Pascal предоставляет множество встроенных функций, которые может вызывать ваша программа. Например, функция AppendStr () добавляет две строки, функция New () динамически выделяет память для переменных и многие другие функции.

Определение функции

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

function name(argument(s): type1; argument(s): type2; ...): function_type;
local declarations;

begin
   ...
   < statements >
   ...
   name:= expression;
end;

Определение функции в Pascal состоит из заголовка функции, локальных объявлений и тела функции. Заголовок функции состоит из ключевого слова function и имени, данного функции. Вот все части функции —

  • Аргументы — Аргументы (аргументы) устанавливают связь между вызывающей программой и идентификаторами функций, а также вызывают формальные параметры. Параметр похож на заполнитель. Когда вызывается функция, вы передаете значение параметру. Это значение называется фактическим параметром или аргументом. Список параметров относится к типу, порядку и количеству параметров функции. Использование таких формальных параметров не является обязательным. Эти параметры могут иметь стандартный тип данных, определенный пользователем тип данных или тип данных поддиапазона.

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

  • Возвращаемый тип — все функции должны возвращать значение, поэтому всем функциям должен быть присвоен тип. Тип функции — это тип данных значения, которое возвращает функция. Это может быть стандартный, определенный пользователем скалярный или поддиапазонный тип, но он не может быть структурированным типом.

  • Локальные объявления — Локальные объявления относятся к объявлениям для меток, констант, переменных, функций и процедур, которые применяются только к телу функции.

  • Тело функцииТело функции содержит набор операторов, которые определяют, что делает функция. Он всегда должен быть заключен между зарезервированными словами начало и конец. Это часть функции, в которой выполняются все вычисления. Должен быть оператор присваивания типа — имя: = выражение; в теле функции, которая присваивает значение имени функции. Это значение возвращается как и когда функция выполняется. Последнее утверждение в теле должно быть конечным утверждением.

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

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

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

Локальные объявления — Локальные объявления относятся к объявлениям для меток, констант, переменных, функций и процедур, которые применяются только к телу функции.

Тело функцииТело функции содержит набор операторов, которые определяют, что делает функция. Он всегда должен быть заключен между зарезервированными словами начало и конец. Это часть функции, в которой выполняются все вычисления. Должен быть оператор присваивания типа — имя: = выражение; в теле функции, которая присваивает значение имени функции. Это значение возвращается как и когда функция выполняется. Последнее утверждение в теле должно быть конечным утверждением.

Ниже приведен пример, показывающий, как определить функцию на паскале:

(* function returning the max between two numbers *)
function max(num1, num2: integer): integer;

var
   (* local variable declaration *)
   result: integer;

begin
   if (num1 > num2) then
      result := num1
   
   else
      result := num2;
   max := result;
end;

Объявления функций

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

Объявление функции состоит из следующих частей:

function name(argument(s): type1; argument(s): type2; ...): function_type;

Для определенной выше функции max () ниже приводится объявление функции —

function max(num1, num2: integer): integer;

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

Вызов функции

При создании функции вы даете определение того, что должна делать функция. Чтобы использовать функцию, вам нужно будет вызвать эту функцию для выполнения определенной задачи. Когда программа вызывает функцию, управление программой передается вызываемой функции. Вызываемая функция выполняет определенную задачу, и когда выполняется оператор return или когда достигается последний оператор end, она возвращает управление программой обратно в основную программу.

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

Live Demo

program exFunction;
var
   a, b, ret : integer;

(*function definition *)
function max(num1, num2: integer): integer;
var
   (* local variable declaration *)
   result: integer;

begin
   if (num1 > num2) then
      result := num1
   
   else
      result := num2;
   max := result;
end;

begin
   a := 100;
   b := 200;
   (* calling a function to get max value *)
   ret := max(a, b);
   
   writeln( 'Max value is : ', ret );
end.

Когда приведенный выше код компилируется и выполняется, он дает следующий результат —