В тексте программы описания функций всегда следуют за разделом описания переменных и до начала основной части, как и описания процедур.
Пусть n=5, k=3. Когда в программе встречается оператор a1:=factorial(n), выполняются следующие действия:
· выделяется память для переменных, описанных в функции factorial;
· формальному параметру присваивается значение фактического: n:=n (n=5);
· выполняется функция, вычисляется факториал числа 5;
· значение функции передается в место обращения к этой функции, то есть присваивается переменной a1;
· в операторах a2:=factorial(k) a3:=factorial(n-k) еще дважды вызывается функция factorial с параметрами k=3 n-k=2.
Функция - это самостоятельная часть программы, имеющая собственные переменные, которым отводится отдельное место в памяти ЭВМ. Этим объясняется тот факт, что переменные с одинаковыми именами, используемые в функции и в основной программе, являются разными ( переменная n основной программы и параметр n функции). При выполнении программы машина «не путает» имена этих переменных, т.к. области их действия не совпадают.
Пример 2 :Написать функцию, подсчитывающую количество цифр натурального числа. Используя ее, определить, в каком из двух данных чисел больше цифр.
Programchisla;
Varn1, n2 : longint;
k1, k2 : byte;
Functionkol(x : longint): byte;
var k: byte;
Begin
k:=0;
While x<>0 do
Begin
Inc(k);
x:=x div 10;
End;
kol:=k;
End;
BEGIN
writeln(‘Введите два числа’); readln(n1, n2);
k1:=kol(n1);
k2:=kol(n2);
if k1=k2 Then writeln(‘одинаковое количество цифр’)
else if k1>k2 Then Writeln(‘в первом числе цифр больше’)
else writeln(‘во втором числе цифр больше’)
END.
Дата добавления: 2015-01-15; просмотров: 1511;