Technologie Informatyczne Wykład VII

Podobne dokumenty
Technologie informacyjne Wykład VII-IX

FUNKCJA REKURENCYJNA. function s(n:integer):integer; begin if (n>1) then s:=n*s(n-1); else s:=1; end;

Podstawy programowania 2. Temat: Funkcje i procedury rekurencyjne. Przygotował: mgr inż. Tomasz Michno

wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis

Analiza algorytmów zadania podstawowe

Informatyka A. Algorytmy

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

Metody algortmiczne (Algorytmy Część IV)

Wstęp do informatyki

Matematyka dyskretna - wykład - część Podstawowe algorytmy kombinatoryczne

Podstawy programowania. Wykład: 13. Rekurencja. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Analiza algorytmów zadania podstawowe

Programowanie w VB Proste algorytmy sortowania

Informatyka wprowadzenie do algorytmów (II) dr hab. inż. Mikołaj Morzy

GNU Octave (w skrócie Octave) to rozbudowany program do analizy numerycznej.

ALGORYTMY I STRUKTURY DANYCH

Algorytmy komputerowe. dr inŝ. Jarosław Forenc

Algorytmy i struktury danych. Wykład 4

Rekurencja (rekursja)

Wstęp do programowania

Algorytmy i Struktury Danych.

Instrukcje pętli przykłady. Odgadywanie hasła. 1) Program pyta o hasło i podaje adres, gdy hasło poprawne lub komunikat o błędnym haśle.

PORADNIK METODYCZNY DLA NAUCZYCIELI GIMNAZJUM JAK WYKORZYSTAC PAKIET DYDAKTYCZNY DO NAUCZANIA

Podstawowe algorytmy i ich implementacje w C. Wykład 9

Wykład 8. Rekurencja. Iterować jest rzeczą ludzką, wykonywać rekursywnie boską. L. Peter Deutsch

1 Wprowadzenie do algorytmiki

5. Rekurencja. Przykłady

Wybrane wymagania dla informatyki w gimnazjum i liceum z podstawy programowej

Rekurencja/rekursja. Iluzja istnienia wielu kopii tego samego algorytmu (aktywacji) Tylko jedna aktywacja jest aktywna w danej chwili

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Sortowanie danych. Jolanta Bachan. Podstawy programowania

Algorytmy. wer Wojciech Myszka 30 listopada 2008

WPROWADZENIE DO ALGORYTMÓW Zadania

Propozycja szczegółowego rozkładu materiału dla 4-letniego technikum, zakres podstawowy i rozszerzony. Klasa I (90 h)

Szczegółowy program kursów szkoły programowania Halpress

3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki.

Obliczenia na stosie. Wykład 9. Obliczenia na stosie. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 266 / 303

MATeMAtyka zakres podstawowy

Kierunek i poziom studiów: Matematyka, studia I stopnia (licencjackie), rok I

Rozkład materiału z matematyki dla II klasy liceum i technikum zakres podstawowy (37 tyg. 3 godz. = 111 godz.)

Zaawansowane algorytmy i struktury danych

PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW

WYKŁAD 8. Funkcje i algorytmy rekurencyjne Proste przykłady. Programy: c3_1.c..., c3_6.c. Tomasz Zieliński

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Pętle. Programowanie komputerowe

Wstęp do Programowania Lista 1

Wykład z Technologii Informacyjnych. Piotr Mika

Algorytmy i Struktury Danych

Ćwiczenie 1. Wprowadzenie do programu Octave

Wstęp do Informatyki

TEORETYCZNE PODSTAWY INFORMATYKI

METODY OPISU ALGORYTMÓW KOMPUTEROWYCH

Opis problemu i przedstawienie sposobu jego rozwiązania w postaci graficznej. Gimnazjum nr 3 im. Jana Pawła II w Hrubieszowie 1

Pascal - wprowadzenie

PROGRAM ZAJĘĆ WYRÓWNAWCZYCH Z MATEMATYKI NA KIERUNKU MATEMATYKA

Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to

Algorytm. a programowanie -

Przetwarzanie sygnałów

Instrukcje iteracyjne (pętle)

Wstęp do Informatyki

Programowanie Proceduralne

Algorytmika i pseudoprogramowanie

Równania nieliniowe, nieliniowe układy równań, optymalizacja

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Rekurencja. Rekurencja zwana także rekursją jest jedną z najważniejszych metod konstruowania rozwiązań i algorytmów.

Algorytmy. Programowanie Proceduralne 1

ZADANIE 1. Ważenie (14 pkt)

Algorytmy w teorii liczb

Podstawy programowania funkcjonalnego

Ćwiczenie 1. Wprowadzenie do programu Octave

Podstawy programowania. Podstawy C# Przykłady algorytmów

Rekurencja. Przygotowała: Agnieszka Reiter

Rekurencja. Rekurencja zwana także rekursją jest jedną z najważniejszych metod konstruowania rozwiązań i algorytmów.

Algebra. Mat.dyskretna v.1.3 egzamin mgr inf niestacj 1. a i b i, a b (wektory są prostopadłe) a, b = 0 i=1. m n. r c ij = a ik b kj = i-ty wiersz

Zadanie 1. Test (6 pkt) Zaznacz znakiem X w odpowiedniej kolumnie P lub F, która odpowiedź jest prawdziwa, a która fałszywa.

TEORETYCZNE PODSTAWY INFORMATYKI

83 Przekształcanie wykresów funkcji (cd.) 3

PROSTE RACHUNKI WYKONYWANE ZA POMOCĄ KOMPUTERA

Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne

Konstrukcje warunkowe Pętle

Algorytmy komputerowe. dr inż. Jarosław Forenc

ZAKRES PODSTAWOWY. Proponowany rozkład materiału kl. I (100 h)

Równania nieliniowe, nieliniowe układy równań, optymalizacja

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

Propozycja szczegółowego rozkładu materiału dla 4-letniego technikum, zakres podstawowy. Klasa I (60 h)

Zagadnienia na egzamin poprawkowy z matematyki - klasa I 1. Liczby rzeczywiste

TEORETYCZNE PODSTAWY INFORMATYKI

Ściągawka z Matlaba / Octave

Wykład IV Algorytmy metody prezentacji i zapisu Rzut oka na język PASCAL

Podstawy Informatyki

Wstęp do programowania. Dziel i rządź. Piotr Chrząstowski-Wachtel

Język C część 2. Podejmowanie decyzji w programie. if else. switch

Algorytmy i struktury danych

Algorytmy. Programowanie Proceduralne 1

Algorytmy i struktury danych

PRZEDMIOTOWY SYSTEM OCENIANIA INFORMATYKA. KLASA 2F

MINIMUM PROGRAMOWE DLA SŁUCHACZY CKU NR 1

Dział Rozdział Liczba h

Podstawy algorytmiki i programowania - wykład 3 Funkcje rekurencyjne Wyszukiwanie liniowe i binarne w tablicy

Podstawy programowania w języku Visual Basic dla Aplikacji (VBA)

Strategia "dziel i zwyciężaj"

Transkrypt:

Technologie Informatyczne Wykład VII A. Matuszak (1) 22 listopada 2007 A. Matuszak (1) Technologie Informatyczne Wykład VII A. Matuszak (2) Technologie Informatyczne Wykład VII

(Rekursja) albo rekursja (ang. recursion, z łac. recurrere, przybiec z powrotem) to w programowaniu i w matematyce odwoływanie się funkcji (sformułowania) do samej siebie. A. Matuszak (3) Technologie Informatyczne Wykład VII Matematyka Ciąg geometryczny Silnia x n = k x n 1 n! = 1 2 n 1 n n! = n (n 1)! A. Matuszak (4) Technologie Informatyczne Wykład VII

Programowanie rekurencyjne function y=silnia(n) if (n==0) (n==1)) y=1; else y= n*silnia(n-1); endif endfunction A. Matuszak (5) Technologie Informatyczne Wykład VII x n x n = x 0 = 1 x p 1 = x p x 2p+1 = x x 2p x 2p = (x x) p wykładnik liczba potęgi mnożeń 1 2 10 6 100 10 1000 16 10000 19 A. Matuszak (6) Technologie Informatyczne Wykład VII

Stos 2 5 8 1 4 2 2 2 4 A. Matuszak (7) Technologie Informatyczne Wykład VII Ciąg Fibonacciego F (n) = F (0) = 1 F (1) = 1 F (n) = F (n 1) + F (n 2) A. Matuszak (8) Technologie Informatyczne Wykład VII

