20.9. Взаимно рекурсивные подпрограммы
Две подпрограммы называются взаимно
рекурсивными, если первая подпрограмма
обращается ко второй, а вторая
к первой. Обычное описание таких
подпрограмм невозможно, так как при
этом вызов подпрограммы будет
предшествовать ее описанию. Противоречие
разрешается использованием опережающего
описания. Описывается заголовок одной
из подпрограмм, а тело ее заменяется
ключевым словом forward.
Затем описывается другая подпрограмма
полностью, а после нее
неполный заголовок (без указания
параметров) и тело первой подпрограммы:
Program pr1(x:real);
forward;
procedure pr2(...);
{описание тела с вызовом pr1}
procedure pr1;
{ описание тела с вызовом pr2
};