Wprowadzenie do algorytmów. START



Podobne dokumenty
ALGORYTMY Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

Algorytmy i struktury danych. Wykład 4

Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

Vincent Van GOGH: M»czyzna pij cy li»ank kawy. Radosªaw Klimek. J zyk programowania Java

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

Gimnazjum w Tęgoborzy - Algorytmika Strona 1 z 22 mgr Zofia Czech

Projektowanie algorytmów rekurencyjnych

1. Informatyka - dyscyplina naukowa i techniczna zajmująca się przetwarzaniem informacji.

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

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

Temat: Liniowe uporzdkowane struktury danych: stos, kolejka. Specyfikacja, przykładowe implementacje i zastosowania. Struktura słownika.

Analiza algorytmów zadania podstawowe

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Bash i algorytmy. Elwira Wachowicz. 20 lutego

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

Iteracje. Algorytm z iteracją to taki, w którym trzeba wielokrotnie powtarzać instrukcję, aby warunek został spełniony.

Informatyka A. Algorytmy

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

Wprowadzenie do algorytmiki

Luty 2001 Algorytmy (7) 2000/2001

Temat: Technika zachłanna. Przykłady zastosowania. Własno wyboru zachłannego i optymalnej podstruktury.

1 Wprowadzenie do algorytmiki

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

Algorytmika i pseudoprogramowanie

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 5. Karol Tarnowski A-1 p.

Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny

Algorytm - pojęcie algorytmu, sposób zapisu, poziom szczegółowości, czynności proste i strukturalne. Pojęcie procedury i funkcji.

Algorytmika i programowanie. dr inż. Barbara Fryc Wyższa Szkoła Informatyki i Zarządzania w Rzeszowie

ALGORYTMY MATEMATYCZNE Ćwiczenie 1 Na podstawie schematu blokowego pewnego algorytmu (rys 1), napisz listę kroków tego algorytmu:

Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1.

Wstęp do programowania

... (środowisko) minut

Wybrane wymagania dla informatyki w gimnazjum i liceum z podstawy programowej

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.

Algorytm. a programowanie -

Temat 20. Techniki algorytmiczne

WPROWADZENIE DO ALGORYTMÓW Zadania

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

Zadanie 1. Zmiana systemów. Zadanie 2. Szyfr Cezara. Zadanie 3. Czy liczba jest doskonała. Zadanie 4. Rozkład liczby na czynniki pierwsze Zadanie 5.

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

Rekurencja (rekursja)

Programowanie Proceduralne

WYMAGANIA EGZAMINACYJNE Egzamin maturalny z INFORMATYKI

Podstawy Informatyki. Inżynieria Ciepła, I rok. Iteracja warunkowadopóki(while) Blok instrukcji. Pascal: begin instrukcja1; C: { end;

Algorytmy i schematy blokowe

.! $ Stos jest list z trzema operacjami: dodawanie elementów na wierzch stosu, zdejmowanie elementu z wierzchu stosu, sprawdzanie czy stos jest pusty.

START. Wprowadź (v, t) S:=v*t. Wyprowadź (S) KONIEC

1. Algorytmika. WPROWADZENIE DO ALGORYTMIKI Wprowadzenie do algorytmów. Pojęcie algorytmu.

Definicja. Ciąg wejściowy: Funkcja uporządkowująca: Sortowanie polega na: a 1, a 2,, a n-1, a n. f(a 1 ) f(a 2 ) f(a n )

Schematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst.

PRÓBNY EGZAMIN MATURALNY Z INFORMATYKI

Algorytmy. dr Dariusz Banaś (UJK) Seminarium w ramach projektu Fascynujący Świat Nauki dla uczniów gimnazjów. wersja 0.9. Start.

Zadania do wykonania. Rozwiązując poniższe zadania użyj pętlę for.

Algorytmy komputerowe. dr inŝ. Jarosław Forenc

Treść wykładu. Pierścienie wielomianów. Dzielenie wielomianów i algorytm Euklidesa Pierścienie ilorazowe wielomianów

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

I Powiatowy Konkurs Matematyka, Fizyka i Informatyka w Technice Etap finałowy 10 kwietnia 2013 grupa elektryczno-elektroniczna

WHILE (wyrażenie) instrukcja;

ALGORYTMY I PROGRAMY

Algorytmy. Programowanie Proceduralne 1

WHILE (wyrażenie) instrukcja;

0.1 Pierścienie wielomianów

Uwaga: Funkcja zamień(a[j],a[j+s]) zamienia miejscami wartości A[j] oraz A[j+s].

Metody numeryczne w przykładach

Technologie informacyjne Wykład VII-IX

INFORMATYKA. Algorytmy.

KLUCZ PUNKTOWANIA ODPOWIEDZI

Sortowanie Shella Shell Sort

Sposoby przedstawiania algorytmów

1. Napisz program, który wyświetli Twoje dane jako napis Witaj, Imię Nazwisko. 2. Napisz program, który wyświetli wizytówkę postaci:

Czas pracy: 60 minut

Sortowanie. LABORKA Piotr Ciskowski

EGZAMIN MATURALNY Z INFORMATYKI MAJ 2013 POZIOM PODSTAWOWY CZĘŚĆ I WYBRANE: Czas pracy: 75 minut. Liczba punktów do uzyskania: 20 WPISUJE ZDAJĄCY

Programowanie proceduralne INP001210WL rok akademicki 2017/18 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

Wykład I Cyfrowa reprezentacja informacji Algorytmy metody prezentacji i zapisu

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15

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

EGZAMIN MATURALNY Z INFORMATYKI

Pierścień wielomianów jednej zmiennej

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

stopie szaro ci piksela ( x, y)

Wstęp do informatyki- wykład 2

EGZAMIN MATURALNY Z INFORMATYKI. 10 maja 2017 POZIOM ROZSZERZONY. Godzina rozpoczęcia: 14:00 CZĘŚĆ I

PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW

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

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

Wielomiany. dr Tadeusz Werbiński. Teoria

WIELOMIANY. Poziom podstawowy

Funkcje, wielomiany. Informacje pomocnicze

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

Informatyka 1. Plan dzisiejszych zajęć. zajęcia nr 1. Elektrotechnika, semestr II rok akademicki 2008/2009

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

Programowanie i techniki algorytmiczne

ODPOWIEDZI I SCHEMAT PUNKTOWANIA ZESTAW NR 2 POZIOM PODSTAWOWY. 1. x y x y

a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10]

Projektowanie algorytmów z blokami decyzyjnymi

11. Blok ten jest blokiem: a. decyzyjnym b. końcowym c. operacyjnym

Algorytmy. Programowanie Proceduralne 1

Technologie informacyjne - wykład 12 -

Definicje. Algorytm to:

Transkrypt:

1 / 15 ALGORYMIKA 2 / 15 ALGORYMIKA Wprowadzenie do algorytmów. SAR 1. Podstawowe okrelenia. Algorytmika dział informatyki, zajmujcy si rónymi aspektami tworzenia i analizowania algorytmów. we: a,b,c delta:=b 2-4ac Algorytm delta>0 Program ródłowy Program wynikowy Rys. A. Kady program działa według okrelonego algorytmu. b delta x1 = 2 a b + delta x2 = 2 a x 0 b = 2 a Delta=0 wy: brak pierw. rzeczywistych Algorytm dokładny ( krok po kroku ) opis rozwizania postawionego problemu lub sposobu osignicia jakiego celu. Specyfikacja problemu (specyfikacja algorytmu) opisanie problemu przez podanie danych, z których korzysta algorytm oraz okrelenie wyniku, który ma by efektem działania algorytmu. W specyfikacji podajemy równie: - warunki, jakie powinny spełnia dane i wyniki, - ewentualne zalenoci midzy danymi i wynikami. wy: x 1,x 2 wy: x 0 SOP Rys. B. Schemat blokowy algorytmu obliczania pierwiastków równania kwadratowego. 2. Metody opisu algorytmów. a) Opis słowny Kolejne kroki algorytmu przedstawiamy za pomoc słów jzyka naturalnego. b) Pseudo-kod W opisie kolejnych kroków algorytmu łczymy jzyk naturalny (opis słowny) ze znanymi nam elementami składni wybranego jzyka programowania. Elementy schematu bloki: SAR SOP pocztek i koniec algorytmu blok wprowadzania i wyprowadzania danych Przykład 1. Algorytm obliczania pierwiastków równania kwadratowego. Krok 1: a podstawie współczynników równania kwadratowego oblicz warto delty: :=b*b-4*a*c. blok przeprowadzania oblicze blok podejmowania decyzji Krok 2: Jeli >0 to oblicz dwa pierwiastki: x1:=(-b-pierwiastek( ))/(2*a), x2:=(-b+pierwiastek( ))/(2*a); wypisz ich warto na ekran i zakocz działanie algorytmu. Krok 3: W przeciwnym wypadku, jeli =0 to oblicz jeden pierwiastek: x0:=-b/(2*a); wypisz jego warto na ekran i zakocz działanie algorytmu. Krok 4: W przeciwnym wypadku, (jeli <0) wypisz na ekran komunikat: brak pierwiastków rzeczywistych i zakocz działanie algorytmu. b) Drzewo a b Korze c) Składnia jzyka programowania a c b c Wierzchołki porednie 3. Graficzna reprezentacja algorytmów. a) Schemat blokowy (a) (c) (b) (c) Wierzchołki kocowe - licie Rys. C. Drzewo algorytmu wyznaczania najwikszej sporód trzech liczb.

3 / 15 ALGORYMIKA 4 / 15 ALGORYMIKA 5. Podział algorytmów. a) Algorytm liniowy Algorytm, w którym nie wystpuj bloki decyzyjne. SAR Algorytmy iteracyjne. Iteracja wielokrotne powtarzanie tej samej czynnoci (operacji). 1. Wielokrotne wykonywanie całego programu. we: r SAR pole:=r 2 obw:=2r wy: pole,obw SOP we: r pole:=r 2 obw:=2r wy: pole,obw Rys. D. Algorytm liniowy brak elementów decyzyjnych. b) Algorytm nieliniowy (warunkowy) Algorytm, w którym wystpuje, co najmniej jeden blok decyzyjny, tzw. algorytm z rozgałzieniami (przykłady na rys. B i rys. C). Koniec programu? (/) odp= wy: Cze SOP Rys. E. Algorytm iteracyjny powtarzanie całego programu po decyzji uytkownika. 2. Schemat Hornera - obliczanie wartoci wielomianu. a) Operacje dodawania i mnoenia w wielomianach. + * w(x) = ax 2 + bx + c 2 3 w(x) = ax 3 + bx 2 + cx + d 3 5 w(x) = ax 4 + bx 3 + cx 2 + dx + e 4 7 Po odpowiednich przekształceniach zapisu wielomianu ilo operacji mnoenia zmniejsza si. + * w(x) = ax 2 + bx + c = (ax + b)x + c 2 2 w(x) = ax 3 + bx 2 + cx + d = (ax 2 + bx + c)x + d = ((ax +b)x + c)x + d 3 3 w(x) = ax 4 + bx 3 + cx 2 + dx + e = (ax 3 + bx 2 + cx +d)x + e = ((ax 2 + bx + c)x + d)x + e = = (((ax +b)x + c)x + d)x + e 4 4

5 / 15 ALGORYMIKA 6 / 15 ALGORYMIKA b) Opracowanie algorytmu obliczania wartoci wielomianu. Dla wielomianu 3 stopnia: w 3 (x) = a 0 x 3 + a 1 x 2 + a 2 x + a 3 = (a 0 x 2 + a 1 x + a 2 )x + a 3 = ((a 0 x + a 1 )x + a 2 )x + a 3 wprowadzamy pomocnicz zmienn y i wykonujemy kolejne operacje przypisania (:=): SAR y := a 0 y := yx + a 1 y := yx + a 2 y := yx + a 3 y := yx + a i dla i=1..3 we: n; a 0,...,a n ; x y:=a 0 Dla wielomianu n-tego stopnia: w n (x) = a 0 x n + a 1 x n-1 + + a n-1 x + a n y := a 0 y := yx + a 1 y := yx + a 2... y := yx + a n-1 y := yx + a n y := yx + a i dla i=1..n wy: y SOP i>n y:=yx+a i n stopie wielomianu (nieujemna liczba całkowita), a 0,, a n współczynniki wielomianu (ilo współczynników: n-1), x warto argumentu. Wyniki: Warto wielomianu w(x) n-tego stopnia dla danej wartoci argumentu x. Słowny opis algorytmu: Krok 1: Przyjmij współczynnik a 0 wielomianu (stojcy przy argumencie x o najwyszej potdze) za warto pocztkow i przypisz do pomocniczej zmiennej y. / y:=a 0 / Krok 2: Oblicz n razy warto wyraenia y:=yx+a i dla i=1, 2,, n. Rys. F. Schemat blokowy algorytmu obliczania wartoci wielomianu (schemat Hornera). 3. Wyszukiwanie najwikszego (najmniejszego) elementu w zbiorze. a) Wstpne informacje. Odszukanie okrelonego elementu w zbiorze wymaga przejrzenia wszystkich jego elementów. W zwizku z tym musimy okreli ilo wszystkich elementów, tzw. moc zbioru. Wykonujemy to zwykle dwoma metodami: - poprzedzamy elementy zbioru liczb, która okrela ilo wszystkich elementów, lub - przyjmujemy okrelony element za wartownika, który nie naley do zbioru i wskazuje jego koniec. Dodatkowo zakładamy te, e zbiór nie moe by nieskoczony oraz e elementy zbioru nie s uporzdkowane. b) Algorytm wyszukiwania najwikszego elementu. n liczba naturalna okrelajca ilo liczb w zbiorze, x 1, x 2,, x n cig liczb zbioru. max najwiksza sporód liczb: x 1, x 2,, x n. Słowny opis algorytmu: Krok 1: Przyjmij pierwszy element zbioru (x 1 ) jako max [max:=x 1 ]. Krok 2: Dla kolejnych elementów x i (i = 1, 2,, n) sprawdzaj czy max jest mniejsze od x i [max<x 1 ] i jeli tak to przyjmij za max x i [max:=x 1 ].

7 / 15 ALGORYMIKA 8 / 15 ALGORYMIKA SAR we: n; x 0,...,x n max:=x 1 Algorytmy wyszukiwania danych. 1. Wyszukiwanie w zbiorze nieuporzdkowanym (liniowe). a[i] (i=1..n) nieuporzdkowana n-elementowa, jednowymiarowa tablica (a), x poszukiwany element w tablicy a. Połoenie (indeks i) elementu x w tablicy a lub informacja o braku elementu. i>n SAR max<x i we: a[i],i=1..n; x max:=x i wy: max SOP i>n Rys. G. Schemat blokowy algorytmu wyszukiwania najwikszego elementu. a[i]=x c) Złoono algorytmów wyszukiwania najwikszego lub najmniejszego elementu. Zgodnie z widocznym na rys. F schematem algorytmu odszukanie najwikszego bd najmniejszego elementu w zbiorze wymaga wykonania n-1 porówna, gdzie n jest iloci wszystkich elementów. Poniewa nie jest moliwe wykonanie mniejszej liczby porówna (dla poprawnego działania algorytmu), dlatego moemy powiedzie, e powyszy algorytm jest optymalny pod wzgldem złoonoci obliczeniowej. Optymalny, a wic najszybszy. wy: brak elementu wy: i WICZEIA: 1. Co naley zmieni w algorytmie umieszczonym na rys. G, aby odszuka element najmniejszy? 2. Uzupełnij schemat algorytmu z rys. G o moliwo odczytania pozycji, na której znajdował si poszukiwany element. 3. arysuj schemat blokowy algorytmu jednoczesnego wyszukiwania elementu najwikszego i najmniejszego. SOP Rys. H. Schemat blokowy algorytmu wyszukiwania liniowego. WICZEIA: 1. Uzupełnij schemat algorytmu z rys. H o moliwo wypisania wszystkich pozycji, na których znajdował si poszukiwany element. 2. Wyszukiwanie w zbiorze uporzdkowanym (binarne). a[i] (i=1..n) uporzdkowana n-elementowa, jednowymiarowa tablica (a), x poszukiwany element w tablicy a.

9 / 15 ALGORYMIKA 10 / 15 ALGORYMIKA Połoenie (indeks i) elementu x w tablicy a lub informacja o braku elementu. l, p tymczasowy lewy i prawy koniec zakresu, s tymczasowy rodek zakresu. SAR we: a[i],i=1..n; x l:=1; p:=n worzenie algorytmów przykłady. 1. Suma i rednia arytmetyczna. Przykładowy algorytm korzysta z elementu zwanego wartownikiem. Warto tego elementu jest znana uytkownikowi. Jej wprowadzenie koczy działanie algorytmu. x kolejno wprowadzane liczby (wartownikiem jest dowolna całkowita liczba ujemna). Suma s i rednia arytmetyczna sr wprowadzonych liczb. il ilo wprowadzonych liczb. SAR l>p s:=0; il:=0 s:=(l+p) div 2 we: x wy: brak elementu wy: s a[s]=x l:=s+1 a[s]<x p:=s-1 s:=s+x il:=il+1 x0 sr:=s/il wy: s,sr SOP SOP Rys. I. Schemat blokowy algorytmu wyszukiwania binarnego. Rys. J. Schemat blokowy algorytmu obliczania sumy i redniej arytmetycznej liczb. 2. Silnia. Zapis matematyczny: n! = 1 dla n = 0 (0! = 1) 123 n dla n 1 n liczba naturalna, z której obliczamy silni.

