O predmetu - casovinovisad.yolasite.comcasovinovisad.yolasite.com/resources/Racunarski...

Post on 19-Feb-2018

248 views 8 download

Transcript of O predmetu - casovinovisad.yolasite.comcasovinovisad.yolasite.com/resources/Racunarski...

Računarski praktikum

O predmetu

Računarski praktikum

• dr Milan Vidakovićminja@uns.ac.rsTMD 139/8

• Dejan Mijićmijicd@uns.ac.rs

• Milorad Filipovićmfili@uns.ac.rs

• http://www.informatika.ftn.uns.ac.rs/RP

2

• dr Milan Vidakovićminja@uns.ac.rsTMD 139/8

• Dejan Mijićmijicd@uns.ac.rs

• Milorad Filipovićmfili@uns.ac.rs

• http://www.informatika.ftn.uns.ac.rs/RP

Ocenjivanje• Prisustvo na vežbama

– obavezno– raspon poena: 3-5– toleriše se do 20% izostanaka (80% prisustva – 3 poena, 100%

prisustva – 5 poena)• Kolokvijumi

– računarska pismenost – 10-20 poena– složeni zadatak – 15-25 poena

• Završni ispit (teorija)– obavezan– raspon poena: 15-30

• Zadatak iz algoritama (u sklopu teorije)– 10-20 poena

3

• Prisustvo na vežbama– obavezno– raspon poena: 3-5– toleriše se do 20% izostanaka (80% prisustva – 3 poena, 100%

prisustva – 5 poena)• Kolokvijumi

– računarska pismenost – 10-20 poena– složeni zadatak – 15-25 poena

• Završni ispit (teorija)– obavezan– raspon poena: 15-30

• Zadatak iz algoritama (u sklopu teorije)– 10-20 poena

Plan rada

• Uvod – organizacija računara• Programski jezik Java• Algoritmi• Hardver i računarske mreže

4

• Uvod – organizacija računara• Programski jezik Java• Algoritmi• Hardver i računarske mreže

Računarski praktikum

Uvod

Literatura

• dr Milan Vidaković• email: minja@uns.ac.rs• http://www.informatika.ftn.uns.ac.rs/RP

2/47

• dr Milan Vidaković• email: minja@uns.ac.rs• http://www.informatika.ftn.uns.ac.rs/RP

Osnovi računarstva

1. Istorija računara2. Generacije računara3. Osnovni pojmovi

1. Istorija računara2. Generacije računara3. Osnovni pojmovi

Oblast 1Istorija računara

• 1621. god. Vilijam Otred(William Oughtred) –engleski matematičar koji jeizmislio kružni klizni lenjir. Tose smatra prvim analognimračunarskim uređajem.

istorija

4/47

• 1621. god. Vilijam Otred(William Oughtred) –engleski matematičar koji jeizmislio kružni klizni lenjir. Tose smatra prvim analognimračunarskim uređajem.

Šikardova mašina

• Vilhelm Šikard (WilhelmSchickard) je 1623.osmislio mehaničkikalkulator.

• Mašina je mogla dasabira, oduzima, množii deli.

• Ostalo je sve samo naplanovima.

istorija

5/47

• Vilhelm Šikard (WilhelmSchickard) je 1623.osmislio mehaničkikalkulator.

• Mašina je mogla dasabira, oduzima, množii deli.

• Ostalo je sve samo naplanovima.

• 1642. god. Blez Paskal (BlaisePascal) – napravio je “prvi”automatski kalkulator.Njegova mašina, nazvanaPaskalina (Pascaline) sezasnivala na zupčanicima.

• Napravio je 50 primeraka zaprodaju, ali su računovođeodbijale da ih koriste jer su sebojali da će izgubiti posao.

istorija

6/47

• 1642. god. Blez Paskal (BlaisePascal) – napravio je “prvi”automatski kalkulator.Njegova mašina, nazvanaPaskalina (Pascaline) sezasnivala na zupčanicima.

• Napravio je 50 primeraka zaprodaju, ali su računovođeodbijale da ih koriste jer su sebojali da će izgubiti posao.

• 1673. god. Gotfrid Lajbnic (Gottfried Leibniz) –dizajnirao je novi tip mehaničkog kalkulatorabaziranog na nazubljenim cilindrima, koji se sadazove Lajbnicov točak. Uređaj je mogao da sabira,oduzima, množi i deli.

istorija

7/47

• 1804. god. Žozef Žakar(Joseph Jacquard) –izmislio je kartice sa rupamakoje su se koristile u uređajuza tkanje. Kartice su sekoristile da propusteodređene niti, a da blokirajuostale.

• Iako njegov razboj nijedirektno povezan saračunarima, ideju bušenihkartica je kasnije preuzeoČarls Bebidž kao prvimehanički metod unošenjainformacija u računar.

istorija

8/47

• 1804. god. Žozef Žakar(Joseph Jacquard) –izmislio je kartice sa rupamakoje su se koristile u uređajuza tkanje. Kartice su sekoristile da propusteodređene niti, a da blokirajuostale.

• Iako njegov razboj nijedirektno povezan saračunarima, ideju bušenihkartica je kasnije preuzeoČarls Bebidž kao prvimehanički metod unošenjainformacija u računar.

• 1822. god. Čarls Bebidž (CharlesBabbage) – napravio je prvumašinu za računanje konačnihrazlika. Izgradja uređaja je bilafinansirana od strane britanskevlade, a namena je bila da rešavapolinomne jednačine.

• Bila je toliko osetljiva da se češćekvarila nego što je radila, pa jepremijer izjavio da je jedinanamena ove mašine da izračunaogromnu količinu novca koja jepotrošena na njenu gradnju.

Čarls Bebidž (Charles Babbage)istorija

9/47

• 1822. god. Čarls Bebidž (CharlesBabbage) – napravio je prvumašinu za računanje konačnihrazlika. Izgradja uređaja je bilafinansirana od strane britanskevlade, a namena je bila da rešavapolinomne jednačine.

• Bila je toliko osetljiva da se češćekvarila nego što je radila, pa jepremijer izjavio da je jedinanamena ove mašine da izračunaogromnu količinu novca koja jepotrošena na njenu gradnju.

• Bebidž je kasnije razvio analitičkumašinu koja je bila dizajnirana kaopravi mehanički računar. Iako nikadanije bila napravljena, mašina sesadržavala pet bitnih elemenata zabuduće računare:– ulazni uređaj– medijum za smeštanje brojeva za

obradu (memorija)– jedinicu za obradu (aritmetičko-

logička jedinica)– kontrolnu jedinicu da upravlja

zadacima koji će se izvršavati(upravljačka jedinica)

– izlazni uređaj.

Čarls Bebidž (Charles Babbage)istorija

10/47

• Bebidž je kasnije razvio analitičkumašinu koja je bila dizajnirana kaopravi mehanički računar. Iako nikadanije bila napravljena, mašina sesadržavala pet bitnih elemenata zabuduće računare:– ulazni uređaj– medijum za smeštanje brojeva za

obradu (memorija)– jedinicu za obradu (aritmetičko-

logička jedinica)– kontrolnu jedinicu da upravlja

zadacima koji će se izvršavati(upravljačka jedinica)

– izlazni uređaj.

• 1833. god. Augusta Ada(grofica od Lavlejsa) - amatermatemetičar i bliski prijateljČarlsa Bebidža. Ada je prvadala nacrt programa koji bi seizvršavao u analitičkoj mašini.

• Ovo je bio prvi put da jekoncept računarskogprograma bio predložen, pase smatra da je Ada bila prvikompjuterski programer.

istorija

11/47

• 1833. god. Augusta Ada(grofica od Lavlejsa) - amatermatemetičar i bliski prijateljČarlsa Bebidža. Ada je prvadala nacrt programa koji bi seizvršavao u analitičkoj mašini.

• Ovo je bio prvi put da jekoncept računarskogprograma bio predložen, pase smatra da je Ada bila prvikompjuterski programer.

• 1886. god. Herman Holerit (HermanHollerith) – razvio je mašinu zaračunanje koje je koristila bušenekartice za elektronsko brojanje. Ovajuređaj je napravljen da bi se obaviopopis iz 1890. godine (u Americi).Ručno brojanje bi trajalo čitavudeceniju (rezultati prethodnogpopisa su se obrađivali ručno iproces je trajao 7 godina).

• 1896. godine Holerit je osnovaoTabulating Machine Company.1924. godine, nakon nekolikospajanja i preuzimanja, kompanija jepostala International BusinessMachines (IBM).

istorija

12/47

• 1886. god. Herman Holerit (HermanHollerith) – razvio je mašinu zaračunanje koje je koristila bušenekartice za elektronsko brojanje. Ovajuređaj je napravljen da bi se obaviopopis iz 1890. godine (u Americi).Ručno brojanje bi trajalo čitavudeceniju (rezultati prethodnogpopisa su se obrađivali ručno iproces je trajao 7 godina).

• 1896. godine Holerit je osnovaoTabulating Machine Company.1924. godine, nakon nekolikospajanja i preuzimanja, kompanija jepostala International BusinessMachines (IBM).

• 1936. god. Alan Tjuring (AlanTuring) – napisao je rad ohipotetičkom digitalnomračunaru, koji je kasnijenazvan “Tjuringova mašina”.

• Postavio temelje modernogračunarstva.

• Tokom drugog svetskog rata,Tjuring je razvio tzv. ”bombe”(mehanički uređaji), a zatim“kolose” (električni uređaji) kojisu razbijali nemačku šifru(Enigma mašina).

istorija

13/47

• 1936. god. Alan Tjuring (AlanTuring) – napisao je rad ohipotetičkom digitalnomračunaru, koji je kasnijenazvan “Tjuringova mašina”.

• Postavio temelje modernogračunarstva.

• Tokom drugog svetskog rata,Tjuring je razvio tzv. ”bombe”(mehanički uređaji), a zatim“kolose” (električni uređaji) kojisu razbijali nemačku šifru(Enigma mašina).

Enigma• Nemački uređaj za kriptovanje i dekriptovanje.• Tjuringov kolos je uspešno dekriptovao poruke

šifrovane Enigmom.

istorija

14/47

Prvi digitalni računar?

• 1939-1942. god. napravljen je računarABC (Atanasoff-Berry Computer) koji sudizajnirali dr Džon Astanasov (Dr. JohnAstanasoff) i Kliford Beri (Clifford Berry) nadržavnom univerzitetu u Ajovi (Iowa StateUniversity).

• 1941. god. napravljen i predstavljenračunar Z3, koji je dizajnirao i napravionemački inženjer Konrad Zuse.

istorija

15/47

• 1939-1942. god. napravljen je računarABC (Atanasoff-Berry Computer) koji sudizajnirali dr Džon Astanasov (Dr. JohnAstanasoff) i Kliford Beri (Clifford Berry) nadržavnom univerzitetu u Ajovi (Iowa StateUniversity).

• 1941. god. napravljen i predstavljenračunar Z3, koji je dizajnirao i napravionemački inženjer Konrad Zuse.

ABCistorija

16/47

Z3• 600 releja u numeričkojjedinici

•1600 releja u memorijskojjedinici

• frekvencija rada 5, 3 Hz

• ulaz – decimalna tastatura

• izlaz – 4 cifre, sijalice

• težina – 1 tona

• potrošnja struje – 4 kW

istorija

17/47

• 600 releja u numeričkojjedinici

•1600 releja u memorijskojjedinici

• frekvencija rada 5, 3 Hz

• ulaz – decimalna tastatura

• izlaz – 4 cifre, sijalice

• težina – 1 tona

• potrošnja struje – 4 kW

Oblast 2Generacije računara

• 6 generacija računara• Razlika je pre svega u tehnoloskim

osnovama• Granica između 4., 5. i 6. generacije nije

jasna – ima preklapanja

18/47

• 6 generacija računara• Razlika je pre svega u tehnoloskim

osnovama• Granica između 4., 5. i 6. generacije nije

jasna – ima preklapanja

Prva generacija

• Elektronske cevi, releji, otpornici• Velika potrošnja struje• Ogromne dimenzije

19/47

Prva generacija• 1944. god. napravljen je Mark I – prvi računar opšte

namene. Korišćen je na Harvardu 15 godina.– 150000 raznih komponenti– 5 tona

20/47

Prva generacija• 1946. god. napravljen je Electronic Numerical Integrator

and Computer (ENIAC). Sastojao se iz 18000elektronskih cevi i 70000 otpornika. Trošio je 160 kW.

21/47

Prva generacija• 1951. god. napravljen je UNIVAC (Universal Automatic

Computer).• Karakteristike:

– programi smešteni u memoriju (1000 memorijskih ćelija),– uređaj spoljne memorije na magnetnoj traci,– ulazno/izlazni uređaji (tastatura, bušene kartice, štampač)– 54000 elektronskih cevi

22/47

• 1951. god. napravljen je UNIVAC (Universal AutomaticComputer).

• Karakteristike:– programi smešteni u memoriju (1000 memorijskih ćelija),– uređaj spoljne memorije na magnetnoj traci,– ulazno/izlazni uređaji (tastatura, bušene kartice, štampač)– 54000 elektronskih cevi

Druga generacija• Pojava tranzistora:

– smanjenje dimenzija– smanjenje potrošnje el. energije– povećanje brzine

• Tipičan predstavnik – IBM 1401– 4 KB memorije– ulaz - prekidači

23/47

• Pojava tranzistora:– smanjenje dimenzija– smanjenje potrošnje el. energije– povećanje brzine

• Tipičan predstavnik – IBM 1401– 4 KB memorije– ulaz - prekidači

Treća generacija

• Pojava integrisanih kola:– smanjenje dimenzija– smanjenje potrošnje– ubrzanje rada

• Tipičan predstavnik –IBM System/360– tastatura, diskovi– 8-bitna memorija,

magnetna jezgra, do 6 MB

24/47

• Pojava integrisanih kola:– smanjenje dimenzija– smanjenje potrošnje– ubrzanje rada

• Tipičan predstavnik –IBM System/360– tastatura, diskovi– 8-bitna memorija,

magnetna jezgra, do 6 MB

Četvrta generacija• Pojava VLSI (Very Large Scale

Integration) kola:– milioni komponenti u integrisanim

kolima– mikroprocesor izdvojen u jednom

integrisanom kolu (inženjer TedHoff) - Intel 4004

– smanjenje dimenzija, potrošnje– ubrzanje

• Tipičan predstavnik – IBM PCračunar:– 8086 mikroprocesor– 64 KB memorije (max 640 KB)– 360 KB flopi disk– 10 MB hard disk

25/47

• Pojava VLSI (Very Large ScaleIntegration) kola:– milioni komponenti u integrisanim

kolima– mikroprocesor izdvojen u jednom

integrisanom kolu (inženjer TedHoff) - Intel 4004

– smanjenje dimenzija, potrošnje– ubrzanje

• Tipičan predstavnik – IBM PCračunar:– 8086 mikroprocesor– 64 KB memorije (max 640 KB)– 360 KB flopi disk– 10 MB hard disk

Četvrta generacija• 80286 procesor

– 16 bita– 16 MB RAM– 6 MHz – 12,5 MHz– 134000 tranzistora

• 80386 procesor– 32 bita– 16 MHz – 40 MHz– 4 GB RAM– 275000 tranzistora

• 80486 procesor– 32 bita– 25 MHz – 100 MHz– 4 GB RAM– 1,2 miliona tranzistora

• PENTIUM procesor (imene prati seriju 80xxx zbogprava AMD-a na mikrokod):

– P1• 3,1 miliona tranzistora• 60 MHz – 166 MHz

– P2• 7,5 miliona tranzistora• 233 – 333 MHz

– P3• 9,5 miliona tranzistora• 650 MHz – 1,4 GHz

– P4• 55 – 200 miliona

tranzistora!• 1,4 GHZ – 3,4 GHz

26/47

• 80286 procesor– 16 bita– 16 MB RAM– 6 MHz – 12,5 MHz– 134000 tranzistora

• 80386 procesor– 32 bita– 16 MHz – 40 MHz– 4 GB RAM– 275000 tranzistora

• 80486 procesor– 32 bita– 25 MHz – 100 MHz– 4 GB RAM– 1,2 miliona tranzistora

• PENTIUM procesor (imene prati seriju 80xxx zbogprava AMD-a na mikrokod):

– P1• 3,1 miliona tranzistora• 60 MHz – 166 MHz

– P2• 7,5 miliona tranzistora• 233 – 333 MHz

– P3• 9,5 miliona tranzistora• 650 MHz – 1,4 GHz

– P4• 55 – 200 miliona

tranzistora!• 1,4 GHZ – 3,4 GHz

Peta generacija

• Izraziti paralelizam.• Primena veštačke inteligencije.• Virtuelna realnost.• Intenzivan razvoj računarskih mreža.

27/47

• Izraziti paralelizam.• Primena veštačke inteligencije.• Virtuelna realnost.• Intenzivan razvoj računarskih mreža.

Šesta generacija

• Optika.• Biočipovi.• Dramatičan razvoj računarskih mreža –

poboljšanje u domenu radnih stanica ibrzina prenosa informacija ukomunikacionim linijama.

28/47

• Optika.• Biočipovi.• Dramatičan razvoj računarskih mreža –

poboljšanje u domenu radnih stanica ibrzina prenosa informacija ukomunikacionim linijama.

3. Osnovni pojmovi

• Hardver (tehnička podrška)– oprema koja predstavlja fizičku (materijalnu)

realizaciju bilo kog sistema koji obavljaodređene funkcije.

• Softver (programska podrška)– sveukupnost instrukcija, programa i drugog

“operativnog oruđa” koji se generiše, aktivira ikoristi na razne načine da bi omogućiohardveru da reši dati problem i obavi željeneposlove.

29/47

• Hardver (tehnička podrška)– oprema koja predstavlja fizičku (materijalnu)

realizaciju bilo kog sistema koji obavljaodređene funkcije.

• Softver (programska podrška)– sveukupnost instrukcija, programa i drugog

“operativnog oruđa” koji se generiše, aktivira ikoristi na razne načine da bi omogućiohardveru da reši dati problem i obavi željeneposlove.

Organizacija hardvera

• Elementi:– memorija,– procesor,

• upravljačka jedinica,• aritmetičko logička jedinica,• registri,• ultra brza memorija.

– ulazno-izlazni podsistem,– periferijski uređaji.

30/47

• Elementi:– memorija,– procesor,

• upravljačka jedinica,• aritmetičko logička jedinica,• registri,• ultra brza memorija.

– ulazno-izlazni podsistem,– periferijski uređaji.

Memorija• Služi za prihvat, čuvanje

(pamćenje, memorisanje) ipredaju podataka i programa.

• Element koji pamtielementarnu informaciju (1 bit)je memorijski element.

• Memorijski elementi seudružuju u memorijskulokaciju (memorijsku ćeliju).

• Skup memorijskih ćelija jememorijski modul (blok).

• Memorijski modul je najčešćeadresibilan.– adresa je jedinstveni prirodan

broj dodeljen svakoj ćeliji.

31/47

• Služi za prihvat, čuvanje(pamćenje, memorisanje) ipredaju podataka i programa.

• Element koji pamtielementarnu informaciju (1 bit)je memorijski element.

• Memorijski elementi seudružuju u memorijskulokaciju (memorijsku ćeliju).

• Skup memorijskih ćelija jememorijski modul (blok).

• Memorijski modul je najčešćeadresibilan.– adresa je jedinstveni prirodan

broj dodeljen svakoj ćeliji.

Podela memorije• Sa aspekta pristupa:

– sa sekvencijalnim (serijskim) pristupom (magnetna traka, bušena traka,...)

– sa cikličkim (periodičnim) pristupom (hard disk, floppy disk, CD-ROM)– sa proizvoljnim (slučajnim) pristupom (RAM – Random Access

Memory).• Sa aspekta mogućnosti promene:

– promenljiva memorija (RAM memorija)• Statička (pamti sadržaj dok ima struje),• Dinamička (pamti sadržaj dok ima struje, ali mora da se osvežava).

– polupromenljiva memorija• PROM – Programmable Read Only Memory,• EPROM – Erasable PROM,• EEPROM – Electrically EPROM),• flash memorija.

– stalna memorija (ROM – Read Only Memory)

32/47

• Sa aspekta pristupa:– sa sekvencijalnim (serijskim) pristupom (magnetna traka, bušena traka,

...)– sa cikličkim (periodičnim) pristupom (hard disk, floppy disk, CD-ROM)– sa proizvoljnim (slučajnim) pristupom (RAM – Random Access

Memory).• Sa aspekta mogućnosti promene:

– promenljiva memorija (RAM memorija)• Statička (pamti sadržaj dok ima struje),• Dinamička (pamti sadržaj dok ima struje, ali mora da se osvežava).

– polupromenljiva memorija• PROM – Programmable Read Only Memory,• EPROM – Erasable PROM,• EEPROM – Electrically EPROM),• flash memorija.

– stalna memorija (ROM – Read Only Memory)

Podela memorije

• Po načinu smeštanja sadržaja:– adresne (pristup mem. ćeliji preko adrese),– bezadresne (asocijativne mem., stek mem.,

...).

33/47

• Po načinu smeštanja sadržaja:– adresne (pristup mem. ćeliji preko adrese),– bezadresne (asocijativne mem., stek mem.,

...).

ključ

sadržaj

asocijativnamemorija

stek

Memorija u računaru• Operativna memorija• Ultra brza memorija• Jedinice spoljne memorije (masovna memorija):

– floppy disk,– hard disk,– CD-ROM,– DVD,– USB pocket drive,– ZIP drive,– ...

34/47

• Operativna memorija• Ultra brza memorija• Jedinice spoljne memorije (masovna memorija):

– floppy disk,– hard disk,– CD-ROM,– DVD,– USB pocket drive,– ZIP drive,– ...

Procesor• Funkcije:

– izvršava operacije obradepodataka definisaneprogramom

– vrši upravljanjeračunarskim procesima iinterakcijama izmeđupojedinih jedinica računara

