нас на этом пути.
нас на этом пути. Их иллюстрирует только что описанная схема, развернутая в следующей программе.
{$M 16384,0,655360}
var
x, y, z : byte;
k : 0..10;
function First (n : byte) : byte; forward;
function Second (n : byte) : byte;
begin
if n=0 then Second := 1 else Second := First(n-k) + 1
end;
function First;
begin
if n=0 then First := 0 else First := Second(n-1) + 1
end;
BEGIN
Read (k);
{при k=0,1,2,4,5,6,8,9,10 - программа выполняет работу}
{при k=3,7 - происходит переполнение стека}
for x := 0 to 4 do
begin
y := First(x); z:=Second(x); WriteLn (x,y,z,' ')
end
END.
Механизм рекурсии (то есть, самовызова), фактически, представляет лишь вариант организации цикла. При этом, если не предусмотреть возможность выхода, цикл работает бесконечно, как в истории “попа и собаки”. Разумеется, выход можно организовать по-разному, но в любом случае требуется изменение некоего управляющего параметра. В “обычных” циклах с предусловием и постусловием изменение должно
Индекс
Элементарные функции
Линейные уравнения
Нелинейные уравнения
Случайные числа