70

Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

Embed Size (px)

Citation preview

Page 1: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

Programiranje 2

Milena Vujo�sevi�c Jani�ci�c

Jelena Graovac

Beograd, 22. februar, 2017.

Page 2: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Pregled

1 O kursu

2 Bitovski operatori

3 Organizacija izvornog koda

4 Organizacija memorije

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 3: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

LiteraturaObaveze studenata

Pregled

1 O kursu

Literatura

Obaveze studenata

2 Bitovski operatori

3 Organizacija izvornog koda

4 Organizacija memorije

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 4: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

LiteraturaObaveze studenata

Programiranje 2

Programiranje 2

Kurs obraduje napredne pojmove proceduralnog programiranja i

osnovne pojmove algoritama i struktura podataka.

Kurs je prirodan nastavak kursa Programiranje 1

6 ESPB bodova

Fond �casova: 2 �casa predavanja, 2 �casa ve�zbi i 1 �cas

praktikuma

Jedinstvena strana kursa

http://www.programiranje2.matf.bg.ac.rs/

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 5: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

LiteraturaObaveze studenata

Literatura

Osnovna literatura (dostupna preko web-a)

Predrag Jani�ci�c, Filip Mari�c: Programiranje 2 (PJ-FM-P2)Gordana Pavlovi�c-La�zeti�c: Programiranje 2 (GPL-P2)Filip Mari�c, Predrag Jani�ci�c: Programiranje 1 (FM-PJ-P1)Programiranje 2, zbirka zadataka sa re�senjima (u �stampanom ielektronskom obliku)

Dodatna literatura

Brian Kernighan, Dennis Ritchie: The C ProgrammingLanguageRobert Sedgewick: Algorithms in C

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 6: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

LiteraturaObaveze studenata

Literatura

Materijali sa slajdova su uglavnom preuzeti iz knjiga

Predrag Jani�ci�c, Filip Mari�c: Programiranje 2Filip Mari�c, Predrag Jani�ci�c: Programiranje 1

ili sa slajdova prof. dr Gordane Pavlovi�c-La�zeti�c.

Za pripremu ispita, nije dovoljno koristiti samo slajdove ve�c je

neophodno u�citi iz knjige!

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 7: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

LiteraturaObaveze studenata

Obaveze studenata

Predispitne obaveze:

Aktivnost na praktikumima: 5 poenaKolokvijum u kolokvijumskoj nedelji: 35 poena (20 poenateorija, 15 poena zadaci)

Zavr�sni ispit:

Teorija: 30 poena (prag 30%)Zadaci: 10 poena (kvali�kacioni - prag 50%) + 25 poena(prakti�cni na ra�cunarima - prag 30%)

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 8: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

LiteraturaObaveze studenata

Pravila polaganja zavr�snog ispita

Da bi student mogao da izade na prakti�cni deo ispita,

neophodno je da prethodno polo�zi kvali�kacioni deo ispita.

Svi delovi zavr�snog ispita mogu se polagati u jednom ispitnom

roku.

Svi delovi zavr�snog ispita mogu se polagati u dva susednaispitna roka, po slede�cim pravilima:

Ukoliko student polo�zi teoriju i kvali�kacioni deo, a ne polo�ziprakti�cni deo ispita u jednom roku, ima mogu�cnost izlaska naprakti�cni deo i u narednom roku (teorija i kvali�kacioni deo muse priznaju)Ukoliko student polo�zi teoriju a ne polo�zi kvali�kacioni deo ujednom roku, ima mogu�cnost izlaska na kvali�kacioni iprakti�cni deo ispita i u narednom roku (teorija mu se priznaje)

Ispit je potrebno prijaviti u oba roka

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 9: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Pregled

1 O kursu

2 Bitovski operatori

Operatori i njihove osobine

Maske

3 Organizacija izvornog koda

4 Organizacija memorije

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 10: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Operatori za rad nad bitovima

U nekim slu�cajevima, mogu se dobiti e�kasnija re�senjakori�s�cenjem operatora za rad nad pojedina�cnim bitovima, kojise mogu primenjivati samo na celobrojne argumente:

~ bitovska negacija;& bitovska konjunkcija;| bitovska disjunkcija;^ bitovska eksluzivna disjunkcija;<< pomeranje (�siftovanje) bitova ulevo;>> pomeranje (�siftovanje) bitova udesno (logi�cko iaritmeti�cko);&=, |=, ^=, >>=, >>= � bitovske dodele � ovi operatorikombinuju bitovske operatore sa dodelom

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 11: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Operatori za rad nad bitovima

U nekim slu�cajevima, mogu se dobiti e�kasnija re�senjakori�s�cenjem operatora za rad nad pojedina�cnim bitovima, kojise mogu primenjivati samo na celobrojne argumente:

~ bitovska negacija;& bitovska konjunkcija;| bitovska disjunkcija;^ bitovska eksluzivna disjunkcija;<< pomeranje (�siftovanje) bitova ulevo;>> pomeranje (�siftovanje) bitova udesno (logi�cko iaritmeti�cko);&=, |=, ^=, >>=, >>= � bitovske dodele � ovi operatorikombinuju bitovske operatore sa dodelom

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 12: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Prioritet operatora i asocijativnost

1. (), [ ] sleva nadesno

2. !, ~, ++,--, +, �, *, &, (tip) zdesna nalevo

3. *, /, % sleva nadesno

4. +, � sleva nadesno

5. <<, >> sleva nadesno

6. <, <=, >, >= sleva nadesno

7. ==, != sleva nadesno

8. & sleva nadesno

9. ^ sleva nadesno

10. | sleva nadesno

11. && sleva nadesno

12. || sleva nadesno

13. ?: zdesna ulevo

14. =,+=,-=,/=,%=,&=,^=,|=,<<=,>>= zdesna ulevo

15. , sleva nadesno

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 13: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Prioritet operatora

Kao unarni operator, operator ~ ima najve�ci prioritet i desno je

asocijativan.

Prioritet operatora pomeranja je najve�ci od svih binarnih

bitovskih operatora � nalazi se izmedu prioriteta aritmeti�ckih i

relacijskih operatora.

Ostali bitovski operatori imaju prioritet izmedu relacijskih i

logi�ckih operatora

& ima ve�ci prioritet od ^ koji ima ve�ci prioritet od |. Ovi

operatori imaju levu asocijativnost.

Operatori dodele imaju skoro najni�zi prioritet i desnu

asocijativnost

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 14: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Bitovski operatori

A B A ∧ B

0 0

0

0 1

0

1 0

0

1 1

1

A B A ∨ B

0 0

0

0 1

1

1 0

1

1 1

1

A B A ∨ B

0 0

0

0 1

1

1 0

1

1 1

0

A ¬ A

0

1

1

0

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 15: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Bitovski operatori

A B A ∧ B

0 0 0

0 1

0

1 0

0

1 1

1

A B A ∨ B

0 0

0

0 1

1

1 0

1

1 1

1

A B A ∨ B

0 0

0

0 1

1

1 0

1

1 1

0

A ¬ A

0

1

1

0

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 16: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Bitovski operatori

A B A ∧ B

0 0 0

0 1 0

1 0

0

1 1

1

A B A ∨ B

0 0

0

0 1

1

1 0

1

1 1

1

A B A ∨ B

0 0

0

0 1

1

1 0

1

1 1

0

A ¬ A

0

1

1

0

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 17: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Bitovski operatori

A B A ∧ B

0 0 0

0 1 0

1 0 0

1 1

1

A B A ∨ B

0 0

0

0 1

1

1 0

1

1 1

1

A B A ∨ B

0 0

0

0 1

1

1 0

1

1 1

0

A ¬ A

0

1

1

0

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 18: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Bitovski operatori

A B A ∧ B

0 0 0

0 1 0

1 0 0

1 1 1

A B A ∨ B

0 0

0

0 1

1

1 0

1

1 1

1

A B A ∨ B

0 0

0

0 1

1

1 0

1

1 1

0

A ¬ A

0

1

1

0

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 19: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Bitovski operatori

A B A ∧ B

0 0 0

0 1 0

1 0 0

1 1 1

A B A ∨ B

0 0 0

0 1

1

1 0

1

1 1

1

A B A ∨ B

0 0

0

0 1

1

1 0

1

1 1

0

A ¬ A

0

1

1

0

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 20: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Bitovski operatori

A B A ∧ B

0 0 0

0 1 0

1 0 0

1 1 1

A B A ∨ B

0 0 0

0 1 1

1 0

1

1 1

1

A B A ∨ B

0 0

0

0 1

1

1 0

1

1 1

0

A ¬ A

0

1

1

0

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 21: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Bitovski operatori

A B A ∧ B

0 0 0

0 1 0

1 0 0

1 1 1

A B A ∨ B

0 0 0

0 1 1

1 0 1

1 1

1

A B A ∨ B

0 0

0

0 1

1

1 0

1

1 1

0

A ¬ A

0

1

1

0

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 22: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Bitovski operatori

A B A ∧ B

0 0 0

0 1 0

1 0 0

1 1 1

A B A ∨ B

0 0 0

0 1 1

1 0 1

1 1 1

A B A ∨ B

0 0

0

0 1

1

1 0

1

1 1

0

A ¬ A

0

1

1

0

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 23: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Bitovski operatori

A B A ∧ B

0 0 0

0 1 0

1 0 0

1 1 1

A B A ∨ B

0 0 0

0 1 1

1 0 1

1 1 1

A B A ∨ B

0 0 0

0 1

1

1 0

1

1 1

0

A ¬ A

0

1

1

0

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 24: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Bitovski operatori

A B A ∧ B

0 0 0

0 1 0

1 0 0

1 1 1

A B A ∨ B

0 0 0

0 1 1

1 0 1

1 1 1

A B A ∨ B

0 0 0

0 1 1

1 0

1

1 1

0

A ¬ A

0

1

1

0

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 25: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Bitovski operatori

A B A ∧ B

0 0 0

0 1 0

1 0 0

1 1 1

A B A ∨ B

0 0 0

0 1 1

1 0 1

1 1 1

A B A ∨ B

0 0 0

0 1 1

1 0 1

1 1

0

A ¬ A

0

1

1

0

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 26: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Bitovski operatori

A B A ∧ B

0 0 0

0 1 0

1 0 0

1 1 1

A B A ∨ B

0 0 0

0 1 1

1 0 1

1 1 1

A B A ∨ B

0 0 0

0 1 1

1 0 1

1 1 0

A ¬ A

0

1

1

0

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 27: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Bitovski operatori

A B A ∧ B

0 0 0

0 1 0

1 0 0

1 1 1

A B A ∨ B

0 0 0

0 1 1

1 0 1

1 1 1

A B A ∨ B

0 0 0

0 1 1

1 0 1

1 1 0

A ¬ A

0 1

1

0

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 28: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Bitovski operatori

A B A ∧ B

0 0 0

0 1 0

1 0 0

1 1 1

A B A ∨ B

0 0 0

0 1 1

1 0 1

1 1 1

A B A ∨ B

0 0 0

0 1 1

1 0 1

1 1 0

A ¬ A

0 1

1 0

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 29: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Bitovsko i

& � bitovsko i � primenom ovog operatora vr�si se konjunkcija

pojedina�cnih bitova dva argumenta � i-ti bit rezultata

predstavlja konjunkciju i-tih bitova argumenata.

Primer

(heksadekadno: 0x000000CF & 0x0000003F = 0x0000000F)

(dekadno: 207 & 63 = 15)

00000000000000000000000011001111 <---207

& 00000000000000000000000000111111 <---63

==================================

00000000000000000000000000001111 <---15

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 30: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Bitovsko ili

| � bitovsko ili � primenom ovog operatora vr�si se

disjunkcija pojedina�cnih bitova dva argumenta � i-ti bit

rezultata predstavlja disjunkciju i-tih bitova argumenata.

Primer

(heksadekadno: 0x000000CF | 0x0000003F = 0x000000FF)

(dekadno: 207 | 63 = 255)

00000000000000000000000011001111 <---207

| 00000000000000000000000000111111 <---63

==================================

00000000000000000000000011111111 <---255

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 31: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Bitovska negacija

~ � jedini�cni komplement � primenom ovog operatora vr�si se

komplementiranje pojedina�cnih bitova argumenta � i-ti bit

rezultata predstavlja komplement i-tog bita argumenta

Primer

~63 = -64 (jer je u pitanju celobrojna oznacena

konstanta)

00000000000000000000000000111111 <--- 63

==================================

11111111111111111111111111000000 <--- -64

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 32: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Bitovsko xor

^ � bitovsko xor � primenom ovog operatora vr�si se

ekskluzivna disjunkcija pojedina�cnih bitova dva argumenta �

i-ti bit rezultata predstavlja ekskluzivna disjunkcija i-tih bitova

argumenata.

Primer

(heksadekadno: 0x000000CF ^ 0x0000003F = 0x000000F0)

(dekadno: 207 ^ 63 = 240)

00000000000000000000000011001111 <---207

^ 00000000000000000000000000111111 <---63

==================================

00000000000000000000000011110000 <---240

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 33: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

�Siftovanje u levo

<< � levo pomeranje (�siftovanje) � primenom ovog operatora

bitovi prvog argumenta se pomeraju u levo za broj pozicija

naveden kao drugi argument. Po�cetni bitovi prvog argumenta

se zanemaruju, dok se na zavr�sna mesta rezultata upisuju nule.

Primer

(heksadekadno: 0x0000003F << 3 = 0x000001F8)

(dekadno: 63 << 3 = 504)

00000000000000000000000000111111 <--- 63

================================ << 3

00000000000000000000000111111000 <--- 504

Levo pomeranje za jednu poziciju odgovara mno�zenju sa dva.

Levo pomeranje za n pozicija odgovara mno�zenju sa n-timstepenom dvojke.Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 34: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

�Siftovanje u desno

>> � desno pomeranje (�siftovanje) � primenom ovog

operatora bitovi prvog argumenta se pomeraju u desno za broj

pozicija naveden kao drugi argument.

Krajnji (desni) bitovi prvog argumenta se zanemaruju

Po�cetni (levi) bitovi prvog argumenta:

logi�cko pomeranje � popunjavaju se nulamaaritmeti�cko pomeranje � popunjavanje bitovima znaka

Aritmeti�cko pomeranje za jedno mesto � deljenje sa dva

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 35: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

�Siftovanje u desno

Koje pomeranje �ce se vr�siti zavisi od tipa prvog argumenta:

neozna�cen tip � logi�cko pomeranjeozna�cen tip � aritmeti�cko pomeranje

Primer

(heksadekadno: 0x0000003F >> 3 = 0x00000007)

(dekadno: 63 >> 3 = 7)

00000000000000000000000000111111 <--- 63

================================ >> 3

00000000000000000000000000000111 <--- 7

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 36: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Napomena

Bitovske operatore ne treba me�sati sa logi�ckim operatorima.

Na primer, vrednost izraza 1 && 2 je 1 (ta�cno i ta�cno je

ta�cno) dok je vrednost izraza 1&2 jednaka 0

1 & 2 = 0

00000000000000000000000000000001 <--- 1

& 00000000000000000000000000000010 <--- 2

================================

00000000000000000000000000000000 <--- 0

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 37: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Primena bitovskih operatora

Kako bi se postigao �zeljeni efekat nad bitovima nekog broja,

obi�caj je da se vr�si njegovo kombinovanje bitovskim

operatorima sa specijalno pripremljenim konstantama koje se

nazivaju maske.

Za gradenje maski koriste se osobine bitovskih operatora

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 38: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Primena bitovskog i

Osobina konjunkcije je da je za svaki bit b, vrednost b & 0

jednaka 0, dok je vrednost b & 1 jednaka b.

Ovo zna�ci da se konjunkcijom sa nekom maskom dobija

rezultat koji je jednak broju koji se dobije kada se u broj x

upi�su nule na sve one pozicije na kojima maska ima bit 0, dok

ostali bitovi ostaju neizmenjeni.

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 39: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Primena bitovskog i

Primer

Napisati naredbu koja na i-to mesto broja n postavlja bit 0, dok

ostali bitovi ostaju nepromenjeni.

Re�senje:

Potrebno je uraditi bitovsko & sa maskom koja se sastoji od svih

jedinica, a jedino na i-tom mestu je bit nula.

Ova maska se dobija

negacijom maske koja sadr�zi sve nule, a na i-tom mestu jedinicu.

Maska koja sadr�zi na i-tom mestu jedinicu mo�ze se dobiti

pomeranjem broja 1 za i mesta u levo.

K�od:

