Рекурсивний виклик функцій та процедур
Процедура чи функція може бути викликана: 1. Із тіла головної програми 2. Із тіла іншої процедури та функції 3. Із тіла тої ж самої процедури та функції - рекурсія
Приклад: Обчислити хn, n³0, ціле за допомогою рекурсії. program help; function power(x:real;n:integer):real; begin if n=0 then power:=1 else power:= power(х,n-1) *x end; { головна програма } begin : y:=power(4,8); : end.
Приклад: обчислити n!.
Program; var number:integer; function factorial(value:integer):integer; begin if value=0 then factorial:=1 else factorial:= factorial(value-1) *value end; begin readln(number); if number<0 then writeln(' нема фекторіалу від'ємного числа') else writeln('факторіал ',number,' дорівнює ',factorial(number)) end.
Приклад: перевести десятькове число у вісімкове шляхом ділення та виведення остач у зворотньому порядку.
Var z:integer; Procedure convert(z:integer); Begin If z>1 then convert(z div 8); Write(z mod 8:1); End; Begin Readln(z); Convert(z); End.
|