происходить внутри
происходить внутри тела цикла.
В рекурсивном механизме - точно так же. Только здесь роль тела цикла играет тело процедуры. Заголовок процедуры, в отличие от заголовка цикла, не допускает анализа условия передачи управления, поэтому встраивать это условие следует в тело рекурсивной процедуры.
Вот совсем простой пример, в котором суммирование чисел из входного текстового файла f организовано двумя способами - сначала без применения рекурсии, а затем с ее помощью:
sum := 0;
while not Eof(f) do begin
Read (f, a);
Sum := sum + a
end;
{sum - глобальная переменная}
procedure SumElem;
var a : integer;
begin
if not Eof(f) then begin
Read (f, a);
sum := sum + a;
SumElem
End
end;
Здесь первый - итерационный - механизм выглядит во всех отношениях предпочтительнее:
*
во-первых, программный код явно проще, а значит - понятнее, что существенно при отладке и в случае возможной модификации;
*
во-вторых, он короче, что также всегда ценится программистами;
Индекс
Элементарные функции
Линейные уравнения
Нелинейные уравнения
Случайные числа