n & (~(1 << i))

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 40: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Primena bitovskog i

Primer

Napisati naredbu koja na i-to mesto broja n postavlja bit 0, dok

ostali bitovi ostaju nepromenjeni.

Re�senje:

Potrebno je uraditi bitovsko & sa maskom koja se sastoji od svih

jedinica, a jedino na i-tom mestu je bit nula. Ova maska se dobija

negacijom maske koja sadr�zi sve nule, a na i-tom mestu jedinicu.

Maska koja sadr�zi na i-tom mestu jedinicu mo�ze se dobiti

pomeranjem broja 1 za i mesta u levo.

K�od:

n & (~(1 << i))

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 41: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Primena bitovskog i

Primer

Napisati naredbu koja na i-to mesto broja n postavlja bit 0, dok

ostali bitovi ostaju nepromenjeni.

Re�senje:

Potrebno je uraditi bitovsko & sa maskom koja se sastoji od svih

jedinica, a jedino na i-tom mestu je bit nula. Ova maska se dobija

negacijom maske koja sadr�zi sve nule, a na i-tom mestu jedinicu.

Maska koja sadr�zi na i-tom mestu jedinicu mo�ze se dobiti

pomeranjem broja 1 za i mesta u levo.

K�od:

n & (~(1 << i))

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 42: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Primena bitovskog i

Primer

Napisati naredbu koja na i-to mesto broja n postavlja bit 0, dok

ostali bitovi ostaju nepromenjeni.

Re�senje:

Potrebno je uraditi bitovsko & sa maskom koja se sastoji od svih

jedinica, a jedino na i-tom mestu je bit nula. Ova maska se dobija

negacijom maske koja sadr�zi sve nule, a na i-tom mestu jedinicu.

Maska koja sadr�zi na i-tom mestu jedinicu mo�ze se dobiti

pomeranjem broja 1 za i mesta u levo.

K�od:

n & (~(1 << i))

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 43: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Primena bitovskog i

Primer

Napisati naredbu koja na i-to mesto broja n postavlja bit 0, dok

ostali bitovi ostaju nepromenjeni.

Re�senje:

Potrebno je uraditi bitovsko & sa maskom koja se sastoji od svih

jedinica, a jedino na i-tom mestu je bit nula. Ova maska se dobija

negacijom maske koja sadr�zi sve nule, a na i-tom mestu jedinicu.

Maska koja sadr�zi na i-tom mestu jedinicu mo�ze se dobiti

pomeranjem broja 1 za i mesta u levo.

K�od:

n & (~(1 << i))

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 44: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Primena bitovskog ili

Osobina disjunkcije je da je za svaki bit b, vrednost b | 0

jednaka b, dok je vrednost b | 1 jednaka 1.

Dakle, disjunkcijom broja x sa nekom maskom dobija se

rezultat u kojem su upisane jedinice na sve one pozicije na

kojima maska ima bit 1, dok ostali bitovi ostaju neizmenjeni.

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 45: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Primena bitovskog ili

Primer

Napisati naredbu koja na i-to mesto broja n postavlja bit 1, dok

ostali bitovi ostaju nepromenjeni.

Re�senje:

Potrebno je uraditi bitovsko | sa maskom koja se sastoji od svih

nula, a jedino na i-tom mestu je bit 1.

Maska koja sadr�zi na i-tommestu jedinicu mo�ze se dobiti pomeranjem broja 1 za i mesta u

levo.

K�od:

n | (1 << i)

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 46: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Primena bitovskog ili

Primer

Napisati naredbu koja na i-to mesto broja n postavlja bit 1, dok

ostali bitovi ostaju nepromenjeni.

Re�senje:

Potrebno je uraditi bitovsko | sa maskom koja se sastoji od svih

nula, a jedino na i-tom mestu je bit 1. Maska koja sadr�zi na i-tommestu jedinicu mo�ze se dobiti pomeranjem broja 1 za i mesta u

levo.

K�od:

n | (1 << i)

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 47: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Primena bitovskog ili

Primer

Napisati naredbu koja na i-to mesto broja n postavlja bit 1, dok

ostali bitovi ostaju nepromenjeni.

Re�senje:

Potrebno je uraditi bitovsko | sa maskom koja se sastoji od svih

nula, a jedino na i-tom mestu je bit 1. Maska koja sadr�zi na i-tommestu jedinicu mo�ze se dobiti pomeranjem broja 1 za i mesta u

levo.

K�od:

n | (1 << i)

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 48: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Primena bitovskog ili

Primer

Napisati naredbu koja na i-to mesto broja n postavlja bit 1, dok

ostali bitovi ostaju nepromenjeni.

Re�senje:

Potrebno je uraditi bitovsko | sa maskom koja se sastoji od svih

nula, a jedino na i-tom mestu je bit 1. Maska koja sadr�zi na i-tommestu jedinicu mo�ze se dobiti pomeranjem broja 1 za i mesta u

levo.

K�od:

n | (1 << i)

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 49: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Primena bitovskog xor

Osobina eksluzivne disjunkcije je da za svaki bit b, vrednost

b ^ 0 jednaka b, dok je vrednost b ^ 1 jednaka ~b.

Ovo zna�ci da se eksluzivnom disjunkcijom sa nekom maskom

dobija rezultat koji je jednak broju koji se dobije kada se

invertuju bitovi na onim pozicijama na kojima se u maski

nalazi jedinica.

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 50: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Primena bitovskog xor

Primer

Napisati naredbu koja invertuje bit na i-tom mestu broja n.

Re�senje:

Potrebno je uraditi bitovsko ^ sa maskom koja se sastoji od svih

nula, a jedino na i-tom mestu je bit 1. Maska koja sadr�zi na i-tommestu jedinicu mo�ze se dobiti pomeranjem broja 1 za i mesta u

levo.

K�od:

n ^ (1 << i)

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 51: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Primena bitovskog xor

Primer

Napisati naredbu koja invertuje bit na i-tom mestu broja n.

Re�senje:

Potrebno je uraditi bitovsko ^ sa maskom koja se sastoji od svih

nula, a jedino na i-tom mestu je bit 1. Maska koja sadr�zi na i-tommestu jedinicu mo�ze se dobiti pomeranjem broja 1 za i mesta u

levo.

K�od:

n ^ (1 << i)

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 52: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Primena bitovskog xor

Primer

Napisati naredbu koja invertuje bit na i-tom mestu broja n.

Re�senje:

Potrebno je uraditi bitovsko ^ sa maskom koja se sastoji od svih

nula, a jedino na i-tom mestu je bit 1. Maska koja sadr�zi na i-tommestu jedinicu mo�ze se dobiti pomeranjem broja 1 za i mesta u

levo.

K�od:

n ^ (1 << i)

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 53: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Bitovski operatori - osnovna pravila

Ukoliko �zelimo da u okviru broja postavimo nule na neke

izabrane pozicije, radimo bitovsko i sa maskom koja sadr�zi nule

na mestima gde �zelimo da postavimo nulu, a na svim ostalim

mestima maska treba da sadr�zi jedinice

Ukoliko �zelimo da u okviru broja postavimo jedinice na neke

izabrane pozicije, radimo bitovsko ili sa maskom koja sadr�zi

jedinice na mestima gde �zelimo da postavimo jedinice, a na

svim ostalim mestima maska treba da sadr�zi nule

Ukoliko �zelimo da invertujemo bitove na odredenim pozicijama,

radimo bitovsku ekskluzivnu disjunkciju sa maskom koja sadr�zi

jedinice na mestu gde �zelimo da radimo invertovanje, a na

svim ostalim mestima maska treba da sadr�zi nule

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 54: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Operatori i njihove osobineMaske

Literatura

PJ-FM-P2 (od str. 103 do str. 109)

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 55: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Pregled

1 O kursu

2 Bitovski operatori

3 Organizacija izvornog koda

4 Organizacija memorije

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 56: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Organizacija izvornog koda

Problemi koje ste do sada re�savali obuhvatali su male i

jednostavne programe koji su bili precizno de�nisani

Za organizovanje slo�zenih programa neophodno je

napraviti funkcionalnu dekompoziciju problema, tj. podeluslo�zenih zadataka na jednostavnije poslove i izdvajanje uzasebne funkcijede�nisanje odgovaraju�cih tipova podataka i organizovanjepodataka de�nisanjem odgovaraju�cih promenljivih.

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 57: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Organizacija izvornog koda

