Здавалка
Главная | Обратная связь

Подпрограммы-функции



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

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

Как и все программы в Паскале, функция состоит из заголовка, блока описаний и блока операторов:

Function Geron(x, y, z : Real):Real; заголовок функции

Var p : Real; описание локальных переменных

Begin начало блока операторов

p := (x + y + z)/2.0;

Geron := Sqrt(p*(p – x)*(p – y)*(p – z)); вычисленное значениеприсваивается имени функции

End;

Внимание! После оператора End ставится точка с запятой.

Эта функция вычисляет площадь треугольника по формуле Герона – по трем его сторонам.

Заголовок функции

Function Geron(x, y, z : Real):Real;

начинается со слова Function , за которым следует ее имя, в данном случае Geron. После имени функции в скобках перечисляются имена и типы аргументов функции – входных данных или формальных параметров. В данном случае это x, y, z типа Real. Если имеются формальные параметры нескольких типов, то они группируются по типам, а между типами ставятся точки с запятой. Заголовок заканчивается указанием типа самой функции, то есть типа результата, вычисляемого этой функцией. В данном случае это Real.

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

s := Geron(3.0, 4.0, 5.0);

В данном случае формальные параметры x, y, z функции Geron заменяются соответственно фактическими аргументами 3.0, 4.0, 5.0 , для которых и вычисляется значение функции. Вычисленное значение присваивается имени самой функции Geron и далее - переменной s. В этом примере s = 6.0.

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

Program Primer;

Uses CRT;

Var a, b, c, s : Real; описание фактических (глобальных) параметров

 

Function Geron(x, y, z : Real):Real; заголовок функции

Var p : Real;

Begin

p := (x + y + z)/2.0;

Geron := Sqrt(p*(p – x)*(p – y)*(p – z));

End; конец функции

 

Begin начало основной (головной) программы

ClrScr;

a := 3.0; инициализация фактических параметров

b := 4.0;

c := 5.0;

s := Geron(a, b, c); обращение к функции с фактическими параметрами a, b, c

WriteLn(‘Площадь треугольника равна ’, s:6:2);

ReadLn;

End.

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

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

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

описание меток Label,

определение констант Const

определения типов Type

описание переменных Var

описание процедур и функций Function, Procedure

операторы функции Begin … End;

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

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

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

3. формальные и фактические параметры должны совпадать по порядку следования, количеству и типам,

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

5. формальные параметры не должны совпадать по имени:

Function Err(x, y: Word; a, b, y: Real): Real; ошибка!

6. в конце функции обязательно должен присутствовать операторприсваивания, в левой части которого стоит имя этой функции без списка формальных параметров; в противном случае функция ничего не вычислит:







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.