ALG4

ALG4



174 Rozdział 6. Derekursywatp 6.4.

to dlaczego nie wspomnieliśmy o tym wcześniej, wprowadzając na dodatek nowe nazewnictwo?

Odpowiedź zabrzmi dość przewrotnie: te dwa typy rektirencji są i nie są zarazem takie same. Wprowadzając nowy termin, ową rekurencję z parametrem dodatkowym, miałem na uwadze pewną klasę zagadnień natury numerycznej lub quasi-numerycznej Wyrażając to jeszcze dokładniej: grupę programów, które zwracają „namacalny" wynik, np. liczbę, tablicę, ciąg znaków etc. Ten w'ynik jest dostarczany poprzez parametr dodatkowy i stąd pochodzi nazwa. Natomiast programem terminalnym może być procedura hemoi, która nic „dotykalnego” oprócz przepisu na rozwiązanie łamigłówki - nie dostarcza! Poprzestając na tym wyjaśnieniu przekształćmy wreszcie funkcję silnia na jej postać rektirencyjną. Niespodzianek nie powinno być żadnych - tłumaczenie jest niemal automatyczne:

int si 1 nia_it(int x, int rps=l)

i

while t x!=0)

I

res=x* res; x—;

)

return res;

I

6.4. Derekursywacja z wykorzystaniem stosu

W tym paragrafie zapoznamy się z nową metodą derektirsywacji, która niestety jest dość kontrowersyjna. Zmuszeni bowiem będziemy do swoistego zaprze- i czenia wielkim regułom programowania strukturalnego i na dodatek propono- I wane rozwiązania nie będą miały nic wspólnego z „estetycznymi” wymogami I programowania. Powodem tego jest operowanie pojęciami o bardzo niskim poziomie abstrakcji, bardzo zbliżonymi do zwykłego języka asemblera. Zasada jest prosta: wiedząc, jak kompilator traktuje wywołania rekurencyjne, będziemy usiłowali robić to samo, lecz próbując po drodze nieco upraszczać jego zadanie. I Mamy bowiem do dyspozycji coś, czego brakuje współczesnym kompilatorom: I naszą inteligencję. Kompilator jest zwykłym programem postępującym auto- I matycznie: plik tekstowy zawierający program w języku wysokiego poziomu jest zamieniany na maszynową reprezentację, która możliwa jest do wykonania przez procesor komputera. Kompilator rozpatruje programy pod kątem ich składni i nie jest raczej w stanie analizować ich sensu i celu. My natomiast całą tę wiedzę posiadamy i stąd właśnie wziął się pomysł metody derekursywacji z wykorzystaniem stosu.


Wyszukiwarka

Podobne podstrony:
ALG4 134 Rozdział 5. Struktury danyct Jak to zwykle bywa, możliwych implementacji kolejek jest co n
ALG2 172 Rozdział 6. Derekursywacja Wzmiankowany powyżej „tajemniczy sposób” nie powinien stanowić
ALG2 182    Rozdział 6. Derekursywatji 6, Jest to forma niewątpliwie równoważna, cho
38082 rozdział 2 (19) f procentowej jest nie duża, tym bardziej opłacalny jest kredyt i zarazem fina
IMG43 (7) HERAKLES 136 IV.Pomniejsze czyny Heraklesa.Dokonania Heraklesa, zebrane w tym rozdziale,
47646 LastScan11 (8) 54 Relacja człowiek-przyroda na przykładzie miasta “Jeśli chce Pan popatrzeć na
Ciekawe pytanieJeżeli astronomowie mogą przewidzieć coś, co wydarzy się za 76 lat, to dlaczego nie m
ET4 174 Rozdział 10. Polityka turystyczna regionami granicznymi, wspieranie inicjatyw transgraniczn
ALG4 24 Rozdział 1. Zanim wystartujemy Aby zaradzić zaanonsowanym wyżej problemom, przyjęło się zwy
Alg4 44 Rozdział2. Rekurencja ( if (lg>0) ( lineto(x+lg,y); lineto(x+lg,y+lg); lineto
ALG4 54 Rozdział 3. Analiza sprawności algorytmów Tematyką tego rozdziału jest tzw. złożoność oblic

więcej podobnych podstron