Veliki programi se organizuju u vi�se datoteka tj. modula koji

sadr�ze podatke i funkcije koji objedinjavaju odredenufunkcionalnost

Osnovna podela uklju�cuje razdvajanje deklaracija u datoteke

zaglavlja (ekstenzija .h) i de�nicija (ekstenzija .c)

Podela izvornog koda po datotekama omogu�cava

ponovno kori�s�cenje koda � gradenjem bibliotekatimski razvoj softveraprevodenje samo onih delova koda koji su menjani

Primer: matemati�cki softver � kompleksni brojevi, polinomi,

skupovi, razlomci, vektori, matrice, geometrijske �gure u ravni

i prostoru...

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 58: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Organizacija izvornog koda

Va�zno je znati mehanizam povezanosti identi�katora da bi se

razdvajanje koda moglo uraditi na ispravan na�cin

Pretprocesor i linker omogu�cavaju spajanje datoteka u

jedinstven izvr�sni program

Postoje alati koji olak�savaju prevodenje koda koji je podeljen

po datotekama, na primer program make

Razumevanje ove podele kao i procesa prevodenja jako je

va�zno za prakti�cni deo ispita

Detaljni primeri � na ve�zbama i praktikumima

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 59: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Izvr�savanje programaOrganizacija memorije izvr�snog programaStek segment

Pregled

1 O kursu

2 Bitovski operatori

3 Organizacija izvornog koda

4 Organizacija memorije

Izvr�savanje programa

Organizacija memorije izvr�snog programa

Stek segment

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 60: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Izvr�savanje programaOrganizacija memorije izvr�snog programaStek segment

Izvr�savanje programa

Nakon uspe�snog prevodenja, program se mo�ze izvr�siti

Zahtev za izvr�savanjem programa se izdaje operativnom

sistemu

Program koji treba da bude izvr�sen najpre se u�citava iz spoljne

memorije u radnu memoriju ra�cunara.

U fazi izvr�savanja mogu�ce je da dode do gre�saka koje nije bilo

mogu�ce detektovati u fazi prevodenja i povezivanja.

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 61: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Izvr�savanje programaOrganizacija memorije izvr�snog programaStek segment

Izvr�savanje programa

Pre kona�cne distribucije korisnicima, program se obi�cno

intenzivno testira

Testiranjem se pronalaze gre�ske koje je potrebno ispraviti u

izvornom kodu

U pronala�zenju gre�ske mogu pomo�ci programi koji se nazivaju

debageri

Da bi program mogao da bude analiziran primenom debagera,

on mora biti preveden na poseban na�cin, tako da izvr�sna verzija

sadr�zi i informacije o izvornom k�odu (za gcc to je opcija -g).

Takva verzija izvr�snog programa zove se debag verzija, a

verzija koja se isporu�cuje krajnjem korisniku zove se riliz (engl.

release).

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 62: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Izvr�savanje programaOrganizacija memorije izvr�snog programaStek segment

Organizacija memorije izvr�snog programa

Na�cin organizovanja i kori�s�cenja memorije u fazi izvr�savanja

programa mo�ze se razlikovati od jednog do drugog operativnog

sistema.

Kada se izvr�sni program u�cita u radnu memoriju ra�cunara, biva

mu dodeljena odredena memorija i zapo�cinje njegovo

izvr�savanje.

Dodeljena memorija organizovana je u nekoliko delova kojezovemo segmenti ili zone:

segment k�oda (engl. code segment ili text segment);segment podataka (engl. data segment);stek segment (engl. stack segment);hip segment (engl. heap segment).

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 63: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Izvr�savanje programaOrganizacija memorije izvr�snog programaStek segment

Segmenti u memoriji

Fon Nojmanova arhitektura ra�cunara predvida da se u memoriji

�cuvaju podaci i programi.

Segment k�oda � u ovom segmentu nalazi se s�am izvr�sni k�od

programa, ukoliko se pokrene vi�se instanci jednog programa,

ovaj segment mo�ze da bude zajedni�cki za sve instance (zavisi

od operativnog sistema)

Segment podataka � u ovom segmentu �cuvaju se odredenevrste promenljivih koje su zajedni�cke za ceo program: globalne

promenljive, promenljive koje imaju stati�cki �zivotni vek, kao i

