REKURENCJA.

Slides:



Advertisements
Podobne prezentacje
PRAM.
Advertisements

STRUKTURY DANYCH.
Sortowanie przez scalanie
Analiza wywołania i przebiegu przerwań w systemie Linux
ALLEGRO PIERWSZA GRA: WYŚCIG
PROGRAMOWANIE STRUKTURALNE
OOPC++ - operatory1 Operatory class complex { private: double re, im; public: complex (double r, double i = 0) { re = r; im = i; } friend complex operator+
Turbo pascal – instrukcje warunkowe, iteracyjne,…
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 8: Wykorzystanie procedur i funkcji © Jan Kaczmarek.
GUI Struktury Spotkanie integracyjne Nazwa wydziału: EAIiE Nazwa katedry: Informatyka Miejsce i data prezentacji: Kraków,
Rekurencja Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład.
Rekursja Teoretyczne podstawy informatyki Wykład 5
Rekurencja Copyright, 2001 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład.
Imperatywne modele obliczeń Copyright, 2003 © Jerzy R. Nawrocki Teoretyczne podstawy.
Programowanie imperatywne i granice obliczalności Copyright, 2004 © Jerzy R. Nawrocki
Rekursja Copyright, 2004 © Jerzy R. Nawrocki Teoretyczne podstawy informatyki.
1 Przestrzenie nazw. 2 Globalna przestrzeń nazw jest jedna W programach pisanych przez wiele osób, lub korzystających z bibliotek napisanych przez innych,
Parallel Processing, Pipelining, Flynn’s taxonomy
Współprogramy Plan: Motywacja Składnia Scenariusz obiektu współprogramu Przykłady Producent – konsument ( instrukcja attach ) Czytelnik -pisarze ( instukcja.
142 JAVA – sterowanie i wątki public class A20 extends javax.swing.JApplet implements ActionListener { private int licznik = 0; private JTextField t =
Podprogramy.
Porysujmy trochę czyli Łączenie SQLa, AutoCADa i Delphi
Programowanie strukturalne i obiektowe
PRZELICZNIK DŁUGOŚCI w programie NetBeans IDE autorzy: Michał Mrozek i Marcin Mrugała 2012.
db4o Kacper Skory Marcin Talarek
Programowanie strukturalne i obiektowe
PROPOZYCJE ZAPISU Autorzy: Uczniowie należący do Samorządu Szkolnego.
Przygotował: Adrian Walkowiak
Przyjacielu….
DYFRAKCJA ŚWIATŁA NA SIATCE DYNAMICZNEJ
III. Proste zagadnienia kwantowe
Wycieczka w Pieniny Fotograficzna opowieść o tym, jak zespolone siły klas I a, II h, III a i III b zdobyły 9 VI 2006 r. Trzy Korony. Prezentację przygotowała.
Kartkówka K3 ETEK00020C
Tablice.
Wolontariat w BACZYŃSKIM.
Prezentacja z przedmiotu systemy wizyjne Biblioteka Point Cloud Library Przygotowali: Paweł Król, Michał Kulbat Recenzent: Krzysztof Holak.
Podstawy programowania
Instalacja i konfiguracja serwera OpenVPN
Ach te baby... Ach te baby....
Informatyka MTDI1 Wykład 11 Delphi Pascal c.d. Pliki Typ zbiorowy
Automatyczne wyznaczanie złożoności obliczeniowej algorytmów
Wykonała Sylwia Kozber
Władza lokalna w Polsce
Migacze. PROBLEM Ożywiamy parę identycznych organizmów. Na zmianę wysyłają coraz dłuższe sekwencje impulsów (A zaczyna jednym mignięciem, B mruga dwa.
Optyka Widmo Światła Białego Dyfrakcja i Interferencja
Typy palet.
Warsztaty C# Część 2 Grzegorz Piotrowski Grupa.NET PO
KINECT – czyli z czym to się je?. Damian Zawada
Instrukcja warunkowa i wyboru
Wskaźniki.
A. Jędryczkowski – 2006 ©. Tablica to struktura danych zawierająca zbiór obiektów tego samego typu i odpowiada matematycznemu pojęciu wektora (tablica.
Turbo Pascal umożliwia wykorzystanie w programach zbiorów teoriomnogościowych, których elementy muszą należeć do pewnego określonego typu. Typ zbiorowy.
Pliki elementowe – A. Jędryczkowski © 2007 Turbo Pascal umożliwia wykorzystanie w programach plików elementowych. Pliki takie zawierają informację zakodowaną
Budowa programu #include /*instrukcje preprocesora */ #include int main(void) { /*podstawowa funkcja programu */ int a=1; /*deklaracja i inicjalizacja.
Zmiany w Przepisach Gry w Piłkę Nożną od 1 września 2006r. Kolegium Sędziów Warmińsko-Mazurskiego Związku Piłki Nożnej.
Park Nauki i Zabawy przy Miejskiej Szkole Podstawowej im. Janusza Korczaka w Jedlinie – Zdroju, jako sposób aktywnego spędzania wolnego czasu. Rok szkolny.
Temat 1: Umieszczanie skryptów w dokumencie
Temat 6: Elementy podstawowe
Temat 4: Znaki diakrytyczne i definiowanie języka dokumentu
Warsztaty użytkowników programu PLANS – Karwia06 Język makropoleceń JMP programu PLANS Część I mgr inż. Tomasz Zdun.
Instrukcja switch switch (wyrażenie) { case wart_1 : { instr_1; break; } case wart_2 : { instr_2; break; } … case wart_n : { instr_n; break; } default.
Instrukcja switch switch (wyrażenie) { case wart_1 : { instr_1; break; } case wart_2 : { instr_2; break; } … case wart_n : { instr_n; break; } default.
Rzeszów r.. Liczba osób badanych 3 Odpowiedzi badanych na temat stosowania krzyku przez rodziców 4.
Magic Janusz ROŻEJ Komtech Sp. z o.o.
Informatyka MZT1 Wykład 6 Iteracje while i repeat Tablice Rekordy
TROCHĘ HISTORII Marek Zając PO CO UŻYWAĆ OPENCL? Marek Zając.
Wykład 10 typ zbiorowy rekurencja.
Piotr Czapiewski Wydział Informatyki ZUT.  Extensible Markup Language  Język znaczników  Human-readable and machine-readable  Niezależny od platformy.
METODY REPREZENTOWANIA IFORMACJI
Współprogramy IV.
Zapis prezentacji:

REKURENCJA

Funkcja potęga

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) }

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;

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

Zmiany na stosie

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; }

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;

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); }

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;

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;

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() -> …

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

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