ALG9

ALG9



6.5, Metoda funkcji przeciwnych 179

b=l;

olso

(

PI(a-l,b);

// tu funkcja odwrotna? b=b+a;

)

Sens matematyczny tej procedury jest dla nas nieistotny. Jedyne, co nas w tym momencie interesuje, to takie jej przekształcenie, aby uzyskać procedurę void P2. która korzystając tylko ze zmiennych globalnych a i b będzie działała w sposób identyczny.

Pierwszym etapem naszej analizy jest odpowiedź na pytanie: „Które zmienne są modyfikowane przez rekurencyjne wywołanie PI?". Zmienna b ma charakter globalny, gdyż nie jest przez PI modyfikowana. Służy ona wyłącznie do przekazywania wyniku z wywoływanej procedury. l ak więc funkcja odwrotna - jaka by nie była jej postać — nie będzie się musiała zajmować zachowaniem wartości b. Jedyną zmienną, która jest modyfikowana, jest ci. Dekrementowana wartość zmiennej a jest przekazywana procedurze PI, natomiast po ukończeniu pracy tejże chcemy korzystać z niezmienionej wartości a.

W poznanej poprzednio metodzie eliminacji zmiennych lokalnych należałoby po prostu zachować oryginalną wartość a na stosie W naszym przypadku wystarczy (wiedząc, że jedyną modyfikacją, jakiej może na zmiennej u dokonać procedura PI. jest dekrementacja) po prostu przywrócić oryginalną wartość inkrementując ją! I to jest tą naszą tajemniczą „funkcją odwrotną”... Popatrzmy na zmodyfikowaną treść procedury:

int a,b; // zmienne globalne void P2()

{

if(a==0) b=l; else

(

a=a-l; t>2 () ; a=a+lb=b+a;

Sprawdźmy teraz w programie głównym, czy istotnie nasz program działa prawidłowo1:

1

Nie zastąpi to oczywiście formalnego dowodu równoważności /'/ i P2. ale zadanie jest na tyle proste, iż dowód ten wydaje się w tym miejscu zbędny.


Wyszukiwarka

Podobne podstrony:
ALG7 6.5. Metoda funkcji przeciwnych 177 Dokonaliśmy zatem tego, co było naszym celem: pozbawiliśmy
94289901 djvu NERWY OBWODOWE 179 Tym wymaganiom w zupełności czyni zadość druga metoda, o której w
ALG9 2.5. Pułapek ciąg dalszy 39 nie będzie mógł sprawdzić: jak rzeczywisty kompilator wykona tę fu
ALG9 2.9. Zadania 49Zad. 2-3 Napisać funkcję, która otrzymując liczbę całkowitą dodatnią wypisze je
ALG9 59 3.2. Przykład 1: Jeszcze raz funkcja silnia... Tę poszukiwaną funkcję będziemy zwać złożono
ALG9 5.1. Listy jednokierunkowe 119 wartość zwracaną przez funkcję: w normalnej sytuacji winien to
ALG 5 11.5. Całkowanie funkcji metodą Simpsona 275 Rys. II -I. Przybliżone całkowanie funkcji. Na da
ALG9 3.7. Analiza programów rekurencyjnych 69 W tym paragrafie przedstawiona zostanie metoda mająca
img079 79 6.5. Metoda funkcji nieliniowych (rys. 6.6), pochodzące od ciągłych obrotów płaszczyzny gr
img081 81 6.5. Metoda funkcji nieliniowych liniowego podziału odtworzyć potrzebne przyporządkowanie
img083 83 6.5. Metoda funkcji nieliniowych dla każdego (dowolnie małego) e. Jak z tego wynika, począ
img088 88 7. Metody specjalne7.2. Metoda funkcji potencjalnych w realizacji
img089 7.2. Metoda funkcji potencjalnych w realizacji perceptronowej    89 procedurę
ekspert perswazji 9 194 Jak przeciwdziałać tej taktyce? Pierwszą podstawową metodą jest przeciwdział

więcej podobnych podstron