При работе с функциями и процедурами следует различать формальные и фактические параметры.
Формальные параметры - это переменные, используемые при описании подпрограммы в её заголовке, а фактические - это те параметры, которые мы передаем подпрограмме при ее вызове. Количество, порядок и типы формальных и фактических параметров должны совпадать. Примеры:
function sin(x: Real): Real;
Здесь переменная х использована для описания заголовка функции, поэтому мы говорим, что этот параметр формальный.
…………….
t:= sin(3.14);
…………….
В этом фрагменте параметр 3.14 используется в выражении при вызове функции, значит это фактический параметр.
………….
t:= sin(u);
…………..
Последний пример отличается от предыдущего только тем, что на месте числового значения стоит переменная. Переменная и - фактический параметр. В общем случае в качестве фактического параметра может быть константа, переменная или выражение соответствующего типа.
Задача: Написать функцию для возведения целых чисел в натуральную степень.
program р11_1;
Var k : integer; { Описание переменных головной программы }
{ Описание функции: хn }
function Istep(x, n: integer) : Longint; { заголовок функции }
{ формальные параметры: x - целое число, n - натуральная степень }
var
i: integer;
p: Longint ;
begin
p:= x;
for i:= 2 to n do p:= p * x;
Istep:= p; { значение функции присваиваем её идентификатору }
end;
{ Тело головной программы }
Begin
Writeln ('3 в кубе=' , Istep (3, 3)); { в этом операторе при обращении к
функции Istep оба фактических параметра равны 3 }
k := 5;
Writeln ('5 в шестой степени=', Istep (k, 6)); { в этом операторе при
обращении к функции Istep первый фактический
параметра равен переменной k, второй -6 }
Writeln ( Istep (k, 6 mod k +1)); { в этом операторе при обращении к
функции Istep первый фактический параметра равен переменной k,
второй - арифметическому выражению целого типа }
end.