Вызов функции.Фyнкция.Pascal

Функция

Функция – это подпрограмма, определяющая единственное значение. Отличия подпрограммы – функции от процедуры:

  1. Заголовок функции начинается со служебного слова function и заканчивается указанием типа значения функции:
  2. Раздел операторов функции должен содержать хотя бы один оператор присваивания имени функции;
  3. Обращение к функции – не оператор, а выражение вида:

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

Вызов функции в Турбо Паскаль может производиться аналогичным способом, кроме того, имеется возможность осуществить вызов внутри какого-либо выражения. В частности имя функции может стоять в правой части оператора присваивания, в разделе условий оператора if и т.д.

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

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

  1. количество фактических параметров должно совпадать с количеством формальных;
  2. соответствующие фактические и формальные параметры должны совпадать по порядку следования и по типу.

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

Кроме того, все формальные параметры являются временными переменными — они создаются в момент вызова подпрограммы и уничтожаются в момент выхода из нее.

Фактические параметры должны соответствовать по типу и совпадать по количеству формальным параметрам. Таким образом, выражение вызова функции MinMultMax из примера выше может быть представлено следующим фрагментом программы:

 

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *