Program Primer;. Var a, b, c, s : Real; описание фактических (глобальных) параметров
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. в конце функции обязательно должен присутствовать операторприсваивания, в левой части которого стоит имя этой функции без списка формальных параметров; в противном случае функция ничего не вычислит:
Function Summa(x, y: Real): Real;
Var s : Real;
Begin
s := x + y; эта функция ничего не вычисляет!
End;
7. помимо формальных параметров, в функции могут использоваться локальные переменные. Они описываются внутри функции в разделе Var , существуют только в ней и служат для реализации алгоритма вычислений. При выходе из функции их значения исчезают:
Function Fact(n: Word): Word; n – формальный параметр
Var i, f : Word; i, f – локальные переменные
Begin эта функция вычисляет факториал
f:=1; заданного числа
For i:=1 To n Do
f := f * i;
Fact := f;
End;
8. если в функции используется цикл с параметром (цикл For), то параметр цикла должен быть описан внутри этой функции, то есть он должен быть обязательно локальной переменной (предыдущий пример),
9. связь вызывающей (головной) программы с функцией может осуществляться как через формальные и фактические, так и через глобальные параметры. Глобальные параметры (переменные) не описываются ни в заголовке функции, ни внутри ее. Они описываются в вызывающей программе и существуют как в ней, так и в любой функции, вызываемой из этой программы. Глобальные переменные могут изменять свои значения как в вызывающей программе, так и внутри функции:
Дата добавления: 2015-08-08; просмотров: 1385;