Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

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

Podobne prezentacje


Prezentacja na temat: "REKURENCJA. Funkcja potęga double power(double x, unsigned int n){ if (n = = 0) return 1.0 //else return x*power(x,n-1) } Implemetnacja w C++"— Zapis prezentacji:

1 REKURENCJA

2 Funkcja potęga

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

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

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

6 Zmiany na stosie

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

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

9 Rekurencja ogonowa void ogon(int i){ if(i>0){ cout<0;i--) cout<

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

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

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. Funkcja potęga double power(double x, unsigned int n){ if (n = = 0) return 1.0 //else return x*power(x,n-1) } Implemetnacja w C++"

Podobne prezentacje


Reklamy Google