konstantni podaci (naj�ce�s�ce konstantne niske); ukoliko se

pokrene vi�se instanci jednog programa, svaka instanca ima svoj

zaseban segment podataka

Hip segment � u ovom segmentu nalaze se dinami�cki alocirani

podaci

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 64: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Izvr�savanje programaOrganizacija memorije izvr�snog programaStek segment

Stek segment

Stek segment ili programski stek poziva (engl. call stack) �cuva

sve podatke koji karakteri�su izvr�savanje funkcija.

Podaci koji odgovaraju jednoj instanci funkcije organizovani su

u takozvani stek okvir (engl. stack frame).

Stek okvir jedne instance funkcije, izmedu ostalog, sadr�zi:

argumente funkcije;lokalne promenljive (promenljive deklarisane unutar funkcije);medurezultate izra�cunavanja;adresu povratka (koja ukazuje na to odakle treba nastavitiizvr�savanje programa nakon povratka iz funkcije);adresu stek okvira funkcije pozivaoca.

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 65: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Izvr�savanje programaOrganizacija memorije izvr�snog programaStek segment

Stek segment

Veli�cina stek segmenta obi�cno je ograni�cena.

Zbog toga je po�zeljno izbegavati sme�stanje jako velikih

podataka na segment steka.

Primer

int main() { int a[1000000];

int a[1000000]; int main() {

... ...

} }

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 66: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Izvr�savanje programaOrganizacija memorije izvr�snog programaStek segment

Stek segment

Stek poziva je struktura tipa LIFO ("last in - �rst out") �

stek okvir se mo�ze dodati samo na vrh steka i sa steka se mo�ze

ukloniti samo okvir koji je na vrhu

Stek okvir za instancu funkcije se kreira onda kada funkcija

treba da se izvr�si i taj stek okvir se oslobada (preciznije, smatra

se nepostoje�cim) onda kada se zavr�si izvr�savanje funkcije.

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 67: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Izvr�savanje programaOrganizacija memorije izvr�snog programaStek segment

Stek segment

Ako izvr�savanje programa po�cinje izvr�savanjem funkcije main,

prvi stek okvir se kreira za ovu funkciju.

Ako funkcija main poziva neku funkciju f, na vrhu steka, iznad

stek okvira funkcije main, kreira se novi stek okvir za ovu

funkciju.

Ukoliko funkcija f poziva neku tre�cu funkciju, onda �ce za nju

biti kreiran stek okvir na novom vrhu steka.

Kada se zavr�si izvr�savanje funkcije f, onda se vrh steka vra�ca

na prethodno stanje i prostor koji je zauzimao stek okvir za f

se smatra slobodnim (iako on ne�ce biti zaista obrisan).

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 68: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Izvr�savanje programaOrganizacija memorije izvr�snog programaStek segment

Stek segment

Nacrtati stek okvire za izvr�savanje slede�ceg koda:

Primer

int kub(int a) {

return a*a*a;

}

int main() {

int x, y = 3;

x = kub(y);

printf("%d", x);

return 0;

}

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 69: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Izvr�savanje programaOrganizacija memorije izvr�snog programaStek segment

Stek segment

Nacrtati stek okvire za izvr�savanje slede�ceg koda:

Primer

int kub(int a) {

return a*a*a;

}

int suma_kubova_i_uvecanje(int a[], int n) {

int rezultat = 0, i;

for(i=0; i<n; i++)

rezultat += kub(a[i]++);

return rezultat;

}

int main() {

int a[3]={0, 1, 2}, s;

s = suma_kubova_i_uvecanje(a, sizeof(a)/sizeof(int));

printf("Rezultat je %d\n", s);

return 0;

}

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2

Page 70: Programiranje 2 · PDF fileKurs obra duje napredne pojmove proceduralnog programiranja i ... zbirka zadataka senjimasa restampa ... Materijali sa slajdova su uglavnom preuzeti iz knjiga

O kursuBitovski operatori

Organizacija izvornog kodaOrganizacija memorije

Izvr�savanje programaOrganizacija memorije izvr�snog programaStek segment

Literatura

FP-PJ-P1 (od str. 186 do str. 233)

Milena Vujo�sevi�c Jani�ci�c Jelena Graovac Programiranje 2