Új hozzászólás Aktív témák

  • dabadab

    titán

    válasz janos1988 #13966 üzenetére

    Pedig tényleg az történik, amit látsz, csak ne felejtsd el, hogy egy csomo f1 van ilyenkor :)

    Amikor eljut odáig, hogy az f1 megkapja a nullás értéket, addigra már három félbeszakadt f1 van, amik ezek után szépen befejeződnek, szóval valahogy így halad a végrehajtás (balról jobbra, a magasság csak szemléltetésnek van, ahol pontok vannak, ott nem fut a függvény, mert egy általa meghívott másik (vagy az azáltal meghívott harmadik, stb) függvény fut):

    f1(3) előtt................................................után
    f1(2) előtt...............................után
    f1(1) előtt..............után
    f1(0) f1 = 1

    Ha ugyanezt nemrekurzívan akarnánk megírni, az kb. így nézne ki:

    Program nemrekurzio(output);

    procedure f0();
    begin
    writeln('f0');
    end;

    procedure f1();
    begin
    writeln('f1 elott');
    f0();
    writeln('f1 utan');
    end;

    procedure f2();
    begin
    writeln('f2 elott');
    f1();
    writeln('f2 utan');
    end;

    procedure f3();
    begin
    writeln('f3 elott');
    f2();
    writeln('f3 utan');
    end;

    begin
    f3();
    end.

Új hozzászólás Aktív témák