rekurencja-iteracja1, Semestr 1


http://www.sciaga.pl/tekst/3651-4-rekurencja_i_iteracja

Rekurencja.


Z rekurencją mamy do czynienia wtedy, gdy podprogram (funkcja lub procedura) wywołuje sam siebie. W Pascalu taka konstrukcja językowa jest dozwolona. Podprogramy rekurencyjne pozwalają na zgrabny i przejrzysty zapis algorytmu takich problemów, w których wynik końcowy jest złożeniem wielu wyników cząstkowych. Jednym z takich problemów jest np. obliczenie n!.



Jak widać, aby obliczyć n! musimy znać (n - 1)!, znając (n - 1)! musimy znać (n - 2)! itd. Cały proces kończy się w momencie kiedy n = 0.


Function silnia(n: integer): Longint;
Begin
If n = 0 Then
silnia := 1
Else
silnia := n * silnia(n - 1);
End;

Dla n = 4 kolejne rekurencyjne wywołania funkcji silnia można przedstawić następująco:



Z chwilą wywołania podprogramu następuje powołanie do życia zmiennych lokalnych podprogramu i zmiennych przechowujących wartość argumentu dla parametrów formalnych podprogramu przekazywanych przez wartość. W trakcie rekurencyjnego wywołania takiego podprogramu powstaje następny komplet takich zmiennych. Wielokrotne rekurencyjne wywołanie podprogramów sprawia, że w pamięci występuje wiele takich kompletów zmiennych, z których aktualnie dostępny jest tylko jeden (na schemacie oznaczenia z indeksami ', '', ''', ''''). Z tego wynika, że podprogram rekurencyjny zajmuje więcej pamięci niż odpowiadający mu podprogram iteracyjny. Poza tym podprogramy iteracyjne są zwykle szybsze. Tym niemniej niektóre przykłady da się rozwiązać tylko przy użyciu rekurencji.


Iteracja.


Jest to metoda matematyczna polegająca na wielokrotnym kolejnym zastosowaniu tego samego algorytmu postępowania, przy czym wynik i-tej operacji stanowi dane wejściowe dla kolejnej, (i+1)-szej operacji.


INSTRUKCJE ITERACYJNE.
Służą do ograniczenia cykli programowych, tj. wielokrotnego wykonywania pewnych sekwencji instrukcji.
W języku Turbo Pascal występują trzy instrukcje iteracyjne.
· instrukcja [dla] FOR,
· instrukcja [dopóki] WHILE,
· instrukcja [powtarzaj] REPEAT.


Instrukcję iteracyjną [dla] FOR stosuje się w programie w przypadku, gdy liczba powtórzeń jest znana w danym miejscu programu. Instrukcja for może mieć jedną z dwóch postaci:
gdy wartość początkowa się zwiększa
FOR wartość := wartość_pocz TOwartość_końcowa DO instrukcja
gdy wartość początkowa się zmniejsza
FOR wartość := wartość_pocz DOWNTO wartość_końcowa DO instrukcja


Kolejną instrukcją iteracyjną jest instrukcja [dopóki] WHILE. Instrukcja ta służy do sprawdzenia warunku iteracji na początku i ma postać:

WHILE wyrażenie DO instrukcja

Wyrażenie jest najczęściej wyrażeniem porównania, powinno w wyniku dawać wartość logiczną TRUE lub FALSE, a instrukcja po słowie DO może być dowolną instrukcją prostą lub strukturalną. Instrukcja ta wykonywana jest tak długo dopóki wartością wyrażenia jest TRUE.



Wyszukiwarka

Podobne podstrony:
rekurencja-iteracja, Semestr 1
rekurencja-iteracja-wikipedia, Semestr 1
Definicja Rekurencji i Iteracji
REKURENCJA I ITERACJA, Technik Informatyk, PROGRAMOWANIE
Definicja Rekurencji i Iteracji
rekurencja wskazniki, WAT, semestr I, wdp
Zadania1, Elektrotechnika AGH, Semestr III zimowy 2013-2014, Metody Numeryczne, Kolos 2 - materiały
Pętle (iteracje i rekurencja)
Iteracja i rekurencja
Mechanika Semest I pytania egz
11 CWICZENIE 1 SEMESTR LETNIid 12747 ppt
Otyłość rok III semestr VI
Propedeutyka medycyny semestr III
GW Praca semestralna zasady i wytyczne
III semestr INiB Teoria i organizacja bibliografi0003
Analiza III semestr lista nr 3 Nieznany (2)

więcej podobnych podstron