function y=ifibb(n) foo=1; fo=1; f=1; for i=2:n f=foo+fo; foo=fo; fo=f; endfor y=f; endfunction function y=rfibb(n) if (n<2) y=1; else y=rfibb(n-1)+rfibb(n-2); endif endfunction A. Matuszak (9) Technologie Informatyczne Wykład VII Każde zadanie sformułowne rekurencyjnie można zaprogramować iteracyjnie i na odwrót A. Matuszak (10) Technologie Informatyczne Wykład VII

Gotowanie jajek na miękko weż czysty garnek włóż potrzebną ilość jajek nalej zimnej wody, tak aby przykryła jajka postaw na kuchence zaczekaj, aż woda zcznie wrzeć od momentu wrzenia gotuj jeszcze 2.5 minuty wyjmij jajka, ochłodź w zimnej wodzie jajka są gotowe do jedzenia A. Matuszak (11) Technologie Informatyczne Wykład VII Ciąg instrukcji, operacji 1: weź czysty garnek 2: włóż potrzebną ilość jajek 3: nalej zimnej wody, tak aby przykryła jajka 4: 1: b 2 4ac 2: x 1 b 2a 3: x 2 b+ 2a 4: 1: 2: Znajdź najmniejszy pierwiastek równania kwadratowego 3: A. Matuszak (12) Technologie Informatyczne Wykład VII

Schemat Hornera a n x n + a n 1 x n 1 + + a 2 x 2 + a 1 x + a 0 = ( ((a n x + a n 1 ) x + a n 2 ) x + + a 1 ) x + a 0 A. Matuszak (13) Technologie Informatyczne Wykład VII Wyszukiwanie binarne Zgadnij liczbę z przedziału 1...100 A. Matuszak (14) Technologie Informatyczne Wykład VII

Wyszukiwanie binarne 1: Wyszukiwanie binarne(d,g,s) 2: while g d > 0 do 3: p (g+d)/2 4: if p > s then 5: g p 6: else 7: d p 8: end if 9: end while 27 [1 5 17 35 62 151] A. Matuszak (15) Technologie Informatyczne Wykład VII Sortowanie proste przez scalanie [ 151 5 77 35 12 15 ] [ 5 151 77 35 12 15 ] [ 5 12 77 35 151 15 ] A. Matuszak (16) Technologie Informatyczne Wykład VII

Euklidesa (NWD) 1: Euklides(a,b) 2: 3: r (a mod b) 4: while r > 0 do 5: a b 6: b r 7: r (a mod b) 8: end while 9: Wynik: b A. Matuszak (17) Technologie Informatyczne Wykład VII Instrukcja warunkowa 1: b 2 4ac 2: if < 0 then 3: brak pierwiastków rzeczywistych 4: end if 5: if 0 then 6: x 1 b 2a 7: x 2 b+ 2a 8: end if A. Matuszak (18) Technologie Informatyczne Wykład VII

Pętle 1: while lim x 0 f (x) ɛ do 2: 3: end while 4: 5: repeat 6: 7: until warunek 8: 9: for i = 1 do n co 5 do 10: 11: end for A. Matuszak (19) Technologie Informatyczne Wykład VII while warunek do if przypadek A then else repeat until kryterium end if end while for i = 1 do n co 5 do end for A. Matuszak (20) Technologie Informatyczne Wykład VII

A. Matuszak (21) Technologie Informatyczne Wykład VII A. Matuszak (22) Technologie Informatyczne Wykład VII

A. Matuszak (23) Technologie Informatyczne Wykład VII A. Matuszak (24) Technologie Informatyczne Wykład VII

Zadanie z kulami Dane jest n kul identycznych co do wyglądu, z których dokładnie jedna lżejsza niż pozostałe. Mamy do dyspozycji wagę szalkową. Znaleźć lżejszą kulę używając najmniejszej możliwej liczby ważeń. A. Matuszak (25) Technologie Informatyczne Wykład VII Iloczyn skalarny wektorów [a 1 a 2 a n ] [b 1 b 2 b n ] T n mnożeń i n 1 dodawań A. Matuszak (26) Technologie Informatyczne Wykład VII