11 / 15 ALGORYMIKA 12 / 15 ALGORYMIKA s warto silni (n!). i przyjmujc kolejne wartoci (od 0 do n) zapewnia iteracj w algorytmie. SAR we: m,n SAR n 0 we: n s:=1 i:=0 r:=m mod n m:=n n:=r wy: m SOP in Rys. L. Schemat blokowy algorytmu obliczania najwikszego wspólnego dzielnika WD(m,n). wy: s s:=s*i SOP Rys. K. Schemat blokowy algorytmu obliczania silni (n!). ZADAIA: 1. Odszukaj lub przypomnij sobie pojcia: liczba pierwsza, liczba złoona, sito Eratostenesa. Spróbuj narysowa schemat blokowy algorytmu znajdujcego liczby pierwsze przy wykorzystaniu sita Eratostenesa. 2. W jaki sposób powstaj kolejne liczby Fibonacciego? Spróbuj przedstawi algorytm powstawania tych liczb w postaci schematu blokowego. 3. Algorytm Euklidesa. Algorytm ten odnajduje najwikszy wspólny dzielnik WD(m,n) dla dwóch liczb naturalnych m i n. p.: WD(160,96) WD(m,n) m n 160 = 196 + 64 96 = 164 + 32 64 = 232 + 0 m = qn + r q iloraz, czyli ile razy mieci si n w m r reszta (0 r < n) Jeli dana liczba jest wspólnym dzielnikiem m i n to jest równie dzielnikiem r. Moemy wic zastpi szukanie wspólnego dzielnika liczb m i n, szukaniem dzielnika liczb n i r. Operacj t powtarzamy do uzyskania reszty równej zero. Ostatnia niezerowa reszta z dzielenia jest szukanym najwikszym wspólnym dzielnikiem liczb m i n. n, m liczby naturalne (m n); WD(m,n) najwikszy wspólny dzielnik m i n.

13 / 15 ALGORYMIKA 14 / 15 ALGORYMIKA Algorytmy porzdkowania danych. W kolejnych trzech sposobach porzdkowania danych specyfikacja algorytmu przedstawia si nastpujco: a[i] (i=1..n) nieuporzdkowana n-elementowa, jednowymiarowa tablica (a), a[i] uporzdkowana tablica (a), 1. Metoda bbelkowa (ang. bubble sort). SAR zam zmienna logiczna przechowujca informacj o zamianie elementów (true/false). tymcz tymczasowo przechowywana warto wybranego elementu. 3. Sortowanie przez wybór (ang. selection sort). SAR we: a[i],i=1..n; we: a[i],i=1..n; in n<2 m:=i j:=i+1 SOP a[i]>a[i+1] zam:=false i<n n:=n-1 wy: a m:=j a[j]<a[m] j>n tymcz:=a[m] a[m]:=a[i] a[i]:=tymcz tymcz:=a[i] a[i]:=a[i+1] a[i+1]:=tymcz zam=false SOP j:=j+1 zam:=true Rys. O. Schemat blokowy algorytmu sortowania przez wybór (ang. selection sort). wy: a SOP m indeks elementu najmniejszego. j indeks ptli wewntrznej (przy wyszukiwania najmniejszego elementu) tymcz tymczasowo przechowywana warto wybranego elementu. Rys. M. Schemat blokowy algorytmu sortowania przez wybór (ang. selection sort).

15 / 15 ALGORYMIKA 2. Sortowanie przez wstawianie (ang. insertion sort). SAR we: a[i],i=1..n; i:=n-1 i0 tymcz:=a[i] j:=i+1 jn wy: a tymcz>a[j] a[j-1]:=a[j] j:=j+1 a[j-1]:=tymcz i:=i-1 SOP Rys.. Schemat blokowy algorytmu sortowania przez wstawianie (ang. insertion sort). j indeks elementów uporzdkowanych tymcz tymczasowo przechowywana warto wybranego elementu. ZADAIA: 1. Przedstawione powyej do popularne metody sortowania nie nale do najszybszych. Poszukaj informacji o innych sposobach porzdkowania danych, np.: sortowanie przez scalanie, sortowanie szybkie. 2. a czym polega metoda porzdkowania kubełkowego (koszykowego) i pozycyjnego. Jakiego rodzaju dane najczciej sortujemy tymi metodami?