31
АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected] Предмети: Увод у објектно програмирање Алгоритми и структуре података др Милован Миливојевић страна 1 31 Блок 1-P Algoritmi Strukture podataka Uvod u OOP др Милован Миливојевић

i... · Persijski jezik. 783. Hiva. Harezm. 850. Bagdad. Iran. Matematika. Astronomija. Astrologija. Geografija. 9. vek. Uzbekistan. ��Ku a mudrosti. Iran. �ï

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

  • АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

    Предмети: Увод у објектно програмирање Алгоритми и структуре података

    др Милован Миливојевић страна 1 oд 31

    Блок 1-P Algoritmi ● Strukture podataka ●

    Uvod u OOP

    др Милован Миливојевић

    http://www.vpts.edu.rs/

  • АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

    Предмети: Увод у објектно програмирање Алгоритми и структуре података

    др Милован Миливојевић страна 2 oд 31

    VAŽNO

    • Materijal u ovom Bloku predstavlja kompilaciju materije iz referenci [4], [8], [9], [10] i [11];

    • Materija je namenjena samo za internu upotrebu za studente I i II godine - studijskog programa Informacione tehnologije, Akademije zapadna Srbija ● odsek Užice, kao pomoć u pripremi i savladavanju materije vezane za: Algoritme, Strukture podataka i Uvod u objektno programiranje;

    • Pri korišćenju ovog teksta za druge namene OBAVEZNO je referenciranje na originalnu literaturu.

    Preporučena literatura:

    1.

    Microsoft Visual C# 2012 korak po korak

    Autor: John Sharp

    Izdavač: CET Beograd, Srbija Godina izdavanja: 2013.

    2.

    Microsoft Visual C# Step by Step, Ninth Edition

    John Sharp

    Izdavač: Published with the authorization of Microsoft Corporation by: Pearson Education, Inc. Copyright © 2018 by Pearson Education, Inc.

    3.

    Exam Ref 70-483: Programming in C#

    Wouter de Kort

    Published with the authorization of Microsoft Corporation by: O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, California 95472 /// Copyright © 2013 by O'Reilly Media, Inc.

    4.

    Osnove dizajna i analize algoritama

    Autor: Dejan Živković

    Beograd (RAF) / CET Beograd, Srbija

    Godina izdavanja: 2007.

    5.

    Algoritmi i strukture podataka

    Autor: Milo Tomašević

    Izdavač: Mikroknjiga Beograd, Srbija Godina izdavanja: 2008.

    6.

    Algoritmi i strukture podataka

    Autor: Dragan Urošević

    Izdavač: Računarski fakultet Beograd (RAF) / CET Beograd, Srbija Godina izdavanja: 2018.

    7.

    Rešeni zadaci iz programskog jezika C# (drugo izdanje)

    Autor: Laslo Klaus

    Izdavač: Akademska Misao Beograd, Srbija Godina izdanja: 2018.

    8.

    Numeričke metode, V. Simonović Mašinski fakultet, Univerzitet u Beogradu, 1987.

    9. sr.wikipedia.org odrednica Мухамед_ел_Хорезми

    10. sh.wikipedia.org/wiki/Algoritam

    11. sr.wikipedia.org odrednica: Кућа_мудрости

    http://www.vpts.edu.rs/

  • АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

    Предмети: Увод у објектно програмирање Алгоритми и структуре података

    др Милован Миливојевић страна 3 oд 31

    Sadržaj 1. BLOKA

    • Pojam algoritma. Istorija

    • Proceduralno i OOP programiranje.

    • Svojstva algoritma.

    • Dizajn i analiza algoritama

    • Načini prikazivanja algoritama.

    • Klasifikacija i podela algoritama.

    Istorija: Pojam algoritma [10]

    Algoritam je u matematiku uveo iranski (persijski) matematičar Muhamed Al Horezmi (slika 1).

    Oko 825 god., napisao je knjigu Al Horezmi o indijskoj veštini računanja gde u islamsku (arapsku) matematiku uvodi indijske cifre i dekadni brojni sistem. Ova knjiga biva kasnije prevedena (u XII veku) na latinski kao Algoritmi de numero indorum.

    Od lošeg latinskog prevoda njegovog prezimena (Al Horezmi → Algoritmi) i potiče reč algoritam, i dugo je označavala postupak za račun sa decimalnim brojnim sistemom (i indijskim odnosno, kako se kasnije (usvojeno), arapskim ciframa).

    Slika 1.1. Muhamed ibn Musa al Horezmi

    (783.-850.)

    (Persija, Iran danas Uzbekistan)

    Životni i radni vek proveo je u Bagdadu – u to vreme naučnoj prestonici sveta i mestu susreta antičke, arapske, persijske i indijske misli – gde je vodio državnu biblioteku i bio jedan od članova čuvene Kuće mudrosti.

    Njegovo najslavnije delo (napisano pre Al Horezmi o indijskoj veštini računanja), „Knjiga o svođenju i dvostrukom oduzimanju“, ponudilo je prvo sistematsko rešenje linearnih i kvadratnih jednačina, što je utemeljilo algebru kao posebnu matematičku disciplinu i Al Horezmiju obezbedilo status oca algebre. Čak i sam termin algebra potiče od reči „al-džabr“ iz naslova pomenute knjige i na arapskom označava „ponovno sastavljanje razdvojenih delova“.

    Algoritam je opis za rešavanje nekog problema.

    • U novije vreme, algoritam je pojam koji se gotovo isključivo vezuje za informatiku

    • Mada ne postoji jedinstvena opšteprihvaćena definicija, podrazumeva se da je u pitanju nekako opisana procedura za obavljanje posla.

    http://www.vpts.edu.rs/

  • АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

    Предмети: Увод у објектно програмирање Алгоритми и структуре података

    др Милован Миливојевић страна 4 oд 31

    • U tu svrhu se definišu algoritamski jezici. To su formalizovani jezici kojima se relativno lako opisuju postupci rešavanja problema predstavljenih algoritmom, takvi su na primer programski jezici.

    Algoritam je konačna i precizno definisana procedura, niz dobro definisanih pravila, kojom se ulazne vrednosti transformišu u izlazne, ili se opisuje izvršavanje nekog postupka.

    o Prvi algoritam koji se može smatrati procedurom, čija je namena račun na automatskoj mašini, je napisala Ejda Bajron 1842. godine (slika 2).

    o U pitanju je algoritam za račun Bernulijevih brojeva na analitičkoj mašini Čarlsa Bebidža.

    o Ta mašina nikad nije proradila, ali je njen algoritam ostavio dubok trag.

    o Danas se taj algoritam tretira prvim računarskim algoritmom, a Ejda Bajron, ledi Lavlejs, je priznata kao prvi programer u istoriji.

    o U njenu čast je i jedan od programskih jezika dobio naziv Ada.

    Slika 1.2. Ejda Bajron

    često se u literaturi navodi i kao Ada,

    engl. Lady Ada Augusta Byron, Countess of Lovelace;

    (1815-1852.)

    ćerka engleskog pesnika lorda Bajrona i Anabele Milbank

    • Značajan napredak u formalizaciji uvođenja algoritma u matematiku i logiku je učinio Alan Tjuring u svojim radovima definisanjem Tjuringove mašine.

    • To je primitivan automat, misaona tvorevina, ali poseduje mogućnost izvođenja nekoliko operacija koje su dovoljne za izvođenje skoro svih algoritama.

    • Tako se, i pored jednostavnosti ove mašine, začela teorija konačnih automata kao nova oblast. Istraživanjem se došlo i do teorijskih problema: Tjuringov problem zaustavljanja, NP-težak problem, NP-potpun problem ...

    Preporuka:

    Detaljije o istoriji pojma algoritma, pročitati na kraju dokumenta!!!

    http://www.vpts.edu.rs/https://sh.wikipedia.org/wiki/Engleski_jezikhttps://sh.wikipedia.org/wiki/1815https://sh.wikipedia.org/wiki/1852https://sh.wikipedia.org/w/index.php?title=D%C5%BEord%C5%BE_Gordon_Bajron&action=edit&redlink=1

  • АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

    Предмети: Увод у објектно програмирање Алгоритми и структуре података

    др Милован Миливојевић страна 5 oд 31

    Algoritmi. Proceduralno i OOP programiranje:

    Slika 1.3. Algoritam u proceduralnom i OOP programiranju ...

    • Proceduralno programiranje kao neophodna komponenta OOP programiranja.

    • Pojam procedura: Funkcije (Function...) i Potprogrami (Subroutine...).

    • Razlike i sličnosti sa konceptima OOP (klase, metode, svojstva, događaji ...)

    Pojmovi objektno orjentisanog programiranja (OOP - Object Oriented Programming):

    • Objekti,

    • svojstva,

    • metode,

    • događaji

    • klase,

    • kolekcije klasa,

    • enkapsulacija,

    • nasleđivanje,

    • polimorfizam...

    Pojam algoritma

    Proceduralno programiranje

    vs

    Objektno Orijentisano Programiranje (OOP)

    (Object Oriented Programming )

    Algoritam

    Algoritam je tačan, opšterazumljiv propis koji definiše proces transformacije početnih podataka u traženi rezultat [8]

    http://www.vpts.edu.rs/

  • АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

    Предмети: Увод у објектно програмирање Алгоритми и структуре података

    др Милован Миливојевић страна 6 oд 31

    Svojstva algoritama. Mogući put do rešenja:

    Bitna svojstva svakog klasičnog algoritma*:

    • Determinisanost - za iste početne podatke daje iste rezultate, ma koliko puta bio ponovljen

    • Diskretnost — u odvojenim koracima se izvršavaju diskretne operacije algoritma koje vode ka konačnom cilju;

    • Razumljivost - relativan pojam / zavisi od onoga ko interpretira algoritam

    • Masovnost - sposobost algoritma da može rešavati probleme istog tipa (primer: da algoritam za rešavanje korena kvadratne jednačine, može rešiti svaku kvadratnu jednačinu bez obzira da li su rešenja realna ili konjugovano kompleksna)

    • Rezultativost - Algoritam mora da vodi ka rešenju zadatka, ako su početni podaci iz skupa mogućih podataka

    • Konačnost - svojstvo algoritma da se ostvaruje u konačno mogo koraka za razumno vreme. Kaže se da konačnost treba da bude ostvarljiva.

    * Svojstva treba shvatiti uslovno! Moderni algoritmi proširuju prethodna tumačenja!?!

    Primeri algoritma:

    ❖ Recept za puslice! ❖ Operacioni list u mašinskoj proizvodnji! ❖ Receptura za zaštitu herbicidima! ❖ Skup koraka za rešavanje određenog integrala....!!!

    Jedna od mogućih definicija:

    ALGORITAM JE SKUP UREĐENIH KORAKA ZA DOBIJANJE REŠENJA.

    o Rešavanje nekog problema moguće je realizovati na različite načine, različitim algoritmima:

    Primer: Koliko je 15 x 12?

    a. 1. 10x15=150

    2. 2 X15=30

    3. 150 + 30 =180

    b. 10+10+10+ ... + 10+10=180

    c. 15+15+15+ ... + 15+15=180

    d.

    1. 12x12=144

    2. 3 X12=36

    3. 144 + 36 =180

    f ...

    http://www.vpts.edu.rs/

  • АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

    Предмети: Увод у објектно програмирање Алгоритми и структуре података

    др Милован Миливојевић страна 7 oд 31

    Osnovi dizajna i analiza algoritama [4]

    Problem A: Veliki računarski projekti → Softversko inženjerstvo

    Problem B: Algoritmi koji su u osnovi rešenja problema

    Postavka:

    • Big Data;

    • Vreme izvršenja;

    • Potrebni memorijski resursi.

    Uspeh celih projekata često zavisi od algoritama a ne od tehnologije.

    Dizajn algoritama koji imaju dobre performmanse za velike količine podataka je fundamentalni zadatak dobrog programiranja.

    • Algoritamski problem o Opšti algoritamski problem se navodi skupom Ulaznih vrednosti i

    skupom Izlaznih vrednosti;

    • Instanca problema se sastoji od valjanog ULAZA PROBLEMA i REŠENJA INSTANCE PROBLEMA.

    Primer ALGORITAMSKOG PROBLEMA:

    Problem vraćanja kusura

    ULAZ: Pozitivni ceo broj k, niz od k pozitivih celih brojeva [c1,c2,..., ck] i pozitivni broj a;

    IZLAZ: Niz od k nenegativnih celih brojeva [b1,b2,..., bk] tako da su

    zadovoljena dva uslova: 1

    k

    i i

    i

    a b c=

    = i zbir 1

    k

    ib=

    je minimalan.

    ❖ Jedna instanca problema vraćanja kusura je specifikacija konkretnih vrednosti za ulazne parametre ovog problema, odnosno broj k, niz od k elemenata i broj a.

    ❖ Na primer, k=4, niz[1,5,10,25] od četiri elementa i a=17 predstavljaju jednu instancu problema vraćanja kusura. Rešenje ove instance problema je niz [2,1,1,0] od četiri elementa.

    http://www.vpts.edu.rs/

  • АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

    Предмети: Увод у објектно програмирање Алгоритми и структуре података

    др Милован Миливојевић страна 8 oд 31

    • Ispravan (korektan algoritam) završava rad sa ispravnim izlazom za svaku ulaznu instancu.

    • Ne postoji receptura za kreiranje dobrih algoritama …. Ideja je u kreativnosti …

    • Ipak, postoje algoritamske paradigme koje su u osnovi većine kvalitetnih algoritama (dizajna algoritama): algoritmi tipa: podeli - pa reši, pohlepni algoritmi, algoritmi dinamičkog programiranja, randomizirani algoritmi, …

    • Kada se konstruišu dobri algoritmi onda se mora posebna pažnja posvetiti pitanjima:

    o tačnosti i o efikasnosti.

    • U dokazivanju tačosti algoritama često se koristi koncept matematičke indukcije.

    Repeticio:

    Koncept matematičke indukcije… (sh.wikipedia.org/wiki/Matematička_indukcija)

    Najjednostavniji i najuobičajeniji oblik matematičke indukcije dokazuje da neki iskaz važi za sve prirodne brojeve n.

    Ovaj dokaz se sastoji iz dva koraka:

    1. Baza indukcije: pokazuje se da iskaz važi kada je n = 1.

    2. Induktivni korak: pokazuje se da ako iskaz važi za n = m, onda isti iskaz važi i za n = m + 1.

    Korišćenje reči ako u induktivnom koraku se naziva induktivnom hipotezom.

    Kako bi se sproveo induktivni korak, pretpostavlja se da induktivna hipoteza važi (tačnije da je iskaz tačan za n = m) i onda se koristi ova pretpostavka da se dokaže iskaz za n = m + 1.

    Dakle, kraće zapisano Princip matematičke indukcije glasi:

    Ako za neko tvrđenje ( ),T n n N važi:

    1) (1)T je tačno

    2) ( ) ( 1)T n T n + je tačno za 1,2,...n = tada je tvrđenje: ( )T n tačno za n N .

    http://www.vpts.edu.rs/

  • АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

    Предмети: Увод у објектно програмирање Алгоритми и структуре података

    др Милован Миливојевић страна 9 oд 31

    Pretpostavimo da želimo da dokažemo iskaz:

    ( 1)1 2 ...

    2

    n nn

    ++ + + =

    • Za sve prirodne brojeve n; obeležimo ovaj iskaz kao P(n). Dokaz da je ovaj iskaz tačan za sve prirodne brojeve n sledi.

    • Proverimo da li je iskaz tačan za n = 1. Suma samog broja 1 je 1 ((1 + 1) / 2 = 1). Znači, iskaz je tačan za n = 1. Dokazali smo da P(1) važi.

    • Sada moramo da pokažemo da ako iskaz važi kada je n = m, onda on takođe važi i kada je n = m + 1. Ovo se može izvesti na sledeći način.

    • Pretpostavimo da je iskaz tačan za n = m, tj,

    ( 1)1 2 ...

    2

    m mm

    ++ + + =

    • Dodavanjem m + 1 sa obe strane se ne menja jednakost:

    ( 1)1 2 ... ( 1) ( 1)

    2

    m mm m m

    ++ + + + + = + +

    • Algebarskom manipulacijom, sa desne strane dobijamo

    ( 1) 2 ( 1) ( 1) ( 2) ( 1) (( 1) 1)

    2 2 2 2

    m m m m m m m + + + + + + += + = =

    • Stoga imamo

    ( 1) (( 1) 1)1 2 ... ( 1)

    2

    m mm m

    + + ++ + + + + =

    • Primetimo da je ovo ekvivalentno tvrđenju P(m + 1). Q.E.D.

    http://www.vpts.edu.rs/

  • АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

    Предмети: Увод у објектно програмирање Алгоритми и структуре података

    др Милован Миливојевић страна 10 oд 31

    Analiza algoritama:

    • vreme izvršavanja

    • memorijski resursi

    • Elementi dizajna algoritama – pojednostavljen model realizacije algoritama na sekvencijalnim mašinama (parallel computing, CPU sa više jezgara nije obuhvaćen).

    • Računarski model - idealizovani računar

    Slika 1.4. Vreme izvršavanja T(n) algoritma A kao funkcije veličine ulaznih podataka n

    Osnovne operacije:

    o Dodela vrednosti promenljivoj; o Poređenje dve promenljive; o Aritmetičke operacije; o Logičke operacije; o Ulazno/izlazne operacije. o Zamena mesta promeljivih (tretira se kao jedna el. operacija iako nije)!

    Vremenska analiza algoritama (slika 1.4):

    • T(n) - vreme izvršavanja u najgorem slučaju

    http://www.vpts.edu.rs/

  • АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

    Предмети: Увод у објектно програмирање Алгоритми и структуре података

    др Милован Миливојевић страна 11 oд 31

    Primer:

    for i=1,n

    for j=1,n

    if(i

  • АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

    Предмети: Увод у објектно програмирање Алгоритми и структуре података

    др Милован Миливојевић страна 12 oд 31

    Načini zapisivanja algoritama:

    A: Tekstualno

    Primer 1.

    Napisati algoritam za izračunavanje nx a= , gde je 0a a n je ceo broj ili 0.

    Rešenje:

    ... 0

    1 0

    10

    ...

    a a a a n

    x n

    na a a a

    = =

    Algoritam (zapisan tekstualno):

    1. Ako je n

  • АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

    Предмети: Увод у објектно програмирање Алгоритми и структуре података

    др Милован Миливојевић страна 13 oд 31

    1 1 1

    1 2 2 2 1

    1 2 3 3 3 2

    2 1 1

    1 1

    , 0 ,

    , 0 ,

    , 0 ,

    ...

    , 0 ,j j j j j j

    j j j

    x y q r r b

    y r q r r r

    r r q r r r

    r r q r r r

    r r q

    − − −

    − +

    = +

    = +

    = +

    = +

    =

    Tada je NZD( ,x y ) jednak jr , tj. poslednjem ostatku različitom od 0.

    Primer:

    Odrediti d=NZD(196,154)?

    a) a) b)

    196-154=42

    154-42=112

    112-42=78

    70-42=28

    42-28=14

    28-14=14

    14-14=0

    14=NZD(196,154)

    22-16=6

    16-6=10

    10-6=4

    6-4=2

    4-2=2

    2-2=0

    2=NZD((22,16)

    196=154*1+42

    154=42*3+28

    42=28*1+14

    28=14*2+0

    14=NZD((196,154)

    Algoritam (zapisan tekstualno):

    1. Ako je x y , preći na tačku 4, a ako nije preći na tačku 2;

    2. Ako je y x , preći na tačku 5, a ako nije preći na tačku 3;

    3. Staviti z x= . Zaustaviti računanje;

    4. Formirati razliku x y− . max( , )x y y− postaje x , min( , )x y y− postaje y ; ako

    je x y y− = onda je z y= i z je NZD, inače ponoviti korak 4;

    5. Zameniti mesta x i y , a potom preći na tačku 4.

    http://www.vpts.edu.rs/

  • АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

    Предмети: Увод у објектно програмирање Алгоритми и структуре података

    др Милован Миливојевић страна 14 oд 31

    B: U notnom sistemu (slika 1.5) C: U formi slika (slika 1.6)

    Slika 1.5. Muzički algoritam ...

    http://sr.cantorion.org/search?

    linksearch&q=note%20za%20pesmu%20za%20elizu

    Za Elizu je jedna od najpopularnijih kompozicija Ludviga van Betovena (1770-1827).

    Datirana je na 27. april 1810.

    Originalni potpisani rukopis je izgubljen i samo delo nije objavljeno do 1865.

    Slika 1.6. Slikarski agoritam ...

    https://www.dw.com/bs/pe%C4%87ina-altamira-ponovo-otvorena-za-javnost/a-17462759-0

    Pećina "Altamira" na severu Španije i njeni čuveni pećinski crteži iz kamenog doba (Santiljani del Mar u pokrajini Kantabrija, pod zaštitom su UNESCO-a).

    Pećinu je slučajno 1868. godine otkrio jedan lovac.

    U njoj se nalazi više od 260 crteža iz takozvanog starog kamenog doba. Tu se mogu videti scene iz života i crteži životinja, ali i brojni apstraktni crteži.

    Posetioci dobijaju pristup Altamiri putem izvlačenja, kako bi se zaštitili crteži, od kojih su neki stari preko 14.500 godina.

    Još ranije je aktivno prisustvo posetilaca dovelo do znatnog oštećenja slika na zidovima pećine. Zbog toga je pećina u periodu 1977-1982. god. prvi put bila zatvorena za posete. Posle novih oštećenja ovog kulturnog blaga, došlo je do njenog ponovnog zatvaranja 2002. godine.

    Naučnici su upozoravali na negativne posledice koje bi imalo ponovno otvaranje za masovne posete. Zbog toga je u Santiljani, 30-tak kilometara od Santandera, izgrađena i verodostojna replika Altamire.

    D: .... na druge načine

    http://www.vpts.edu.rs/http://sr.cantorion.org/searchhttps://www.dw.com/bs/pe%C4%87ina-altamira-ponovo-otvorena-za-javnost/a-17462759-0https://www.dw.com/bs/pe%C4%87ina-altamira-ponovo-otvorena-za-javnost/a-17462759-0

  • АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

    Предмети: Увод у објектно програмирање Алгоритми и структуре података

    др Милован Миливојевић страна 15 oд 31

    E: Pseudo kod

    • Prikaz algoritma putem pseudo koda se može predstaviti kroz analizu jednog od najjednostavnijih aplgoritma za sortiranje nizova: sortiranje zamenjivanjem (bubble sort / algoritam mehurića) [4].

    • Ako se zamisli da su članovi mali po vrednosti, mali i po težini, onda će oni isplivavati na vrh (površinu) (slika 1.7):

    Slika 1.7. Bubble sort koncept ...

    Po ovom algoritmu sortiranja se više puta polazi OD DNA KA VRHU. Pri tome, kada se dva elementa porede, onda ako je prvi element manji (lakši) onda on isplivava (dolazi do zamene mesta) (SWAP).

    Postupak:

    (prolaz i=1): (prolaz i=2): (prolaz i=3): ... o Porede se 2 i 5. o 2 je manje od 5 o 2 i 5 zamenjuju mesta o Porede se 2 i 11 o 2 je manje od 11 o 2 i 11 zamenjuju mesta o Porede se 2 i 8. o 2 je manje od 8 o 2 i 8 zamenjuju mesta o Porede se 2 i 23. o 2 je manje od 23 o 2 i 23 zamenjuju mesta o Porede se 2 i 17. o 2 je manje od 17 o 2 i 17 zamenjuju mesta

    o Porede se 5 i 11. o 5 je manje od 11 o 5 i 11 zamenjuju mesta o Porede se 5 i 8 o 5 je manje od 8 o 5 i 8 zamenjuju mesta o Porede se 5 i 23. o 5 je manje od 23 o 5 i 23 zamenjuju mesta o Porede se 5 i 17. o 5 je manje od 17 o 5 i 17 zamenjuju mesta

    o Porede se 11 i 8. o 11 nije manje od 8 o 11 i 8 ne zamenjuju mesta o Porede se 8 i 23 o 8 je manje od 23 o 8 i 23 zamenjuju mesta o Porede se 8 i 17. o 8 je manje od 17 o 8 i 17 zamenjuju mesta

    ...

    Stanje pri VRHU: 2 Stanje pri VRHU: 2 5

    Stanje pri VRHU: 2 5 8

    ...

    Obratiti pažnju da se u drugom prolazu (i=2) išlo do druge pozicije od vrha, jer je najmanji element već na vrhu (prva pozicija) ili da se u trećem prolazu (i=3) išlo do treće pozicije od vrha, jer su dva najmanja elementa već isplivala na vrh (prva i druga pozicija). U skladu sa tim u i-tom prolazu može se stati na poziciji i jer je i-1 element već isplivao i sortiran je u gornjem sloju iznad i-te pozicije.

    i=1 i=2 i=3 i=4 i=5 i=6

    1 17 2 2 2 2 2

    2 23 17 5 5 5 5

    3 8 23 17 8 8 8

    4 11 8 23 17 11 11

    5 5 11 8 23 17 17

    6 2 5 11 11 23 23

    http://www.vpts.edu.rs/

  • АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

    Предмети: Увод у објектно програмирање Алгоритми и структуре података

    др Милован Миливојевић страна 16 oд 31

    • Prikaz algoritma Bubble Sort u PSEUDO KOD-u (slika 1.8)//

    Bubble_Sort(a)

    1. for i=1 to n-1, i++ 2. for j=n to i+1, j-- 3. If a(j)=b(i)

    http://www.vpts.edu.rs/

  • АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

    Предмети: Увод у објектно програмирање Алгоритми и структуре података

    др Милован Миливојевић страна 17 oд 31

    Slika 1.9. Shematski prikaz algoritma...

    http://www.vpts.edu.rs/

  • АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

    Предмети: Увод у објектно програмирање Алгоритми и структуре података

    др Милован Миливојевић страна 18 oд 31

    Podela algoritma:

    ❖ Postoji više načina za razvrstavanje algoritama, a metodologija klasifikacije je tema mnogih rasprava.

    1. Podela algoritama prema pravcu tokova u algoritmu (slika1.10):

    • Linijski

    • Algoritmi sa grananjem

    • Ciklični

    Slika 1.10. Podela algoritama prema toku ...

    Slika 1.11. Korak u instalaciji yEd Graph Editor-a

    https://www.yworks.com/products/yed

    Napomema 1: Za prikaz algoritama u obliku shema, instalirati program yEd Graph Editor (slika 1.11).

    Napomena 2: Upotreba programa yEd Graph Editor biće predmet vežbi.

    algoritmisa ciklusima,

    višestruke petlje

    algoritmi sa razgranatom strukturom

    linijski algoritmi

    http://www.vpts.edu.rs/https://www.yworks.com/products/yed

  • АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

    Предмети: Увод у објектно програмирање Алгоритми и структуре података

    др Милован Миливојевић страна 19 oд 31

    Primer: Linijski algoritmi (slika 1.12 i slika 1.13)

    Slika 1.12. Linijski algoritam za izračunavanje površine i obima kruga

    Slika 1.13. Linijski algoritam za izračunavanje površine trapeza

    Primer: Algoritimi sa grananjem

    Algoritam za rešavanje kvadratne jednačine (slika 1.14): 2y a x b x c= + +

    dat je na slici 1.15: Rešenje:

    22

    1,2

    2

    2

    1,2

    1

    4, 0, 4 , 0

    2

    4, 0, 4 , 0

    2 2

    , 0, 0

    , 0, 0

    b b a cx za a D b a c D

    a

    b a cbx i za a D b a c D

    a a

    cx za a b

    b

    y c za a b

    − − = = −

    − −= = −

    − = =

    = = =

    http://www.vpts.edu.rs/

  • АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

    Предмети: Увод у објектно програмирање Алгоритми и структуре података

    др Милован Миливојевић страна 20 oд 31

    Slika 1.14. Kvadratne parabole - primeri

    y = 15x + 50

    y = x2

    y = -2.3x2 + 14x + 10

    y = -8x2 - 2x - 35

    -250

    -200

    -150

    -100

    -50

    0

    50

    100

    150

    200

    -8 -6 -4 -2 0 2 4 6 8

    Y=ax^2+bx+c

    y=15*x+50 y=x^2

    y=-2.3*x^2+14*x+10 y=-8*x^2-2*x-35

    Linear (y=15*x+50) Poly. (y=x^2)

    Poly. (y=-2.3*x^2+14*x+10) Poly. (y=-8*x^2-2*x-35)

    http://www.vpts.edu.rs/

  • АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

    Предмети: Увод у објектно програмирање Алгоритми и структуре података

    др Милован Миливојевић страна 21 oд 31

    Slika 1.15. Algoritam sa grananjem: primer 1- rešenja kvadratne parabole

    http://www.vpts.edu.rs/

  • АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

    Предмети: Увод у објектно програмирање Алгоритми и структуре података

    др Милован Миливојевић страна 22 oд 31

    Primeri cikličih algoritama dati su na slici1.16 i slici 1.17:

    Algoritam za izračunavanje

    sume:

    10

    1

    1 1 10 10...

    i i

    i

    S a b

    a b a b

    =

    =

    = + +

    Algoritam za izračunavanje

    sume: 2

    1 1

    ( 2 )m n

    j j i

    i j

    S a a b= =

    = +

    Slika 1.16. Algoritam sa grananjem: primer 2 Slika 1.17. Algoritam sa grananjem: primer 3

    http://www.vpts.edu.rs/

  • АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

    Предмети: Увод у објектно програмирање Алгоритми и структуре података

    др Милован Миливојевић страна 23 oд 31

    Još jedna primer cikličnog algoritma dat je na slici 1.18

    Data je matrica reda Anxn. Kreirati niz Dn, č iji su elemeni jednaki elemetima na glavnoj dijagonali matrice A.

    Slika 1.18. Ciklicni algoritam: primer 4 (dve varijante)

    http://www.vpts.edu.rs/

  • АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

    Предмети: Увод у објектно програмирање Алгоритми и структуре података

    др Милован Миливојевић страна 24 oд 31

    Dodatni primer cikičličog algoritma: Algoritam za sortiranje niza Bubble dat je na slici 1.19.

    Pseudo kod Shema

    Bubble_Sort(a)

    for i=1 to n-1, i++

    for j=n to i+1, j--

    If a(j)

  • АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

    Предмети: Увод у објектно програмирање Алгоритми и структуре података

    др Милован Миливојевић страна 25 oд 31

    Sledeća moguća podela algoritama:

    2. Podela algoritama prema prema strukturi ponavljajućih blokova:

    • Iterativni algoritmi;

    • Rekurzivni algoritmi.

    Iterativni algoritam:

    Primer: Algoritam za određivanje najvećeg zajedničkog delioca (NZD) dva broja [4]:

    • Algoritam započinje tako što proverava minimum brojeva x i y i zatim redom sve

    manjih celih brojeva da li su zajednički delioci brojeva x i y , sve dok se ne otkrije

    prvi zajednički delilac. Pošto se provera obavlja redom od najveće do najmanje mogućnosti, prvi nađeni zajednički delilac biće najveći.

    Pseudo kod

    ( , )

    min( , );

    ( 0 mod( ) 0 mod( ))

    1;

    ;

    NZDiter x y

    d x y

    while x d y d

    d d

    return d

    =

    = −

    Rekurzivni algoritam:

    Rekurzivnom definicijom se neki koncept definiše pomoću samog tog koncepta (klasa složenog objekta se definiše pomoću prostijeg objekta iste kategorije).

    U svakoj rekurzivnoj definiciji prepoznaje se:

    o bazni slučaj - kojim se defniše jedna ili više najprostijih objekata i o korak indukcije - kojim se složeniji objekti konstruišu pomoću sličnih prostijih

    objekata određene klase.

    ( , ) / / :

    mod( );

    0

    {

    ;

    }

    {

    ( , );

    }

    rekur

    rekur

    NZD x y pretposatvlja se x y

    z x y

    if z

    return y

    else

    return NZD y z

    =

    =

    http://www.vpts.edu.rs/

  • АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

    Предмети: Увод у објектно програмирање Алгоритми и структуре података

    др Милован Миливојевић страна 26 oд 31

    Dodatni kriterijumi za klasifikovanje i podelu algoritma (podele od 3 do 7), su [4],[10]:

    3. Podela algoritama prema preovladavajućim paradigmama:

    Razvrstavanja je po metodologiji projektovanja ili primenjenom obrascu (paradigmi). Svaka od navedenih kategorija sadrži više različitih tipova algoritama:

    • Algoritmi sa stablima o Binarna stabla o Binarna stabla pretrage o …

    • Algoritmi tipa podeli-pa vladaj (Podeli pa vladaj algoritmi smanjuju stepen složenosti problema podelom na dva ili više manjih problema iste vrste (obično rekurzivno), dok od problema ne ostane toliko mali deo da se može jednostavno rešiti): / primeri:

    o Hanojske kule o Merge - sort o Quick - sort o …

    • Pohlepni algoritmi (Algoritam lakomosti je sličan dinamičkom programiranju, ali je razlika u tome što rešenja podproblema ne moraju biti poznata u svakom trenutku. Stoga, pri traženju rešenja je moguće napraviti i 'lakom' izbor onoga što izgleda najbolje u tom trenutku) / primeri:

    o Problem vraćanja kusura o Problem rasporeda časova o …

    • Algoritmi dinamičkog programiranja (Kada problem pokazuje optimalnu podstrukturu, u smislu da se optimalno rešenje problema može konstruisati iz optimalnog rešenja podproblema, i/ili preklapanjem podproblema, može se koristiti dinamičko programiranje, pristup koji izbegava ponovno izračunavanje rešenja koja su već izračunata. Na primer, najkraći put do cilja iz čvora težinskog grafa može biti nađen koristeći najkraći put do cilja od svih obližnjih čvorova) /primeri:

    o Fibonačijevi nizovi o Binomni koeficijenti o Najduža zajednička podniska o …

    http://www.vpts.edu.rs/

  • АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

    Предмети: Увод у објектно програмирање Алгоритми и структуре података

    др Милован Миливојевић страна 27 oд 31

    • Grafovski algoritmi (Mnogi problemi (kao što je igranje šaha) mogu biti modelovani kao problemi grafa. Algoritam pretraživanja grafa daje pravila kretanja kroz graf i korisan je baš za ovakve probleme. Ova kategorija obuhvata i algoritme pretraživanja i povratka kroz stablo odlučivanja) / primeri:

    o Usmereni grafovi o Neusmereni grafovi o Pretraga u dubinu o …

    • Randomizirani algoritmi (Algoritmi slučajnosti prave u nekim situacijama slučajan (ili pseudo slučajan) izbor; za neke probleme se stvarno može dokazati da se do najbržeg rešenja može doći samo uvođenjem izvesnog stepena slučajnosti). / primeri:

    o Las Vegas algoritmi o Monte Karlo algoritmi o Genetski algoritmi …

    • Linearno programiranje (Problem se rešava korišćenjem linearnog programiranja kada postoji više linearnih nejednačina a zadatak je naći maksimum (ili minimum) po nekom kriterijumu (primer: Simpleks algoritam))

    • Heuristički algoritmi (Heuristički algoritmi su algoritmi čija je osnovna namena nalaženje optimalnog rešenja i/ili približnog rešenja, jer vreme ili memorijski prostor za izvršavanje algoritma za nalaženje tačnog, najboljeg rešenja nije na raspolaganju). / primeri:

    o Lokalno pretraživanje o Tabu pretraživanje (tabu search) o Algoritam simuliranog otpuštanja (Simulated Annealing) o ACO - optimizacija mravljom kolonijom (Ants Colony Optimization) o PSO - optimizacija rojem čestica - Particle Swarm Optimization o GA - Genetski algoritmi - Genetic algorithm o ANN - Veštačke neuronske mreže - Artificial Neural Network o ....

    • …

    4. Podela algoritama prema tome da sli se izvršavaju na jednom ili više računara / jezgara:

    • Sekvencijalni algoritmi (u jednom trenutku izvršavaju jednu instrukciju jednog algoritma)

    • Algoriti za paralelno ili distribuirano programiranje (više procesora i/ili rešava jedan problem ... parallel computing)

    http://www.vpts.edu.rs/

  • АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

    Предмети: Увод у објектно програмирање Алгоритми и структуре података

    др Милован Миливојевић страна 28 oд 31

    5. Podela prema oblastima rada:

    Svako polje rada ima svoje probleme i potrebne su joj efikasni algoritmi. Srodni problemi se često proučavaju zajedno. Neki primeri su algoritmi za pretragu, sortiranje, spajanje, numeričku analizu, grafove, stringove, računarsku geometriju, kombinatoriku, mašinsko učenje, kriptografiju, kompresiju podataka i tehnike parsiranja itd.

    6. Podela prema složenosti:

    Prema zauzimanja resursa, a to su prostor (količina zauzete memorije) i vreme (količina potrošenog vremena procesora).

    Vremenska složenost algoritma se iskazuje kao broj elementarnih koraka za obavljanje algoritma, što je zavisno od veličine ulaza. Ako kažemo da je algoritam (A) uređivanja niza od n elemenata problem vremenske složenosti n². Ako je, pak drugi algoritam (B) malo pažljivije napisan i brži je dvostruko, on će raditi dvostruko brže za bilo koju veličinu niza. Međutim, ako se programer namuči i osmisli suštinski drugačiji algoritam (C) za uređivanje, on stvarno može biti reda složenosti n·log(n). Algoritmi (A) i (B) su iste složenosti, jer se u notaciji sa velikim O obeležavaju sa O(n²), a u govoru se zovu 'algoritmi kvadratne složenosti', dok je algoritam (C) 'algoritam složenosti n·log(n)'. Zaključak: algoritam (C) je najbolji sa stanovišta korišćenja vremena za velike setove ulaznih podataka.

    Prostorna složenost se odnosi zauzimanje memorijskog prostora u zavisnosti od veličine ulaza. Dešava se da je pronalaženje algoritma manje vremenske složenosti vezano sa povećanjem prostorne složenosti.

    Obično se algoritmi dele na one:

    • logaritamske složenosti,

    • linearne,

    • kvadratne i

    • uopšteno polinomijalne složenosti, kao i one najzahtevnije,

    • eksponencijalne složenosti.

    • ...

    7. ... ostali kriterijumi podele i klasifikovanja algoritama ....

    ●●●

    http://www.vpts.edu.rs/

  • АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

    Предмети: Увод у објектно програмирање Алгоритми и структуре података

    др Милован Миливојевић страна 29 oд 31

    Dodatak 1 [9]

    Abu Abdulah Muhamed ibn Musa el Horezmi (pers. ِِم

    َْواِرز

    ْخْلَد ِبن ُموََس ا هللا ُمَحمَّ

    َْبدَ ;ع

    oko 783. Hiva, Horezm,- oko 850. Bagdad) je bio persijski matematičar, astronom, astrolog i geograf iz 9. veka.

    Horezm, je na području današnjeg Uzbekistana.

    Horezmi je vodio državnu biblioteku i bio jedan od aktivnih članova Kuće mudotosti

    https://sr.wikipedia.org

    El Horezmi je uveo modernu numeričku notaciju. Bio je član bagdadske Akademije nauka i pisao o matematici, astronomiji i geografiji.

    Horezmi je takođe uspeo da objasni staru indijsku baštinu i starogrčke naučne rezultate iz oblasti matematike.

    U toku osovnog obrazovanja detaljno je upoznao glavne smernice iranske predislamske matematike i astronomije. Kako je nastavio svoja istraživanja na tom polju, prerastao je u jednog od najslavnijih predstavnika univerziteta u Džundišapuru.

    Dok je radio na naučnim projektima u sklopu velikog univerziteta u Džundišapuru, detaljno je upoznao staroindijsku i staropersijsku astronomsku tradiciju i naučnu literaturu.

    Mnogi ga smatraju ocem algebre. Osim toga, izraz algoritam, kojim se prvobitno opisivao način računanja decimalnim brojevima, a formulisao ga je Horezmi, preuzet je iz latinske transkripcije njegovog imena.

    S velikom izvesnošću može se tvrditi da je Sabiranje i oduzimanje u indijskoj aritmerici , Muhameda ibn Muse Horezmija, najstarije delo koje je u islamskom svetu napisano o aritmetici. Horezmi je u toj knjizi sjajno razjasnio staroindijsku brojčanu osnovu i preneo je u islamski svet..

    Horezmijeva slava ponajviše potiče od njegovog eminentnog remek-dela [Algebra] zbog kog ova matematička disciplina koju je Horezmi utemeljio dobija upravo taj naziv u kasnijoj literaturi. Dodatno, on daje opšti, danas poznati, metod (Al Horezmijevo rešenje) za nalaženje korena kvadratne jednačine:

    http://www.vpts.edu.rs/https://sr.wikipedia.org/wiki/%D0%9F%D0%B5%D1%80%D1%81%D0%B8%D1%98%D1%81%D0%BA%D0%B8_%D1%98%D0%B5%D0%B7%D0%B8%D0%BAhttps://sr.wikipedia.org/wiki/783https://sr.wikipedia.org/wiki/%D0%A5%D0%B8%D0%B2%D0%B0https://sr.wikipedia.org/wiki/%D0%A5%D0%B0%D1%80%D0%B5%D0%B7%D0%BChttps://sr.wikipedia.org/wiki/850https://sr.wikipedia.org/wiki/%D0%91%D0%B0%D0%B3%D0%B4%D0%B0%D0%B4https://sr.wikipedia.org/wiki/%D0%98%D1%80%D0%B0%D0%BDhttps://sr.wikipedia.org/wiki/%D0%9C%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0https://sr.wikipedia.org/wiki/%D0%90%D1%81%D1%82%D1%80%D0%BE%D0%BD%D0%BE%D0%BC%D0%B8%D1%98%D0%B0https://sr.wikipedia.org/wiki/%D0%90%D1%81%D1%82%D1%80%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D1%98%D0%B0https://sr.wikipedia.org/wiki/%D0%93%D0%B5%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%98%D0%B0https://sr.wikipedia.org/wiki/%D0%93%D0%B5%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%98%D0%B0https://sr.wikipedia.org/wiki/9._%D0%B2%D0%B5%D0%BAhttps://sr.wikipedia.org/wiki/%D0%A3%D0%B7%D0%B1%D0%B5%D0%BA%D0%B8%D1%81%D1%82%D0%B0%D0%BDhttps://sr.wikipedia.org/wiki/%D0%9A%D1%83%D1%9B%D0%B0_%D0%BC%D1%83%D0%B4%D1%80%D0%BE%D1%81%D1%82%D0%B8https://sr.wikipedia.org/wiki/%D0%98%D1%80%D0%B0%D0%BDhttps://sr.wikipedia.org/w/index.php?title=%D0%8F%D1%83%D0%BD%D0%B4%D0%B8%D1%88%D0%B0%D0%BF%D1%83%D1%80&action=edit&redlink=1https://sr.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%B5%D0%B1%D1%80%D0%B0https://sr.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%B0%D0%BChttps://sr.wikipedia.org/wiki/%D0%A1%D0%98_%D0%BF%D1%80%D0%B5%D1%84%D0%B8%D0%BA%D1%81https://sr.wikipedia.org/wiki/%D0%90%D1%80%D0%B8%D1%82%D0%BC%D0%B5%D1%82%D0%B8%D0%BA%D0%B0https://sr.wikipedia.org/wiki/%D0%98%D1%81%D0%BB%D0%B0%D0%BC

  • АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

    Предмети: Увод у објектно програмирање Алгоритми и структуре података

    др Милован Миливојевић страна 30 oд 31

    U svojoj knjizi Račun sa Hindu brojkama on je opisao indijsku notaciju (kasnije zbog uticaja ove knjige nazvanu „arapskim“ ciframa), u kojoj vrednost cifara zavisi od njihovog položaja (uključuje i 0).

    Notacija (koja je u Evropu stigla u latinskom prevodu posle 1240) od ogromne je praktične vrednosti i njeno prihvatanje je jedan od velikih koraka u matematici.

    Iz sačuvanih rukopisa vidi se da je deset znakova (1-9 i 0) imalo skoro svoj sadašnji oblik sredinom 14. veka.

    Njegovo delo „Knjiga izračunavanja integrala i jednačina“ (arap. حساب الجبر والمقابلة ِ-al ,الكتاب المخترص ف

    Kitāb al-muẖtaṣar fī ḥisāb al-ğabr wal-muqābala) predstavlja kompilaciju pravila za rešavanje linearanih kvadratnih jednačina i problema geometrije i srazmera. To je njegovo glavno delo, ali je, nažalost, u arapskom originalu izgubljeno. U 12. veku preveo ga je na latinski Gerard Kremonski. Ovo Al Horezmijevo delo upotrebljavalo se sve do 16. veka kao glavni matematički udžbenik na evropskim univerzitetima i, zahvaljujući njemu, u Evropi je uvedena algebarska nauka, a zajedno s njom i samo njeno ime.

    Prevod ovog dela u XII veku na latinski jezik, omogućio je vezu između velikih hinduističkih i arapskih matematičara i evropskih naučnika. Al Horezmijeva knjiga, koja je u Evropi postala poznata pod latinskim nazivom Algoritmi de Numero Indorum, što je trebalo da znači „Al Horezmi, o indijskim brojevima“. Međutim, zaboravilo se da je Algoritmi ime autora i ustalio se prevod „Postupci računanja indijskim brojevima“. Od tada reč algoritam označava matematički postupak i odomaćila se u oblasti računarstva.

    Al Horezmijevi geometrijski dokazi unose kontroverznost među naučnik. Pitanje koje ostaje i dalje bez odgovora jeste da li je poznavao Euklidov rad. Treba imati na umu da je u njegovoj mladosti za vreme Rašidove vladavine, prevedeno delo Elementi na arapski i da je prevodilac bio jedan od dva Horezmijeva saradnika u Kući mudrosti. Rašid kaže da je Horezmijevo delo verovatno bilo inspirisano Elementima. Međutim neki tvrde da su mu Elementi bili zapravo potpuno nepoznati.

    Među kasnijim matematičarima na koje je uticao El Horezmi bili su Omar Hajam, Leonardo Fibonači iz Pize (posle 1240) i magister Jakob iz Firence, čija italijanska rasprava o matematici iz 1307. god, sadrži, kao i Leonardova dela, pet tipova kvadratnih jednačina, koje su se nalazile u delima muslimanskih matematičara.

    http://www.vpts.edu.rs/https://sr.wikipedia.org/wiki/%D0%95%D0%B2%D1%80%D0%BE%D0%BF%D0%B0https://sr.wikipedia.org/wiki/1240https://sr.wikipedia.org/wiki/14._%D0%B2%D0%B5%D0%BAhttps://sr.wikipedia.org/wiki/14._%D0%B2%D0%B5%D0%BAhttps://sr.wikipedia.org/wiki/%D0%90%D1%80%D0%B0%D0%BF%D1%81%D0%BA%D0%B8_%D1%98%D0%B5%D0%B7%D0%B8%D0%BAhttps://sr.wikipedia.org/wiki/%D0%93%D0%B5%D0%BE%D0%BC%D0%B5%D1%82%D1%80%D0%B8%D1%98%D0%B0https://sr.wikipedia.org/wiki/12._%D0%B2%D0%B5%D0%BAhttps://sr.wikipedia.org/w/index.php?title=%D0%93%D0%B5%D1%80%D0%B0%D1%80%D0%B4_%D0%9A%D1%80%D0%B5%D0%BC%D0%BE%D0%BD%D1%81%D0%BA%D0%B8&action=edit&redlink=1https://sr.wikipedia.org/wiki/16._%D0%B2%D0%B5%D0%BAhttps://sr.wikipedia.org/w/index.php?title=Algoritmi_de_Numero_Indorum&action=edit&redlink=1https://sr.wikipedia.org/wiki/%D0%95%D1%83%D0%BA%D0%BB%D0%B8%D0%B4https://sr.wikipedia.org/wiki/%D0%A5%D0%B0%D1%80%D1%83%D0%BD_%D0%B5%D0%BB_%D0%A0%D0%B0%D1%88%D0%B8%D0%B4https://sr.wikipedia.org/wiki/%D0%9E%D0%BC%D0%B0%D1%80_%D0%A5%D0%B0%D1%98%D0%B0%D0%BChttps://sr.wikipedia.org/wiki/%D0%9B%D0%B5%D0%BE%D0%BD%D0%B0%D1%80%D0%B4%D0%BE_%D0%A4%D0%B8%D0%B1%D0%BE%D0%BD%D0%B0%D1%87%D0%B8https://sr.wikipedia.org/wiki/%D0%9B%D0%B5%D0%BE%D0%BD%D0%B0%D1%80%D0%B4%D0%BE_%D0%A4%D0%B8%D0%B1%D0%BE%D0%BD%D0%B0%D1%87%D0%B8https://sr.wikipedia.org/wiki/%D0%9F%D0%B8%D0%B7%D0%B0https://sr.wikipedia.org/w/index.php?title=%D0%88%D0%B0%D0%BA%D0%BE%D0%B1_%D0%B8%D0%B7_%D0%A4%D0%B8%D1%80%D0%B5%D0%BD%D1%86%D0%B5&action=edit&redlink=1https://sr.wikipedia.org/wiki/%D0%98%D1%82%D0%B0%D0%BB%D0%B8%D1%98%D0%B0https://sr.wikipedia.org/wiki/1307

  • АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

    Предмети: Увод у објектно програмирање Алгоритми и структуре података

    др Милован Миливојевић страна 31 oд 31

    Dodatak 1 [11] > Kuća mudrosti

    Kuća mudrosti (arap. ;بيت الحكمةBayt al-Ḥikma) bila je veliki intelektualni centar tokom islamskog zlatnog doba. Kuću mudrosti je osnovao halifa Harun el Rašid (vladao 786-809), a svoj vrhunac je dostigla pod vlašću njegovog sina El Mamuna (vladao 813-833), koji je zaslužan za njeno formalno uspostavljanje. El Mamun je takođe zaslužan za dovođenje mnogih poznatih naučnika da bi razmenjivali informacije, ideje i kultura u Kući mudrosti.

    Njeno sedište bilo je u Bagdadu od 9. do 13. veka, a pored muslimanskih naučnika, čak i jevrejima i hrišćanima je bilo dozvoljeno da uče u ovom centru. Pored prevođenja knjiga na arapski i njihovog očuvanja, naučnici iz Kuće mudrosti su doprineli i značajnim originalnim delima u različitim oblastima.

    Tokom vladavine El Mamuna, izgrađene su i astronomske opservatorije, te je Kuća mudrosti postala prestižni centar za proučavanje prirodnih i društvenih nauka u srednjem veku, uključujući matematiku, astronomiju, medicinu, alhemiju i hemiju, zoologiju, geografiju i kartografiju. Oslanjajući se prvenstveno na grčke, ali i sirijske, indijske i persijske tekstove, naučnici su prikupili izvanrednu kolekciju svetskog znanja, i izgradili na njoj svoja otkrića. Do sredine devetog veka, Kuća mudrosti je imala najveću zbirku knjiga na svetu.

    Potpuno je uništena tokom mongolske invazije Bagdada 1258. godine.

    http://www.vpts.edu.rs/https://sr.wikipedia.org/wiki/%D0%90%D1%80%D0%B0%D0%BF%D1%81%D0%BA%D0%B8_%D1%98%D0%B5%D0%B7%D0%B8%D0%BAhttps://sr.wikipedia.org/wiki/%D0%A5%D0%B0%D1%80%D1%83%D0%BD_%D0%B5%D0%BB_%D0%A0%D0%B0%D1%88%D0%B8%D0%B4https://sr.wikipedia.org/wiki/%D0%95%D0%BB-%D0%9C%D0%B0%D0%BC%D1%83%D0%BD