Реферат: Структуровані типи даних записи та множини Використання процедур та функції мови Turbo Pascal
Тут n! визначається через (n!-1), т.б. через ту ж саму функцію.
Programa FACT (input, output);
Var n : integer;
FUNCTION F ( v : integer) : integer;
Begin
If v = 0 then
F := 1
else
F := v * F(v-1);
End;
Begin
Writeln (‘ ввести аргумент n ‘);
Read ( n );
If n<0 then
Writeln (‘ факторіал не визнач. ’);
else Writeln (‘ факторіал ’, n ,’= ’, F(n));
end .
В прикладі4 рекурсивна функція F можно представити і не в рекурсивною:
FUNCTION F( v : integer) : integer;
Begin
F := 1:
for i := 1 to v do
F := F * i;
End;
Особливість: на реалізацію рекурсивної функції ЕОМ затрачує значний час, хоча її опис більш компактний і наочний. Не рекурсивні функції обчислюються швидко.
Формально у мові Паскаль не дозволяється використовувати конструкції, які ще не описані.
Для виключення таких ситуацій використовують, так званий, випереджальний опис процедур і функцій. При цьому до опису процедури F1 вказується на подальші використання процедури F2. Тоді звертання з F1 до F2 допустимо (рис.5).
Program Pr …;
Procedure F2 (…);