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

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

    Косвенной или взаимной рекурсией называется организация вызовов нескольких процедур и функций по кругу (первая процедура вызывает вторую, вторая - третью, ..., 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.

    Результат:

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

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




Предыдущий шаг Содержание Следующий шаг