• Elementi:– aritmetičko-logička jedinica,– upravljačka jedinica,– registri,– ultrabrza memorija.

35/47

• Funkcije:– izvršava operacije obrade

podataka definisaneprogramom

– vrši upravljanjeračunarskim procesima iinterakcijama izmeđupojedinih jedinica računara

• Elementi:– aritmetičko-logička jedinica,– upravljačka jedinica,– registri,– ultrabrza memorija.

Aritmetičko-logička jedinica

• Izvršava aritmetičke operacije (sabiranje,oduzimanje,...), logičke operacije(konjukcija, disjunkcija, negacija, ...),pomeranje bitova, itd.

• Elementi:– kombinacione mreže (sabirači),– registri u kojima se čuvaju operandi,

međurezultati i rezultati operacija,– pomoćni registri (statusni registar, i dr.)

36/47

• Izvršava aritmetičke operacije (sabiranje,oduzimanje,...), logičke operacije(konjukcija, disjunkcija, negacija, ...),pomeranje bitova, itd.

• Elementi:– kombinacione mreže (sabirači),– registri u kojima se čuvaju operandi,

međurezultati i rezultati operacija,– pomoćni registri (statusni registar, i dr.)

Upravljačka jedinica

• Upravlja pojedinim koracima u obradipodataka i to na osnovu informacijasadržanih u instrukciji koju upravljačkajedinica zahvata iz memorije.

• Sinhronizuje U/I jedinice, memoriju iaritmetičko-logičku jedinicu.

• Dva pristupa:– direktan (hardverski) i– mikroprogramski.

37/47

• Upravlja pojedinim koracima u obradipodataka i to na osnovu informacijasadržanih u instrukciji koju upravljačkajedinica zahvata iz memorije.

• Sinhronizuje U/I jedinice, memoriju iaritmetičko-logičku jedinicu.

• Dva pristupa:– direktan (hardverski) i– mikroprogramski.

Registri

• Vrste:– radni (Akumulator, ...),– upravljački (PC, MAR, MBR,...).

38/47

Ultrabrza memorija

• Veoma brza i veoma skupa.• Operativna memorija je sporija, ali je cena

niža.• Posledica: između operativne memorije i

procesora se nalazi ultrabrza memorija.• Registri procesora se takođe mogu

smatrati za ultrabrzu memoriju.• Ovaj koncept se primenjuje i kod sporijih

periferijskih jedinica (bafer).39/47

• Veoma brza i veoma skupa.• Operativna memorija je sporija, ali je cena

niža.• Posledica: između operativne memorije i

procesora se nalazi ultrabrza memorija.• Registri procesora se takođe mogu

smatrati za ultrabrzu memoriju.• Ovaj koncept se primenjuje i kod sporijih

periferijskih jedinica (bafer).

Ulazno-izlazni podsistem

• Omogućuje razmenuporuka izmeđuračunara i spoljnogsveta.

• Načini realizacije:– programirani U/I,– sistem prekida,– direktan memorijski

pristup (DMA – DirectMemory Access).

40/47

• Omogućuje razmenuporuka izmeđuračunara i spoljnogsveta.

• Načini realizacije:– programirani U/I,– sistem prekida,– direktan memorijski

pristup (DMA – DirectMemory Access).

Programirani U/I

• Procesor stalno:– proverava status periferijske jedinice– uzima/šalje podatke iz/ka periferijskoj jedinici

• Mana: troši puno procesorskog vremena.• Retko se koristi.

41/47

• Procesor stalno:– proverava status periferijske jedinice– uzima/šalje podatke iz/ka periferijskoj jedinici

• Mana: troši puno procesorskog vremena.• Retko se koristi.

Sistem prekida

• Sistem prekida (interrupt) omogućava da se:– regularan program prekine ako se pojavi određeni

događaj,– upravljanje prenese na program zadužen za obradu

tog događaja, i po završetku tog programa– nastavi sa izvršenjem regularnog programa

• Koristi se kod prenosa manje količine podataka.• Sporo kod prenosa velikog broja podataka.

42/47

• Sistem prekida (interrupt) omogućava da se:– regularan program prekine ako se pojavi određeni

događaj,– upravljanje prenese na program zadužen za obradu

tog događaja, i po završetku tog programa– nastavi sa izvršenjem regularnog programa

• Koristi se kod prenosa manje količine podataka.• Sporo kod prenosa velikog broja podataka.

Direktan memorijski pristup

• Periferijska jedinica “sama” upisujepodatke u operativnu memoriju (ili čita iznje), bez intervencije procesora.

• Završetak posla se prijavi procesoruupotrebom prekida.

• Korisno kod prenosa velikog brojapodataka (tu su i programirani U/I i sistemprekida spori).

43/47

• Periferijska jedinica “sama” upisujepodatke u operativnu memoriju (ili čita iznje), bez intervencije procesora.

• Završetak posla se prijavi procesoruupotrebom prekida.

• Korisno kod prenosa velikog brojapodataka (tu su i programirani U/I i sistemprekida spori).

Periferijske jedinice• Služe za ulaz i/ili izlaz

podataka.• Podela:

– Ulazne jedinice• tastatura,• miš,• džojstik, itd.

– Izlazne jedinice• štampač,• monitor,• ploter, itd.

– ulazno/izlazne jedinice• floppy,• hard disk,• modem,• mrežna kartica, itd.

44/47

• Služe za ulaz i/ili izlazpodataka.

• Podela:– Ulazne jedinice

• tastatura,• miš,• džojstik, itd.

– Izlazne jedinice• štampač,• monitor,• ploter, itd.

– ulazno/izlazne jedinice• floppy,• hard disk,• modem,• mrežna kartica, itd.

Softverske karakteristike računara

• Aplikacioni programi (korisnički programi):– skup programa koje obično koriste i/ili razvijaju

korisnici za rešavanje svojih specifičnih problema.• Sistemski programi (upravljački programi):

– programi za organizaciju i upravljanje procesima radaračunarskog sistema.

• operativni sistemi (upravljanje radom rač. sistema)• uslužni programi (dijagnostika, upravljanje podacima, itd.)• simulatori računarskih sistema• programski sistemi za programiranje (asembleri, prevodioci,

interpreteri).

45/47

• Aplikacioni programi (korisnički programi):– skup programa koje obično koriste i/ili razvijaju

korisnici za rešavanje svojih specifičnih problema.• Sistemski programi (upravljački programi):

– programi za organizaciju i upravljanje procesima radaračunarskog sistema.

• operativni sistemi (upravljanje radom rač. sistema)• uslužni programi (dijagnostika, upravljanje podacima, itd.)• simulatori računarskih sistema• programski sistemi za programiranje (asembleri, prevodioci,

interpreteri).

Aplikacioni programi

• Neke klase aplikacionih programa:– DTP (DeskTop Publishing)

• Quark Express, MS Publisher, Adobe Page Maker, ...

– CAD/CAM• AutoCAD, ArhiCAD, ...

– Word processors/Spreadsheet• MS Office, Open Office, ...

– Internet• WWW: Internet Explorer, Mozilla Firefox, ...• Email: Outlook Express, The Bat, ...• Chat, voice chat: MS Messanger, Skype, ...

46/47

• Neke klase aplikacionih programa:– DTP (DeskTop Publishing)

• Quark Express, MS Publisher, Adobe Page Maker, ...

– CAD/CAM• AutoCAD, ArhiCAD, ...

– Word processors/Spreadsheet• MS Office, Open Office, ...

– Internet• WWW: Internet Explorer, Mozilla Firefox, ...• Email: Outlook Express, The Bat, ...• Chat, voice chat: MS Messanger, Skype, ...

Sistemski programi

• Operativni sistemi– Windows, Linux, Solaris, ...

• Dijagnostika– Motherboard Monitor, Network Monitor, ...

• Simulatori računarskih sistema– VMWare, Spectrum Emulator, Amiga

Emulator, ...• Programski sistemi za programiranje

– Visual Studio, Eclipse, ...47/47

• Operativni sistemi– Windows, Linux, Solaris, ...

• Dijagnostika– Motherboard Monitor, Network Monitor, ...

• Simulatori računarskih sistema– VMWare, Spectrum Emulator, Amiga

Emulator, ...• Programski sistemi za programiranje

– Visual Studio, Eclipse, ...

Računarski praktikum

Matematičke osnove radaračunara

Matematičke osnove rada računara

• Brojni sistemi– pozicioni i nepozicioni brojni sistemi– računarske operacije

• Predstavljanje celobrojnih brojeva u računaru– predstavljanje negativnih brojeva

• Predstavljanje razlomljenih brojeva u računaru• Kodiranje informacija u računaru• Kodovi za detekciju i korekciju grešaka

2/46

• Brojni sistemi– pozicioni i nepozicioni brojni sistemi– računarske operacije

• Predstavljanje celobrojnih brojeva u računaru– predstavljanje negativnih brojeva

• Predstavljanje razlomljenih brojeva u računaru• Kodiranje informacija u računaru• Kodovi za detekciju i korekciju grešaka

Brojni sistemi

• Pozicioni i nepozicioni brojni sistemi– Nepozicioni brojni sistem – Rimski Brojni Sistem:

• I – jedan• V – pet• X – deset• L – pedeset• C – sto• D – pet stotina• M – hiljadu• M – milion (broj crtica iznad slova M označava koliko puta

množimo sa hiljadu).

3/46

• Pozicioni i nepozicioni brojni sistemi– Nepozicioni brojni sistem – Rimski Brojni Sistem:

• I – jedan• V – pet• X – deset• L – pedeset• C – sto• D – pet stotina• M – hiljadu• M – milion (broj crtica iznad slova M označava koliko puta

množimo sa hiljadu).

Pozicioni brojni sistem• Svaka cifra ima zadatu težinu.• Opšti oblik:

anan-1...a1a0 ,a-1a-2...a-mtj.

an∙bn+an-1∙bn-1 + ... + a1∙b1 + a0∙b0 + a-1∙b-1+a-2∙b-2+...+a-m∙b-m

• a – cifra• b – osnova (baza)• n+1 – broj celobrojnih cifara• m – broj decimala

4/46

• Svaka cifra ima zadatu težinu.• Opšti oblik:

anan-1...a1a0 ,a-1a-2...a-mtj.

an∙bn+an-1∙bn-1 + ... + a1∙b1 + a0∙b0 + a-1∙b-1+a-2∙b-2+...+a-m∙b-m

• a – cifra• b – osnova (baza)• n+1 – broj celobrojnih cifara• m – broj decimala

Pozicioni brojni sistem - primeri• 198410 = 1∙103 + 9∙102 + 8∙101 + 4∙100 =

1∙1000 + 9∙100 + 8∙10 + 4∙1 =1000 + 900 + 80 + 4 = 1984

• 100112 = 1∙24 + 0∙23 + 0∙22 + 1∙21 + 1∙20 =1∙16 + 0∙8 + 0∙4 + 1∙2 + 1∙1 = 16 + 2 + 1 =19

• 12,310= 1∙101 + 2∙100 + 3∙10-1 =1∙10 + 2∙1 + 3∙0,1 =10+2+0,3 =12,3

5/46

• 198410 = 1∙103 + 9∙102 + 8∙101 + 4∙100 =1∙1000 + 9∙100 + 8∙10 + 4∙1 =1000 + 900 + 80 + 4 = 1984

• 100112 = 1∙24 + 0∙23 + 0∙22 + 1∙21 + 1∙20 =1∙16 + 0∙8 + 0∙4 + 1∙2 + 1∙1 = 16 + 2 + 1 =19

• 12,310= 1∙101 + 2∙100 + 3∙10-1 =1∙10 + 2∙1 + 3∙0,1 =10+2+0,3 =12,3

Predstavljanje brojeva u različitimbrojnim sistemima

• Cifre brojnog sistema su: 0 do (baza – 1)• Primer:

– binarni (b=2): {0, 1}– oktalni (b=8): {0, 1, 2, 3, 4, 5, 6, 7}– decimalni (b=10): {0, 1, 2, 3,4 ,5 ,6 ,7 , 8, 9}– heksadecimalni (b=16): {0, 1, 2, 3, 4, 5, 6, 7,

8, 9, A, B, C, D, E, F}

6/46

• Cifre brojnog sistema su: 0 do (baza – 1)• Primer:

– binarni (b=2): {0, 1}– oktalni (b=8): {0, 1, 2, 3, 4, 5, 6, 7}– decimalni (b=10): {0, 1, 2, 3,4 ,5 ,6 ,7 , 8, 9}– heksadecimalni (b=16): {0, 1, 2, 3, 4, 5, 6, 7,

8, 9, A, B, C, D, E, F}

Primer

7/46

Računske operacije – binarni brojnisistem

• Sabiranje:

• Oduzimanje:

8/46

• Sabiranje:

• Oduzimanje:

Računske operacije – binarni brojnisistem

• Množenje:

• Deljenje:– nulom nije dozvoljeno– jedinicom - trivijalno

9/46

• Množenje:

• Deljenje:– nulom nije dozvoljeno– jedinicom - trivijalno

Računske operacije – binarni brojnisistem

11+11---110

110-101---001

110 x 11--------110

+ 110-----------10010

1001 : 11 = 11----100-011-----0011-0011------0000

10/46

110 x 11--------110

+ 110-----------10010

1001 : 11 = 11----100-011-----0011-0011------0000

Računske operacije – oktalni brojnisistem

447+652----1321

54,3-45,4----6,7

123 x 21--------123

+ 246-----------2603

2603 : 21 = 123----26-21----50-42----63-63-----

011/46

123 x 21--------123

+ 246-----------2603

2603 : 21 = 123----26-21----50-42----63-63-----

0

Računske operacije –heksadecimalni brojni sistem

127+1AA----2D1

2C-25----7

53 x 11--------53

+ 53-----------583

583 : 11 = 53----58-55----33-33----0

12/46

53 x 11--------53

+ 53-----------583

583 : 11 = 53----58-55----33-33----0

1A0 x 13--------4E0

+ 1A0-----------1EE0

Konverzije brojnih sistema

• Opšta formula– celobrojni deo:

celobrojni deo (a) u novu bazu b:a : b = r1 i ostatak o1r1 : b = r2 i ostatak o2r2 : b = r3 i ostatak o3...rn : b = 0 i ostatak on----------------------------------rezultat: on ... o3 o2 o1

13/46

• Opšta formula– celobrojni deo:

celobrojni deo (a) u novu bazu b:a : b = r1 i ostatak o1r1 : b = r2 i ostatak o2r2 : b = r3 i ostatak o3...rn : b = 0 i ostatak on----------------------------------rezultat: on ... o3 o2 o1

Konverzije brojnih sistema

• Opšta formula– razlomljeni deo:

razlomljeni deo (a) u novu bazu b:a ∙ b = c1,r1 tj. celobrojni deo c1 i razlomljeni deo r1r1 ∙ b = c2,r2 tj. celobrojni deo c2 i razlomljeni deo r2r2 ∙ b = c3,r3 tj. celobrojni deo c3 i razlomljeni deo r3...rn ∙ b = cn,0 tj. celobrojni deo cn i razlomljeni deo 0------------------------------------------Rezultat: c1 c2 ... cn

– Problem: ako razlomljeni deo ne bude 0

14/46

• Opšta formula– razlomljeni deo:

razlomljeni deo (a) u novu bazu b:a ∙ b = c1,r1 tj. celobrojni deo c1 i razlomljeni deo r1r1 ∙ b = c2,r2 tj. celobrojni deo c2 i razlomljeni deo r2r2 ∙ b = c3,r3 tj. celobrojni deo c3 i razlomljeni deo r3...rn ∙ b = cn,0 tj. celobrojni deo cn i razlomljeni deo 0------------------------------------------Rezultat: c1 c2 ... cn

– Problem: ako razlomljeni deo ne bude 0

Primer

• Broj 701,62510 konvertovati uheksadecimalni brojni sistem.

701 : 16 = 43 i ostatak 13 D43 : 16 = 2 i ostatak 11 B

2 : 16 = 0 i ostatak 2----------------------------------rezultat: 2BD

15/46

• Broj 701,62510 konvertovati uheksadecimalni brojni sistem.

701 : 16 = 43 i ostatak 13 D43 : 16 = 2 i ostatak 11 B

2 : 16 = 0 i ostatak 2----------------------------------rezultat: 2BD

Primer

• Razlomljeni deo: 0,6250,625 ∙ 16 = 10,0 tj. celobrojni deo 10A i razlomljeni deo 0-----------------------

• Konačan rezultat: 2BD,A16

16/46

• Razlomljeni deo: 0,6250,625 ∙ 16 = 10,0 tj. celobrojni deo 10A i razlomljeni deo 0-----------------------

• Konačan rezultat: 2BD,A16

Primer

• Broj 701,062510 konvertovati u oktalnibrojni sistem.

701 : 8 = 87 i ostatak 587 : 8 = 10 i ostatak 710 : 8 = 1 i ostatak 21 : 8 = 0 i ostatak 1

----------------------------------rezultat: 1275

17/46

• Broj 701,062510 konvertovati u oktalnibrojni sistem.

701 : 8 = 87 i ostatak 587 : 8 = 10 i ostatak 710 : 8 = 1 i ostatak 21 : 8 = 0 i ostatak 1

----------------------------------rezultat: 1275

Primer

• Razlomljeni deo: 0,06250,0625 ∙ 8 = 0,5 tj. celobrojni deo 0 i razlomljeni deo 0,50,5 ∙ 8 = 4,0 tj. celobrojni deo 4 i razlomljeni deo 0-----------------------

• Konačan rezultat: 1275,048

18/46

• Razlomljeni deo: 0,06250,0625 ∙ 8 = 0,5 tj. celobrojni deo 0 i razlomljeni deo 0,50,5 ∙ 8 = 4,0 tj. celobrojni deo 4 i razlomljeni deo 0-----------------------

• Konačan rezultat: 1275,048

Primer

• Broj 37,62510 konvertovati u binarni brojnisistem.

37 : 2 = 18 i ostatak 118 : 2 = 9 i ostatak 09 : 2 = 4 i ostatak 14 : 2 = 2 i ostatak 02 : 2 = 1 i ostatak 01 : 2 = 0 i ostatak 1

----------------------------------rezultat: 100101

19/46

• Broj 37,62510 konvertovati u binarni brojnisistem.

37 : 2 = 18 i ostatak 118 : 2 = 9 i ostatak 09 : 2 = 4 i ostatak 14 : 2 = 2 i ostatak 02 : 2 = 1 i ostatak 01 : 2 = 0 i ostatak 1

----------------------------------rezultat: 100101

Primer

• Razlomljeni deo: 0,6250,625 ∙ 2 = 1,250 tj. celobrojni deo 1 i razlomljeni deo 0,2500,250 ∙ 2 = 0,5 tj. celobrojni deo 0 i razlomljeni deo 0,50,5 ∙ 2 = 1,0 tj. celobrojni deo 1 i razlomljeni deo 0-----------------------

• Konačan rezultat: 100101,1012

20/46

• Razlomljeni deo: 0,6250,625 ∙ 2 = 1,250 tj. celobrojni deo 1 i razlomljeni deo 0,2500,250 ∙ 2 = 0,5 tj. celobrojni deo 0 i razlomljeni deo 0,50,5 ∙ 2 = 1,0 tj. celobrojni deo 1 i razlomljeni deo 0-----------------------

• Konačan rezultat: 100101,1012

Konverzija iz binarnog u oktalni iheksadecimalni brojni sistem

• Drugačijim grupisanjem bitova:– po tri bita za oktalni brojni sistem– po četiri bita za heksadecimalni brojni sistem

• Primer:01 100 1112 = 1478

0110 01112 = 6716

21/46

• Drugačijim grupisanjem bitova:– po tri bita za oktalni brojni sistem– po četiri bita za heksadecimalni brojni sistem

• Primer:01 100 1112 = 1478

0110 01112 = 6716

heksadecimalni oktalni

• Preko binarnog brojnog sistema.• Primer:

A316 = 1010 00112

10 100 0112 = 2438

22/46

• Preko binarnog brojnog sistema.• Primer:

A316 = 1010 00112

10 100 0112 = 2438

Predstavljanje celobrojnih brojevau računaru

• Svaka memorijska ćelija u računaru ima 8bitova – jedan bajt.– u jedan bajt se može smestiti broj u rasponu od

0 – 255• Ako je celobrojna vrednost veća od 255,

uzme se više bajtova:– dva bajta – 16 bita: 0 – 65535– četiri bajta – 32 bita: 0 – 4.294.967.295

23/46

• Svaka memorijska ćelija u računaru ima 8bitova – jedan bajt.– u jedan bajt se može smestiti broj u rasponu od

0 – 255• Ako je celobrojna vrednost veća od 255,

uzme se više bajtova:– dva bajta – 16 bita: 0 – 65535– četiri bajta – 32 bita: 0 – 4.294.967.295

Predstavljanje negativnih brojeva

• Preko znaka i apsolutne vrednosti– komplikovan algoritam za sabiranje i

oduzimanje• Preko komplementa

– jednostavan algoritam za sabiranje ioduzimanje

24/46

• Preko znaka i apsolutne vrednosti– komplikovan algoritam za sabiranje i

oduzimanje• Preko komplementa

– jednostavan algoritam za sabiranje ioduzimanje

Predstavljanje negativnih brojevakomplementom

• Potpuni komplement (u binarnom brojnomsistemu se još zove i komplement dvojke).

• Nepotpuni komplement (u binarnombrojnom sistemu se još zove i komplementjedinice).

• U oba sistema se poslednja cifra koristi zaznak broja (pozitivan ili negativan).

25/46

• Potpuni komplement (u binarnom brojnomsistemu se još zove i komplement dvojke).

• Nepotpuni komplement (u binarnombrojnom sistemu se još zove i komplementjedinice).

• U oba sistema se poslednja cifra koristi zaznak broja (pozitivan ili negativan).

Potpuni komplement

• broj x• n cifara• baza b• PotpuniKomplement (x) = bn+1 – x

26/46

• broj x• n cifara• baza b• PotpuniKomplement (x) = bn+1 – x

Potpuni komplement

• Primer:

x = 00102=210

n = 3b = 2PotpuniKomplement (2) = 23+1 – 2 =100002 – 00102 = 11102

znak!

27/46

• Primer:

x = 00102=210

n = 3b = 2PotpuniKomplement (2) = 23+1 – 2 =100002 – 00102 = 11102

znak!

Potpuni komplement

• Primer:

x = 11102=-210

n = 3b = 2PotpuniKomplement (-2) = 23+1 – (-2) =100002 – 11102 = 00102

znak!

28/46

• Primer:

x = 11102=-210

n = 3b = 2PotpuniKomplement (-2) = 23+1 – (-2) =100002 – 11102 = 00102

znak!

Sabiranje sa potpunimkomplementom

• Pravilo:A – B = A + PotpuniKomplement(B) =

Rezultat + Prenos• Ako je Prenos = 1 onda je Rezultat

korektan.• Ako je Prenos = 0 onda je rezultat

negativan (stvarni rezultat je potpunikomplement od rezultata sa negativnimpredznakom).

29/46

• Pravilo:A – B = A + PotpuniKomplement(B) =

Rezultat + Prenos• Ako je Prenos = 1 onda je Rezultat

korektan.• Ako je Prenos = 0 onda je rezultat

negativan (stvarni rezultat je potpunikomplement od rezultata sa negativnimpredznakom).

Primer

• 01012 – 00102 = 01012 + 11102 = 100112

• 00012 – 00102 = 00012 + 11102 = 011112

Stvarni rezultat: - PotpuniKomplement(11112) =100002 – 11112 = - 000012

prenos

30/46

• 01012 – 00102 = 01012 + 11102 = 100112

• 00012 – 00102 = 00012 + 11102 = 011112

Stvarni rezultat: - PotpuniKomplement(11112) =100002 – 11112 = - 000012

prenos

Prekoračenje (overflow)

• Javlja se kada se prilikom sabiranja dvabroja dobije rezultat koji ne može da staneu zadati broj bitova

• Pravilo:– ako se prilikom sabiranja dva pozitivna ili dva

negativna broja dobije broj suprotnog znaka,dogodilo se prekoračenje.

• Primer:01012 + 01002 = 10012 (5 + 4 = 9)10012 + 10102 = 100112 ((-7)+(-6) = -13)

31/46

• Javlja se kada se prilikom sabiranja dvabroja dobije rezultat koji ne može da staneu zadati broj bitova

• Pravilo:– ako se prilikom sabiranja dva pozitivna ili dva

negativna broja dobije broj suprotnog znaka,dogodilo se prekoračenje.

• Primer:01012 + 01002 = 10012 (5 + 4 = 9)10012 + 10102 = 100112 ((-7)+(-6) = -13)

Nepotpuni komplement

• broj x• n cifara• baza b• NepotpuniKomplement (x) = (bn+1 -1) – x

32/46

• broj x• n cifara• baza b• NepotpuniKomplement (x) = (bn+1 -1) – x

Nepotpuni komplement

• Primer:

x = 00102=210

n = 3b = 2NepotpuniKomplement (2) = (23+1 -1) – 2 =(100002 – 00012)– 00102 = 11012

znak!

33/46

• Primer:

x = 00102=210

n = 3b = 2NepotpuniKomplement (2) = (23+1 -1) – 2 =(100002 – 00012)– 00102 = 11012

znak!

Nepotpuni komplement

• Primer:

x = 11012=-210

n = 3b = 2NepotpuniKomplement (-2) = (23+1 -1)– (-2) =(100002 - 00012) – 11012 = 00102

znak!

34/46

• Primer:

x = 11012=-210

n = 3b = 2NepotpuniKomplement (-2) = (23+1 -1)– (-2) =(100002 - 00012) – 11012 = 00102

znak!

Sabiranje sa nepotpunimkomplementom

• Pravilo:A – B = A + NepotpuniKomplement(B) =

Rezultat + Prenos• Ako je Prenos = 1 onda je

konačan rezultat = rezultat bez prenosa + 1.• Ako je Prenos = 0 onda je rezultat

negativan (stvarni rezultat je nepotpunikomplement od rezultata sa negativnimpredznakom).

35/46

• Pravilo:A – B = A + NepotpuniKomplement(B) =

Rezultat + Prenos• Ako je Prenos = 1 onda je

konačan rezultat = rezultat bez prenosa + 1.• Ako je Prenos = 0 onda je rezultat

negativan (stvarni rezultat je nepotpunikomplement od rezultata sa negativnimpredznakom).

Primer• 01012 – 00102 = 01012 + 11012 = 1 00102

Pravi rezultat: 00102 + 1 = 00112

• 00012 – 00102 = 00012 + 11012 = 011102

Stvarni rezultat: - NepotpuniKomplement(11102) =100002 – 00012 - 11102 = - 000012

prenos

36/46

• 01012 – 00102 = 01012 + 11012 = 1 00102

Pravi rezultat: 00102 + 1 = 00112

• 00012 – 00102 = 00012 + 11012 = 011102

Stvarni rezultat: - NepotpuniKomplement(11102) =100002 – 00012 - 11102 = - 000012

prenos

Sračunavanje komplementa bezoduzimanja!

• Potpuni komplement: invertovati svebitove i dodati 1.– Primer: 00102 => 11012 + 1 = 11102

• Nepotpuni komplement: invertovati svebitove.– Primer: 00102 => 11012

37/46

• Potpuni komplement: invertovati svebitove i dodati 1.– Primer: 00102 => 11012 + 1 = 11102

• Nepotpuni komplement: invertovati svebitove.– Primer: 00102 => 11012

Predstavljanje celobrojnih brojevau računaru

• Svaka memorijska ćelija u računaru ima 8 bitova – jedanbajt.– u jedan bajt se može smestiti broj u rasponu od:

• 0 – 255, neoznačen• -128 – 127, označen, u potpunom/nepotpunom komplementu

• Ako je celobrojna vrednost veća od 128/255, uzme se višebajtova:– dva bajta – 16 bita:

• 0 – 65535, neoznačen• -32768 – 32767, označen, u potpunom/nepotpunom komplementu

– četiri bajta – 32 bita:• 0 – 4.294.967.295, neoznačen• -2.147.483.648 – 2.147.483.647, označen, u potpunom/nepotpunom

komplementu

38/46

• Svaka memorijska ćelija u računaru ima 8 bitova – jedanbajt.– u jedan bajt se može smestiti broj u rasponu od:

• 0 – 255, neoznačen• -128 – 127, označen, u potpunom/nepotpunom komplementu

• Ako je celobrojna vrednost veća od 128/255, uzme se višebajtova:– dva bajta – 16 bita:

• 0 – 65535, neoznačen• -32768 – 32767, označen, u potpunom/nepotpunom komplementu

– četiri bajta – 32 bita:• 0 – 4.294.967.295, neoznačen• -2.147.483.648 – 2.147.483.647, označen, u potpunom/nepotpunom

komplementu

Predstavljanje razlomljenih brojevau računaru

• U nepokretnom zarezu– fiksna pozicija decimalnog zareza.

• U pokretnom zarezu (floating point)– brojevi se predstavljaju u obliku: m ∙ be

m – mantisab – bazae – eksponent

• U memoriji računara se pamte mantisa ieksponent kao celobrojne označene vrednosti,najčešće sa bazom 2.

39/46

• U nepokretnom zarezu– fiksna pozicija decimalnog zareza.

• U pokretnom zarezu (floating point)– brojevi se predstavljaju u obliku: m ∙ be

m – mantisab – bazae – eksponent

• U memoriji računara se pamte mantisa ieksponent kao celobrojne označene vrednosti,najčešće sa bazom 2.

Primer

• 2*102 + 1*101 = 2*102 + 0,1*102 =(2+0,1)*102 = 2,1*102 = 210

• 2*102 * 3*101 = (2*3)*102+1 = 6*103 = 6000

40/46

• 2*102 + 1*101 = 2*102 + 0,1*102 =(2+0,1)*102 = 2,1*102 = 210

• 2*102 * 3*101 = (2*3)*102+1 = 6*103 = 6000

Pokretni zarez

• Sabiranje odn. oduzimanje - pre sabiranja(oduzimanja) brojevi se svedu na isti eksponent:m1∙ be + m2 ∙ be = (m1 + m2) ∙ be

• Množenje, odn. deljenje:(m1∙ be1) ∙ (m2 ∙ be2) = (m1 ∙ m2) ∙ b(e1+e2)

• Svođenje eksponenata na istu vrednost se svodina smanjenje/povećanje eksponenta, uzistovremeno deljenje/množenje mantise bazom– u računaru se deljenje/množenje matise bazom 2

svodi na pomeranje desno/levo bitova.41/46

• Sabiranje odn. oduzimanje - pre sabiranja(oduzimanja) brojevi se svedu na isti eksponent:m1∙ be + m2 ∙ be = (m1 + m2) ∙ be

• Množenje, odn. deljenje:(m1∙ be1) ∙ (m2 ∙ be2) = (m1 ∙ m2) ∙ b(e1+e2)

• Svođenje eksponenata na istu vrednost se svodina smanjenje/povećanje eksponenta, uzistovremeno deljenje/množenje mantise bazom– u računaru se deljenje/množenje matise bazom 2

svodi na pomeranje desno/levo bitova.

Pokretni zarez• Normalizovana mantisa: kada je

b-1 ≤ |m| ≤ 1• U praksi se normalizacija mantise svodi na

zapis: 1,xxxx, gde se 1 podrazumeva• Tada je preciznost najveća.• Pokretni zarez u računarnima, u nekim

situacijama nije dovoljno precizan!– razlog je taj što je baza 2, pa konverzija decimalnih

brojeva u oblik m ∙2e ne daje okrugao broj.– greška je veoma mala, ali se uzastopnim operacijama

može akumulirati.42/46

• Normalizovana mantisa: kada jeb-1 ≤ |m| ≤ 1

• U praksi se normalizacija mantise svodi nazapis: 1,xxxx, gde se 1 podrazumeva

• Tada je preciznost najveća.• Pokretni zarez u računarnima, u nekim

situacijama nije dovoljno precizan!– razlog je taj što je baza 2, pa konverzija decimalnih

brojeva u oblik m ∙2e ne daje okrugao broj.– greška je veoma mala, ali se uzastopnim operacijama

može akumulirati.

Primer

• 2*102 + 1*101 = 2*102 + 0,1*102 =(2+0,1)*102 = 2,1*102 = 210

• 2*102 * 3*101 = (2*3)*102+1 = 6*103 = 6000

43/46

• 2*102 + 1*101 = 2*102 + 0,1*102 =(2+0,1)*102 = 2,1*102 = 210

• 2*102 * 3*101 = (2*3)*102+1 = 6*103 = 6000

Kodiranje alfanumeričkihinformacija

• Alfanumerički simboli:– numerički simboli (0, 1, ..., 9)– slovni simboli (A, B, ..., Z)– inteprunkcijski znakovi (, . ; : “ ...)– specijalni simboli (#, $, %, ...)

• Standardi:– ASCII (American Standard Code for Information

Interchange)– ISO 8859-1– Windows CP 1250– Unicode

44/46

• Alfanumerički simboli:– numerički simboli (0, 1, ..., 9)– slovni simboli (A, B, ..., Z)– inteprunkcijski znakovi (, . ; : “ ...)– specijalni simboli (#, $, %, ...)

• Standardi:– ASCII (American Standard Code for Information

Interchange)– ISO 8859-1– Windows CP 1250– Unicode

Kodovi za detekciju i korekcijugrešaka

• Koncentrisaćemo se na binarni brojnisistem. Sve informacije će biti kodiranebinarno!

• Uzrok pojave grešaka.• Kodovi za detekciju grešaka

– u stanju su da detektuju grešku, ali ne i da jekoriguju

• Kodovi za korekciju grešaka– detekcija i korekcija grešaka

45/46

• Koncentrisaćemo se na binarni brojnisistem. Sve informacije će biti kodiranebinarno!

• Uzrok pojave grešaka.• Kodovi za detekciju grešaka

– u stanju su da detektuju grešku, ali ne i da jekoriguju

• Kodovi za korekciju grešaka– detekcija i korekcija grešaka

Kodovi za detekciju grešaka• Najjednostavnije je da se doda još jedan bit tako da

ukupan broj jedinica u poruci bude paran ili neparan.• Primer:

– originalna poruka: 001101– sa dodatnim bitom (uk. br. jedinica paran):

0011011– sa greškom: 0001011– vidimo da je došlo do greške pošto je ukupan broj jedinica

neparan!• Greške od više od jednog bita mogu da prođu

nedetektovane!1111011

46/46

• Najjednostavnije je da se doda još jedan bit tako daukupan broj jedinica u poruci bude paran ili neparan.

• Primer:– originalna poruka: 001101– sa dodatnim bitom (uk. br. jedinica paran):

0011011– sa greškom: 0001011– vidimo da je došlo do greške pošto je ukupan broj jedinica

neparan!• Greške od više od jednog bita mogu da prođu

nedetektovane!1111011

Karakter za proveru bloka

b1 b2 b3 b4 p1b5 b6 b7 b8 p2p3 p4 p5 p6 p7• U slučaju greške od jednog bita bilo gde,

moguće je detektovati i korigovati grešku:b1 b2 b3 b4 p1b5 b6 b7 b8 p2p3 p4 p5 p6 p7

47/46

b1 b2 b3 b4 p1b5 b6 b7 b8 p2p3 p4 p5 p6 p7• U slučaju greške od jednog bita bilo gde,

moguće je detektovati i korigovati grešku:b1 b2 b3 b4 p1b5 b6 b7 b8 p2p3 p4 p5 p6 p7

CRC kod

• Cyclic Redundancy Character• Poruka se kao niz bitova deli sa nekim

unapred dogovorenim brojem, rezultat seodbacuje a ostatak pri deljenju se doda uzporuku.

• Na prijemnoj strani se primljena porukadeli istim brojem i ostatak se poredi saprimljenim ostatkom.

48/46

• Cyclic Redundancy Character• Poruka se kao niz bitova deli sa nekim

unapred dogovorenim brojem, rezultat seodbacuje a ostatak pri deljenju se doda uzporuku.

• Na prijemnoj strani se primljena porukadeli istim brojem i ostatak se poredi saprimljenim ostatkom.

Računarski praktikum

Rešavanje problema primenomračunara

Rešavanje problema primenomračunara

• Tri faze (opšte):– analiza problema– specifikacija rešenja– realizacija

2/36

• Tri faze (opšte):– analiza problema– specifikacija rešenja– realizacija

Rešavanje problema primenomračunara

• Tri faze:– analiza problema– razvoj algoritma za rešavanje problema– transformacija algoritma u računarski program

(programiranje).

3/36

• Tri faze:– analiza problema– razvoj algoritma za rešavanje problema– transformacija algoritma u računarski program

(programiranje).

Analiza problema

• Cilj: da pruži preciznu definiciju i opisproblema, specifikaciju ulaznih podataka,specifikaciju izlaznih podataka (rezultatekoji se očekuju), kao i postupak da se dotakvih rezultata dođe.

• Specifikacija ulaznih i izlaznih podatakaodređuje u izvesnom stepenu i algoritamobrade podataka.

4/36

• Cilj: da pruži preciznu definiciju i opisproblema, specifikaciju ulaznih podataka,specifikaciju izlaznih podataka (rezultatekoji se očekuju), kao i postupak da se dotakvih rezultata dođe.

• Specifikacija ulaznih i izlaznih podatakaodređuje u izvesnom stepenu i algoritamobrade podataka.

Algoritmi• Algoritam predstavlja niz uputstava koja tačno

određuju redosled operacija koje će dovesti dorešenja za probleme datog tipa.

• Karakteristike:– broj operacija koje se moraju izvršiti za rešenje

konkretnog problema nije poznat unapred.– procedura koja je određena algoritmom je

deterministički proces – data u obliku konačnog brojainstrukcija

– instrukcije koje čine algoritam definišu proceduru kojase može izvršiti na odgovarajućem skupu podataka iu svakom slučaju dovodi do korektnog rezultata.

5/36

• Algoritam predstavlja niz uputstava koja tačnoodređuju redosled operacija koje će dovesti dorešenja za probleme datog tipa.

• Karakteristike:– broj operacija koje se moraju izvršiti za rešenje

konkretnog problema nije poznat unapred.– procedura koja je određena algoritmom je

deterministički proces – data u obliku konačnog brojainstrukcija

– instrukcije koje čine algoritam definišu proceduru kojase može izvršiti na odgovarajućem skupu podataka iu svakom slučaju dovodi do korektnog rezultata.

Algoritmi

• 5 važnih osobina:– konačnost– definisanost (bez dvosmislenosti – opis u

odgovarajućem jeziku)– ulaz– izlaz– efikasnost (vreme ili količina zauzete

memorije)

6/36

• 5 važnih osobina:– konačnost– definisanost (bez dvosmislenosti – opis u

odgovarajućem jeziku)– ulaz– izlaz– efikasnost (vreme ili količina zauzete

memorije)

Predstavljanje algoritama

• Različite tehnike:– prirodni jezici– blok dijagrami algoritma (grafička predstava)– meta jezici (između prirodnih i programskih

jezika)– programski jezici

7/36

• Različite tehnike:– prirodni jezici– blok dijagrami algoritma (grafička predstava)– meta jezici (između prirodnih i programskih

jezika)– programski jezici

Blok dijagram algoritma

8/36

Simbol obrade

• Za predstavljanje svih operacija u kojima dolazido transformacije informacionih strukturanajčešće aritmetičkim, logičkim ili operacijamaprenosa informacionog sadržaja.

9/36

A <- B * 3

Simbol obrade

POČETAK

X 2

10/36

Y X * 4

KRAJ

Simbol ulaza/Izlaza

• Za predstavljanje ulazno/izlaznih operacija kojeuvode podatke u obradu i/ili ispisuju rezultateobrade.

POČETAK

11/36

UČITAJX

ULAZ N

KRAJ

IZLAZ REZ

REZ N * N

Simbol odluke

• Za označavanje operacijaodlučivanja ili grananjatoka izvođenja algoritma,a prema nekomkriterijumu odlučivanja.

• Dve vrste:– aritmetički– logički

E1:E2< >

=

12/36

• Za označavanje operacijaodlučivanja ili grananjatoka izvođenja algoritma,a prema nekomkriterijumu odlučivanja.

• Dve vrste:– aritmetički– logički L

DA

NE

E1:E2< >

=

Simbol podalgoritma• Da označi više

algoritamskih korakapogodno grupisanih ucelinu koju nazivamopodalgoritam i koju nijepotrebno dalje razlagati udetalje.

• Motivacija:– ponavljajuće delove

grupisati u podalgoritam– dekompozicija problema na

manje

Sortiranje niza A porastućem redosledu

13/36

• Da označi višealgoritamskih korakapogodno grupisanih ucelinu koju nazivamopodalgoritam i koju nijepotrebno dalje razlagati udetalje.

• Motivacija:– ponavljajuće delove

grupisati u podalgoritam– dekompozicija problema na

manje

Sortiranje niza A porastućem redosledu

Podalgoritmi

POČETAK

ULAZN, A

KRAJ

IZLAZREZ

A = {ai}, i = 1, ..., NN - br. el. niza

SABIR(A, N, REZ)

POČETAK

POVRATAK

=SUMA <- SUMA + X(i)

I <- 1SUMA <- 0

I <- I + 1

I > M

DA

NE

SABIR(X, M, SUMA)X = {xi}, i = 1, ..., M

M - br. el.SUMA - suma niza

14/36

POČETAK

ULAZN, A

KRAJ

IZLAZREZ

A = {ai}, i = 1, ..., NN - br. el. niza

SABIR(A, N, REZ)

POČETAK

POVRATAK

=SUMA <- SUMA + X(i)

I <- 1SUMA <- 0

I <- I + 1

I > M

DA

NE

SABIR(X, M, SUMA)X = {xi}, i = 1, ..., M

M - br. el.SUMA - suma niza

Osnovne algoritamske strukture

• Linijska struktura• Struktura sa grananjem• Petlja• Struktura sa podalgoritmima

15/36

• Linijska struktura• Struktura sa grananjem• Petlja• Struktura sa podalgoritmima

Linijska struktura

• Postoji samo jednagrana izvršavanja.

• Svaki algoritamskikorak se izvršavasamo jednom.

POČETAK

ULAZA, B

SUMA <- A+BRAZ<- A - B

IZLAZA, B, SUMA, RAZ

KRAJ

16/36

• Postoji samo jednagrana izvršavanja.

• Svaki algoritamskikorak se izvršavasamo jednom.

POČETAK

ULAZA, B

SUMA <- A+BRAZ<- A - B

IZLAZA, B, SUMA, RAZ

KRAJ

Struktura sa grananjem

• Kada se u algoritmupojavi korakodlučivanja, odn.aritmetičkog ililogičkog testa.

POČETAK

ULAZA

KRAJ

A:0< >

=

ABS <- - (A) ABS <- 0 ABS <- A

IZLAZA, ABS

17/36

• Kada se u algoritmupojavi korakodlučivanja, odn.aritmetičkog ililogičkog testa.

POČETAK

ULAZA

KRAJ

A:0< >

=

ABS <- - (A) ABS <- 0 ABS <- A

IZLAZA, ABS

Petlja (ciklična struktura)

• Odlikuje se višestrukim izvršavanjemjednog ili više algoritamskih koraka.

18/36

Petlja (ciklična struktura)

• Suma niza:– Niz:

A = {a1, a2, a3, ..., aN}= {ai}, i = 1, ..., N

POČETAK

ULAZN, A

KRAJ

=SUMA <- SUMA + A(i)

I <- 1SUMA <- 0

I <- I + 1

IZLAZSUMA

I > N

DA

NE

A = {ai}, i = 1, ..., N

19/36

POČETAK

ULAZN, A

KRAJ

=SUMA <- SUMA + A(i)

I <- 1SUMA <- 0

I <- I + 1

IZLAZSUMA

I > N

DA

NE

A = {ai}, i = 1, ..., N

Struktura sa podalgoritmima

• Veza između algoritma i podalgoritma –lista ulazno-izlaznih parametara– stvarna lista parametara – parametri koji se

prosleđuju podalgoritmu iz glavnog algoritma– formalna lista parametara – lista parametara

pozvanog algoritma• Broj, redosled i vrsta parametara stvarne i

formalne liste mora da se poklapa.

20/36

• Veza između algoritma i podalgoritma –lista ulazno-izlaznih parametara– stvarna lista parametara – parametri koji se

prosleđuju podalgoritmu iz glavnog algoritma– formalna lista parametara – lista parametara

pozvanog algoritma• Broj, redosled i vrsta parametara stvarne i

formalne liste mora da se poklapa.

Struktura sa podalgoritmima

POČETAK

ULAZN, A

KRAJ

IZLAZREZ

A = {ai}, i = 1, ..., NN - br. el. niza

SABIR(A, N, REZ)

POČETAK

POVRATAK

=SUMA <- SUMA + X(i)

I <- 1SUMA <- 0

I <- I + 1

I > M

DA

NE

SABIR(X, M, SUMA)X = {xi}, i = 1, ..., M

M - br. el.SUMA - suma niza

21/36

POČETAK

ULAZN, A

KRAJ

IZLAZREZ

A = {ai}, i = 1, ..., NN - br. el. niza

SABIR(A, N, REZ)

POČETAK

POVRATAK

=SUMA <- SUMA + X(i)

I <- 1SUMA <- 0

I <- I + 1

I > M

DA

NE

SABIR(X, M, SUMA)X = {xi}, i = 1, ..., M

M - br. el.SUMA - suma niza

Struktura sa podalgoritmima

• Primer:

)!(!

!

ini

nn

i

n

i

n

i i

in

11

POČETAK

ULAZ N, I

FAKT(N, FN)

FAKT(I, FI)

22/36

• Primer:

n

i

n

i i

in

11

10

n

nn

1

FAKT(N-I, FNI)

KRAJ

IZLAZ REZ

REZ FN/(FI*FNI)

Struktura sa podalgoritmima

• Parametar N jeulazni

• Parametar F jeizlazni– u njemu je

sračunati faktorijel(faktorijel od N)

POČETAK

I 1F 1

F F * I

FAKT(N, F)F – Faktorijelod N

23/36

• Parametar N jeulazni

• Parametar F jeizlazni– u njemu je

sračunati faktorijel(faktorijel od N)

POVRATAK

F F * I

I I + 1

I <=NDA

NE

Struktura sa podalgoritmima

• Bolje rešenje:

)!(!

!

ini

nn

i

n

i

n

i i

in

11

POČETAK

ULAZ N, I

24/36

• Bolje rešenje:

n

i

n

i i

in

11

10

n

nn

1

BIN(N, I, REZ)

KRAJ

IZLAZ REZ

Struktura sa podalgoritmima

• Bolje rešenje:

)!(!

!

ini

nn

i

n

i

n

i i

in

11

POČETAK

K 0REZ 1

REZ (N-K)/(K+1)*REZ

BIN(N, I, REZ)REZ – Bin. koefod N nad I

25/36

• Bolje rešenje:

n

i

n

i i

in

11

10

n

nn

1

POVRATAK

REZ (N-K)/(K+1)*REZ

K K + 1

K <=IDA

NE

UML

• Objedinjeni jezik modeliranja (UNIFIEDMODELING LANGUAGE)

• Jezik za modeliranje koji je standardizovanod strane OMG (Object ManagementGroup), najšire korišćen u ObjektnoOrijentisanoj (OO) analizi i dizajnu

• Vizuelni jezik• UML daje standardizovanu notaciju i

semantiku za skup OO apstrakcija

26/36

• Objedinjeni jezik modeliranja (UNIFIEDMODELING LANGUAGE)

• Jezik za modeliranje koji je standardizovanod strane OMG (Object ManagementGroup), najšire korišćen u ObjektnoOrijentisanoj (OO) analizi i dizajnu

• Vizuelni jezik• UML daje standardizovanu notaciju i

semantiku za skup OO apstrakcija

Dijagrami• Slučajevi korišćenja (use-case diagram)• Statički

– dijagram klasa (class diagram)• Dinamički

– dijagram sekvenci (sequence diagram)– dijagram saradnje (collaboration diagram)– dijagram stanja (statechart diagram)– dijagram aktivnosti (activity diagram)

• Fizički– dijagram komponenti (component diagram)– dijagram razmeštaja (deployment diagram)

27/36

• Slučajevi korišćenja (use-case diagram)• Statički

– dijagram klasa (class diagram)• Dinamički

– dijagram sekvenci (sequence diagram)– dijagram saradnje (collaboration diagram)– dijagram stanja (statechart diagram)– dijagram aktivnosti (activity diagram)

• Fizički– dijagram komponenti (component diagram)– dijagram razmeštaja (deployment diagram)

Slučajevi korišćenja – primer

Radnik kod aplikanta : 4Obradjivač/ komisija : 9

Registacija spoljnjeg korisnika

Formiranje validne prijave kroz interakciju Aplikanta i Obrađivača

Podnošenje konačne prijave

28/36

Radnik kod aplikanta : 4Obradjivač/ komisija : 9

Registacija spoljnjeg korisnika

Formiranje validne prijave kroz interakciju Aplikanta i Obrađivača

Podnošenje konačne prijave

Dijagram klasa – primer

29/36

Dijagram sekvenci – primer

Dijagram saradnje - primer

Dijagram stanja – primer

32/36

Dijagram aktivnosti – primerRadnik kod aplikanta Obrađivač/ komisija

[Nije istekao]

[Istekao]

Provera da li je istekao zvanican rok za

preliminarnuobradupodataka

Npr. Receno je da 5(N) dana pre isteka

zvanicnog rokasekretarijat nece imati

vremena zapreliminarnu obradu i

nece se time baviti

[Da]

[Ne]

[Ne]

[Da]

<<decisionInput>>Da li je prikupljena

dokumentacijakompletna?

<<decisionInput>>Da li korisnik želi danastavi da sakupljadokumentaciju i da

konkurise?

Sakupljanje dokumentacije potrebne za konkurs

Proveravanje kompletnosti primljene dokumentacije

Sakupljena konkursna dokumentacija [inicijalno]

Dokumentacija kompletna

Obaveštavanje aplikanta

Obaveštavanje aplikanta o potrebnoj dodatnoj dokumentacij iNastavak sakupljanja dokumentacije

Sakupljanje dodatne dokumentacije

Sakupljena konkursna dokumentacija [dopunjeno]

Provera roka

Radnik kod aplikanta Obrađivač/ komisija

[Nije istekao]

[Istekao]

Provera da li je istekao zvanican rok za

preliminarnuobradupodataka

Npr. Receno je da 5(N) dana pre isteka

zvanicnog rokasekretarijat nece imati

vremena zapreliminarnu obradu i

nece se time baviti

[Da]

[Ne]

[Ne]

[Da]

<<decisionInput>>Da li je prikupljena

dokumentacijakompletna?

<<decisionInput>>Da li korisnik želi danastavi da sakupljadokumentaciju i da

konkurise?

Sakupljanje dokumentacije potrebne za konkurs

Proveravanje kompletnosti primljene dokumentacije

Sakupljena konkursna dokumentacija [inicijalno]

Dokumentacija kompletna

Obaveštavanje aplikanta

Obaveštavanje aplikanta o potrebnoj dodatnoj dokumentacij iNastavak sakupljanja dokumentacije

Sakupljanje dodatne dokumentacije

Sakupljena konkursna dokumentacija [dopunjeno]

Provera roka

Dijagram komponenti – primeră

Primarni

ă

agentski centar

ă

Agentsk i

ă

centar 1

ă

Agentski

ă

centar 2

ă

Agentski

ă

centar 3

ă

Agentski

ă

centar 4

ă

Agentski

ă

centar 5

ă

Agentski

ă

centar 6

ă

Primarni

ă

agentski centar

ă

Agentsk i

ă

centar 1

ă

Agentski

ă

centar 2

ă

Agentski

ă

centar 3

ă

Agentski

ă

centar 4

ă

Agentski

ă

centar 5

ă

Agentski

ă

centar 6

<<TCP/IP>>

Server baze:PowerPC

Dijagram razmeštaja – primer

<<TCP/IP>>

Atena:PENTIUM

Afrodita:PENTIUM

Programiranje• Implementacija algoritma na računaru• Program: niz naredbi (instrukcija) pisanih u

određenom programskom jeziku (izvornomjeziku) koji poseduje implicitan ili eksplicitanredosled izvršavanja na računaru.

• Nakon pisanja programa sledi:– testiranje i– otkrivanje grešaka (debagiranje – debugging):

• greška u lošoj definiciji problema• logičke greške u algoritmu• greške prilikom unosa programa.

36/36

• Implementacija algoritma na računaru• Program: niz naredbi (instrukcija) pisanih u

određenom programskom jeziku (izvornomjeziku) koji poseduje implicitan ili eksplicitanredosled izvršavanja na računaru.

• Nakon pisanja programa sledi:– testiranje i– otkrivanje grešaka (debagiranje – debugging):

• greška u lošoj definiciji problema• logičke greške u algoritmu• greške prilikom unosa programa.

Računarski praktikum

Masovna memorija

Masovna memorija

• Magnetni diskovi– hard disk,– flopi disk

• Optički uređaji– CD-ROM– CD-Recordable (CD-R)– CD-R/W– DVD

• Magnetna traka2/41

• Magnetni diskovi– hard disk,– flopi disk

• Optički uređaji– CD-ROM– CD-Recordable (CD-R)– CD-R/W– DVD

• Magnetna traka

Magnetni diskovi

• Podloga u obliku diska presvučena magnetnimmaterijalom

• Podloga– je ranije bila aluminijum– je sada od stakla

• uniformnija površina– povećana čitljivost podataka

• smanjen broj oštećenja površine– smanjen broj grešaka

• manja udaljenost glave od površine• čvršće?• veća otpornost na udarce

3/41

• Podloga u obliku diska presvučena magnetnimmaterijalom

• Podloga– je ranije bila aluminijum– je sada od stakla

• uniformnija površina– povećana čitljivost podataka

• smanjen broj oštećenja površine– smanjen broj grešaka

• manja udaljenost glave od površine• čvršće?• veća otpornost na udarce

Čitanje i pisanje po magnetnimdiskovima

• Čitanje i pisanje preko navoja žice zvanog glava• Za vreme čitanja i pisanja, glava je fiksirana, a ploča se rotira ispod nje• Čitanje (nekada)

– magnetno polje koje se pomera ispod glave izaziva indukciju struje navoju glave– isti navoj i za čitanje i za pisanje

• Čitanje (sada)– odvojene glave za čitanje i pisanje, jedna uz drugu– delimično oklopljni senzor koji menja otpornost u zavisnosti od magnetnog polja

(magnetoresistive sensor – MR sensor)• električna otpornost senzora zavisi od smera magnetnog polja• ovo omogućuje rad na većim frekvencijama

– veća gustina zapisa i brzina

• Pisanje– struja kroz navoj izaziva pojavu magnetnog polja– impulsi se šalju u navoj– magnetno polje izaziva namagnetisanje materijala ispod glave

• različit smer struje izaziva različit smer namagnetisanja 4/41

• Čitanje i pisanje preko navoja žice zvanog glava• Za vreme čitanja i pisanja, glava je fiksirana, a ploča se rotira ispod nje• Čitanje (nekada)

– magnetno polje koje se pomera ispod glave izaziva indukciju struje navoju glave– isti navoj i za čitanje i za pisanje

• Čitanje (sada)– odvojene glave za čitanje i pisanje, jedna uz drugu– delimično oklopljni senzor koji menja otpornost u zavisnosti od magnetnog polja

(magnetoresistive sensor – MR sensor)• električna otpornost senzora zavisi od smera magnetnog polja• ovo omogućuje rad na većim frekvencijama

– veća gustina zapisa i brzina

• Pisanje– struja kroz navoj izaziva pojavu magnetnog polja– impulsi se šalju u navoj– magnetno polje izaziva namagnetisanje materijala ispod glave

• različit smer struje izaziva različit smer namagnetisanja

Inductive Write MR Read

5/41

Organizacija podataka iformatiranje

• Disk se sastoji iz koncentričnih krugova ilistaza– postoji razmak između staza

• smanjenje razmaka povećava kapacitet

• Staze se dele na sektore– najmanji blok podataka je sektor

• Isti broj bitova po stazi (varijabilna gustinapakovanja)– konstantna ugaona brzina

6/41

• Disk se sastoji iz koncentričnih krugova ilistaza– postoji razmak između staza

• smanjenje razmaka povećava kapacitet

• Staze se dele na sektore– najmanji blok podataka je sektor

• Isti broj bitova po stazi (varijabilna gustinapakovanja)– konstantna ugaona brzina

Staze i sektori

7/41

Brzina obrtanja diska• Zbog konstantne ugaone brzine, bitovi bliže centru

putuju sporije od bitova na spoljnom delu diska• Postoji razlika u razmaku između bitova na različitim

stazama (da bi ukupan protok bio isti na svimstazama)

• Konstantna ugaona brzina (constant angular velocity- CAV):– sektori po stazama imaju oblik pite (pie shaped)– glava se pomera do zadate staze i čeka da sektor prođe

ispod– gubi se prostor na spoljnim stazama

• smanjena gustina podataka8/41

• Zbog konstantne ugaone brzine, bitovi bliže centruputuju sporije od bitova na spoljnom delu diska

• Postoji razlika u razmaku između bitova na različitimstazama (da bi ukupan protok bio isti na svimstazama)

• Konstantna ugaona brzina (constant angular velocity- CAV):– sektori po stazama imaju oblik pite (pie shaped)– glava se pomera do zadate staze i čeka da sektor prođe

ispod– gubi se prostor na spoljnim stazama

• smanjena gustina podataka

Raspored sektora

9/41

Pronalaženje sektora

• Glava mora da pronađe stazu i početaksektora

• Formatiranje diska– zapisivanje dodatne informacije koja nije

dostupna korisniku– označava staze i sektore

10/41

• Glava mora da pronađe stazu i početaksektora

• Formatiranje diska– zapisivanje dodatne informacije koja nije

dostupna korisniku– označava staze i sektore

Fizičke karakteristike magnetnihdiskova

1. Fiksna ili pomerajuća glava2. Promenljivi (removable) ili fiksni3. Jednostran ili dvostran (single/double

sided) medijum4. Jedna ili više ploča5. Mehanizam glave:

– kontaktni (floppy)– fiksan razmak– plutajući (leteći) – Winchester

11/41

1. Fiksna ili pomerajuća glava2. Promenljivi (removable) ili fiksni3. Jednostran ili dvostran (single/double

sided) medijum4. Jedna ili više ploča5. Mehanizam glave:

– kontaktni (floppy)– fiksan razmak– plutajući (leteći) – Winchester

1. Fiksna ili pomerajuća glava

• Fiksna glava– jedna glava po stazi– glava montirane na fiksnom postolju, svaka

iznad svoje staze• Pomerajuća glava

– jedna glava po strani– glava montirana na postolju koje se može

pomerati iznad staza

12/41

• Fiksna glava– jedna glava po stazi– glava montirane na fiksnom postolju, svaka

iznad svoje staze• Pomerajuća glava

– jedna glava po strani– glava montirana na postolju koje se može

pomerati iznad staza

2. Promenljivi ili fiksni diskovi

• Promenljivi (removable) disk– može da se ukloni iz uređaja i da se zameni

drugim diskom– “neograničen kapacitet”– jednostavan prenos podataka (frisby net)

• Fiksni disk– trajno montiran u uređaju

13/41

• Promenljivi (removable) disk– može da se ukloni iz uređaja i da se zameni

drugim diskom– “neograničen kapacitet”– jednostavan prenos podataka (frisby net)

• Fiksni disk– trajno montiran u uređaju

3. Jedna ili dve strane

• Magnetni sloj može biti na obe ili samo najednoj strani podloge

14/41

4. Jedna ili više ploča

• Više ploča:– jedna glava po strani– glave su poravnate i spojene na istu podlogu– staze istog prečnika formiraju cilindre

• Podaci su razmešteni po cilindru– cilindar je skup staza sa istim prečnikom– smanjuje pomeranje glave– povećava brzinu prenosa (transfer rate)

15/41

• Više ploča:– jedna glava po strani– glave su poravnate i spojene na istu podlogu– staze istog prečnika formiraju cilindre

• Podaci su razmešteni po cilindru– cilindar je skup staza sa istim prečnikom– smanjuje pomeranje glave– povećava brzinu prenosa (transfer rate)

Više ploča

16/41

Staze istog prečnika formiraju cilindar

17/41

5. Mehanizam glave

• Procep na glavi bi trebalo da je što manji– manji procep, veća gustina podataka– manji procep, manja razdaljina od glave do površine

• veća verovatnoća greške zbog nečistoća i nesavršenostipodloge

• Tri vrste mehanizma glave:– kontaktni (floppy)– fiksan razmak– plutajući (leteći) – Winchester

• moderni hard diskovi

18/41

• Procep na glavi bi trebalo da je što manji– manji procep, veća gustina podataka– manji procep, manja razdaljina od glave do površine

• veća verovatnoća greške zbog nečistoća i nesavršenostipodloge

• Tri vrste mehanizma glave:– kontaktni (floppy)– fiksan razmak– plutajući (leteći) – Winchester

• moderni hard diskovi

Floppy Disk

• 8”, 5.25”, 3.5”• Mali kapacitet

– do 1.44Mbyte (2.88M nikada nije zaživeo)• Sporo• Jevtino• Zastarelo!

19/41

• 8”, 5.25”, 3.5”• Mali kapacitet

– do 1.44Mbyte (2.88M nikada nije zaživeo)• Sporo• Jevtino• Zastarelo!

Winchester Hard Disk

• Razvijen u IBM-u, u Winchester (USA)• Hermetički zatvoren disk• Jedna ili više ploča• Lagane glave lebde na sloju vazduha koji

se pomera usled okretanja diska• Veoma mali razmak između glave i ploče

20/41

• Razvijen u IBM-u, u Winchester (USA)• Hermetički zatvoren disk• Jedna ili više ploča• Lagane glave lebde na sloju vazduha koji

se pomera usled okretanja diska• Veoma mali razmak između glave i ploče

Vreme za jednu operaciju

21/41

RAID

• Redundant Array of Independent Disks• Redundant Array of Inexpensive Disks• 6 nivoa u upotrebi• Skup fizičkih diskova koji se vide kao jedan od

strane operativnog sistema• Podaci su distribuirani po fizičkim diskovima• Podaci su izdeljeni na trake (strip)

– skup blokova ili staza• Moguća upotreba redundantnih podataka da bi

se podaci sačuvali u slučaju otkaza diska 22/41

• Redundant Array of Independent Disks• Redundant Array of Inexpensive Disks• 6 nivoa u upotrebi• Skup fizičkih diskova koji se vide kao jedan od

strane operativnog sistema• Podaci su distribuirani po fizičkim diskovima• Podaci su izdeljeni na trake (strip)

– skup blokova ili staza• Moguća upotreba redundantnih podataka da bi

se podaci sačuvali u slučaju otkaza diska

RAID 0• Nema redundantosti• Podaci su distribuirani po diskovima na

principu Round Robin• Povećana brzina

– uzastopni zahtevi verovatno neće završiti naistom disku

• velika verovatnoća da će podaci biti na višediskova

– umesto da se pomeri na sledeću traku u jednom disku,čita se sledeća traka drugog diska

23/41

• Nema redundantosti• Podaci su distribuirani po diskovima na

principu Round Robin• Povećana brzina

– uzastopni zahtevi verovatno neće završiti naistom disku

• velika verovatnoća da će podaci biti na višediskova

– umesto da se pomeri na sledeću traku u jednom disku,čita se sledeća traka drugog diska

Data Mapping For RAID 0

24/41

RAID 0

25/41

RAID 1

• Podaci duplirani (Mirrored Disks)• Podaci su rapodeljeni po diskovima• Dve kopije svake trake na odvojenim diskovima• Čita se sa bilo kog diska• Piše se po svim diskovima• Spasavanje podataka je jednostavno:

– zameni se neispravan disk i prekopiraju se podaci– nema gubitka vremena (podaci se uvek mogu pročitati

sa ispravnog diska)• Skupo

26/41

• Podaci duplirani (Mirrored Disks)• Podaci su rapodeljeni po diskovima• Dve kopije svake trake na odvojenim diskovima• Čita se sa bilo kog diska• Piše se po svim diskovima• Spasavanje podataka je jednostavno:

– zameni se neispravan disk i prekopiraju se podaci– nema gubitka vremena (podaci se uvek mogu pročitati

sa ispravnog diska)• Skupo

RAID 1

27/41

SSD• Solid State Disk• Memorijska integrisana kola umesto magnetnog medijuma• Realizovan električno izbrisivom memorijom (flash

memorija)– čuva sadržaj i posle nestanka napajanja

• Problem: ograničen broj upisa u memorijske ćelije– 10.000 ili 100.000 upisa

• Podaci se snimaju u stranice (4KB), organizovane ublokove (512KB)– najmanja količina podataka je jedna stranica– može se pisati u stranicu, samo ako je prethodno obrisana– brišu se čitavi blokovi, a ne stranice

• Solid State Disk• Memorijska integrisana kola umesto magnetnog medijuma• Realizovan električno izbrisivom memorijom (flash

memorija)– čuva sadržaj i posle nestanka napajanja

• Problem: ograničen broj upisa u memorijske ćelije– 10.000 ili 100.000 upisa

• Podaci se snimaju u stranice (4KB), organizovane ublokove (512KB)– najmanja količina podataka je jedna stranica– može se pisati u stranicu, samo ako je prethodno obrisana– brišu se čitavi blokovi, a ne stranice

28/41

Optički uređaji

• CD-ROM• CD-Recordable (CD-R)• CD-R/W• DVD

29/41

• CD-ROM• CD-Recordable (CD-R)• CD-R/W• DVD

Optički medijum CD-ROM

• Originalno zamišljen za audio zapise• 650MB ili 70 minuta muzike

– u međuvremenu se kao standard pojavio CDkapaciteta 700MB

• Polikarbonat presvučen refleksnom materijom,obično aluminijumom

• Podaci su smešteni kao rupe• Podaci se čitaju laserom• Konstantna gustina podataka

– konstantna linearna brzina (promenljiva ugaonabrzina) 30/41

• Originalno zamišljen za audio zapise• 650MB ili 70 minuta muzike

– u međuvremenu se kao standard pojavio CDkapaciteta 700MB

• Polikarbonat presvučen refleksnom materijom,obično aluminijumom

• Podaci su smešteni kao rupe• Podaci se čitaju laserom• Konstantna gustina podataka

– konstantna linearna brzina (promenljiva ugaonabrzina)

Način rada CD-a

31/41

CD-ROM Brzine

• Audio je jednobrzinski (150 KB/s)– Konstantna linearna brzina (Constant linier

velocity)– 1.2 m/s– spiralna staza dugačka 5.27km

• Ostale brzine se daju kao umnošciosnovne brzine– primer: 24x

• Navedena brzina je maksimalna brzinakoju uređaj može da postigne 32/41

• Audio je jednobrzinski (150 KB/s)– Konstantna linearna brzina (Constant linier

velocity)– 1.2 m/s– spiralna staza dugačka 5.27km

• Ostale brzine se daju kao umnošciosnovne brzine– primer: 24x

• Navedena brzina je maksimalna brzinakoju uređaj može da postigne

CD-ROM Format

33/41

• SYNC – identifikacija početka bloka• ID – zaglavlje sa pozicijom bloka i modom (0 – prazan

blok, 1 – podaci sa korekcijom greške, 2 – podaci bezkorekcije greške)

• Data – podaci• ECC – dodatni podaci za korekciju greške (u modu 1),

još podataka u modu 2 (do ukupno 2336 bajtova)

Random Access na CD-ROM-u

• Teško se postiže:– glava se pomeri na približnu poziciju– brzina se prilagodi zadatoj poziciji– pročita se adresa– podesi se na željenu lokaciju

34/41

• Teško se postiže:– glava se pomeri na približnu poziciju– brzina se prilagodi zadatoj poziciji– pročita se adresa– podesi se na željenu lokaciju

Dobre i loše osobine CD-ROM-a

• Dobre:– velik kapacitet– jednostavna tehnologija za masovnu

proizvodnju– promenljiv medijum (removable)– robusno

• Loše:– skupo za male serije– sporo– može samo da se čita (read only) 35/41

• Dobre:– velik kapacitet– jednostavna tehnologija za masovnu

proizvodnju– promenljiv medijum (removable)– robusno

• Loše:– skupo za male serije– sporo– može samo da se čita (read only)

Ostali optički medijumi• CD-Recordable (CD-R)

– WORM (Write Once Read Many)• fabrički se naprave "plikovi" jakim laserom• u uređaju se zapisivanje svodi na "pucanje plikova" slabim

laserom

– Kompatibilno sa CD-ROM tehnologijom• CD-RW

– Izbrisivi medijum• Promena faze (phase change)• materijal ima različitu refleksivnost u dva stanja• stanje se menja laserom• ograničen broj upisa laserom

– Kompatibilno sa CD-ROM tehnologijom 36/41

• CD-Recordable (CD-R)– WORM (Write Once Read Many)

• fabrički se naprave "plikovi" jakim laserom• u uređaju se zapisivanje svodi na "pucanje plikova" slabim

laserom

– Kompatibilno sa CD-ROM tehnologijom• CD-RW

– Izbrisivi medijum• Promena faze (phase change)• materijal ima različitu refleksivnost u dva stanja• stanje se menja laserom• ograničen broj upisa laserom

– Kompatibilno sa CD-ROM tehnologijom

DVD

• Digital Video Disk– zamena za VHS kasete– u početku samo za puštanje filmova– sada mogu i da se snimaju filmovi

• Digital Versatile Disk– zamena za CD-ROM/CD-R/CD-RW– ista tehnologija, samo u računaru, pa se zato

kloristi i ovo objašnjenje skraćenice– velik kapacitet

37/41

• Digital Video Disk– zamena za VHS kasete– u početku samo za puštanje filmova– sada mogu i da se snimaju filmovi

• Digital Versatile Disk– zamena za CD-ROM/CD-R/CD-RW– ista tehnologija, samo u računaru, pa se zato

kloristi i ovo objašnjenje skraćenice– velik kapacitet

DVD - tehnologija

• Višeslojni medijum (multi-layer)• Veoma velik kapacitet (4.7GB po sloju)

– maksimalan kapacitet oko 17GB (dva sloja, dvestrane)

• Ceo film može da stane na jednom disku– uz upotrebu MPEG kompresije

• Filmovi koriste regionalno kodiranje– pokušaj sprečavanja piraterije – uređaji reprodukuju samo one filmove koji imaji

korektan region– može da se "sredi" 38/41

• Višeslojni medijum (multi-layer)• Veoma velik kapacitet (4.7GB po sloju)

– maksimalan kapacitet oko 17GB (dva sloja, dvestrane)

• Ceo film može da stane na jednom disku– uz upotrebu MPEG kompresije

• Filmovi koriste regionalno kodiranje– pokušaj sprečavanja piraterije – uređaji reprodukuju samo one filmove koji imaji

korektan region– može da se "sredi"

Izmenjivi DVD

• Izmenjivi samo jednom:– DVD -R– DVD +R

• DVD-RW– izbrisivi DVD

• DVD – RAM– izbrisivi DVD– nema spiralnu stazu, već sektore i staze

poput hard diska

39/41

• Izmenjivi samo jednom:– DVD -R– DVD +R

• DVD-RW– izbrisivi DVD

• DVD – RAM– izbrisivi DVD– nema spiralnu stazu, već sektore i staze

poput hard diska

CD and DVD

40/41

Magnetna traka

• Serijski pristup podacima• Sporo• Veoma jevtino• Koristi se za arhiviranje (backup)

41/41

• Serijski pristup podacima• Sporo• Veoma jevtino• Koristi se za arhiviranje (backup)

Računarski praktikum

1. Prenos podataka i računarskemreže

2. Internet

1. Prenos podataka i računarske mreže• Vrste veza

– Point-to-point – direktna veza.– Deljene veze – više prijemnika i predajnika dele medijum za

prenos.

Prijemnik Medijum Predajnik

2/36

Prijemnik Medijum Predajnik

Prijemnik Prijemnik Predajnik Predajnik

Medijum

Medijum

• Medijum - fizička veza• žični• bežični

• Karakteristike medijuma• slabljenje• kašnjenje• šum

3/36

• Medijum - fizička veza• žični• bežični

• Karakteristike medijuma• slabljenje• kašnjenje• šum

Žični – Parice

• Koriste se za prenos signala u• LAN – Lokalnim računarskim mrežama

• Udaljenosti prijemnika i predajnika do 100m• Prenos podataka na brzinama 10, 100, 1000 Mbps

• Javnim telekomunikacionim mrežama• Udaljenost prijemnika i predajnika je < 10km

Medijum

4/36

Žični – Parice

• Koriste se za prenos signala u• LAN – Lokalnim računarskim mrežama

• Udaljenosti prijemnika i predajnika do 100m• Prenos podataka na brzinama 10, 100, 1000 Mbps

• Javnim telekomunikacionim mrežama• Udaljenost prijemnika i predajnika je < 10km

Žični – Koaksijalni kabel• Širok propusni opseg• Otporan na elektromagnetne smetnje

Medijum

5/36

Žični – Optički kablovi

Medijum

6/36

Bežične veze• Neusmerene

• radio i televizija• wireless mrežni uređaji (802.11g)

• Usmerene – point-to-point• relejne veze

Medijum

7/36

Bežične veze• Neusmerene

• radio i televizija• wireless mrežni uređaji (802.11g)

• Usmerene – point-to-point• relejne veze

Računarske mreže

• LAN – Local Area Network• Definicija: mreža za prenos podataka, optimizovana

za geografski mala područja, kao što su zgrada ilikampus.

• MAN – Metropolitan Area Network• Definicija: mreže koje spajaju geografski veća

područja se ponekad nazivaju.

8/36

• LAN – Local Area Network• Definicija: mreža za prenos podataka, optimizovana

za geografski mala područja, kao što su zgrada ilikampus.

• MAN – Metropolitan Area Network• Definicija: mreže koje spajaju geografski veća

područja se ponekad nazivaju.

Topologije: prsten

• Stanice su međusobno povezane direktnim (point-to-point) vezama.

• Podaci se prenose paketski; paketi putuju kroz prsten ujednom smeru.

• Stanica koja želi da pošalje paket ubacuje ga u prsten.• Ista stanica čeka da se paket vrati i izbacuje ga iz

cirkulacije.

9/36

• Stanice su međusobno povezane direktnim (point-to-point) vezama.

• Podaci se prenose paketski; paketi putuju kroz prsten ujednom smeru.

• Stanica koja želi da pošalje paket ubacuje ga u prsten.• Ista stanica čeka da se paket vrati i izbacuje ga iz

cirkulacije.

Topologije: magistrala• Sve stanice su priključene na zajednički prenosni

medijum.• Svaka stanica može da primi svaki poslati paket.• Zajednički problem: upravljanje pristupom medijumu.

10/36

Topologije: zvezda

• Stanice su direktnim vezama povezane sa centralnimčvorištem.

• Klasičan primer: digitalna telefonska centrala.• Mreža fizički izvedena u obliku zvezde može se logički

ponašati kao magistrala (ili prsten).

11/36

Realizacija Topologijeprstena:Token Ring

• Dok je mreža slobodna za slanje, po njoj cirkuliše naročitkratak paket (token) koji to signalizira stanicama.

• Stanica koja želi da pošalje paket mora da sačekaslobodan token, modifikuje ga u zauzeti i odmah izanjega šalje podatke.

• Prsten se oslobađa kad stanica:• završi sa slanjem paketa i• ponovo primi zauzeti token.

12/36

• Dok je mreža slobodna za slanje, po njoj cirkuliše naročitkratak paket (token) koji to signalizira stanicama.

• Stanica koja želi da pošalje paket mora da sačekaslobodan token, modifikuje ga u zauzeti i odmah izanjega šalje podatke.

• Prsten se oslobađa kad stanica:• završi sa slanjem paketa i• ponovo primi zauzeti token.

Realizacija topologije magistralei zvezde:Ethernet

• Sistem sa zajedničkim medijumom.• Fizička izvedba:

• 10BASE5• 10BASE2• 10BASE-T• 100BASE-T• IEEE 802.3z Gigabit Ethernet

13/36

• Sistem sa zajedničkim medijumom.• Fizička izvedba:

• 10BASE5• 10BASE2• 10BASE-T• 100BASE-T• IEEE 802.3z Gigabit Ethernet

Ethernet: koaksijalni kabel [1]

• 10BASE5 (debeli ethernet):• 10 Mbits/s• pojedinačni segment: 500m• ukupna dužina: 2.5km• 100 stanica

14/36

Ethernet: koaksijalni kabel [2]

• 10BASE2 (tanki ethernet):• 10 Mbits/s• pojedinačni segment: 185m• ukupna dužina: 1km• 30 stanica

15/36

Ethernet: parice [1]

• 10BASE-T (UTP):– 10 MBits/s– dužina segmenta između stanice i hub-a: 100m

(neoklopljene parice)• 100BASE-T

• 100 Mbit/s• IEEE 802.3z Gigabit Ethernet

• 1 Gbits/s• Fizički se izvodi kao zvezda, sa hub-ovima ili switch-

evima kao čvorištima; logički funkcioniše kao magistrala.• Razlika između switch-a i hub-a.

16/36

• 10BASE-T (UTP):– 10 MBits/s– dužina segmenta između stanice i hub-a: 100m

(neoklopljene parice)• 100BASE-T

• 100 Mbit/s• IEEE 802.3z Gigabit Ethernet

• 1 Gbits/s• Fizički se izvodi kao zvezda, sa hub-ovima ili switch-

evima kao čvorištima; logički funkcioniše kao magistrala.• Razlika između switch-a i hub-a.

Ethernet: parice [2]

17/36

1. Internet

Počeci Interneta

• 1957. god. Sovjetski savez lansira Sputnjik(prvi veštački satelit).

• 1958. god., kao odgovor na lansiranjeSputnjik-a, SAD osnivaju AdvancedResearch Projects Agency (ARPA).

• 1962. god., usvojena ideja da se počnesaradnja sa univerzitetima – osnovaARPANET-a (preteča Interneta).

istorija

19/36

• 1957. god. Sovjetski savez lansira Sputnjik(prvi veštački satelit).

• 1958. god., kao odgovor na lansiranjeSputnjik-a, SAD osnivaju AdvancedResearch Projects Agency (ARPA).

• 1962. god., usvojena ideja da se počnesaradnja sa univerzitetima – osnovaARPANET-a (preteča Interneta).

ARPANET

• 1969. god. mreža računara na ARPANET-u se sastoji od 4 računara:

•UCLA (University ofCalifornia LosAngeles)

•SRI (StanfordResearch Institute)

•UCSB (University ofCalifornia SantaBarbara)

•University of UtahSalt Lake City

istorija

20/36

•UCLA (University ofCalifornia LosAngeles)

•SRI (StanfordResearch Institute)

•UCSB (University ofCalifornia SantaBarbara)

•University of UtahSalt Lake City

ARPANET

• 1971. god. ARPANET proširen (15čvorova):

istorija

21/36

• 1971. god. ARPANET proširen (15čvorova):

ARPANET

• 1971. god. definisan email – Elektronskapošta.

• 1973. god.– definisan File Transfer – razmena datoteka,– prvi čvor u ARPANET-u izvan SAD –

University College of London (Engleska),– email čini 75% saobraćaja na ARPANET-u.

• 1975. god. definisane mailing liste –diskusione grupe.

istorija

22/36

• 1971. god. definisan email – Elektronskapošta.

• 1973. god.– definisan File Transfer – razmena datoteka,– prvi čvor u ARPANET-u izvan SAD –

University College of London (Engleska),– email čini 75% saobraćaja na ARPANET-u.

• 1975. god. definisane mailing liste –diskusione grupe.

ARPANET• 1979. god.

– dat predlog da se uvedu tekstualni znaci koji označavajuemocije – smajliji: :-) ;-) :-(

– kreiran BITNET, kao još jedna mreža računara• 1980. god. ARPANET u kompletnom zastoju zbog

virusa.• 1981. god. ukupan broj servera u mreži: 213.• kreiran CSNET, kao mreža institucija izvan

ARPANET-a.• 1982. god. osnovan Europe Unix Network – EUnet

– u početku spajao Holandiju, Dansku, Švedsku i VelikuBritaniju.

istorija

23/36

• 1979. god.– dat predlog da se uvedu tekstualni znaci koji označavaju

emocije – smajliji: :-) ;-) :-(– kreiran BITNET, kao još jedna mreža računara

• 1980. god. ARPANET u kompletnom zastoju zbogvirusa.

• 1981. god. ukupan broj servera u mreži: 213.• kreiran CSNET, kao mreža institucija izvan

ARPANET-a.• 1982. god. osnovan Europe Unix Network – EUnet

– u početku spajao Holandiju, Dansku, Švedsku i VelikuBritaniju.

ARPANET i druge mreže

• 1983. god.– ustanovljen Domain Name System – sistem

simboličkih adresa umesto numeričkih.– ukupan broj servera na mreži: 562.

• 1984. god.– iz CSNET-a kreiran NSFNET.– ukupan broj servera na mreži: 1024.

• 1985. god. ukupan broj servera na mreži:1.961.

istorija

24/36

• 1983. god.– ustanovljen Domain Name System – sistem

simboličkih adresa umesto numeričkih.– ukupan broj servera na mreži: 562.

• 1984. god.– iz CSNET-a kreiran NSFNET.– ukupan broj servera na mreži: 1024.

• 1985. god. ukupan broj servera na mreži:1.961.

Internet• 1986. god. kreiran IETF (Internet Engineering Task

Force) – telo za tehničku koordinaciju mreža.• 1989. god.

– broj servera na mreži prelazi 100.000.– objavljena priča o hakeru iz Nemačke koji je provaljivao u

vojne računare u SAD i prodavao informacije SovjetskomSavezu.

• 1990. god.– ARPANET prestaje da postoji.– osmišljen hipertekst sistem koji će postati osnova WWW

(World Wide Web).– prvi komercijalni provajder – World (world.std.com).– ukupan broj servera na mreži 313.000.

istorija

25/36

• 1986. god. kreiran IETF (Internet Engineering TaskForce) – telo za tehničku koordinaciju mreža.

• 1989. god.– broj servera na mreži prelazi 100.000.– objavljena priča o hakeru iz Nemačke koji je provaljivao u

vojne računare u SAD i prodavao informacije SovjetskomSavezu.

• 1990. god.– ARPANET prestaje da postoji.– osmišljen hipertekst sistem koji će postati osnova WWW

(World Wide Web).– prvi komercijalni provajder – World (world.std.com).– ukupan broj servera na mreži 313.000.

Internet

• 1991. god. startovan prvi WWW server(nxoc01.cern.ch – kasnije preimenovan uinfo.cern.ch).

• 1992. god.– broj servera na mreži prelazi 1.000.000,– pojavio se izraz “surfovati po mreži”.

• 1993. god.– Bela Kuća postavila svoju prezentaciju na internet:

www.whitehouse.gov– broj servera na mreži: 2,056,000.

istorija

26/36

• 1991. god. startovan prvi WWW server(nxoc01.cern.ch – kasnije preimenovan uinfo.cern.ch).

• 1992. god.– broj servera na mreži prelazi 1.000.000,– pojavio se izraz “surfovati po mreži”.

• 1993. god.– Bela Kuća postavila svoju prezentaciju na internet:

www.whitehouse.gov– broj servera na mreži: 2,056,000.

Internet• 1994. god.

– kupovina preko Interneta (naručivanje pice kod Pizza Hut),– broj servera: 3.864.000.

• 1995. god.– WWW postaje servis broj jedan na Internetu,– broj servera: 6.642.000.

• 1996. god.– pojavljuju se kompanije koje omogućavaju telefoniranje preko

Interneta,– provaljeni (uhakovani) sajtovi: US Dept of Justice, CIA, US Air

Force,– pretraživači interneta (Altavista, Yahoo, i dr.),– SR Jugoslavija dobila pristup na Internet (podignute sankcije).

istorija

27/36

• 1994. god.– kupovina preko Interneta (naručivanje pice kod Pizza Hut),– broj servera: 3.864.000.

• 1995. god.– WWW postaje servis broj jedan na Internetu,– broj servera: 6.642.000.

• 1996. god.– pojavljuju se kompanije koje omogućavaju telefoniranje preko

Interneta,– provaljeni (uhakovani) sajtovi: US Dept of Justice, CIA, US Air

Force,– pretraživači interneta (Altavista, Yahoo, i dr.),– SR Jugoslavija dobila pristup na Internet (podignute sankcije).

Internet

• 1997 – danas:– uvođenje e-commerce,– prvi veliki sajber-rat za vreme bombardovanja SRJ

(napadi hakera na NATO i ostale institucije),– panika zbog milenijumske greške (godina 2000.),– mobilni telefoni pristupaju Internetu (WAP, GPRS),– uvođenje Interneta v6 – više čvorova,– 2003. god. broj servera na Internetu: 171.000.000.

istorija

28/36

• 1997 – danas:– uvođenje e-commerce,– prvi veliki sajber-rat za vreme bombardovanja SRJ

(napadi hakera na NATO i ostale institucije),– panika zbog milenijumske greške (godina 2000.),– mobilni telefoni pristupaju Internetu (WAP, GPRS),– uvođenje Interneta v6 – više čvorova,– 2003. god. broj servera na Internetu: 171.000.000.

Adresiranje na Internetu• Aktuelna verzija Interneta je v4• Računari se identifikuju preko IP adrese:

a.b.c.da, b, c, d su brojevi u rasponu od 0 do 255

• Primer:147.91.173.1

• Podela IP adresa:– javne (jedinstvene na Internetu, vidljive sa svake adrese na

Internetu),– privatne (unutar privatnih mreža; primer: 192.168.0.1),– specijalne namene (broadcast).

• Internet verzija 6 (v6) omogućuje postojanje većeg brojaadresa– sve više računara podržava ovaj standard– Internet v4 uskoro ostaje bez javnih IP adresa

29/36

• Aktuelna verzija Interneta je v4• Računari se identifikuju preko IP adrese:

a.b.c.da, b, c, d su brojevi u rasponu od 0 do 255

• Primer:147.91.173.1

• Podela IP adresa:– javne (jedinstvene na Internetu, vidljive sa svake adrese na

Internetu),– privatne (unutar privatnih mreža; primer: 192.168.0.1),– specijalne namene (broadcast).

• Internet verzija 6 (v6) omogućuje postojanje većeg brojaadresa– sve više računara podržava ovaj standard– Internet v4 uskoro ostaje bez javnih IP adresa

Adresiranje na Internetu• Alternativan način identifikacije – simbolička

adresa:ime_računara.domendomen = institucija.tip_institucije.lokacija

• Primeri:www.uns.ac.rswww.ftn.uns.ac.rswww.whitehouse.gov

• Domeni:– nacionalni,– internacionalni/američki

30/36

• Alternativan način identifikacije – simboličkaadresa:ime_računara.domendomen = institucija.tip_institucije.lokacija

• Primeri:www.uns.ac.rswww.ftn.uns.ac.rswww.whitehouse.gov

• Domeni:– nacionalni,– internacionalni/američki

Nacionalni domen• Lokacija – dvoslovna skraćenica na kraju

adrese, prema ISO-3166 standardu (rs – Srbija, uk –Velika Britanija, itd.).

• Tip institucije:– ac (akademske ustanove),– co (komercijalne ustanove),– org (nekomercijalne organizacije),– itd.

• Primer nacionalnog domena iskorišćenog uinternacionalne svrhe:www.mtv.tv (tv je skraćenica za državu Tuvalu!)

31/36

• Lokacija – dvoslovna skraćenica na krajuadrese, prema ISO-3166 standardu (rs – Srbija, uk –Velika Britanija, itd.).

• Tip institucije:– ac (akademske ustanove),– co (komercijalne ustanove),– org (nekomercijalne organizacije),– itd.

• Primer nacionalnog domena iskorišćenog uinternacionalne svrhe:www.mtv.tv (tv je skraćenica za državu Tuvalu!)

Internacionalni/američki domen• Tip institucije:

– edu (akademske ustanove),– com (komercijalna ustanova),– org (nekomercijalne organizacije),– mil (vojne organizacije),– gov (vladine organizacije),– itd.

• Primer:www.ibm.comwww.revlon.comwww.sony.com

• SAD uglavnom koriste domene: edu, gov, mil(www.whitehouse.gov).

32/36

• Tip institucije:– edu (akademske ustanove),– com (komercijalna ustanova),– org (nekomercijalne organizacije),– mil (vojne organizacije),– gov (vladine organizacije),– itd.

• Primer:www.ibm.comwww.revlon.comwww.sony.com

• SAD uglavnom koriste domene: edu, gov, mil(www.whitehouse.gov).

Servisi na Internetu

• Servisi su usluge.• Vrste:

– WWW (World Wide Web) – multimedijalnidokumenti na Internetu,

– Chat, voice chat, video telefonija,– Elektronska pošta (email, e-mail, Email, ...),– Prenos datoteka (FTP – File Transfer,

Protocol),– Telnet – rad na udaljenom računaru.

33/36

• Servisi su usluge.• Vrste:

– WWW (World Wide Web) – multimedijalnidokumenti na Internetu,

– Chat, voice chat, video telefonija,– Elektronska pošta (email, e-mail, Email, ...),– Prenos datoteka (FTP – File Transfer,

Protocol),– Telnet – rad na udaljenom računaru.

WWW• Sistem se sastoji iz klijenata i servera.• Multimedijalni dokumenti se kreiraju upotrebom HTML

jezika (HyperText Markup Language).• WWW Klijenti:

– spajaju se na WWW servere i zahtevaju resurse (html datoteke,slike, muziku, itd.)

– trenutno aktuelni: Internet Explorer, Mozilla, Opera, itd.• WWW Serveri:

– čekaju klijente i opslužuju njihove zahteve– trenutno aktuelni: Apache, Internet Information Services (IIS), itd.

• Protokol za komunikaciju između klijenata i servera jeHTTP protokol (HyperText Transfer Protocol).

34/36

• Sistem se sastoji iz klijenata i servera.• Multimedijalni dokumenti se kreiraju upotrebom HTML

jezika (HyperText Markup Language).• WWW Klijenti:

– spajaju se na WWW servere i zahtevaju resurse (html datoteke,slike, muziku, itd.)

– trenutno aktuelni: Internet Explorer, Mozilla, Opera, itd.• WWW Serveri:

– čekaju klijente i opslužuju njihove zahteve– trenutno aktuelni: Apache, Internet Information Services (IIS), itd.

• Protokol za komunikaciju između klijenata i servera jeHTTP protokol (HyperText Transfer Protocol).

Chat, telefonija

• Chat – mogućnost komunikacije pisanimporukama u realnom vremenu

• Voice chat – razgovor preko interneta• Video telefonija – razgovor uz upotrebu

kamere preko interneta.• Programi:

– MIRC, Yahoo messanger, MS Messanger,Skype, ICQ, ...

35/36

• Chat – mogućnost komunikacije pisanimporukama u realnom vremenu

• Voice chat – razgovor preko interneta• Video telefonija – razgovor uz upotrebu

kamere preko interneta.• Programi:

– MIRC, Yahoo messanger, MS Messanger,Skype, ICQ, ...

email• Sistem se sastoji iz klijenata i servera.• Protokoli za komunikaciju između klijenata i servera:

SMTP (Simple Mail Transport Protocol), POP3 (PostOffice Protocol), IMAP (Internet Message AccessProtocol).

• Organizovano po principu postojeće pošte (elektronskosanduče prima poruke, klijenti preuzimaju poruke izsandučeta i prikazuju, postoji adresa primaoca, pošiljalacne mora da se identifikuje).

• Email adresa: username@adresa_računara• Primer: minja@uns.ac.rs• Trenutno aktuelni klijenti: Mozilla Thunderbird, Microsoft

Outlook, Microsoft Outlook Express, itd.

36/36

• Sistem se sastoji iz klijenata i servera.• Protokoli za komunikaciju između klijenata i servera:

SMTP (Simple Mail Transport Protocol), POP3 (PostOffice Protocol), IMAP (Internet Message AccessProtocol).

• Organizovano po principu postojeće pošte (elektronskosanduče prima poruke, klijenti preuzimaju poruke izsandučeta i prikazuju, postoji adresa primaoca, pošiljalacne mora da se identifikuje).

• Email adresa: username@adresa_računara• Primer: minja@uns.ac.rs• Trenutno aktuelni klijenti: Mozilla Thunderbird, Microsoft

Outlook, Microsoft Outlook Express, itd.

Programski jezik Java

Uvod

Uvod

• Dr Milan Vidaković• Preporučena literatura:Java i Internet programiranje,Branko Milosavljević, Milan Vidaković,FTN izdavaštvo, Novi Sad, 2007.ISBN 978-86-7892-047-9

2/47

• Dr Milan Vidaković• Preporučena literatura:Java i Internet programiranje,Branko Milosavljević, Milan Vidaković,FTN izdavaštvo, Novi Sad, 2007.ISBN 978-86-7892-047-9

Programski jezik Java1.1. JavaJava:: platforma za izvršavanje programaplatforma za izvršavanje programa

2.2. JavaJava:: programski jezikprogramski jezik

3/47

1.1. JavaJava:: platforma za izvršavanje programaplatforma za izvršavanje programa

2.2. JavaJava:: programski jezikprogramski jezik

Java kao platforma

• dizajniran da što manje zavisi odspecifičnih karakteristika konkretnogračunarskog sistema

• jednom napisan i preveden program seizvršava na bilo kojoj platformi kojapodržava Javu

4/47

• dizajniran da što manje zavisi odspecifičnih karakteristika konkretnogračunarskog sistema

• jednom napisan i preveden program seizvršava na bilo kojoj platformi kojapodržava Javu

Java kao platforma

• interpretirani jezik– just in time compiler

• bajt-kod– specifikacija je dostupna – više

implementacija kompajlera• Java virtuelna mašina (JVM)

– specifikacija je dostupna – višeimplementacija JVM

5/47

• interpretirani jezik– just in time compiler

• bajt-kod– specifikacija je dostupna – više

implementacija kompajlera• Java virtuelna mašina (JVM)

– specifikacija je dostupna – višeimplementacija JVM

Java kao programski jezik• jezik opšte namene• konkurentno, objektno-orijentisano

programiranje• literatura

– Referentna dokumentacija: JavaSoft homepagehttp://java.sun.com

– Preporučena knjiga:Milosavljević, Vidaković: Java i InternetprogramiranjeBruce Eckel: Thinking in Java,http://www.bruceeckel.com

6/47

• jezik opšte namene• konkurentno, objektno-orijentisano

programiranje• literatura

– Referentna dokumentacija: JavaSoft homepagehttp://java.sun.com

– Preporučena knjiga:Milosavljević, Vidaković: Java i InternetprogramiranjeBruce Eckel: Thinking in Java,http://www.bruceeckel.com

Izvršavanje programa

• metoda main()

Hello.javaclass Hello {public static void main(String args[]) {

System.out.println(“Hello world!”);}

}

7/47

• metoda main()

Hello.javaclass Hello {public static void main(String args[]) {

System.out.println(“Hello world!”);}

}

Prevođenje i pokretanje

• prevođenje:javac Hello.java

• pokretanje:java Hello

8/47

• prevođenje:javac Hello.java

• pokretanje:java Hello

[ ovo važi sa standardni razvojni paket JDK (Java Development Kit) ]

Osnovni koncepti• sintaksa: podseća na C++• programski blok je ograđen vitičastim zagradama:

{ ... }• tipovi podataka

– primitivni tipovi• kao lokalne promenljive i parametri metoda, čuvaju se na steku• kao parametri, uvek se prenose po vrednosti!

– objekti• čuvaju se na heap-u• postoje samo reference na objekte, nikada se ne može pristupiti

samom objektu• kao lokalne promenljive i parametri metoda, reference se čuvaju na

steku• metode: povratna_vrednost naziv(parametri) { }

9/47

• sintaksa: podseća na C++• programski blok je ograđen vitičastim zagradama:

{ ... }• tipovi podataka

– primitivni tipovi• kao lokalne promenljive i parametri metoda, čuvaju se na steku• kao parametri, uvek se prenose po vrednosti!

– objekti• čuvaju se na heap-u• postoje samo reference na objekte, nikada se ne može pristupiti

samom objektu• kao lokalne promenljive i parametri metoda, reference se čuvaju na

steku• metode: povratna_vrednost naziv(parametri) { }

Osnovni koncepti

• primitivni tipovi podataka

Primitivni tip Veličina Minimum Maksimumboolean 1-bit – –char 16-bit Unicode 0 Unicode 216- 1byte 8-bit -128 +127short 16-bit -215 +215 – 1int 32-bit -231 +231 – 1long 64-bit -263 +263 – 1float 32-bit IEEE754 IEEE754double 64-bit IEEE754 IEEE754void – – –

10/47

• primitivni tipovi podataka

Primitivni tip Veličina Minimum Maksimumboolean 1-bit – –char 16-bit Unicode 0 Unicode 216- 1byte 8-bit -128 +127short 16-bit -215 +215 – 1int 32-bit -231 +231 – 1long 64-bit -263 +263 – 1float 32-bit IEEE754 IEEE754double 64-bit IEEE754 IEEE754void – – –

Konstante• Celobrojne konstante:

– 2,– 2000000L

• Razlomljene konstante: 3.14• Heksadecimalne konstante: 0xF, 0xFF• Znakovne konstante:

– ‘a’– ‘\n’– ‘\xxx’, gde je xxx oktalni ASCII kod karaktera

• String konstante: “ovo je tekst”11/47

• Celobrojne konstante:– 2,– 2000000L

• Razlomljene konstante: 3.14• Heksadecimalne konstante: 0xF, 0xFF• Znakovne konstante:

– ‘a’– ‘\n’– ‘\xxx’, gde je xxx oktalni ASCII kod karaktera

• String konstante: “ovo je tekst”

Deklaracija promenljive primitivnogtipa

• Promenljiva se može deklarisati u bilo kom bloku– ne mora na početku metode.

• int a;

• int a = 0;

• int a, b;

• int a = 0, b = 3;

12/47

• Promenljiva se može deklarisati u bilo kom bloku– ne mora na početku metode.

• int a;

• int a = 0;

• int a, b;

• int a = 0, b = 3;

Implicitna konverzija tipova

• Sa “užeg” ili “manjeg” tipa na “širi” ili “veći”tip.

• Nema gubitka informacije jer “uži” tippodatka staje u “širi” tip podatka.

• Primer:long a;int i = 5;a = i;

13/47

• Sa “užeg” ili “manjeg” tipa na “širi” ili “veći”tip.

• Nema gubitka informacije jer “uži” tippodatka staje u “širi” tip podatka.

• Primer:long a;int i = 5;a = i;

Eksplicitna konverzija tipova

• Sa “šireg” na “uži” tip podatka – posledicaje gubljenje informacije.

• Primer:long a = 5L;int b = a;

Greška prikompajliranju!

14/47

• Sa “šireg” na “uži” tip podatka – posledicaje gubljenje informacije.

• Primer:long a = 5L;int b = a;

Greška prikompajliranju!

Eksplicitna konverzija tipova

• Pravilna eksplicitna konverzija – upotrebacast operatora:

• Primer:long a = 5L;int b = (int)a;

15/47

• Pravilna eksplicitna konverzija – upotrebacast operatora:

• Primer:long a = 5L;int b = (int)a;

Enumeracije

• Nabrojivi tipovi podataka (celobrojni)• Primer:enum Size {SMALL, MEDIUM, LARGE,

EXTRA_LARGE};Size s = Size.MEDIUM;enum Days {MON, TUE, WEN, THU, FRI,

SAT, SUN};Days d = Days.MON;

16/47

• Nabrojivi tipovi podataka (celobrojni)• Primer:enum Size {SMALL, MEDIUM, LARGE,

EXTRA_LARGE};Size s = Size.MEDIUM;enum Days {MON, TUE, WEN, THU, FRI,

SAT, SUN};Days d = Days.MON;

Operatori

aritmetički operatori relacioni i logički bit-operatori operator dodele

17/47

aritmetički operatori relacioni i logički bit-operatori operator dodele

Aritmetički operatori

• Osnovne operacije:+, -, *, /, %• Umesto x = x + 1x += 1

• Automatski inkrement: ++x odn. x++

18/47

• Osnovne operacije:+, -, *, /, %• Umesto x = x + 1x += 1

• Automatski inkrement: ++x odn. x++

Aritmetički operatori

y = 5;

Operator Rezultatx=y+2 X 7x=y+2 X 7x=y-2 X 3x=y%2 X 1x=++y X6, y6x=y++ X5, y6x=--y X4, y4

Aritmetički operatorix = 10;y = 5;

Operator Isto kao Rezultatx=y x 5

20/47

x=y x 5x+=y x=x+y x 15x-=y x=x-y x 5x*=y x=x*y x 50x/=y x=x/y x 2x%=y x=x%y x 0

Relacioni i logički operatori

• Relacioni: < > <= >= == !=• Logički: && (I), || (ILI), ! (NE)

21/47

• Relacioni: < > <= >= == !=• Logički: && (I), || (ILI), ! (NE)

Relacioni operatorix = 5;Operator Rezultat== x == 8 je netačno (false)!= x != 8 je tačno (true)

22/47

!= x != 8 je tačno (true)> x > 8 je netačno (false)< x < 8 je tačno (true)>= x >= 8 je netačno (false)<= x <= 8 je tačno (true)

Logički operatori• Logički: && || !• Rezultat logičkih operatora je tačno (true) ili

netačno (false)• Operandi logičkih operatora su logički izrazi

• Logički: && || !• Rezultat logičkih operatora je tačno (true) ili

netačno (false)• Operandi logičkih operatora su logički izrazi

!

false true

true false

&& false true

false false false

true false true

|| false true

false false true

true true true

Logički operatorix = 6;y = 3;

Operator Objašnjenje Primer&& konjukcija (and, i) (x < 10 && y > 1)

tačno (true)

24/47

&& konjukcija (and, i) (x < 10 && y > 1)tačno (true)

|| disjunkcija (or, ili) (x==5 || y==5)netačno (false)

! negacija (not, ne) !(x==y)tačno (true)

Bit operatori

• Logičko I nad bitovima: &• Logičko ILI nad bitovima: |• Ekskluzivno ILI (XOR) nad bitovima: ^• Logička negacija nad bitovima -unarni

operator: ~• Kombinacija sa =:&= |= ^=

25/47

• Logičko I nad bitovima: &• Logičko ILI nad bitovima: |• Ekskluzivno ILI (XOR) nad bitovima: ^• Logička negacija nad bitovima -unarni

operator: ~• Kombinacija sa =:&= |= ^=

Bit operatori• a = 3; // a=011 binarno• b = 6; // b=110 binarno• c = a & b;

011& 110--------

010• c 2;

26/47

• a = 3; // a=011 binarno• b = 6; // b=110 binarno• c = a & b;

011& 110--------

010• c 2;

Bit operatori• Shift-ovanje (pomeranje):a>>b – pomera bitove u a za b mesta- ako je a pozitivan, ubacuje 0- ako je a negativan, ubacuje 1a<<b – pomera bitove u levo i ubacuje 0a>>>b – pomera bitove u a u desno za b mesta i

ubacuje 0 bez obzira na znak a.• Rezultat pomeranja je 32-bitan, osim ako

promenljiva koja prihvata rezultat nije long (tadaje 64-bitan)!

27/47

• Shift-ovanje (pomeranje):a>>b – pomera bitove u a za b mesta- ako je a pozitivan, ubacuje 0- ako je a negativan, ubacuje 1a<<b – pomera bitove u levo i ubacuje 0a>>>b – pomera bitove u a u desno za b mesta i

ubacuje 0 bez obzira na znak a.• Rezultat pomeranja je 32-bitan, osim ako

promenljiva koja prihvata rezultat nije long (tadaje 64-bitan)!

Pomeranje

• a = 3; // a = 011 binarno• b = a<<2; // b = 01100 binarno

• a = 7; // a = 111 binarno• b = a>>2; // b = 001 binarno

28/47

• a = 3; // a = 011 binarno• b = a<<2; // b = 01100 binarno

• a = 7; // a = 111 binarno• b = a>>2; // b = 001 binarno

Operator dodele

• Ako su operandi primitivni tipovi, kopira sesadržaj:

int i = 3, j = 6;i = j; // u i ubačeno 6• Ako su operandi reference, kopira se

sadržaj reference, a ne kompletni objektina koje ukazuju!

21.10

29/47

• Ako su operandi primitivni tipovi, kopira sesadržaj:

int i = 3, j = 6;i = j; // u i ubačeno 6• Ako su operandi reference, kopira se

sadržaj reference, a ne kompletni objektina koje ukazuju!

Kontrola toka

• if else• switch• for• while• do while• break• continue

30/47

• if else• switch• for• while• do while• break• continue

if

if (uslov)akcija

if (uslov)akcija

elsedruga_akcija

31/47

if (uslov)akcija

if (uslov)akcija

elsedruga_akcija

if else

int result = 0;if(testval > target)result = -1;

else if(testval < target)result = +1;

elseresult = 0; // match

32/47

int result = 0;if(testval > target)result = -1;

else if(testval < target)result = +1;

elseresult = 0; // match

if (bodovi >= 95)ocena = 10;

else if (bodovi >= 85)ocena = 9;

else if (bodovi >= 75)ocena = 8;

else if (bodovi >= 65)ocena = 7;

else if (bodovi >= 55)ocena = 6;

elseocena = 5;

33/47

if (bodovi >= 95)ocena = 10;

else if (bodovi >= 85)ocena = 9;

else if (bodovi >= 75)ocena = 8;

else if (bodovi >= 65)ocena = 7;

else if (bodovi >= 55)ocena = 6;

elseocena = 5;

Uslovni operatora = i < 10 ? i * 100 : i * 10;

• isto kao:if (i < 10)

a = i * 100;else

a = i * 10;

34/47

a = i < 10 ? i * 100 : i * 10;

• isto kao:if (i < 10)

a = i * 100;else

a = i * 10;

switch

• Izraz u switch() izrazu mora da proizvedecelobrojnu vrednost.

• Ako ne proizvodi celobrojnu vrednost, nemože da se koristi switch,() već if()!

• Ako se izostavi break; propašće u sledećicase:

• Kod default: izraza ne mora break; - to sepodrazumeva.

35/47

• Izraz u switch() izrazu mora da proizvedecelobrojnu vrednost.

• Ako ne proizvodi celobrojnu vrednost, nemože da se koristi switch,() već if()!

• Ako se izostavi break; propašće u sledećicase:

• Kod default: izraza ne mora break; - to sepodrazumeva.

switch

switch(c) {case 'a':case 'e':case 'i':case 'o':case 'u':

System.out.println("samoglasnik");break;

default:System.out.println("suglasnik");

}36/47

switch(c) {case 'a':case 'e':case 'i':case 'o':case 'u':

System.out.println("samoglasnik");break;

default:System.out.println("suglasnik");

}

varijanta 1, bez switchif (ocena == 5)

System.out.println(“odlican”);else if (ocena == 4)

System.out.println(“vrlo dobar”);else if (ocena == 3)

System.out.println(“dobar”);else if (ocena == 2)

System.out.println(“dovoljan”);else if (ocena == 1)

System.out.println(“nedovoljan”);else

System.out.println(“nepostojeca ocena”);37/47

if (ocena == 5)System.out.println(“odlican”);

else if (ocena == 4)System.out.println(“vrlo dobar”);

else if (ocena == 3)System.out.println(“dobar”);

else if (ocena == 2)System.out.println(“dovoljan”);

else if (ocena == 1)System.out.println(“nedovoljan”);

elseSystem.out.println(“nepostojeca ocena”);

varijanta 2switch (ocena) {

case 5: System.out.println(“odlican”);break;

case 4: System.out.println(“vrlo dobar”);break;

case 3: System.out.println(“dobar”);break;

case 2: System.out.println(“dovoljan”);break;

case 1: System.out.println(“nedovoljan”);break;

default: System.out.println(“nepostojeca ocena”);} 38/47

switch (ocena) {case 5: System.out.println(“odlican”);

break;case 4: System.out.println(“vrlo dobar”);

break;case 3: System.out.println(“dobar”);

break;case 2: System.out.println(“dovoljan”);

break;case 1: System.out.println(“nedovoljan”);

break;default: System.out.println(“nepostojeca ocena”);

}

for

• Za organizaciju petlji kod kojih se unapredzna koliko puta će se izvršiti telo ciklusa.

• Petlja sa početnom vrednošću, uslovom zakraj i blokom za korekciju.

• Opšta sintaksa:for (inicijalizacija; uslov; korekcija)

telo

39/47

• Za organizaciju petlji kod kojih se unapredzna koliko puta će se izvršiti telo ciklusa.

• Petlja sa početnom vrednošću, uslovom zakraj i blokom za korekciju.

• Opšta sintaksa:for (inicijalizacija; uslov; korekcija)

telo

forfor (int i = 0; i < 10; i++)

System.out.println(i);• može i višestruka inicijalizacija i step-statement:for(int i = 0, j = 1;i < 10 && j != 11;i++, j++)• oprez (može da se ne završi):

for (double x = 0; x != 10; x+=0.1) ...

40/47

for (int i = 0; i < 10; i++)System.out.println(i);

• može i višestruka inicijalizacija i step-statement:for(int i = 0, j = 1;i < 10 && j != 11;i++, j++)• oprez (može da se ne završi):

for (double x = 0; x != 10; x+=0.1) ...

while

• Za cikličnu strukturu kod koje se samo znauslov za prekid.

• Telo ciklusa ne mora ni jednom da seizvrši

• Opšta sintaksa:while (uslov)

telo• Važno: izlaz iz petlje na false!

41/47

• Za cikličnu strukturu kod koje se samo znauslov za prekid.

• Telo ciklusa ne mora ni jednom da seizvrši

• Opšta sintaksa:while (uslov)

telo• Važno: izlaz iz petlje na false!

whileint i = 0;while (i <= 10){System.out.println("Trenutnoje " + i);i=i+1;

}• Važno: izlaz iz petlje na false!

42/47

int i = 0;while (i <= 10){System.out.println("Trenutnoje " + i);i=i+1;

}• Važno: izlaz iz petlje na false!

do while

• Za cikličnu strukturu kod koje se samo znauslov za prekid

• Razlika u odnosu na while petlju je u tomešto se telo ciklusa izvršava makar jednom.

• Opšta sintaksa:dotelo

while (uslov);• Važno: izlaz iz petlje na false!

43/47

• Za cikličnu strukturu kod koje se samo znauslov za prekid

• Razlika u odnosu na while petlju je u tomešto se telo ciklusa izvršava makar jednom.

• Opšta sintaksa:dotelo

while (uslov);• Važno: izlaz iz petlje na false!

do while

int i = 0;do {System.out.println(i++);

} while (i < 10);• Važno: izlaz iz petlje na false!

44/47

int i = 0;do {System.out.println(i++);

} while (i < 10);• Važno: izlaz iz petlje na false!

break i continue

• break – prekida telo tekuće cikličnestrukture (ili case: dela) i izlazi iz nje.

• continue – prekida telo tekuce cikličnestrukture i otpočinje sledeću iteracijupetlje.

45/47

• break – prekida telo tekuće cikličnestrukture (ili case: dela) i izlazi iz nje.

• continue – prekida telo tekuce cikličnestrukture i otpočinje sledeću iteracijupetlje.

break i continuefor(int i = 0; i < 10; i++) {

if (i==7) {break;}if (i == 2)continue;

System.out.println("Broj je:" + i);}

46/47

for(int i = 0; i < 10; i++) {if (i==7) {break;}if (i == 2)continue;

System.out.println("Broj je:" + i);}

Izlaz iz ugnježdene petljefor (...){

for (...){...if (uslov)break;

}}

47/47

for (...){

for (...){...if (uslov)break;

}}

Računarski pratikum

Nizovi, kolekcije i asocijativne mape

Stringovi

Nizoviint a[]; // još uvek nije napravljen niz!a = new int[5]; // niz od 5 nulailiint a[] = new int[5]; // niz od 5 nulailiint a[] = { 1, 2, 3, 4, 5 };

2/26

int a[]; // još uvek nije napravljen niz!a = new int[5]; // niz od 5 nulailiint a[] = new int[5]; // niz od 5 nulailiint a[] = { 1, 2, 3, 4, 5 };

Nizovi primitivnih tipova 1/3

3/26

heapstek

a

int a[];

Nizovi primitivnih tipova 2/3

4/26

heapstek

a

0 0 0 0 0

a = new int[5];

Nizovi primitivnih tipova 3/3

5/26

heapstek

a

1 2 3 4 5

a[0]=1; a[1]=2; a[2]=3; a[3]=4; a[4]=5;

Nizovi primitivnih tipovajednim potezom

6/26

heapstek

a

1 2 3 4 5

int a[] = { 1, 2, 3, 4, 5 };

Višedimenzionalni nizovi

int a[][] = { {1, 2, 3 }, {4, 5,6 } };

int a[][] = new int[2][3];

int a[][] = new int[2][];for(int i = 0; i < a.length; i++){

a[i] = new int[3];}

7/26

int a[][] = { {1, 2, 3 }, {4, 5,6 } };

int a[][] = new int[2][3];

int a[][] = new int[2][];for(int i = 0; i < a.length; i++){

a[i] = new int[3];}

Klasa String• Niz karaktera je podržan klasom String. String nije samo

niz karaktera – on je klasa!• Objekti klase String se ne mogu menjati (immutable)!• Reprezentativne metode:

– str.length()– str.charAt(i)– str.indexOf(s)– str.substring(a,b), str.substring(a)– str.equals(s), str. equalsIgnoreCase(s) – ne koristiti ==– str.startsWith(s)

8/26

• Niz karaktera je podržan klasom String. String nije samoniz karaktera – on je klasa!

• Objekti klase String se ne mogu menjati (immutable)!• Reprezentativne metode:

– str.length()– str.charAt(i)– str.indexOf(s)– str.substring(a,b), str.substring(a)– str.equals(s), str. equalsIgnoreCase(s) – ne koristiti ==– str.startsWith(s)

Klasa Stringclass StringTest {public static void main(String args[]) {String s1 = "Ovo je";String s2 = "je string";System.out.println(s1.substring(2));

// karakter na zadatoj pozicijiSystem.out.println(s2.charAt(3));

// poređenje po jednakostiSystem.out.println(s1.equals(s2));

// pozicija zadatog podstringaSystem.out.println(s1.indexOf("je"));

// dužina stringaSystem.out.println(s2.length());

// skidanje whitespace-ova sa poč. i krajaSystem.out.println(s1.trim());

// provera da li string počinje podstringomSystem.out.println(s2.startsWith("je"));

}}

Ispis na konzoli:

o je

s

false

4

9

Ovo je

true

9/26

class StringTest {public static void main(String args[]) {String s1 = "Ovo je";String s2 = "je string";System.out.println(s1.substring(2));

// karakter na zadatoj pozicijiSystem.out.println(s2.charAt(3));

// poređenje po jednakostiSystem.out.println(s1.equals(s2));

// pozicija zadatog podstringaSystem.out.println(s1.indexOf("je"));

// dužina stringaSystem.out.println(s2.length());

// skidanje whitespace-ova sa poč. i krajaSystem.out.println(s1.trim());

// provera da li string počinje podstringomSystem.out.println(s2.startsWith("je"));

}}

Ispis na konzoli:

o je

s

false

4

9

Ovo je

true

Redefinisan + operator sastringovima

• Ako je jedan od operanada klase String, ceoizraz je string!

String a = “Vrednost i je: “ + i;• metoda toString()

10/26

• Ako je jedan od operanada klase String, ceoizraz je string!

String a = “Vrednost i je: “ + i;• metoda toString()

Metoda split() klase String• "cepa" osnovni string na niz stringova po

zadatom šablonu– originalni string se ne menja– parametar je regularni izraz

• Poziv: String[] rez = s.split(“regex”);• Primer:String s = "ja sam svetski mega car";String[] rez = s.split(" ");

11/26

• "cepa" osnovni string na niz stringova pozadatom šablonu– originalni string se ne menja– parametar je regularni izraz

• Poziv: String[] rez = s.split(“regex”);• Primer:String s = "ja sam svetski mega car";String[] rez = s.split(" ");

Metoda split() klase Stringclass SplitTest {

public static void main(String args[]) {String text = "Ovo je probni tekst";String[] tokens = text.split(" ");for (int i = 0; i < tokens.length; i++)System.out.println(tokens[i]);

}}

}

12/26

class SplitTest {public static void main(String args[]) {String text = "Ovo je probni tekst";String[] tokens = text.split(" ");for (int i = 0; i < tokens.length; i++)System.out.println(tokens[i]);

}}

}

Kolekcije

• Nizovi imaju jednu manu – kada sejednom naprave nije moguće promenitiveličinu.

• Kolekcije rešavaju taj problem.• Zajedničke metode:

– dodavanje elemenata,– uklanjanje elemenata,– iteriranje kroz kolekciju elemenata

13/26

• Nizovi imaju jednu manu – kada sejednom naprave nije moguće promenitiveličinu.

• Kolekcije rešavaju taj problem.• Zajedničke metode:

– dodavanje elemenata,– uklanjanje elemenata,– iteriranje kroz kolekciju elemenata

Kolekcije

Implementacija

Koncept

Hashtable

ResizableArray

BalancedTree

LinkedList

Hash table +Linked list

Set HashSet TreeSet LinkedHashSet

List ArrayList LinkedList

Map HashMap TreeMap LinkedHashMap

Tipizirane kolekcije - Generics

• U dosadašnjim kolekcijama mogli su da se smeste bilo koji objekti.• Mana: prilikom pristupa elementu iz kolekcije, obavezno se kastuje

u konkretan tip:

ArrayList kolekcija = new ArrayList();kolekcija.add("tekst");String s = (String)kolekcija.get(0);• Tipizirane kolekcije omogućavaju smeštaj samo jednog tipa podatka

u kolekciju.• Primer:ArrayList<String> kolekcija = new ArrayList<String>();kolekcija.add("tekst");String s = kolekcija.get(0);

Potencijalan problemprilikom pogrešnog

kastovanja

15/26

• U dosadašnjim kolekcijama mogli su da se smeste bilo koji objekti.• Mana: prilikom pristupa elementu iz kolekcije, obavezno se kastuje

u konkretan tip:

ArrayList kolekcija = new ArrayList();kolekcija.add("tekst");String s = (String)kolekcija.get(0);• Tipizirane kolekcije omogućavaju smeštaj samo jednog tipa podatka

u kolekciju.• Primer:ArrayList<String> kolekcija = new ArrayList<String>();kolekcija.add("tekst");String s = kolekcija.get(0);

Potencijalan problemprilikom pogrešnog

kastovanja

for bez indeksiranja(poznat i kao foreach)

• Omogućuje prolazak kroz niz ili kolekciju.• Opšta sintaksa:for (varijabla : niz) {

... // telo}• Primer:for (int i : niz) {System.out.println(i);

}for (Auto a : kolekcija) {System.out.println(a.radi);

}

16/26

• Omogućuje prolazak kroz niz ili kolekciju.• Opšta sintaksa:for (varijabla : niz) {

... // telo}• Primer:for (int i : niz) {System.out.println(i);

}for (Auto a : kolekcija) {System.out.println(a.radi);

}

Klasa ArrayList• Predstavlja kolekciju, odn. dinamički niz• Elementi se u ArrayList dodaju metodom

add()• Elementi se iz ArrayList uklanjaju

metodom remove()• Elementi se iz ArrayList dobijaju (ne

uklanjaju se, već se samo čitaju) metodomget()

17/26

• Predstavlja kolekciju, odn. dinamički niz• Elementi se u ArrayList dodaju metodom

add()• Elementi se iz ArrayList uklanjaju

metodom remove()• Elementi se iz ArrayList dobijaju (ne

uklanjaju se, već se samo čitaju) metodomget()

Klasa ArrayListArrayList<Integer> lista = newArrayList<Integer>();lista.add(5);lista.add(10);lista.add(1, 15);System.out.println("Velicina je: " +lista.size());lista.remove(0);int broj = lista.get(0);System.out.println(broj);System.out.println("Velicina je: " +lista.size());

ArrayList<Integer> lista = newArrayList<Integer>();lista.add(5);lista.add(10);lista.add(1, 15);System.out.println("Velicina je: " +lista.size());lista.remove(0);int broj = lista.get(0);System.out.println(broj);System.out.println("Velicina je: " +lista.size());

Klasa ArrayListimport java.util.ArrayList;class ArrayListTest {public static void main(String args[]) {ArrayList v = new ArrayList();v.add("Ovo");v.add("je");v.add("probni");v.add("tekst");for (int i = 0; i < v.size(); i++)System.out.println(v.get(i));

}}

19/26

import java.util.ArrayList;class ArrayListTest {public static void main(String args[]) {ArrayList v = new ArrayList();v.add("Ovo");v.add("je");v.add("probni");v.add("tekst");for (int i = 0; i < v.size(); i++)System.out.println(v.get(i));

}}

Tipizirana klasa ArrayListimport java.util.ArrayList;class ArrayListTest {public static void main(String args[]) {ArrayList<String> v = new ArrayList<String>();v.add("Ovo");v.add("je");v.add("probni");v.add("tekst");for (int i = 0; i < v.size(); i++)System.out.print((String)v.get(i) + " ");

}}

20/26

import java.util.ArrayList;class ArrayListTest {public static void main(String args[]) {ArrayList<String> v = new ArrayList<String>();v.add("Ovo");v.add("je");v.add("probni");v.add("tekst");for (int i = 0; i < v.size(); i++)System.out.print((String)v.get(i) + " ");

}}

Asocijativne mape

• Memorijske strukture koje omogućuju brzupretragu sadržaja po ključu

21/26

• Memorijske strukture koje omogućuju brzupretragu sadržaja po ključu

Klasa HashMap• Predstavlja asocijativnu mapu• U HashMap se stavljaju dva podatka:

– ključ po kojem će se pretraživati– vrednost koja se skladišti u HashMap i koja se

pretražuje po ključu• Metodom put() se ključ i vrednost

smeštaju u HashMap• Metodom get() se na osnovu ključa

dobavlja (samo čita) vrednost iz HashMap

22/26

• Predstavlja asocijativnu mapu• U HashMap se stavljaju dva podatka:

– ključ po kojem će se pretraživati– vrednost koja se skladišti u HashMap i koja se

pretražuje po ključu• Metodom put() se ključ i vrednost

smeštaju u HashMap• Metodom get() se na osnovu ključa

dobavlja (samo čita) vrednost iz HashMap

