Урок из серии: «Язык программирования Паскаль»
Функция — это подпрограмма, возвращающая одно значение в вызывающую программу. Функцию можно использовать в качестве операнда в выражениях. Поэтому, если в вызывающую программу необходимо возвратить одно значение, то рекомендуется оформить подпрограмму как функцию.
На этом уроке вы научитесь определять и вызывать пользовательские функции.
Описание функции
Любая используемая в программе функция должна быть предварительно описана в разделе описаний.
Функции в разделе описаний, так же как и процедуры, определяют после раздела описания переменных (после раздела 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.
Вы научились определять и вызывать пользовательские функции.
До встречи в следующем уроке.