Урок 15. Описание и вызов функции

Урок из серии: «Язык программирования Паскаль»

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

На этом уроке вы научитесь определять и вызывать пользовательские функции.

Описание функции

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

Функции в разделе описаний, так же как и процедуры,  определяют после раздела описания переменных (после раздела Var) и до начала раздела операторов (до слова Begin).

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

Операторы функции внутри операторных скобок begin/end называются телом этой функции.

В теле функции обязательно должен быть оператор присвоения, где в левой части стоит имя функции, а в правой — её значение. Иначе, значение функции не будет определено.

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

function <имя функции>[<список формальных параметров>]:<тип возвращаемого значения>;
   <раздел описаний>
begin
   <операторы>
   <имя функции> := <возвращаемое значение>;
еnd;

В языке Pascal ABC  вместо имени функции для возврата значений в вызывающую программу можно использовать другую специальную переменную с именем Result.

Раздел описаний функции устроен так же, как раздел описаний основной программы. Здесь описываются так называемые локальные переменные и константы, типы, а также вложенные процедуры и функции. Все такие локальные объекты доступны лишь внутри данной функции и не видны извне.

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

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

Вызов функции с присвоением возвращаемого значения некоторой переменной имеет следующий вид:

<имя переменной> := <имя функции> [(<список фактических параметров>)];

Фактические параметры — это значения, передаваемые в функцию при её вызове.

Пример 1. Оформить в виде функции алгоритм вычисления степени y = xn с натуральным показателем n.

function degree(x,y:integer): longint;
   var i:integer;
begin
   st :=1;
   For i:=1 to y do st:= st * x;
   degree:= st;
end;

Функция имеет два параметра: первый параметр — основание степени, второй — показатель степени.

Вся программа для нашей задачи имеет следующий вид:

program primer1;
var a, n: integer;
    s:longint;
function degree(x,y:integer): longint;
var i:integer;
begin
  st :=1;
  For i:=1 to y do st:= st * x;  degree:= st;end;
begin {main}
  writeln('Введите два числа');
  readln(a, n);
  s := degree(a,n); {Вызов функции}
  writeln('Результат: ', s); {Вывод результата}
end.

Функция вызывается по имени в левой части оператора присваивания,   вычиcленное значение присваивается переменной s. В нашем примере, фактические параметры а, n  передают свои значения соответствующим формальным параметрам x, y.

Вы научились определять и вызывать пользовательские функции.

До встречи в следующем уроке.

Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии