Косвенная (взаимная) рекурсия

   
На этом шаге мы рассмотрим взаимную рекурсию.

   
Косвенной или взаимной рекурсией называется организация вызовов нескольких процедур и функций по кругу (первая процедура вызывает вторую, вторая - третью, ..., n-я процедура вызывает первую).

   
Для реализации косвенной рекурсии при описании процедур и функций используется директива forward:

program Recurs;
  procedure Rec1 (i : Byte); forward;
  procedure Rec2 (i : Byte); 
  begin
    Writeln ('рекурсия.'); 
    Rec1(i) 
  end;
  procedure Rec1; 
  begin
    if i > 0 then 
    begin
      Write ('Взаимная '); 
      Rec2 (i-1) 
    end 
  end; 
begin
  Reс1 (5) 
end.

   
Результат:

  Взаимная рекурсия.
  Взаимная рекурсия.
  Взаимная рекурсия.
  Взаимная рекурсия.
  Взаимная рекурсия.

   
Со следующего шага мы начнем разбирать модули.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий