ALG2

ALG2



182    Rozdział 6. Derekursywatji 6,

Jest to forma niewątpliwie równoważna, choć pozornie niewiele z niej na razie wynika. Przeanalizujmy jednak dokładniej działanie tego programu, starająca odtworzyć sekwencyjny sposób wywoływania grup instrukcji oznaczonych syniffl i licznie jako A(x). B(x) i C(x).

Widać od razu, iż każdorazowe spełnienie warunku instrukcji if... cl.se spowoduje aj pewno wykonanie A(x) i N+ + . Niespełnienie zaś warunku spowoduje jcdn> I krotne wykonanie C(.x). Tyle możemy zaobserwować odnośnie kodu obsługi- I wanego przed wywołaniem rekurencyjnym P.

Co się jednak dzieje podczas wywołań i powrotów rekurencyjnych? Otóż wy-1 konywana jest instrukcja B(x). oczy wiście wraz z N~. Jeśli teraz zdecydujemy się I na zasymulowanie operacji wywoływania i powrotu rckurencyjnego poprzez-11 odpowiednio - /V++ i N~, możliwe jest zaproponowanie następującej równo- 'II ważnej formy procedury P:

int M=0; void P()

t

do

I

while(warunek(a))

(

A(x) ;

M++;

)

C (x) ; if(N==0)

goto koniec;

N--;

B(x) ;

)while(N!=0); koniec:

)

Czytelnik, którego nie przekonał ten wywód, może znaleźć bardziej ścisły matę- | matycznie dowód prawidłowości powyższej transformacji w [Kro89], Na użytek I tego podręcznika zdecydowałem się jednak na zamieszczenie mniej formalnego I wyjaśnienia - tym bardziej, że zagłębianie się w dywagacje na temat derekur- I sywacji ma bardzo mało wspólnego z algorytmiką, a bardzo wiele z „dziw- I nymi” sztuczkami łatwo prowadzącymi do przyjęcia złego sty lu programowania.

6.6.2.Schemat typu if... else

Weźmy pod uwagę schemat rekurencyjny przedstawiony na listingu poniżej:

void P()

(

if (warunek(x))


Wyszukiwarka

Podobne podstrony:
ALG2 172 Rozdział 6. Derekursywacja Wzmiankowany powyżej „tajemniczy sposób” nie powinien stanowić
ALG4 174 Rozdział 6. Derekursywatp 6.4. to dlaczego nie wspomnieliśmy o tym wcześniej, wprowadzając
Formy ruchu przy muzyce 7 Zachodniej. Jest to forma ćwiczeń, która nie powinna się kojarzyć z brutal
geertz3 218 ClifTord Geeifó Wyjaśnienie poprzez interpretację - a jest to forma wyjaśnienia, nic zaś
img003 (30) 218 Clifford Geertz Wyjaśnienie poprzez interpretację - a jest to forma wyjaśnienia, nie
img003 (6) 218 ClitTord Ciceit/ Wyjaśnienie poprzez interpretację - a jest to forma wyjaśnienia, nie
SPF4 10 10. OPIS POSTACI /- Opis postaci jest to forma wypowiedzi, w której przedstawiamy wygląd zew
GENETYKA Anna Sadakierska Chudy , Grażyna Dąbrowska str2 106 Rozdział 8 dzicielska jest metylowana
12 1. Wykład I, 2.X.2009 Jest to forma kwadratowa od x. Jej współczynniki mają w analizie portfelowe
Image60 (2) Forma grzecznościowa ^. T-masu Jest to forma finalna. W czasownikach 2. grupy po temacie
geertz3 218 ClifTord Gcerte Wyjaśnienie poprzez interpretację - a jest to forma wyjaśnienia, nic zaś
CCF20091227019 Bogdan Rączkowski - BHP w praktyce Rozdział 9 •    gdy jest to koniec

więcej podobnych podstron