Klasa HashMapimport java.util.HashMap;public class HashMapTest {public static void main(String args[]) {HashMap ht = new HashMap();ht.put("E10020", "Marko Markovic");ht.put("E10045", "Petar Petrovic");ht.put("E10093", "Jovan Jovanovic");String indeks = "E10045";System.out.println("Student sa brojem indeksa " +

indeks + " je " + ht.get(indeks));indeks = "E10093";System.out.println("Student sa brojem indeksa " +

indeks + " je " + ht.get(indeks));}

23/26

import java.util.HashMap;public class HashMapTest {public static void main(String args[]) {HashMap ht = new HashMap();ht.put("E10020", "Marko Markovic");ht.put("E10045", "Petar Petrovic");ht.put("E10093", "Jovan Jovanovic");String indeks = "E10045";System.out.println("Student sa brojem indeksa " +

indeks + " je " + ht.get(indeks));indeks = "E10093";System.out.println("Student sa brojem indeksa " +

indeks + " je " + ht.get(indeks));}

Tipizirana klasa HashMapimport java.util.HashMap;public class HashMapTest {public static void main(String args[]) {HashMap<String, String> ht =new HashMap<String, String>();

ht.put("E10020", "Marko Markovic");ht.put("E10045", "Petar Petrovic");ht.put("E10093", "Jovan Jovanovic");String indeks = "E10045";System.out.println("Student sa brojem indeksa " +

indeks + " je " + ht.get(indeks));indeks = "E10093";System.out.println("Student sa brojem indeksa " +

indeks + " je " + ht.get(indeks));}

24/26

import java.util.HashMap;public class HashMapTest {public static void main(String args[]) {HashMap<String, String> ht =new HashMap<String, String>();

ht.put("E10020", "Marko Markovic");ht.put("E10045", "Petar Petrovic");ht.put("E10093", "Jovan Jovanovic");String indeks = "E10045";System.out.println("Student sa brojem indeksa " +

indeks + " je " + ht.get(indeks));indeks = "E10093";System.out.println("Student sa brojem indeksa " +

indeks + " je " + ht.get(indeks));}

Klasa StringTokenizer• Radi sličan posao kao i metoda split()

klase String – "cepa" zadati string podelimiteru (ili delimiterima)

• Ne radi sa regularnim izrazima• Reziltat cepanja je kolekcija stringovva

kroz koju se iterira metodamahasMoreTokens() i nextToken()

25/26

• Radi sličan posao kao i metoda split()klase String – "cepa" zadati string podelimiteru (ili delimiterima)

• Ne radi sa regularnim izrazima• Reziltat cepanja je kolekcija stringovva

kroz koju se iterira metodamahasMoreTokens() i nextToken()

Klasa StringTokenizerimport java.util.*;class TokenizerTest {public static void main(String args[]) {String text = "Ovo je probni tekst";StringTokenizer st = new StringTokenizer(text, " ");while (st.hasMoreTokens()) {System.out.println(st.nextToken());

}}

}

26/26

import java.util.*;class TokenizerTest {public static void main(String args[]) {String text = "Ovo je probni tekst";StringTokenizer st = new StringTokenizer(text, " ");while (st.hasMoreTokens()) {System.out.println(st.nextToken());

}}

}

Računarski praktikum

Funkcije

Funkcije

• Motivacija:– ponavljanje koda– dekompozicija na manje celine

• Osnovni elementi:– definicija– poziv

2/16

• Motivacija:– ponavljanje koda– dekompozicija na manje celine

• Osnovni elementi:– definicija– poziv

Definicija• Opšta sintaksa:povratni_tip ime_funkcije(parametri) {...

}

• Povratni tip je bilo koji tip podatka ili void ako funkcija ne vraćavrednost.– funkcija vraća najviše jednu vrednost!

• Parametri se deklarišu na isti način kao i promenljive.– Ako funkcija nema parametara ostave se prazne zagrade.

• Ako funkcija vraća vrednost, to se postiže return naredbom:– return a;– return (a);

3/16

• Opšta sintaksa:povratni_tip ime_funkcije(parametri) {...

}

• Povratni tip je bilo koji tip podatka ili void ako funkcija ne vraćavrednost.– funkcija vraća najviše jednu vrednost!

• Parametri se deklarišu na isti način kao i promenljive.– Ako funkcija nema parametara ostave se prazne zagrade.

• Ako funkcija vraća vrednost, to se postiže return naredbom:– return a;– return (a);

Parametri i rezultat metoda• parametri mogu biti:

– primitivni tipovi– reference na objekte

• rezultat može biti:– primitivni tip– referenca na objekat

• Metoda vraća vrednost naredbom:return vrednostilireturn (vrednost)

4/16

• parametri mogu biti:– primitivni tipovi– reference na objekte

• rezultat može biti:– primitivni tip– referenca na objekat

• Metoda vraća vrednost naredbom:return vrednostilireturn (vrednost)

Primeri definicijestatic int max(int a, int b) {

if (a > b)return a;

elsereturn b;

}

static void printInt(int i) {System.out.printf("%d", i);

}5/16

static int max(int a, int b) {if (a > b)

return a;else

return b;}

static void printInt(int i) {System.out.printf("%d", i);

}

Primer• Napisati funkciju sinus koja izračunava sinus razvojem u

Tejlorov red, tačnosti 10-6, po formuli:sinus(x) = x/1! - x3/3! + x5/5! - x7/7! + ...

sabirak = x; znak = 1; stepen = 1;while (Math.abs(sabirak) > 1E-6){

s = s + sabirak;znak = znak*-1;stepen = stepen + 2;sabirak = znak *Math.pow(x,stepen)/fakt(stepen);

}

Sinus.java

6/16

• Napisati funkciju sinus koja izračunava sinus razvojem uTejlorov red, tačnosti 10-6, po formuli:sinus(x) = x/1! - x3/3! + x5/5! - x7/7! + ...

sabirak = x; znak = 1; stepen = 1;while (Math.abs(sabirak) > 1E-6){

s = s + sabirak;znak = znak*-1;stepen = stepen + 2;sabirak = znak *Math.pow(x,stepen)/fakt(stepen);

}

Parametri funkcija

• Parametri funkcija se u nekimprogramskim jezicima prenose povrednosti ili po referenci– u programskom jeziku Java, prenos je

isključivo po vrednosti

7/16

• Parametri funkcija se u nekimprogramskim jezicima prenose povrednosti ili po referenci– u programskom jeziku Java, prenos je

isključivo po vrednosti

Prenos parametarapo vrednosti

• Prenos parametara po vrednosti:– prave se kopije parametara i te kopije se

prosleđuju funkciji– posledica: nije moguće promeniti prosleđenu

promenljivu iz funkcije

8/16

• Prenos parametara po vrednosti:– prave se kopije parametara i te kopije se

prosleđuju funkciji– posledica: nije moguće promeniti prosleđenu

promenljivu iz funkcije

Prenos parametarapo vrednosti

static void f(int i){

i = 3;}public static void main(String[] a) {

int i = 5;f(i);System.out.printf("%d", i);

}

Vrednost.java

9/16

static void f(int i){

i = 3;}public static void main(String[] a) {

int i = 5;f(i);System.out.printf("%d", i);

}Šta će biti

odštampano?

Nizovi kao parametri funkcija• U listi parametara funkcije ne navode se

dimenzije.• Primer:void f(int a[]) {...a[3] = 5;

}• Ako je potrebna veličina niza, ona se može

saznati iz atributa length:a.length

Ovo će promeniti a[3] u pozivajućojfunkciji!POSLEDICA:• Niz se može promeniti iz funkcije!• Nizovi se ne prosleđuju po vrednosti,tj. ne pravi se kopija niza!

10/16

• U listi parametara funkcije ne navode sedimenzije.

• Primer:void f(int a[]) {...a[3] = 5;

}• Ako je potrebna veličina niza, ona se može

saznati iz atributa length:a.length

Ovo će promeniti a[3] u pozivajućojfunkciji!POSLEDICA:• Niz se može promeniti iz funkcije!• Nizovi se ne prosleđuju po vrednosti,tj. ne pravi se kopija niza!

Nizovi.java

Višedimenzionalni nizovi kaoparametri funkcija

• U listi parametara funkcije se ne navodedimenzije– ta informacija se može saznati iz same promenljive

• a.length – broj vrsta• a[0].length – broj kolona

• Primer:void f(int a[][]) {...a[3][3] = 5;

}11/16

• U listi parametara funkcije se ne navodedimenzije– ta informacija se može saznati iz same promenljive

• a.length – broj vrsta• a[0].length – broj kolona

• Primer:void f(int a[][]) {...a[3][3] = 5;

}Nizovi.java

Opseg vidljivosti promenljivih

• Promenljive deklarisane unutar funkcije se“vide” samo u funkciji– to su lokalne promenljive

• Pomenljive deklarisane izvan funkcije se“vide” i u ostalim funkcijama– to su atributi

12/16

• Promenljive deklarisane unutar funkcije se“vide” samo u funkciji– to su lokalne promenljive

• Pomenljive deklarisane izvan funkcije se“vide” i u ostalim funkcijama– to su atributi

Opseg vidljivosti promenljivihvoid f(int i) {i = 3;

}int a;void f2(int i) {int b;a = 5;i = 3;

}void f3(int i) {int a;a = 5;i = 3;

} 13/16

void f(int i) {i = 3;

}int a;void f2(int i) {int b;a = 5;i = 3;

}void f3(int i) {int a;a = 5;i = 3;

}

Rekurzivne funkcije• Rekurzija: funkcija poziva

samu sebe• Svaka rekurzivna funkcija

mora da ima uslov zaizlaz iz rekurzije!

• Pozitivno:– razumljivije– ponekad i jedino moguće

(Akermanova funkcija)• Mana:

– opterećuje stek– brzina

14/16

• Rekurzija: funkcija pozivasamu sebe

• Svaka rekurzivna funkcijamora da ima uslov zaizlaz iz rekurzije!

• Pozitivno:– razumljivije– ponekad i jedino moguće

(Akermanova funkcija)• Mana:

– opterećuje stek– brzina

Rekurzivne funkcijeint fakt(int n){int i, f=1;for (i = 1; i <= n; i++){f *= i;

}return f;

}

int fakt(int n){if (n < 2)return 1;

return n * fakt(n-1);}

15/16

int fakt(int n){int i, f=1;for (i = 1; i <= n; i++){f *= i;

}return f;

}

int fakt(int n){if (n < 2)return 1;

return n * fakt(n-1);}

Fakt1.java Fakt2.java

Varijabilan broj parametara

• Ako želimo da metoda ima varijabilan brojparametara, deklarišemo na sledeći način:

void f(int... params) {...}• Parametrima se pristupa kao elementima

niza:int a = params[2];

16/16

• Ako želimo da metoda ima varijabilan brojparametara, deklarišemo na sledeći način:

void f(int... params) {...}• Parametrima se pristupa kao elementima

niza:int a = params[2];

Računarski praktikum

Ulazno izlazni podsistem

Ulazno izlazni podsistem• standardna biblioteka za ulazno/izlazne operacije

• izvorišta/odredišta:

• tastatura/konzola

• fajl sistem

• memorija

• mrežne konekcije

• oslanja se na tokove (streams) i čitače/pisače(reader/writer)

2/20

• standardna biblioteka za ulazno/izlazne operacije

• izvorišta/odredišta:

• tastatura/konzola

• fajl sistem

• memorija

• mrežne konekcije

• oslanja se na tokove (streams) i čitače/pisače(reader/writer)

Štampanje na ekran

• System.out je izlazni tok:System.out.print(“Poruka”);System.out.println(“Poruka”);• Ispis se može i formatirati:System.out.printf(“format”, argumenti);System.out.printf(“%.2f %d”, (10000.0 / 3), 5);

3/20

• System.out je izlazni tok:System.out.print(“Poruka”);System.out.println(“Poruka”);• Ispis se može i formatirati:System.out.printf(“format”, argumenti);System.out.printf(“%.2f %d”, (10000.0 / 3), 5);

Štampanje na ekran

• Funkcija printf iz biblioteke stdio.h• Prvi parametar je specifikator formata ispisa,

a ostali parametri su varijable čija se vrednostštampa.

• Specifikator formata:%[širina][.preciznost]tip

4/20

• Funkcija printf iz biblioteke stdio.h• Prvi parametar je specifikator formata ispisa,

a ostali parametri su varijable čija se vrednostštampa.

• Specifikator formata:%[širina][.preciznost]tip

printf - širina• Definiše broj cifara

[širina]¦ Kako utiče na preciznost---------+--------------------------------------------------------

n ¦ Štampa zadati broj cifara.0n ¦ Štampa zadati broj cifara.

¦ Ako broj nema toliko cifara, sa leve se popunjava nulama.

5/20

• Definiše broj cifara

[širina]¦ Kako utiče na preciznost---------+--------------------------------------------------------

n ¦ Štampa zadati broj cifara.0n ¦ Štampa zadati broj cifara.

¦ Ako broj nema toliko cifara, sa leve se popunjava nulama.

printf – tip - brojevi

Tip ¦ Očekivan ulaz ¦ Format rezultat------------------------------------------------------------------------------Brojevi------------------------------------------------------------------------------

b ¦ Boolean ¦ Booleand ¦ Integer ¦ Signed decimal integero ¦ Integer ¦ Unsigned octal integeru ¦ Integer ¦ Unsigned decimal integerh,x¦ Integer ¦ Unsigned hexadecimal int (with a, b, c, d, e, f)H,X¦ Integer ¦ Unsigned hexadecimal int (with A, B, C, D, E, F)f ¦ Floating point ¦ Signed value oblika [-]dddd.dddd.e ¦ Floating point ¦ Signed value oblika [-]d.dddd or e[+/-]dddg ¦ Floating point ¦ Kraći zapis od %f i %eE ¦ Floating point ¦ Isto kao e; samo ima ‘E’ za eksponentG ¦ Floating point ¦ Isto kao e; samo ima ‘E’ za eksponent ako je e format

------------------------------------------------------------------------------

6/20

Tip ¦ Očekivan ulaz ¦ Format rezultat------------------------------------------------------------------------------Brojevi------------------------------------------------------------------------------

b ¦ Boolean ¦ Booleand ¦ Integer ¦ Signed decimal integero ¦ Integer ¦ Unsigned octal integeru ¦ Integer ¦ Unsigned decimal integerh,x¦ Integer ¦ Unsigned hexadecimal int (with a, b, c, d, e, f)H,X¦ Integer ¦ Unsigned hexadecimal int (with A, B, C, D, E, F)f ¦ Floating point ¦ Signed value oblika [-]dddd.dddd.e ¦ Floating point ¦ Signed value oblika [-]d.dddd or e[+/-]dddg ¦ Floating point ¦ Kraći zapis od %f i %eE ¦ Floating point ¦ Isto kao e; samo ima ‘E’ za eksponentG ¦ Floating point ¦ Isto kao e; samo ima ‘E’ za eksponent ako je e format

------------------------------------------------------------------------------

printf – tip - karakteri

Tip ¦ Očekivan ulaz ¦ Format rezultat---------------------------------------------------------------------------Karakteri---------------------------------------------------------------------------

c ¦ Character ¦ Jedno slovos ¦ String ¦ Štampa string do kraja ili do zadatog broja slova% ¦ Ništa ¦ Štampa znak %

---------------------------------------------------------------------------

7/20

Tip ¦ Očekivan ulaz ¦ Format rezultat---------------------------------------------------------------------------Karakteri---------------------------------------------------------------------------

c ¦ Character ¦ Jedno slovos ¦ String ¦ Štampa string do kraja ili do zadatog broja slova% ¦ Ništa ¦ Štampa znak %

---------------------------------------------------------------------------

printf - primeriSystem.out.printf("celobrojni: %d\n", c); --> celobrojni: 356System.out. printf("celobrojni: %6d\n", c); --> celobrojni: 356System.out. printf("celobrojni: %-6d\n", c); --> celobrojni: 356System.out. printf("celobrojni: %+6d\n", c); --> celobrojni: +356System.out. printf("celobrojni: %+6d\n", -c); --> celobrojni: -356

System.out. printf("razlomljeni: %f\n", 3.141); --> razlomljeni: 3.141000System.out. printf("razlomljeni: %6.2f\n", 3.141); --> razlomljeni: 3.14System.out. printf("razlomljeni: %e\n", 3.141); --> razlomljeni: 3.141000e+00System.out. printf("razlomljeni: %6.2e\n", 3.141); --> razlomljeni: 3.14e+00System.out. printf("razlomljeni: %g\n", 3.141); --> razlomljeni: 3.14100

8/20

System.out.printf("celobrojni: %d\n", c); --> celobrojni: 356System.out. printf("celobrojni: %6d\n", c); --> celobrojni: 356System.out. printf("celobrojni: %-6d\n", c); --> celobrojni: 356System.out. printf("celobrojni: %+6d\n", c); --> celobrojni: +356System.out. printf("celobrojni: %+6d\n", -c); --> celobrojni: -356

System.out. printf("razlomljeni: %f\n", 3.141); --> razlomljeni: 3.141000System.out. printf("razlomljeni: %6.2f\n", 3.141); --> razlomljeni: 3.14System.out. printf("razlomljeni: %e\n", 3.141); --> razlomljeni: 3.141000e+00System.out. printf("razlomljeni: %6.2e\n", 3.141); --> razlomljeni: 3.14e+00System.out. printf("razlomljeni: %g\n", 3.141); --> razlomljeni: 3.14100

TestPrintf.java

Unos sa tastature

• System.in je ulazni tok:BufferedReader in = new BufferedReader(new

InputStreamReader(System.in));String s = in.readLine();• Alternativa je klasa Scanner koja ne

učitava samo stringove:Scanner sc = new Scanner(System.in);String s = sc.nextLine();int i = sc.nextInt();float f = sc.nextFloat();

9/20

• System.in je ulazni tok:BufferedReader in = new BufferedReader(new

InputStreamReader(System.in));String s = in.readLine();• Alternativa je klasa Scanner koja ne

učitava samo stringove:Scanner sc = new Scanner(System.in);String s = sc.nextLine();int i = sc.nextInt();float f = sc.nextFloat();

Unos drugih primitivnih tipova satastature

• Koristi se wrapper klasa i njena metodaparseXxx():

BufferedReader in = new BufferedReader( newInputStreamReader(System.in));

String s = in.readLine();int i = Integer.parseInt(s);• Kraće je klasom Scanner:Scanner sc = new Scanner(System.in);int i = sc.nextInt();

10/20

• Koristi se wrapper klasa i njena metodaparseXxx():

BufferedReader in = new BufferedReader( newInputStreamReader(System.in));

String s = in.readLine();int i = Integer.parseInt(s);• Kraće je klasom Scanner:Scanner sc = new Scanner(System.in);int i = sc.nextInt();

Klasa Console• Sistemska konzola:

– Console c = System.console();• Metode:

– printf("format", promenljive)– readLine()– readLine("format", promenljive)

• ispiše promenljive u zadatom formatu, pa učita jedan redteksta

– readPassword()• čita šifru sa tastature, bez prikazivanja slova

– readPassword("format", promenljive)• ispiše promenljive u zadatom formatu, pa učita šifru sa

tastature, bez prikazivanja slova

11/20

• Sistemska konzola:– Console c = System.console();

• Metode:– printf("format", promenljive)– readLine()– readLine("format", promenljive)

• ispiše promenljive u zadatom formatu, pa učita jedan redteksta

– readPassword()• čita šifru sa tastature, bez prikazivanja slova

– readPassword("format", promenljive)• ispiše promenljive u zadatom formatu, pa učita šifru sa

tastature, bez prikazivanja slova

ConsoleTest.java

File klasa

• Za manipulaciju datotekama idirektorijumima:– kreiranje datoteka i direktorijuma– brisanje datoteka i direktorijuma– pristup atributima datoteka i direktorijuma– modifikacija naziva i atributa datoteka i

direktorijuma

12/20

• Za manipulaciju datotekama idirektorijumima:– kreiranje datoteka i direktorijuma– brisanje datoteka i direktorijuma– pristup atributima datoteka i direktorijuma– modifikacija naziva i atributa datoteka i

direktorijuma

FileTest.java

File klasa

• File f = new File(".");• File f = new File("C:\Windows");• f = new File(f, "pera");• f = new File(f, "..");

• if(f.exists()) ...• if(f.isDirectory()) ...• f.createNewfile();

13/20

• File f = new File(".");• File f = new File("C:\Windows");• f = new File(f, "pera");• f = new File(f, "..");

• if(f.exists()) ...• if(f.isDirectory()) ...• f.createNewfile();

Tokovi (streams) 1/4

• Bazirani na bajtovima– prenos jednog bajta– prenos niza bajtova– rad sa primitivnim tipovima podataka (int,

boolean, float, ...)

14/20

• Bazirani na bajtovima– prenos jednog bajta– prenos niza bajtova– rad sa primitivnim tipovima podataka (int,

boolean, float, ...)

Tokovi (streams) 2/4

• Osmišljeni kao mehanizam koji omogućuje unificiranpristup podacima

• Isti kôd se koristi za čitanje/pisanje iz, na primer,datoteke ili mrežne konekcije

• Koncept filtera - donose dodatnu funkcionalnosttokovima:– prenos primitivnih tipova na mašinski nezavisan način

(DataInputStream, DataOutputStream)– baferizovan prenos podataka (BufferedInputStream,

BufferedOutputStream)

15/20

• Osmišljeni kao mehanizam koji omogućuje unificiranpristup podacima

• Isti kôd se koristi za čitanje/pisanje iz, na primer,datoteke ili mrežne konekcije

• Koncept filtera - donose dodatnu funkcionalnosttokovima:– prenos primitivnih tipova na mašinski nezavisan način

(DataInputStream, DataOutputStream)– baferizovan prenos podataka (BufferedInputStream,

BufferedOutputStream)

FileStreamTest.java

Tokovi (streams) 3/4

• Metode u tokovima:– read() – čita jedan bajt iz toka– read(byte[]) – čita niz bajtova

• vraća pročitan broj bajtova ili -1 ako je stigla dokraja datoteke

– skip(long n) – preskače zadati broj bajtova– available() – vraća broj raspoloživih bajtova iz

toka koji se mogu pročitati pre blokiranjasledećeg čitanja

– close() – zatvara tok

16/20

• Metode u tokovima:– read() – čita jedan bajt iz toka– read(byte[]) – čita niz bajtova

• vraća pročitan broj bajtova ili -1 ako je stigla dokraja datoteke

– skip(long n) – preskače zadati broj bajtova– available() – vraća broj raspoloživih bajtova iz

toka koji se mogu pročitati pre blokiranjasledećeg čitanja

– close() – zatvara tok

Tokovi (streams) 4/4

• Primer upotrebe – kopiranje sadržaja datoteke:

byte[] buffer = new byte[BUFFER_LENGTH];while((read=in.read(buffer, 0,BUFFER_LENGTH)) != -1) {

// obrada učitanog niza bajtovaout.write(buffer);

}

17/20

• Primer upotrebe – kopiranje sadržaja datoteke:

byte[] buffer = new byte[BUFFER_LENGTH];while((read=in.read(buffer, 0,BUFFER_LENGTH)) != -1) {

// obrada učitanog niza bajtovaout.write(buffer);

}

CopyFile.java

Čitači/pisači (readers/writers) 1/2

• Koriste se za prenos Unicode teksta:• Čitači/pisači ne zamenjuju tokove – oni ih

dopunjuju• Čitači/pisači se koriste kada je potrebno

preneti Unicode stringove ili karaktere – uostalim situacijama koriste se tokovi

18/20

• Koriste se za prenos Unicode teksta:• Čitači/pisači ne zamenjuju tokove – oni ih

dopunjuju• Čitači/pisači se koriste kada je potrebno

preneti Unicode stringove ili karaktere – uostalim situacijama koriste se tokovi

Čitači/pisači (readers/writers) 2/2

• Metode u čitačima:– read() – čita jedan karakter iz toka– read(char[]) – čita niz karaktera– skip(long n) – preskače zadati broj karaktera– close() – zatvara čitač

• Baferizovani čitač (BufferedReader)– metoda readLine vraća učitan string ili null ako je

stigao do kraja datoteke• Štampanje stringova u datoteku (PrintWriter)

– metoda println štampa tekst u datoteku

19/20

• Metode u čitačima:– read() – čita jedan karakter iz toka– read(char[]) – čita niz karaktera– skip(long n) – preskače zadati broj karaktera– close() – zatvara čitač

• Baferizovani čitač (BufferedReader)– metoda readLine vraća učitan string ili null ako je

stigao do kraja datoteke• Štampanje stringova u datoteku (PrintWriter)

– metoda println štampa tekst u datoteku

FileReaderWriterTest.java

Zaključak• Podaci se u čitaju iz ulaznih tokova, a pišu u

izlazne tokove• Iz programa se retko radi direktno sa bajtovima

– zato se tokovi ugrađuju u Filter klase koje imajuodgovarajuće metode za čitanje/pisanje

– zato imamo tokove objekata, tokove primitivnih tipovaitd.

• Ako radimo sa karakterima/stringovima,koristimo čitače i pisače

20/20

• Podaci se u čitaju iz ulaznih tokova, a pišu uizlazne tokove

• Iz programa se retko radi direktno sa bajtovima– zato se tokovi ugrađuju u Filter klase koje imaju

odgovarajuće metode za čitanje/pisanje– zato imamo tokove objekata, tokove primitivnih tipova

itd.• Ako radimo sa karakterima/stringovima,

koristimo čitače i pisače

Računarski praktikum

Sortiranje

Sortiranje

• Sortiranje ili uređenje• Preuređenje niza tako da svi elementi

nakon toga zauzimaju rastući ili opadajućiporedak

• Vreme za sortiranje raste sa brojemelemenata u nizu– kvadratno (n2): selection sort, bubble sort, itd.– logaritamski (n log n): quick sort, merge sort, itd.

2

• Sortiranje ili uređenje• Preuređenje niza tako da svi elementi

nakon toga zauzimaju rastući ili opadajućiporedak

• Vreme za sortiranje raste sa brojemelemenata u nizu– kvadratno (n2): selection sort, bubble sort, itd.– logaritamski (n log n): quick sort, merge sort, itd.

Kvadratna zavisnost vremena

• Vreme za sortiranje raste sa kvadratom brojaelemenata niza

3

Logaritamska zavisnost vremena

• Vreme za sortiranje raste u skladu sa formulomn * log(n), gde je n broj elemenata niza

4

Selection sort

• Prolazi se kroz niz i traži se najmanjielement.

• Najmanji element se stavlja na prvo mestoniza.

• Zatim se prođe kroz preostali niz (oddrugog elementa, pa na dalje) i traži senajmanji element.

• Ovo se ponavlja dok se ne dođe do krajaniza.

5

• Prolazi se kroz niz i traži se najmanjielement.

• Najmanji element se stavlja na prvo mestoniza.

• Zatim se prođe kroz preostali niz (oddrugog elementa, pa na dalje) i traži senajmanji element.

• Ovo se ponavlja dok se ne dođe do krajaniza.

Select.java

Selection sort

• Pronalaženje najmanjeg elementa:– prvi element se fiksira– polazi se od drugog, pa do kraja– traženje najmanjeg elementa se odvija

uzastopnom zamenom ova dva elementakada god se ustanovi da je drugi manji odprvog.

6

• Pronalaženje najmanjeg elementa:– prvi element se fiksira– polazi se od drugog, pa do kraja– traženje najmanjeg elementa se odvija

uzastopnom zamenom ova dva elementakada god se ustanovi da je drugi manji odprvog.

Bubble sort

• Porede se dva uzastopna elementa niza izamenjuju se ako je drugi manji od prvog.

• Nakon prvog prolaza, na kraju niza je najvećielement.

• Algoritam se ponavlja za preostali deo niza (odprvog do pretposlednjeg elementa) i na mestupretposlednjeg elementa će ostati najvećielement iz tog podniza.

• Algoritam se ponavlja dok ne smanjimo podnizna prva dva elementa.

7

• Porede se dva uzastopna elementa niza izamenjuju se ako je drugi manji od prvog.

• Nakon prvog prolaza, na kraju niza je najvećielement.

• Algoritam se ponavlja za preostali deo niza (odprvog do pretposlednjeg elementa) i na mestupretposlednjeg elementa će ostati najvećielement iz tog podniza.

• Algoritam se ponavlja dok ne smanjimo podnizna prva dva elementa.

Bubble.java

Pretraga niza• Tražimo element u nizu• Razlika između pretrage u uređenom i

neuređenom nizu– ako je neuređen, nemamo izbora

• prolazimo kroz sve elemente niza dok ne nađemo element ilistignemo do kraja

– ako je niz uređen, imamo dve mogućnosti:• prolazimo kroz sve elemente niza dok ne nađemo element ili

stignemo do kraja• krenemo od sredine niza i proverimo koji je element tu

– ako je traženi element veći od tekućeg, znači da moramo datražimo u gornjoj polovini niza

– ako je traženi element manji od tekućeg, znači da moramo datražimo donjoj polovini niza

– ponavljamo ovu proceduru za odabranu polovinu niza dok nenađemo element, ili dok ne iscrpimo niz

SearchL.java SearchB.java

8

• Tražimo element u nizu• Razlika između pretrage u uređenom i

neuređenom nizu– ako je neuređen, nemamo izbora

• prolazimo kroz sve elemente niza dok ne nađemo element ilistignemo do kraja

– ako je niz uređen, imamo dve mogućnosti:• prolazimo kroz sve elemente niza dok ne nađemo element ili

stignemo do kraja• krenemo od sredine niza i proverimo koji je element tu

– ako je traženi element veći od tekućeg, znači da moramo datražimo u gornjoj polovini niza

– ako je traženi element manji od tekućeg, znači da moramo datražimo donjoj polovini niza

– ponavljamo ovu proceduru za odabranu polovinu niza dok nenađemo element, ili dok ne iscrpimo niz