Лекция: Параметры-константы.
Так как аргументы, передаваемые в процедуру или функцию, размещаются в стеке, то в случае передачи значением массива большого размера, может произойти переполнение стека. В языке Турбо Паскаль 7.0 введен описатель CONST, который может задаваться для формальных параметров подпрограмм. Аргумент, соответствующий такому параметру, передается по ссылке, подобно параметру с описателем Var, но в самой процедуре(функции) запрещается присваивать этому аргументу новое значение.
PROCEDURE<имя процедуры> (CONST <имя константы>:
<тип>; ...);
FUNCTION <имя функции> (CONST <имя константы> :
<тип>; ...):<тип результата> ;
Параметр-константу нельзя передавать в качестве параметра в другую подпрограмму.
Параметры-процедуры и параметры-функции.
Для объявления процедурного типа используется заголовок подпрограммы, в котором опускается имя процедуры (функции).
Например:
Type
TPR1= Procedure( X,Y: real; Var Z: real);
TPR2= Procedure ;
TF1= Function: string;
TF2=Function ( Var S: string): real;
Ниже приведен пример использования функции FF в качестве параметра другой функции RR.
Uses CRT;
Type FUN=Function (X,Y: real): real;
Var ...
Function FF (X,Y: real): real; FAR;
...
Begin… End;
Function RR (X,Y: real; F: Fun): real; FAR;
...