Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

REKURENCJA.

Podobne prezentacje


Prezentacja na temat: "REKURENCJA."— Zapis prezentacji:

1 REKURENCJA

2 Funkcja potęga

3 Funkcja potęga Implemetnacja w C++
double power(double x, unsigned int n){ if (n = = 0) return 1.0 //else return x*power(x,n-1) }

4 Funkcja potęga Implemetnacja w Turbo Pascalu
function power(var x:Real;n: Integer):Real; var n1:Integer; begin if (n=0) then power:=1 else n1:=n-1; power:=x*power(x,n1); end end;

5 Wywołanie power(5.6,2) Ścieżka wywołań w 1: power(5.6,2)

6 Zmiany na stosie

7 Funkcja potęga Implemetnacja w C++ za pomocą pętli
double nRPower(double x, unsigned int n){ double result=1; for (result=x; n>1; --n) result *=x; return result; }

8 Funkcja potęga Implemetnacja w Turbo Pascalu za pomocą pętli
function nRPower(var x:Integer; n: Integer):Integer; var result:Integer; begin for result:=x downto 1 result:=result*x; end; nRPower:=result;

9 Rekurencja ogonowa Przykład w c++ rekurencyjna iteracyjna
void iterogon(int i){ for ( ; i>0;i--) cout<<i<<’ ’; } void ogon(int i){ if(i>0){ cout<<i<<’ ’; ogon(i-1); }

10 Rekurencja ogonowa Przykład w Turbo Pascalu rekurencyjna
function ogon(var i:Integer):Integer; var i2: Integer; begin if (i>0) then write(i,” ”); i2:=i-1 ogon:=ogon(i2); end end;

11 Rekurencja ogonowa Przykład w Turbo Pascalu iteracyjna
function iterogon(var i: Integer):Integer; var i2: Integer; begin for i2:=i downto 0 do write(i,” ”); end;

12 Rekurencja pośrednia Przykład 1.
f() -> f1() -> f2()->…->fn()->f() Przykład 2. Niech dane będą trzy funkcje służące do dekodowania informacji: odbierz() – zapisuje dane w buforze dekoduj() – przekształca ja w czytelną postać zapisz() – zapisuje w pliku. Łańcuch wywołań może mieć postać: odbierz() -> dekoduj() -> zapisz() -> odbierz() -> dekodu() -> …

13 Rekurencja zagnieżdżona
funkcja jest zdefiniowana przez samą siebie oraz jest użyta jako jeden z parametrów Przykład: Funkcja h ma rozwiązanie dla wszystkich n>=0. Fakt jest oczywisty dla n>4 oraz dla n=0. Dla n=1,2,3,4 trzeba udowodnić h(2)=(h(2+h(4))=h(2+h(2+h(8)))=h(2+h(2+8))=h(2+h(10)=h(2+10)=h(12)=12

14 Bibliografia A. Drozdek, „C++. Algorytmy i struktury danych”, Helion, Gliwice 2004;


Pobierz ppt "REKURENCJA."

Podobne prezentacje


Reklamy Google