Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
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;
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.