You are on page 1of 186

UREDNICA Jasmina Alagic RECENZENTI

Edin Hadzikadullic Robert Onodi

ZeUko Juric

Dzavid Osmanbegovic DIZAJN I GRAFICKO UREDENJE


Izedin Sikalo

Fotoarhiv Sarajevo Publishinga


SLOG I PRI)ELOM
DTP studio Sarajevo Publishinga

LEKTURA I KOREKTURA
Lektorsko~korektorska

sluzba Sarajevo Publishinga

Sarajevo-Publishing d.d. Sarajevo, 2003.

Nijedan dio ave knjige ne smije se umnozavati, fotokopirati niH na bilo koji naCin reprodudrati bez izdavacevog pismenog odobrenja. Federalno ministarstvo obrazovanja i nauke na osnovu odluke Vijeca za izradu i pracenje nastavnih planova i programa i odabir udibenika od 11. 06. 2003. godine, rjesenjem broj 03-38-2035/03~7S od 1. 07. 2003. odobrilo fe ovaj udibenik za upotrebu,

INFORMATIKA
ZA

1, 2, I 3. RAZRED GIMNAZlJE

Stampa: "GRAFOrrSAK" Grude ~ Bosna i Hercegovina

eIP - Katalogizacija u publikaeiji Naeionalna i univerzitetska biblioteka Bosne i Hereegovine, Sarajevo


004,2/ .4 (075 3)

JURIC:, Zeljko Informatika za 1, 2, :i 3. razred gimnazije / Z,eljko ,Turic, - Sarajevo: Sarajevo Publishing, 2003. 372 St1'. : i1ustr. ; 26 em

ISBN 9958-21-208-0 COBISS . Bfl-ID 12218118

SARAJEVO PUBLISHING, Sarajevo, 2005.

PREDGOVOR
Ovaj udtbenik zamisljen je kao integralni udtbenik koji se moze koristiti u svim vrstama i tipovima srednjih skala j u svim razredima u kojima se slusa predmet "Informatika". Odmah na pocetku neophodno je napomenuti da je ovakav ci!j veoma tesko postiCi, s obzirom da razBeiti profili srednjih sl<ola imaju razliCite nastavne planove i programe za ovaj predmet, sa razlititim brojem casova sedmicno predvidenih za nastavu informatike, pa cak i sa razli6itim brojem razreda u kojima se ovaj predmet slusa. Pose ban problem predstavlja i decentralizirani sistem obrazovanja, koji dopusta da razli6iti kantoni unutar Federacije Sosne i Hercegovine imaju razlitite nastavne planove i programe za iste predmete. Izlaz iz ave situacije naden je taka sto je udzbenik pravljen prema najobuhvatni~ jem planu j programu koji je u upotrebi na podrucju Federacije, a to je Federalni nastavni plan i program za gimnazije matematicko~informatickog usmjerenja. Prednost ovog nastavnog plana i programa je u tome sto on u sabi sadrzi sve druge nastavne planove i programe po kojima se trenutno odvija nastava u Federaciji. Stoga se udzbenik maze koristiti na cijelom podrucju Federacije. Autor ovog udzbenika je duboko svjesan i nedostataka ovakvog rjesenja. Naime, mnoge skale koriste znatno skromnije nastavne planove i programe, po kojima se inrormatika izucava sa po jednim iii eventualno dva, easa u prvom iii drugom razredu (zapravo, u trenutku pisanja ovog udzbenika, Federalni nastavni plan i program nije u cjelini bio primjenjivan nit! u jednoj srednjoj skoli). Ovaj prividni nedostatak lako se moze ukloniti uz pom06 nastavnika, ~oji 6e sami procijeniti koje se nastavne jedinice iz udzbenika trebaju obradivati, u skladu sa aktuelnim nastavnim planom i programom koji se koristi u kohkretnoj skoli. Postojanje prividno "suvisnih" nastavnih cjelina i jedinica ns treba shvatiti kao nedostatak, vee kao dopunski materijaJ koji zainteresiranim i nadarenim ucenicima maze sluziti za proslrivanje i nadopunjavanje siecenog znanja.

Neophodno je napornenuti da je Federalni nastavni plan i program, po kojem je raden ovaj udzbenfk:, bez obzira na njegovu savremenost i neosporan kvalitet, izuzetno obiman i zahtjevan, i da ga je veoma_tesko realizirati u potpunosti, pogotovo u tehnieki slabije opremljenim skoiama (5tO je, vjerovatno, bio j osnovni razlog za njegovo nekoristenje). 8toga na nastavnicima kojl realiziraju nastavu iz ovog predmeta leii odgovornost da procijene za koje nastavne jedinice postoji objektiv~ na mogu6nost realizacije u konkretnoj 5koli. Sre60m, udlbenik je take koncipiran da se gotovo sve nastavne jedinice mogu bez problema realizirati barem teoretski, cak i u slueaju kada ne posteje uvjeti za njihovu prakticnu realizaciju (autor se iskreno nada da 6e se situacija sa tehnickorn opremIjenosGu skola qrasticno promijeniti nabolje u bliskoj buducnosti). Nastavnici takoder moraju i da izvrS~ procjenu koje na.stavne jedinice odgovaraju intelektualnoj sposobnostl ucenika koji 6e koristiti ~dzbenik, $ obzlrom da postoji odreCieni brej nastavnih jedinica koje su dosta teske i nisu pogodne npr. za ucenike srednjih strucnih skola, u kojima je informatika sporedan predmet (mada treba istaCi da je danas, u eri racunarskih tehnologija, informatika, cak i tame gdje spada u sporedne predmete, sigurno jedan od najvaznijih sporednil1 predmeta). Teze nastavne jed in ice, kao s10 su npr. reladone baze podataka (sa uvodom u SOL), mogu se even.tualno ostaviti za obradu na informatickim sekci~ jama. Na taj nacin, udtbenik mote da pasluzi i kao prlrucnlk za rad na informatiCkim sekcijama. To se PCl~b!lo odnosl na skole u kojima se programlranje obraduje samo u okvlru sekclja, a ne unutar r~dovne nastave. Udibenik je- podijeljen u tri cjeline (poglavlja), kOje su po Federalnom nastavnom planu i programu predvidene respektivno Z3 izueavanje u prvom, drugom i trecem razredu Gimnazije, U drugim '<:skolama, raspodjela ovih cjelina po razredima moze biti i drugaCija, 5to je jedan od razloga zbog 6ega je _udzbenik raden kao integralni udzbenlk za sve razrede, Prva cjelina, nazvana "Opca infol",matika""obraduje opee pojmove iz informacionih tehnologlja, druga cjelina, nazvana "Korisnicka informatika", posmatra informatiku sa aspekta korisnika racunara, dok je freta cjelina, nazvana -"{)snove programiranj;i', posvecena osnovama programiranja u programskom jezilw Pascal. Svaka cjeHna je dalje hijerarhijski podijeljena na niz podpog!avlja, koja su numerirana na sistematican naein, 8tO olaksava snalazenje u udzbeniku. Materija sve trl cjeline se dosta prepli6e, taka da se na mnogim mjest!ma unutar recimo drugs cjellne, udzbenik poziva na dljelove materije
5

obradene u prvoj cje!ini. Ovo ne bl bilo moguce da je istl materljal realizlran kao tfi neovisne cjeline u tri razlicita udzbenika. Na ova] nacin, ucenic! mogu lakse steei cjelokupnu sliku 0 informatici kao multidisciplinarnoj naueL Poznato je da je informatika nauka cije se vjestine rnogu steei iskljucivo kroz praktiean rad. Stoga je veOrna vazno naglasltl da oval udzbenik ni u korn slueaiu nE! moze nadomjestiii praktiean rad na racunaru. lz istih razloga, ovaj udtbenik nije zamisljen da sluzi kao priruenik za rad sa konkretnim operativnim sistemima (poput Windowsa), niti za rad sa konkretnim aplikaeijama (poput Worda i Exeela), jer se vjeStine rada sa ovim softverskim sistemima najbolje stieu kroz konkretan rad na racunaru i uz pornoe nastavnika. Bez obzira na to, u udzbeniku su dosta temeljito obradeni osnovni koncepti tekst procesora Word i programa za tabelarne prora6une Excel, koji predstavljaju dvije najeesee koristene racunarske ap!ikacije u danasnje vrijeme. Pri tome je akeenat stavljen na manje poznate osobine ovih programa (pogotovo programa Exce~, kOje se ne mogu tako laka savladati sarno kroz praktican rad. Ovdje cemo ponovo naglasiti da nastavne jediniee kOje obraduju konkretne raeunarske aplikacije (pretetno jedinice iz drugog dijela udzbenika) oe treba ni u korn slucaju uciti napamet, vee iskljucivo kroz praklican rad na racunaru. Pored toga, treba istaei da je osnovna vrijednost ovog udtbenika u tome SIO ucenicima nudi teoretske podloge koje predstavljaju "vezivno tkivo" izmedu prividno nepovezanih discipllna kojima S8 bay! informatika, a koje S8 ne mogu steei kraz praktican fad na ra6unaru. Naime, na nasim prostorima je primijetan braj samozvanih kompjuterskih "slrucnjaka" koji veoma dobro znaju kako nesto uraditi na racunaru, a bez ikakve predstave zasto se to radi bas na takav naGin. Takvi "strucnjaci" lipieno imaju probleme kada se god susretnu sa problemima sa kojima se nisu prije suoci!i. Gilj ovog udtbenika je, izmedu ostalog, i da umanji ovakve probleme tako sto te prutiti ueenicima solidne teoretske osnove na kojima se bazira informatika kao nauka, a ne samo kao vjestina. Bitno je napomenuti i da Je udtbenik jezick! pri!agoden tako da se, bez veCih problema, maze koristiti na eitavom podrucju,Federacije. Da bi se postigao ova] cilj, u udtbeniku nisu upotrebljavani termini koji su posebno specificni za govor nekog od tri konstitutivna naroda na podrucju Federacije, nego je akcenat stavljen na upotrebu rijeGi koje su manje Hi vise univerzalne. Autor ne vidi nikakvu prepreku da se udzbenik, po telji nastavnika, mote koristiti i kao dopunska literatura na podrucju RepubHke Srpske, bez obzira sto je registriran za upottBbu na podrucju Federacije. Sadrzaj ovog udzbenika je takav da se moze koristi1i kao dopunski udtbenik ne samo u srednjim sko!ama, nego i na nitim godinama fakulteta na Kojima se izucava materija prezentirana u ovom udtbeniku, tim prije sto je evidentan nedostatak literature Koja na adekvatan naCin prezentira ovu materiju. Ovdje narocito mislimo na predmete "Osnovi racunarstva I programiranja" koji se izueava na I godini Elektrotehnickog fakulteta u Sarajevu, zatim "Osnovi kompjuterskih sistema' j "Uvod u racunare' koji se izucavaju na Prirodno-matematickom faku/letu u Sarajevu, kao i na predmete "Iniormatika t', "Informatika 2' i "Informatika 3' koji se izueavaju oa Pedagoskom fakultetu u Zenici. Autor udzbenika teli da Izrazi posebnu zahvalnost Lejli Ljubovi6, studentici Odsjeka za Racunarstvo i informatiku Elektrotehnickog Jakulteta u Sarajevu, za veliku pomoe u pripremi ovag 'materijala, korekciju uacenih propusta, kao i za veoma korisne sugestlje koje su bltno utjecale na poboljsanje kvaliteta udtbenika. Autor se takoder duboko zahvaljuje Dia,vldu' Dautbegovicu, asis~ tentu na Pedagoskom fakultetu u Zeniei, na mnogobrojnim, saVi_etlma koji- su 'narocitb unaprijedili dijelove udtbenika koji su posveeeni relacionim bazama -podataka kao Cprogramiranju u -programskam jeziku Pascal. Na kraju, autor se zahvaljuje i svim osaba'ma koje ovdje,nisu. spGimenute: a koje su na direktan iii indirektan naCin doprinije!i da ovaj udzbenik ugl~_Qa syi,?HQst. dana'o:oyakvorr, obliku.

1. OPCA INFORMATIKA
1.1 UVOI) U INFORMATIKU KAO NAUKU
1.1.1 Sia je informalika?
U danasnjem svakodnevnom tivotu neprestano se susreeemo sa pojmom informatike. Cesto mozemo euti kako "tivimo u eri informatlcke revolucije"-, i sticne fraze. Medutim, postavimo Ii prosjecnom sagovorniku pitanje sla je zapravo informatika, dobi6emo veoma saro!ike i najceS6e veoma neprecizne adgovore. Nairne, danas se veoma cesto termini informatika i ra6unarstvo paistovjecuju, mada izmedu njih pastoje izvjesne razlike. Informatika je zapravo nastala neovisno ad samih raeunara kao nauka koja se bavi savremenim nacinima prikupljanja, memoriranja i obrade informaci~ ja. Interesantno je, medutim, da do danasnjeg dana ns postoji opteprihva6eni medunarodni konsen~ zus a tome sta je zapravo informatika. Na nasim prostorima najvise Se susrete sljedeca definicija:
lnformatilw. je nauka koja se bal'i proucal'anjem i razvojem racullara kao _ saFremenih sreelstam za obradll inJormacija, te primjcnom rael/nara u mznim oblasiima ljttdske djelatllosti.

8itno je naglasiti da ova definiclja nije opeeprihvacena definicija informatlke (kao, uostalom, nl jedna druga definiclja). Na primjer, u Sjedinjenim Ameri6kim Drzavama pravi se stroga razlika izmedu raeunarstva kao nauke koja se bavi racunarom kao slozenim tehnickim uredajem, kao i naCinom njegove konstrukcije i osnovnim principima rada, i intormalike kao nauke koja se bavi prikupljanjem, prenosenjem, obradom i prezentaciiom informacija, pri cemu se racunar posmatra iskljuCivo kao etrkasno sredstvo za obradu informacija. Bez obzira na to koju definiciju informatike prihvatimo, moramo biti svjesni da je daMs informatika jedna kompleksna i multidisciplinarna nauka, koja ima mnostvo dodirnih taeaka kako sa prlrodnim i tehnickim, tako i sa drustvenim naukama. Tako, moderna informatika lma dodirnih tacaka sa matematikom, fizikom, e!ektrotehnikom, automatikom i kibernetikom sa jedne strano, ali i sa ekonomijom, dokumentaristikom, iurnalistikom itd. sa druge strane, Danas, informatika ima dodirnih taeaka sa gotovo svim naukama, cak i sa naukama koje bi malo 1(0 mogao povezati sa informatikom (npr. medidnom, filozofijom, psihologijom, soclologijom, ltd.).

1.1.2 Podaci i informacije


Rijeci informacija i podatak6esto se susrecu u svakodnevnom govoru. Medutim, nije nimaio lako precizno definirati ove pojmove, vjerovatno upravo zbog njihove elementarnosti i sveprisutnosti (u nauei je oduvijek bilo poznato da je najteze definirati upravo elementarne pojmove). Jasno-je, di3: je._ besmisleno govorit] 0 informatici kao nauei 0 obradi informacija ukoliko nismo u stanju definirati:poj~ move kao SiD su informacija i podatak. Mada mnogi poistovjecuju pojam informacije i podatka, izmedu njih postoji znacajna razHka. Definirajmo prvo pojam podatka, kao elementarniji pojam:
Podatakje bilo kakar zapis (l!- bilo kahom oblikll) u /wjemje zabiljeietl neki dogaaaj, poja;;a, lilljcllica iii z.apai.anj( iz okoline,

Sarajevo, Juli 2003.

Autor

Podaci mogu biti zapisanl na razne nacine. Na primjer, bilo kakav tekst ill sllka predstayljaju podatl<e, mada zapisane na razlieite nacine. Stoga, podatke moterno podijeliti- na tekstuafne,' brojeane, znakovne, sli~ovne, zvuene, ltd.
6

Bltno je primijetitl da lsti podatak moze imati razli6ita zna6enja za razlitite primaoce (subjekte). Na primjer, lstu umjetnicku sliku dva posmatraca mogu protumaCftl na sasvim razlicite nacine. Recenicu zapisanu na nekom stranom jeziku razlicito dozivljava onai ko razumije taj jezik i onaj ko ga ne razumije. cak i obican besmisleni niz znakova, poput XYZZY predstavlja podatak. Neko bi mogao re6i da taj podatak ne predstavlja ni5ta, medutim takav zakljucak je preuranjen, jer ne mozemo znati da se mozda ne radi 0 nekoj sifrovanoj poruci. Na primjer, upravo besmislena rijec XYZZY ima znacenje kao jedna od magicnih rijedi u igrt "Colosal Cave". tz navedenog primjera vidimo cia 0 znacenju nekog podatka samag za sebe ne mozema govoriti. Mogu6e je govoriti jadino 0 tome kakvo znacenje oeki podatak predstavlja nekom primaocu. Podaci mogu postojatl neovisno od toga da Ii se koriste iii ne. Na primjer, bilo koja knjiga sadrzi ogromnu kolicinu podataka, neovisno od toga da Ii ce je neka 6itati iii ne. Podaci postaju informacije tek ukoliko se koriste, ukoliko podstfcu primaoca na neku akciju. Podaci koji se ne korlste nisu informaeije. -Isto tako, podaei koje primaoe ne razumije nisu informacije. lsti podatak moze za jednog primaoca da predstavlja intormaciju; a za drugoga ne. Na primjer, ma kakva knjiga za nepismenog covjeka ne predstavlja nikakvu informaciju, za razliku ad govorne poruke (koja opet ne predstavlja nikakvu informaclju gluham cavjeku). cak i u slucaju da neki podatak predstavlja infarmaciju za dva razlicita primaoca, kolicina prenesene informacije ne mora biti isia. Na primjer, vijest objavljena na televiziji da na Bjelasnici pada snijeg predstavlja informaciju svakome ko je cuo (i razumio) ovu vijest. Medutim, sigurno.da ova vijest nudi znatno ve6u kolicinu informacija osobi kOja je planirala da se uputi na Bjelasnicu na skijanje ne90 nekome ko je planirao da ostane kod ku6e. Kao ni za samu informatiku kao nauku, ne postoji nl op6eprihva6ena definiclja iniormacije. 8ve definicije koje su u upotrebi priHcno su teske i apstraktne. Ipak, izlozeni primjeri pomazu da se shvati jedna od najvise koristenih filozofskih definicija informacije koju je predlozio ruski filozof Arkadij Dmitrijevic UrsuJ, a kOja glasi:

Da bi infarmacija uopce postojala, neophodno je da postoji i nosflac informacije. Veoma je tesko definirati Sta Stl tacno nosioci informaclja. 8pomenimo samo da pastoje razni nosioci informaelja, poput zivih blea, knjiga, sredstava javnog informiranja (novina, radija, televizije); ltd. Biolozl 6e reci da su genl takoder veoma vazn! n~sioci informacija. Na posve elementarnom nivou, nosiocima informacije mazemo smatrati 'svjetlost, zvuk, miris, itd. 8matra se da nikakva razmjena informacija nije mvguca bez razmjene energije, tako da su danas rasprostranjena j materijalisti6ka shvatanja prema kojima je informacija sarno jedan od v]dova'energije, odnosno treCi vid postoj?nja materije (pored mase i energije), Za efikasnu upotrebu informacija, ileophodno je objedinjavati informacije iz razlicitih izvora, koji su cesto razbacani kako prostorno, tako i vremenski. Ovo objedinjavanje nazivamo infegracija Informacija. Ovaj pojam prvi put je upotrijebljen 1945. godine u Clanku "As We May Think" (autor clanka je Vannevar Bush, poznat kao tvorac prvog analognog racunara) u kOjo] se spominje izmisljena Memex masina ,koja omogucava putovanje kroz izmisljeni "prostor informacija" (pedeset godina kasnije, nesto sasvim slicno tome.desava se I<ada "surfamo" po Internetu, koji je pastao "prostor informacija" danasnjeg vremena). Opcenito, pod integracijom informacija podrazumijevamo mogu6nost da na jednom mjestu dobijemo aktuelne, potpune i smislene informacije IZ raznovrsnih izvora 0 onome sta nas zanima. Prednost integracije informacija je ocigledna, jer smatra se da danas oko 70% ukupnih troskova za dobavljanje informacija odlazi na potragu za pravim informacijama. Stoga je iedan od osnovnih zadataka razvoja informacfonih tehnologija upravo razvaj efikasnih sistema za integraciju informacija.

1.1.3 Kolicina informacije i entropija


Sasvim je jasno da svaka informacija nije podjednako vrijedna, Zapravo, informacija 0 nekom dagadaju (uz pretpostavku da su ispunjeni uvjeti ispravnosti, potpunosti i blagovremenosti) je tim vrednlja sto je dogadaj 0 !<ojem nas ana informira nevjerovatniji (iii, kako bi novinari rekl1, senzacionalniji). 8toga, u novinarstvu vrijedi pravilo da "nije vijest kada pas ugrize covjeka, nego je vijest kada covjek ugrize psa". Do znacajnog napretka u razvoju teorije informacija dove!a je spoznaja da se ko!lcina informacije moze precizno mjeriti (za koju ie najvise zasluzan Claude Shannon, osnivac matematicke teorije informacija). Od davnina je poznato da se svaka informacija moze prenijeti samo putem odgovora tipa DA iii NE. Tako su, jednom prilikom, stari Rimljani zarobHl neprijateljskog vojnika koji je bio nijem, tako da nije mogao odgovarati na postavljena pitanja. Medutim, Rimljani su uspjell saznati sve informacije koje su ih zanimale, postavljaju6i samo pitanja DAINE tipa, na koje je zarobljelli vojnik odgovarao klimanjem glave. 8toga je usvojeno da se kao mjera za kolicinu informacije definira najN manji broj pitanja DNNE tipa koje }e potrebno postaviti da bi se pnjemom odgovora na ta pitanja postigao istl' efekat kao i prijemom posmatrane fnformacije. Jedinica za mjerenje kolicine informaclje naziva se bit (ista jedinlea se koristi i za mjerenje koll6ine memorije). Jedan bit je ona kolicina . inf6rmacije koja se moze dobiti odgovorom na jedno pitanje DNNE tipa. Vee sma napomenu!i da je koliCina informacije 0 nekom dogadaju u-vezi sa vjerovatnocom samog- dogadaja. Osnovna formula teorije informacija tvrdi da su ko!icina informacije (oznaCimo je sa i)-o nekam-dogadaju i vjerovatn06a v 18tOg dogadaja povezani formulom lIv::: Mada na ovom rrij'estu ne mozemo precizno definirati sta se tacno podrazumijeva pod vjerovatnocom nekog dogadaja, recimo samo ta da je svakom dogadaju moguee pridruziti broj v iz opsega od,Q d<? 1, koji nazivamo njegova. vjerovatnoca, koji je tim veGi sto je veta mogucnost da se dogadaj dogodi. Ukoliko neka situacija moze dovesti do N razliCitih j jednako vjerovatnih ishoda, tada je vjerovatnoca svakog ishoda 11N. Na primjer, vjerovatnoca da pri bacanju igrace kocke dobijemo peticu iznosi 1/6, jer j'e petica jedan od sest jednako vjerovatnih ishoda bacanja igrace kacl<e.

brjormacija predstarTja preslikaranje stanjajedllog subjekta (izvora il1formac?je) u .vtanje drugog subje/i:ta (primaoca injormacijcj, pri ecm!! m'o prcslikarallje maze hili ra::;licito za razfiCite suMckte.
Informacije je mogu6e vrednovati na razne nacine. Da bi ad informacije imali koristi, ana mora biti ispravna, potpuna i bfagovremena. Znacaj ispravnosti i potpunostl informacije je ocigledan. ZnMai blagovremenosti najbolje mozemo uvldjeti iz cinjenice da ni najpotpunija i najtacnija informcicija nije ni od kakve koristi uko!iko nije primljena u pravo vrijeme (tj. ukoliko je primljena sa zakasnjenjem). Kao sto je tesko definirati pojam informacije, tako je tesko dati i zadovo!javaju6u k!asifikaciju informacija. Ipak, ve6ina teoret!cari;'l slaze se da postoje tri osnovne vr~te informacija: cfnjenice, miS/jenja i vjerovanja. Ginjenice su informacije za clju se vjerodostojnost smatra da nije sporna (na primjer, "Zemlja se okre6e oko 8unca."). MiSljenja su informacije za kOje postoje konkretni pokaza~ te1j] koji ukazuju na njihovu vjerodostojnost, mada se mnogi subjekti neee sa njima s!oziti (na primjer, "Mozariova muzika je kvalitetna"). Vjerovanja su informacije koje izvjesni subjekti prihvataju. kao_ tacne, mada za njih ne postojl nikakav konkretan pokazatelj koji moze potvrditi njlhovu vjerodos~

tOjnost (na primjer, "Bog postoji.").


Najprostlje informacije, koje mozemo nazvati elementarne fnformacije, sastoje se od svega tTl pokazatelja: poj'ave, svojstva (iIi atributa) i vrijednosti. Na primjer, ako kazamo "Trava je zelena.", "trava" je pojava, "boja" je svojstvo, a "zelena" ie vrijednost. Slozene informacije gradimo grupiranjem ._ elementarnih informacija. Uz pokazatelje pojave, svojstva i vrijednosti potrebno je dodati i taldor vre mens, koji)e neophodan za obezbjedivanje blagovremenosti informad)e. Na primjer, trava na nekgi livadi maze danas biti zuta Oer se sasusila od jakog sunca), lako je bila zelena prije ~O dana.
a

t.

lIustrirajmo avu relaciju na jednam primjeru. Zamislimo da je asaba A sakrila kuglicu u jednu od 16 neprovidnih kutija, i da asoba B treba da pagodi u kojoj kutiji se nalazi kug!ica,'Osoba B ima pravo da postavlja pitanja osobi A na koje osoba A mote odgovoriti sa da iii ne, U ovom slucaju vjerovat~ no(;a da osoba B nasumice pogodi pravu kutiju lznosi v = 1/16. Kako je 1fv = 16 = 2\ sHjedi da infor~ madja 0 !okaciji kuglice vrijedU = 4 bita, i da osoba B moze pomoeu 4-pltanja da/ne tipa tacno saz~ naB gdje se kuglica nalazi. Pokaiimo da je to zaista taeno. Pretpostavimo da su kutije rasporedene kao na sljedecoj slici (mada je slicnu strategiju moguce razviti za ma kakav raspored kutija):

i~formacija, obieno se uporedo vrsi i postupak uskJaditavanja (memoriranja) informacij'a. 8toga, qelokupan proces obrade informacija mozemo shematski prikazati kao na sljedeeoj slici:

00000000 00000000
Kutija u kojoj se nalazi kuglica posebno je oznacena na sllei (naravno, asoba B to ne vidi). Kaka Dsoba B mote naCi kuglicu pomoGu 4 DAiNE pitanja? Strategija se zasniva na izboru takvih pitanja da nakon odgovora na svako od njih mazemo odbaciti polovieu moguenosti. Na primjer, osoba B mote prvo pilati osobu A da Ii se kuglica nalazi u donjem redu kutija. Nakon sto dobije odgovor, u nasem primjeru NE, osoba 8 odmah maze eliminirati razmatranje donjeg reda kutija, 6ime je prepo!ovljen broj mogucnosti i sveden sa 16 na 8. Sljedece pitanje bi moglo biti da Ii se kugliea nalazi u lijevoj polovinl gornjeg reda. Nakan dobijanja odgovora (OA u nasem primjeru), osoba B moze ellrninirati razmatran~ je kutija u desnoj polovini gomjeg reda, Cime je broj mogucnosti sveden na 4. Sada nije tesko zakljuciti kOja bl trebala biti preosta!a pitanja, pomocu kojih,bismo mogli tacno locirati trazenu kuglicu. U prethodnom razmatranju govorili smo 0 koliCini informacije koja se dobija 0 jednom dogadaju. U praksi cesee imamo situaciju da imamo skupinu dogadaja ad kojih se treba dogoditi neki od njih, ali mi ne znamo koji. U tom slueaju, uvodi se velicina nazvana entraplJ'a koja se definira kao zbir proizvoda vjerovatnoce svakog od dogadaja i ko1i6ine informaCije 0 tom dogadaju (tJ. v1i1+v2i2+"'). Entropija je zapravo srednja koli6ina informaclJe za skupinu dogadaja. U slucaju da tacno znamo koji dogadaj ce se dogoditi entropija je jednaka nuH, jer svi dogadaji osim jednog imaju vjerovatnocu v :::: 0 (tj. sigurno se neee desitl), a onaj dogadaj koji 6e Se sigurno desiti ne nasi nikakvu informaci~ ju, pa je za njega i:::: O. Moze se pokazati da je entropija najveca u slucaju kada su svi dogadaji jed~ nako vjerovatni, tj. kada je neizvjesnost ishoda najveca. U tom smis!u, entropija je mjera neizvjesnosti ishoda za skupinu dogadaja. Kako nam je upravo informacija tim potrebnija sto je neizvjesnost veda, to je entropija takoder i mjerllo kallGine informacije koju mozemo dobiti 0 ishodu za skupinu dogadaja. Entropija se takoder smatra i mjerom nereda (iii haosa), jer je neizvjesnost najveea upra~ vo u haoticnim situacijama, dok u stanju potpunog reda nema nikakve neizvjesnosti (tj. entropija je nula), U teoriji sistema se pokazuje da entropija rna kakvog sistema (tj. skupa objekata koji ostvaruju isti cilD prepustenog samog sebi mote samo da raste, odnosno svaki sistem prepusten samom sebi tezi stanju potpunog haosa (npr. pogledajte na sta 6e Hciti vasa soba ukoliko ie: 15 dana ne odrza . vate). Entropija se ne moze smanjivati spontano, nego samo Qrganiziranim. djelovanjem, u kOje je neophodno ulagati energiju. Stoga, entropija ima narocitu primjenu u fiziei, posebno u termodinam~ iei, gdje se koristi kao mjera kolitine energije (obicno toplotne)' koja se r1e mo.te korlsno iskoristiti (~. pretvoriti u koristan rad). . .

MEMORIRANJE INFORMACIJA
Mada obrada informacija djeluje kao krajnje sloten i apstraktan proces, on je sastavni dio cak i uobicajenih Ijudskih aktivnosti. Na primjer, ucenik dok Gita ovaj udzbenik, vrsi obradu informacija. Zaista, on prikuplja podatke iz ovog udtbenika, anafizira ih, prevodi u njemu prihvatljiv oblik, i ponranjuje (u svom mozgu) za kasniju upotrebu. U ovom slucaju ulogu obradivaca Informacija (iii informacionog procesora) preuzima covjek. Obrada informacija u kojoj covjek preuzima ulogu informacionog procesora naziva se rucna (manualna, Ijudska) obrada informacija, Ljudska obrada informacija ukljucuje Ijudsku aktivnost uz upotrebu jednostavnijih pomagala poput papira, olovke, biljezniea, arhiva, itd, U rucnu obradu svrstava se i obrada uz pomoe jednos~ tavnijih mehanickih iii elektronickih pomagala, poput masina za pisanje, dtepnih kalkulatora itd. Drugim rijecima, svaka neautomatizirana obrada informacija, eak i ukoliko ukljucuje savremena pomagala, svrstava se u Ijudsku (rucnu) obradu. Ovaj vid obrade pogodan je za pojedince i organi~ zacije u slucajevima kada je kolicina informacija kOje se obraduju mala. Rezultatl Ijudske obrade dobijaju se u jednostavnom i eQvjeku pristupacnom obliku pisanih dokumenata, pa js lako izvrsiti eventua!ne ispravke i dopune. Pored toga, rucna obrada podataka je veoma jeftina, ali samo u slutaju relativno male kolicine podataka koji se obraduju. Kako se potrebe za informadjama kao i kolicina ulaznih podataka neprestano poveeavaju, ruena obrada informadja vise ne moze da zadovolji. RUena abrada informacija ne moze da abradi veliku ko!iCinu informadja, sp~ra je i podlozna greskama, a pored toga 6esto se oslanja na krajnje mono~ tone i dosadne postupke. Tako se jav!ja potreba za elektronickom obradom informacija. Pod elektronickom obradom informacija smatramo upotrebu racunara kao sredstva za automatsku obradu popataka. Oakle, u njoj ufogu informacionog procesora preuzima racunar. U skladu s tim, motemo dati opcenftu definiciju sta se uopce podrazurnijeva pod pOjmom racunar.
Racuuar je sl'aki uredaj kOJi je sposoball da prima lJodatke od korisuika, da. ih Illemorira i obrailuje prema zadanilllupulama (prugramuj i da saopd korisniku rezuliatc obrade.

Kako racunar mote automatski izvrsavati programe sacinjene od niza uputa (instrukcija), Ijudska intervencija nije vise potrebna u procesu obrade. Zbog toga se e!ektronicka obrada'PQdata~ ka jos naziva i 8utomatska abrada podataka. Osnovne karakieristike eiekironicke. obrade podata:ka su sljede6e: .

1.1.4 Obrada informaciJa .


Pod obradom podataka mazemo smatrati skup 9.ktivnostL koje pre~5a~e podatke u oblik koji je upotrebljiv krajnjem korisniku {npr. covjeku iii grupi Ijudi}: ObiadiJ f(lformacijt! mozemo poistovjeti~ ti sa obradom podataka, jer ono sto je obieni podatak.za jecrri0g posr'ry.atracaLmoze biti informacija za drugog posmatraca. Informacije koje obradujemo nazlvamo ulazrie informacije; dok iriformadje koje dobijamo kao rezultat obrade nazivamo izJazne informacije: .Zajedno sa 'postupkom obrade
10

Brzina - Danasnji racunari su u stanju da izvrse i na stotine miliona instrukcija.u sekundi: .takQ da za razumno vrijeme mogu da odrade pos!ove za koje bi timu strucnjaka uz rucnu obradu bio potreban citav Ijudski vijek.
Repetitivnost - Racunari su u stanju da bez ikakvog zamora i dosade (te osbbine -SQ svojstvene iskljucivo tivim bieima, a posebno Ijudima) obavljaju iste operadje milionima puta. 8" druge strane covjek koji mora da obavi isti postupak vise desetaka puta pocinje."da gubi kon~', centraciju i greske u obradi postaju sve tesee.
.11

Tacnost - Raeunar nikada nece napravitl gresku u obradl podataka, pod uvjetom da su ulazni podaci taeni, 1daje program po kojem S8 vrSi obrada tacan. cesto se u svakodnevnom govoru euje fraza "Pogrljesio raeunar.". Medutim, traba biti jasno da nije pogrijesio racunar, nego programer koji je pisao program za obradu ill, jos vjerovatnije, operater koji je unosio podatke u racunaL Osnovni prindp obrade podataka nazvan GIGO princip (garbage In, .Garbage Qut - Smece usia, smece izaslo) tvrdi da ne motema ocekivati korektne rezultate obrade ukoliko ulazni podad nisu korektnL
Pouzdanost - Mada su racunari, kaa i svaki drugi elektronicki uredaji, podlozni kvarovima, kvarovi na danasnjim racunarima su relativno rijetki, i'vrijeme potrebno za popravku u slueaju kvara tipicno je kratko (ako zanemarimo Ijudski faktor, koji mote dovesti do usporenja).
Ekonomicnost - Zahvaljujuci danasnjim niskim Gijenama racunara, elektroni6ka obrada podataka postaje isplativija od rucne abrade cak I za relativno malu kolicinu podataka,

Pri 8n~/ogno! obradi po~ata~~ k?ris_t8"se ?dgovar~.i,:!6.i m?!ematski metodi, ka9. Leksperimentalna p~o~j.e~~IJ~nJa, ~. t9m.,G'!j~ se.p.e~to k.ot1stru,1.r~j.~ mo~eli po~ocu .~?,~p6nenti koje po obliku, s~.~UI~ttl_~1 I oso~,m.arl1a.,.()~1.6.n~,,~.IS~ ~11~.ne, ,_a!~ ,su .pv~ .tll~t.ernatickim karakteristlkama iste kaoj odgo~ \,araJug!J~I.~~entl ~~~.arn()g o~jekt~ n~d ,kOjlm vrsl!ll~ obra'du: ova:kar.po$tupak. qbrade enazivamo analogna !Jlmulacija, a uredaj za izvadenje opisanog postupka naziva se anal0!lni ra~u"!?r Glavne komponante elektronickog analognog racunara su uredaji nazvanj operaciQ11.i".p(jjacavacf. Analogni r~tun.~ri su pri.licn~ nep~ecizni, jer njihova ta6nost izuzetno avisi 0 ta6nosti upotrijebffenih kompanentl kOjlma se simuhra obJekat nad kojim vrsimo obradu. _ ~ri digitalnoj o?radi podataka svi podad koji se obraduju pretvaraju se u brojeve, taka da se su~tlna obr~?e svodl na r~znov:sna izra6unavanja~ Tako, na primjer, dig;tafni ra~unarprima podatke u vldu speclJalno uredenlh brojeva, abavlja sa njima odredeni niz izracunavanja, i na kraju formira ~ove brojev~ kao. rezultat iz~rsene abrade. Da bi grada digitalnog racunara bila sto jednostavnija, sva 1~:a6una~a.~Ja kOja .s.e o~av~aju svode se iskljucivo na najelementarnije operacije, 0 cemu cerna kasn!j~ detaljnl)8 gov~nh: Pn tome treba napomenuti da gotovo svaki digitalni racunar posJeduje i dijelave kO)1 su P? svom pnn~lpu rad.~ zapravo analogni (na primjer, ve6ina u!aznih i izlaznih uredaja racunara su pretezno analognl uredaJI). !pak, glavnina digitalnih racunara je digitalne prirode.

Racunar je superiomiji od 60vjeka u brzini, jasnoCi, preciznoscu i kOlicini memoriranih informacija. lpak, racunar ima jednu sustinsku manu u odnosu na covjeka - tesko se sna/azi u nepredvidenim situacljama, jer ne posjeduje inteflgenciju. Zbog toga, neophodno je razluCiti kada treba, a kada ne treba koristiti ra6unare. f3itno je shvatiti da racunar treba bit! u slutbi 6ovjeka, a ne obrnuto. Broj informacija se svakodnevno povecava, tako da smo naprosto zasuti raznovrsnim informacijania koje pristizu putem raznih otvorenih medija, a narocito putem Interneta. Time sve vise postaje znacajno dobivanje kvaHtetnih informacija u 510 kracem vremenskom periodu, kao i njihova brza obrada. Stoga informatika, kao nauka koja proucava metode i sredstva obrade informacija vatnih za covjeka postaje sve znacajnija, a racunar kao programabilno sredstvo koje moze automatski da prikuplja, obraduje, prenosi i uskladistava podatke i informacije, postaje sve neophodnije sredstvo u mnogim oblastima Ijudske djelatnosti.

Da~as kada ~~z~mo. ~a6unar, gotovo iskljucivo mislimo na digitalne raCunare, jer su analogn! r~?~nan zbo~~~oJlh l~r~Zltlh ~edos~ataka prakticno izbaceni iz upotrebe. Kako su analogni racunari bll~)ako pravktl.cnl za rJesavanJe neklh problema nauke i tehnike, napravljeni su program! simulator! k~JI oponasaju rad an~logvnog .racunar~ na digitalnom racunaru (primjer takvog 'programa je VlsSlm). Ip~k: analognl racunan, mada Izrazito ogranicene primjene, ima!i su jednu prednost u o~n~su. n~ dl~ltal~e rac;ma:: - a~a!o~ni ra.cu~ari su brti od najbrtih digitatnih racunara. Stoga postale I lu"bridm racumm, kOJI komblnlraju prinCipe rada analognih i digita!nih racunara.

1.1.5 Analogne i digilalne velieine


U savremenim tehnickim sistemima, informacije se obi6no prenose u vidu signala koji predstavljaju promjene neke fizikalne velicine, najcesce elektri6ne prirode. U~QI.i.ko.je stanje-posmatrane ~e!iCine .p~zn~to u svakotr} .trenl!!~y'.x/C!!!?ena un~t~rposmatrCln().g,inte.fvalB:'. t?k~~ ,V~!i~.ine nazi~Cl~ rno-.-anaf6gile ..velicine,~-iboff6fnjenice da sa-one laRO'mogu -slmullrati nekim drugim Tjromjenljiv(m vellcinama koje ispunjavaju s!icne (analogne) zakonitostl. S dru~e stran,~,.~.k<:)!ikO je . ?tanje,PQs.ma~ trqne veH~ine poznato ,sarno u t.(i.9D ()dreden!m vfemenskirp trenucima, -ia takvu v~Ii.i.0u k~z~m.C? daje diskretna velicina. ". ,- '-'

1.1.6 Brojni sislemi


(;ovjek ~ri!iko~ zapisa ?rojeva i ra?,unanja koristi 10 cifara. Ako malo pazljivije razmislimo zbog cega se kon~t~ bas de~et clfara, shvatlcemo da za ovakav izbor nema sus-tinski nikakvog valjanog razloga. J.edml ra~log je zapravo historijski, zbog cinjenice da covjek ima 10 prstiju, i da je shvatio da za brojeve vece od 10 ne maze vise racunati na prste, nego da mora izmisliti neki nacin zapisa v~ci~ brojeva: Me~utim, ovaka~ vid zapisa, iz razloga koji' cemo uvidjeti uskoro, nije pogodan za pflmJenu u racunanma. Pokazacemo stoga da se svaki braj mote zapisati j sa manje od 10 cifara. Za tu svrhu moramo uvesti pojam brojnih (Iii numerickih) sistema.

.0.')(/ /224
:::;; '0

('TT,
+--------?
Ana/ogna vdi(ino Diskretna vefiCino

~a bis.mo ~bjasnili sts. su uopce numericki sistemi, postavimo prvo pitanje: sta zapravo pred~t~vlJ~ broj zaplsan kao 342, i po cemu se on razlikuje ad brojeva 423 i 234 I<ojl su sastavljeni od Istlh clfara? Znamo da svaka cifra ima svoju tezinu (koja je stepen broja 10), i da braj 342 predstavlja skraceno pisanje za izraz

10~

+ 4 .10 1 + 2,100

'-f .)

V su.Stini, svaki cijeli broj, zapisan kao aN . a2al 80 zapravo predstavlja skraceni zapis za lzraz oblika

Diskretne,.yelicine koje mogu uzimatisamo vrijednosti iz ,unaprijad.odredenogj-koliacnog skupa vriredridstCnaziv~jLJ se digitalne velicine, zbog toga sto S8 njlhov!:"l vrijednosti najeesce predstavljaju u broj6anom obliku pomo6u odgovarajucih citara (rijec "digit" zapravo znaCi "cifra"),
12

'. Kaie se da je baza (iii osnova) ovako zapisanog broja 10. Moze se dokazati da se svaki pozitivan broj maze na jedinstven na6in zapisatl u obHku

13

d"e'e baza B proizvoljan cijeli braj veGi ad jedinice, a pri cemu ~u sve cifre ai u opsegu od.O d~ BgLJ drugim rijeCima, brajeve mozemo zapisiv~ti u bila kOja! b~zl ~ > 1.Kad go~ baza b~oja nlJe 10, moramo to posebno naglasiti stavljanjem broja u zagradu I plSanje.m baze ~ao lO~eks~ Iza za~~~de (osim ukoliko je iz konteksta jasno 0 kajoj bazi govorimo). Npr. br?J \3402)5 je bra] zaplsan u bazi 5. Sasvim je lako pretvorlti brai iz proizvoljne baze u bazu 10. Na prtlllJer,
(3402)5:: 3 . 5~ + 4.52 + 0.5 1 + 2 3.5:: 477.

Dakle, broj 142 se u binarnom brojnom sistemu pise kao 1.0001110. Pogodnost da se koriste dvije cifre "placena" je time da u binarnom sistemu cak i relativno mali brojevi imaju veHki braj cifara (otprilike 3,3 puta vise nego u dekadnom brojnom sistemu). Racunaru to, medutim, ne srneta mnogo. Bitno je napomenuti da binarn8 brojeve uvijek izgovaramo cifru po cifru. tj. binarni brej 10 citamo iskljucivo kao "jedan nula" a niposto kao "deset" jer to nije braj deset (to je zapravo braj 2), Ilustrirajmo jos jednom i obrnutu pretvorbu na primjeru pretvaranja broja 10101.0011 lz binarnog u dekadni brajni sistem:
sam~

Slijedi da je (3402)0 = (477)10' Ako ovo sve nekome djeluje cud no i besrr:i~leno, treba se ~je~iti da se i u praksi (npr. u mjerenju vremena i uglova) ponekad kariste ~aze. ~azllcj~e ad 10. Na pnmJer, posmatrajmo broj 23 12''49''. Pretvareno u ugaone sekunde, ovaj broj Iznosl:
23.60' + 1260' + 4960" = 83569

Ovdje se radi a jednom "3-cifrenom" broju, zapisanom u bazi.60, ~~ "~lframa" '~~3", '.'1~" i "49". Ovdj~~ naravno, "cifre" mogu biti u rasponu od 0 do 59. Standardnl brajnl Sistem 'ko)! konstl bazu 10 nazI vamo dekadni (decimalm) sistem. Moze se postaviti pitanje, kako se rjesava obrnuti problem, tj .. kako ?"i~~o opr.. broj 4?7 pretv~.~ rili iz baze 10 (dekadni zapis) u zapis u bazi 5? Za tu svrhu postoje razlicltl metodl, a najelegantmJI pastupak zasniva 58 na postupku koj\ je u matematici poznat p?~ imenorr: Horner~va .:hem~: ~o ovom postupku, bro] se uzastopno dijeli sa zeljenom bazo~, po cernu se Ispod broja pl.~e .kollcnlk, a sa desne strane ostatak pri dijeljenju. Postupak 58 ponavlJa sve dok se ~e dod~ do k~h?n!k~ nul~. Ostaci dijeljenja bitani od posljednjeg I<a prvom .daju .upravo trazene clfre broja u zelJenoJ .bazL Pokazimo, na primjer, kako bi izgledalo pretvaranJ8 broja 477 ~ bazu 5 prema ovom postupku.
,5
477

Interesantno je da pastoje naredi koji ne koriste bazu 10. Na primjer, neka indijanska plemena kOl'istili su baze 5 (vjerovatno na osnovu broja prstiju na jednoj fUci) i 20 (oni su vjerovatno brojall j na ruke i na noge). Postoji cak i jedno domorodacko pleme na Novoj Gvineji, za koje mozemo reei da brojeve izrazava u necemu sto donekle nalikuje na binarni brojni sistem. Oni koriste sarno dvije cifre, nazvane uparun i okosa. Bro) 1 se kate uparun, 2 se kaze okosa, 3 se kaze uparun okosa, 4 je okosa okosa, 5 je uparun okosa okosa, 6 je okosa okosa okosa, itd. Glomaznost ovakvog izratavanja ovom plemenu nije prevelik problem, jer nemaju potrebu'rada sa velikim brajevima (pripadniku tog plemena sigurno ne predstavlja veliku razliku da Ii se selu priblizava coper od 10 iii 20 tigrova, itd.). Vee smo rekli da danasnji digitalni racunari sve poda1ke pamte iskljucivo kao skupinu brejeva, pri cernu se svaki broj cuva u binarnom zap/su. Pri tome se svaka binarna citra broja (koja'se takoder naziva bit od eng!. .!2lnary Digit, kao i istoimena jedinica za mjerenje kolicine informacije iii kapacite ta memorije) cuva u elementarnoj memorijskoj celij! racunara, kOja moze zapamtiti samo jedan bit.
w

95

19
0

2 0 4

Glomaznost zapisa u binarnom sistemu u inforrnatici se rjesava uvodenjem heksadekadnog (iii heksadecimalnog) brojnog sistema, koji koristi bazu 16, I stoga se u njemu javlja 16 cifara. Posto

Odavde neposredno slijedi:


477 :: 3 . 5'~ + 4 . 5~ + 0 . 51 + 2 . 5 = (3402)5

lako je dekadni brajni sistem najvlse rasprostranjen u sva~od~evn?m ~!~otu, n~egova primj:~a u digitalnim ratunarima bila bi uzrok mnogih po~es~oea u tehnl?~~j re~lIzacljl ured~Ja" ~azlog ~ezl u Cinjenici da bi elektronicki sklopovi za predstavlJa.nJe deset ~a~hcltlh. clfara morala Imatl deset J~sno definiranih razlicitih stanja. To bi dovelo do drasttcnog usloznJavanw sa~.~g racunara: ~tog~ J.e ~a stanovista lakse ipouzdanije realizadje digitalnih racunara qaleko po~oIJmje.da..se ~OrlStl brojn.1 SISfern koji ee se moGi predstaviti sa samo dva ~tanja.kola,. od~osno.sa,s~~o.dvIJe cltre: Stoga je z~ primjenu u informatici od velikog znacaja baza 2 kOja.daje .bma~nt b-(oJnI s/s.tem.. U blnarnom?ra jnom sistemu javljaju se samo dvije cifre, 0 i 1,.~ to'.18. uprayo on~~t? ~,am Ie potrebno. Kao Ilustraclju, pretvorimo broj 142 iz dekadnog u binarnl brojn! slstem: ~
142
71

su Ijudi izmislil! znakove samo za deset cifara, nedostajucih sest clfara obicno S8 zaptsuju kao slova A, 8, C, 0, E i F. Razlog za upotrebu heksadekadnog brojnog sistema je u tome sto se brojevi u ovom brojnom sistemu zapisuju veoma kompaktno, a pretvaranje iz binarnog u heksadekadni brojni sistem i obmuto obavlja se veoma jednostavno. Da bismo pretvorili heksadekadni broj u binarni, dovoljno js svaku cifru heksadecimalnog braja pretvoriti zasebno u 4 cifreni binarni broj (po potrebi se dodaju nule sa lijeve strane ukollko pretvoreni binarni broj ima manje od cetiri cifre). Na primjer, (C5)" = (11000101)" jer je (C)" = (12)" = (1100h i (5)" = (5)" = (101),. Za obrnu10 pret varanje potrebno je binami braj podijeliti u grupe od po cetiri cifre zdesna nalijevo, i svaku grupu zasebno pretvoriti u heksadecimalnu citru. Ovi postupci se uz malo prakse mogu uvjezbaH da se brzo vrse cak i napamet, bez ikakvih pomagala (8to nije moguce za pretvaranje izmedu binarnog i dekadnog sistema), sto nam omogueava da se sateto izratavamo u heksadel(adnom sis1emu, ada zapravo mislimo na binarne brojeve. Upravo je ovo osnovni razlog zbog cega je heksadekadni brajn! sistem uopee uveden.
w

1,1,7 Binarna arilme!ika


Vee smo rekli da digitalni racunari sve podatke pamte iskljuCivo kao brojeve u binarnom "brojnom sistemu. Da bismo stekli eiementarnu predstavu 0 tome kako racunar uopee moze ista racunatF, moramo se prvo spustiti na malo niti nivo i vidjeti kako se Jzvode osnovne racunske operacije u ovom brojnom sistemu. Za sabiranje binarnih brejeva vrijedi ista logika ratunanja kao za dekadne brojeve osim 5tO sabi~ ranje brojeva 1 i 1 ne daje 2 nego 10 (u binarnom sistemu), taka da nulu pisemo a jedinicu prenosi~-" mo. Demonstrirajmo ovu operaciju na jednom primjeru: .
15
~

39
17 8
4 2 1

1 1 0 0 0 1

14

-----Oakle, (1101010)2 + (101011001)2' '" (111000011h" Pretvorimo Ii ove brojeve iz binarnog u dekadni brajni sistem, dobijamo jednakost 106 + 345 : ; ; 451, Mo potvrduje tacnost racuna. Kod oduzimanja se takoder koristl slican postupak, pri eemu kada oduzimamo manju cifru od veGe, moramo izvr5iti "pozajmicu" koju cemo vratiti kasnije. llustrirajmo postupak na sljedecem primjer~. Kako je (1101010)2 + (101011001)2 ;;; (111000011)2 i kako je oduzlmanje inverzna operacl~ ja sabiranju, tada je jasno da mora da vrijedi (111000011)2 - (1101010),2 (101011001)2' Provjerimo ova neposrednim izracunavanjem:
111000011 1101010

1101010 +101011001 111000011

Negaclja

~
A
1

U matematickoj logic! negacija promjenljive A obicno se obiljezava sa A iii A', dok je u


racunarskoj tehnici mnogo uobicajenije nadvla6enje imena promjenljive linijom, kao 5tO je prikazano u gornjoj tablici.

o
1

Konjukdja
A B AAB

0 0
1 1

0
1

0 0 0
1

Umatematickoj logici konjukcija promjenljivih A i B oznacava se sa AAB. Kako se rezultat operaclje konjunkclje poklapa sa obl6nim proizvodom u slucaju kada su operandi oznaceni sa 0 i 1, u racunarskoj tehnici se obicno radi kratkoce umjesto A A B pise sarno AB, iii A . B, kao da se radi 0 obi6nom prOduktu.
Disjunkci;a
A B AvB

0
1

101011001

lnteresantno je da su postupci mnoienja i dijeljenja binarnih brojeva posebno jednostavni, cemu se moze zahvaliti "popularnost" binarnih brojeva u racunskoj tehnici. Na primjer, mnozenje u binarnom brojnom sistemu je posebno jednostavno u odnosu na dekadni sistem, jer se citava tablica mnozenja koju treba zapamtiti svodi samo na trlvijalnu tablicu

0
1

0
1

o.

0 '" 0

1 '" 0

1::;;; 1

U matematickoj logici disjunkcija promjenljivlh A i B oznacava se sa A vB. U racunarskoj tehnici se umjesto znaka cesto koristi znak +, kao da se radi a obicnom sabiranju, ali to moze unijeti zabunu Uer je 1 + 1 1 v 1, tako da mi necemo koristiti takvo ozna6avanje.

0 1 1

1
1

Demonstrirajmo kompletan postupak mnozenja dva binarna broja na jednom primjeru:


).101010 ...:.....ll..Q.;lJL 0000000 1101010

Ove tri operacije (negacija, konjukcija i disjunkcija) cesto se oznacavaju engleskim nazivima NOT, AND i OR. Grana matematike kOja proucava ove operacije i pravila rada sa njima naziva se Bufova (Boofeova) algebra (po Georgu Boo/eu, osniva6u matemati6ke logike). . Svaka funkcija koja se maze izraziti samo pomocu operacija negacije, konjukcije i disjunkcije, naziva se log/eka (iii Bulova) funkcija. Na primjer, funkcija
Y = [AB v C(A v 8)] v CA vBe

0000000
11.01010 _+ 1101010_ _ 101011000100

Naro6ito se efikasno u binamom brojnom sistemu izvodi ope'racija dijeljenja. Naime, najve6i problem pri dijeljenju dekadnih brojeva je odr~div~nje koUko put~- djem~C '~ide" u ~eki. ~ dijelo~~ djel!.enika. U binamo~ sistemu vrijedi ista logika racunanja, all !<ako svaka clfra koli6nlka moze bltl samo.O 111.1, nlje potre~no odre~~ vati koliko puta djelilac "ide" u trazeni dio (iii "ide", kada]e cifra 1, iii "ne ide" kada,Je clf~ O) ..M~daJe u sustlnl posve jednostavan, ovaj postupak maze biti prilicno glomazan, pa ga ovdje necemo 11ustnratt.

1.1.8 Bulova algebra


Cak i tako jednostavna operacija poput sabiranja u tako primitivnom. ?rojnom. sist.~mu ~~ s~o)e binarni brojni, sistem nije nimalo jednostavna za neposrednu elektronlc~u reahzaclju u d!gl.t~\nlm racunarima. Stoga je potrebno uvesti jOs elementarnije operacije koje s.e Izvode samo nad clfr~ma o i 1, koje (:e biti jednostavnije za realizaciju, a koje su dovoljno unlverzalne da se sve ostale neophodne operacije mogu svesti na nj!h. Medu najvaznije takve operacije ubrajamo negaciju, konjukciju (i~go~ara.~ sa."n" i "j" O?V0jeO?) i,' ~~ disjunkciju,Ove operacije se definiraju na sllcan nacin kao u matematIC~oJ loglcl, s tim d~v umje:to slm~_ " bola "tacno" i "netaeno" (odnosno T i 1. ) koriste cifre 1 i 0, pri cemu cifn 1 odgovara loglC~ vnJ~dn?st "tacno", a cifri 0 logicka vrijednost "netacno". U nastavku su prlkazane tablice ovih elementarnlh operacIJ~:
16

,1 I
!

I
1
i
I

predstavlja logicku funkciju. Ovakve funkcije se najcesce predsiavljaju tabelom svojih vrijednosti za sve moguce kombinacije vrijednosti promjenljivih koje se javljaju u funkciji. Ove tabele nazivamo i tabelom istine logicke funkcije. Tabele istine za slozenije funkcije kreiraju se postupno, tako sto se prvo odrede vrijednosti manjih clanova, pa se nakon toga prelazi na formiranje sve vecih i vecih clanova. Na sljede60j slici je prikazan postupak formiranja tabele istine za funkciju iz gornjeg primjera:

A B C B AB A AvB C(AvB) C(AvB) ABvC(AvB) BC AvBC AvBG GA vBG y

r .,1
.1

.,

0 0 0 1 0 0 1 1 0 1 0 0 0 1 1 0 0 0 1 1 0 1 1 1 1 0 0 1 1 1 0

0 0 0 0
1 1 0

1 1 1 1 0

0 0 0

1 1 1 0 0 1 1

0 1 0 1 0 0 0 t--~. 1

1 0 1 0 1 1 1 0

1 0 1 0 1 .. _-" 1 1 0

0 1 0 0 0 1 0 0

0
1

0 0
1 1 1 1

1 ~2.._ 0 0 0 1 0 1 1 1 1 0 0 1 .0 0 1 r--:0 0 1--0 0 0

-'-

1-1

17

U tablicama istine, promjenljive koje u!aze u funkciju i njihove vrijednosti uvijek se pisu takvim redoslijedom tako da posljednja (krajnja desna) promjenljiva mijenja svoju vrijednost u svakom redu tablice, sljedeca promjenljiva (gledano zdesna na lijevo) mijenja svoju vrijednost svaka dva reda, sljedeca svaka eetiri reda, i tako dalje. Na taj naein, vrijednosti svih promjenljivih posmatrane po redovima kao binarni brojevi, nakon pretvaranja u dekadni brojni sistem daju slijed brojeva 0, 1, 2, 3 itd. Znacaj operacija konjukcije, disjunkclje i negacije sastoji se u einjenici da se svaka funkcija koja uzima vrijednosti sarno 0 i 1, i u kojoj se javljaju promjenljive koje uzimaju samo vrijednosti 0 i 1 maze izraziti preko ove tri operacije. Postoji mnogo nacina da se to izvede. Najjednostavniji nacin je da se za svaki red tabele u kojem funkcija uzima vrijednost 1 formira jedan clan (nazvan minterma) u koJem su sve promjenljive povezane znakom konjukclje! i u koji one promjenljive koje u tom redu imaju vrijednost 0 ulaze sa znakom negaclje, a ostale bez znaka negacije. Zatlm se trazena funkcija formira kao disjunkcija takvih elanova. Na primjer, neka je data sljedeca tablica istine:

- - _ - (2()

_
_ _

_=- (20)
_=(17)
0 0

=_
(l9)
0

_=-(9)

YoABvCvAvBvCAvBC

_ _

_=-

ABvCvAvBvCABC
(6)
_

ABvCvABvCABCo

(lJ)

_
_

_
_

_=(1)

_ _ _ == _ oABvCvCA(BvC)
oABvCvABvCAC
_ _ _ (3)

~ABvCvABvCABC =
(9)
0

ABvABvCvCABC = ABvCvCABC
_ _ _ _

_ _ (21)
0

_ _ _ _ _ (10)
0

ABvCvCA(BvC)
_____
(11) , _ _

(71
_

ABvCvCABvCAC
____

___

ABvCvABvACCo ABvCvABvAOo

=ABvCvABvO"" ABvCvAB::::: ABvABvC


U zagradama lznad znakova jednakosti naznaeen je broj pravila koje je primijenjeno u svakom od koraka transformacije. Prikazani postupak je naveden elsto kao ilustracija pravila Bulove algebra, i od ueenika se ne ocekuje da moraju znati provesti ova] postupak, niti da moraju znati pravila Bulove algebre napamet. Minimizacija logickih funkcija koristenjem sarno pravila Bulove algebre nije uvijek jednostavan postupak, s obzirom da nema sistematienog postupka koj] bi propisivao kada treba upotrijebiti koje pravilo. Stoga su za minimizaciju logiekih funkcija razvijeni mnogo praktieniji sis~ tematieni postupcL Najpoznatiji j najvise koristeni metodi za minim]zaciju logiekih tunkcija su Karnaughov metod i Weitchov metod, koji su medusobno veoma slieni, a zasnivaju se na upotre~ bi specijalnih dijagrama nazvanih Karnaughove mape odnosno Weitchovi dijagrami. Pored ova dva metoda, koji su pogodni za rueni rad, postoji i Quine~McCluskyjev metod, koji je znatno pogodniji za programiranje na raeunaru. Na ovom mjestu necemo ulaziti u detaljan opis ovih metoda. Kako se na ulaz ma kakvog digitalnog uredaja koji koristi binarni brojni sistem dovode ulazi ko)i iskljutivo mogu imat! vrijednost 0 i 1 (uz pretpostavl<u da razlitite bite ulaznih podataka dovodimo na razlieite ulaze), kako njegovi izlazi imaju samo vrijednosti 0 i 1, i kako se svaka funkdja koja uzima vrijednosti samo 0 i 1, i u kojoj se javljaju promjenljlve -kOje uzimaju sarno vrljednosti a j 1 moze Izrazitl preko operacija Bulove algebre, slijed) da se rad svakog digitalnog uredaja moie opisati iskljuCivo koristenjem operacija i pravila Bulove algebre. To je razlog za ogroman zna6aj Bulove algebre u racunarskoj tehnici i informatici. Zapravo, to znae) da aka znamo kako da napravirna uredaJe koji mogu racunati operacije negacije, konjukcije i disjunkcije, Bulova algebra nam moze pomoCi,da napravimobilo kakav digitalni uredaj-(uk!jucujuCi i digitalni racunar)! Uredaji kojima se reaJiziraju operacije negacije, konjukcije'l disjunkcije nazivaju se osnovna
/ogicka kola iii geji'ovi. Oni se obicno nazivaju engleskirn nazivima NOT, AND i OR, a njihovi
sjm~

A
0 0 0 0 1 1

B
0 0 1 1

C
0 1 0 1 0

Kako ova funkcija uzima vrijednost 1 u 6 redova, to ona ima 6 mintermi: ABC, ABC, ABC, ABC, ABC ABC. Sloga, trazena funkcija glasi
Yo ABC v ABC v ABC v ABC v ABC v ABC

1
0 1 1 1 1

0
0

Aka pailjivije pogledamo ovu tablicu istine, primijeticemo da je ana ista kao i tabiica istine za prethodnu funkciju, iako se same funkcije razlikuju. Za logicke 1 1 0 1 funkclje koje imaju istu tablicu istine kazemo da su ekvivalentne. Za svaku logieku funkciju postoji beskonaeno mnogo njo] ekvivalentnih funkcija. 1 1 1 0 Postupak nalazenja najjednostavnije logicke funkcije koja je ekvivalentna zadanoj funkciji naziva se minimizacija logicke funkcije. Na primjer, najjednostavnija funkcija kOja je ekvivalentna gore prikazanim funkcijama glasi Y ::= AS v AS v C. Minimizacija logickih funkcija maze se izvesti korsilenjem raznih pravlla i formula Bulove algebre. Sljedeca tabela prikazuje neke ad na]eesce koristenih formula Bulove algebra: 1 8. XvXol
15. X (I' Z) (X Y) Z 0 X Y Z
0

boli prikazani su na sljedecoj slici:

1.XOoO
2.XloX

x---[>oNOT

~=D-XY
AND

~=D-XVY
OR

9.

Xo X
0

16. Xv(YvZ)
17. X (YvZ)
0

(XvY)vZ 0 XvYvZ X YvX Z

3. X v 00 X

10.XYoYX

Pri tome AND i OR kola mogu imati i vise ad dva ulaza. Osnovna 10glcka kola su uredall sasvim jednostavne grade. Teoretski, oni se mogu realizirati na raznim principima: mehaniekim, hidraulickirn, pneumatskim, elektromehanickim i elektronlekim.~ V prvim digitalnim raeunarima susretala su se svakakva rjesenja, isprva mehanicka, a tatim eJektrome-,hanieka. Medutim, jedino elektronicki princlp rada omogucava dovoljnu brzinu rada i dovoljnu minija:,:. " turizaciju da bi se mogao napraviti racunar velike brzine rada i malih dimenzija. Naravno, ulazenje u detaljne principe rada logiekih kola zahtijevalo bi poznavanje elektronike, stoga cemo ovd~- nav_Eistt samo osnovnu ideju. Posmatrajmo sljedeca dva spoja prelddaca, serljsl<i i paralelni spoj:

4. X v 1 01
5. X X ... X 0 X 6. XvXv ... vX
0

11. XvY
X

YvX
0

18.X v Y Z 0 (XvY) (XvZ)

12. X (XvY)

19.}<Y" X vY
20XVY ~XY

13. X v X Y 0 X
14. X YvX Y 0 X

7.

X X

21. X v x'Y'=X v Y

Pravila pod brojevima 19. i 20. nazivaju se De Morganove teoreme,<l imaju veliku p'rlmjenu, ne samo u Bulovoj algebri, jer omogucavaju efikasno izvodeqi'e,-negacjje s!ozenib'jskaza, koji sadrze konjukcije i disjunkcije. Prikazimo, na primjer, kako bi m<?gl.a izgledati IT!inimizacija logicke funkcije koju smo prvu naveli kao primjer:

Pamldol 'poi

-C}-

18

U serijskom spoju struja moze ted sarno ukoliko su zatvorena oba prekidaca A i B" dok u paralelnom spoju struja moze te6i ako je zatv6ren makar jedan od prekidaca A iii B. Ako zamislimo da nam zatvoren prekidac i proticanje struje simbollziraju cifru 1, a otvoren prekidac i neproticanje struje cifru 0, tada serijski spoj ostvaruje operaciju konjukcije, a parafelni spoj operaciju drsjunkcije. U elek" tromehanickim izvedbama AND i OR lagickih kola zaista su se koristili prekidaci, dok se u eiek" tronickim izvedbama oni simuliraju raznim elektronickim napravama (diodama i tranzistorima). Povezivanjem osnovnih logickih kola moguce je realizlrati svaku loglcku funkciju, a samim tim i svaki digitalni ureda), jar se rad ma kakvag digitalnog uredaja moze opisati logickim funkc1jama. U sustini, svaki digltalni raeunar, posmatrano na najelementarnijem nivou, sastoji se samo od osnovnih logickih kola, sarno sto se danas njihov bro] mjeri u ~"ilionimS pa_i u milljardama. Na sljede60j sllci je prikazan uredaj koji realizira logicku funkciju Y ::: A B v A B v C :

(susrecu se i nazivi uzorkovanje i sempJovanje). U dru,goj etapi se vrij!.;lon.osti, u;?:etih.,uzQS(ika zaokruzuju na _~~~Zt! yrljednost uzetu ~;..unam:ij~;~qg:::ll!lacrlog~KupavrijednoSti(kOji S8' rlazlvaJu- kVantl), a zabm se taka zaokruze~,~YDj~9nost~~~.I,LLjJiqU"plQi~ (najciscs""binamm).
OV~ZlvaSeC1fgitalfzac1]a(m

kvantizapJja).

- ..-""~---,,--

.~--~--~--------~-.--.-

Kako se prilikom diskretizacije ignorlra veliki broj vrijednosti posmatrane analogne velieine, prirodnoje postaviti pitanje da Ii prilikom diskretizacije dolazi do gubitka Informaclja. Do posve neocel<ivanog odgovora dosll su prije vise od 50 godina Claude Shannon i Henry Nyquist, koji su dokazali da u slucaju da je, pojednostavljeno receno,Jl@O,~.Jl.~lmanja [.!,~q@Js!tQ~S!rr.HM~. J?)dLa vea ?d !::~~~~~~~zine promj.~!!~.eosm_~.!!~~_~Qgprvei1me~:.n:eJiolaz.[ ;,nt;;do ..ka"k\lofi.:gUbltl<a _., imormacija upostupk!LCfi~,kretizacije (ova je cuveni Shannon~Nyquistov teorem a uzorkovnnju). Sl:trrrgErStrtn'iF,Kl"7lmtizae+ja'uvljeh'fbvodi do gubitka informacija, ali se gubitak moze uCiniti po volji malim ukoliko se kvanti izaberu taka da su dovoljno blizu jedan drugom. Postupak pretvaranja digi~ tal nih (iH op6enitije diskretnih) velicina u ana!ogne naziva se i interpofad/a, i on nikada ne dovodi ni do kakvog gubitka informacija. Gotovo svi danasnji digitalnl uredaji zasnovani su na postupcima diskretlzacije i digitalizacije. Posmatrajmo na primjer muzicki signal, koji je tipican primjer anafogne veJieine. Danas se muzika najcesce zapisuje na kompakt diskove (CD-ove), koji su tipicni digitafni uredaji. Prilikom zapisa muzike na kompakt diskove, vrsi se diskretfzacija uzimanjem uzoraka muzickog signala 44000 puta u sekundi (kako Ijudsko uho ne cuje promjene zvuka brze od 20000 titraja u sekundi, po teoremu 0 uzorkovanju do gubitka informacije ne dolaz! ukaliko uzorke zvuka uzimamo 40000 puta u sekundi iii brze). Zatim se uzeti uzorci kvantiziraju i zapisuju na disk kao 16-cifreni binarni brojevi. Prilikom kasnije reprodukcije kampakt diska, uredaj za reprodukciju vrsi interpolaciju zapisanih vrijednosti eime rekonstruira origina!ni muzi6ki signal.

Jasno je da ce jednostavnljoj funl<ciji odgovarati jednostavniji uredaj. Odavde yldimo u cemu j~ znacaj minimizacije logickih funkcija. Na primjer, razmatrana funkcija je patpuno ekvivale"ntn~. funkcl~ ji koju smo prvu naveli kao primjer 10916ke funkcije, mada bi njoj odgovarao mnogo SIOZ8n1JI ured~J (probajte da ga nacrtate). 8toga se prilikom projektiranja digitalnih uredaja uvijek Bve logieke funkc~~ je koje opisuju rad uredaja transformiraju u to je god moguce jednostavniJi oblik, pa se tek tada vrSI realizacija uredaja. '

1.1.10 informacioni sislemi 1.1.9 Diskretizacija i digitalizacija


Vee sma rekU da je digitalni racunar uredaj za abradu. digitalnih vellejna i infor~acij~ ..Medutim: veeina informacija koje nas okruzuju kao i podaci sa Kojima neprestano baratamo, nlS~ d.lgltalne ~:c analogne prirade. Da bismo mogl] upotrebljavati digltalni racunar za obradu analognlh mformaclJa, racunar mora prva da pretvori ulazne analogne infarmacije u digitalne informacije. Ovaj postupak se naziva anafognoldigitalna (AID) konverzija. Tako pretvorene digitalne informacije ?braduju se u dlgitalnom ratunaru, nakon 6ega se dobivene digitalne intormacije ponova pret~araJu u. analogne informacije pamocu postupka koji se nazlva digitafnolanalogna (DIA) kOnverzlja .. AJD I. D~A ~~n. .verzija obavljaju se unutar dijelova raeunara koji spadaju u grupu ulaznih o.dn?snO Izl~~mh JBdmlC~ racunara, 0 cemu cemo kasnije detaljnije govoriti. Proces obrad~ analogmh InformaclJa uz pomoc digitalnog racunara shematski se moze prikazati sljedecom slikom:
Analogni Digitalni r - - - - - - Digilalni r - - - - - - , izla D/A ulm AID ulaz DIGITALNA KONVERZIJA .,.,.... KONVE;RZIJA OBRADA

Danasnjim organizacijama i njihovim rukovodiocima neprestano su potrebne informacije radi nji" hovog opstanka i napredovanja, 5to zbog velike kolicine informacija vise nije maguce ostvariti bez upotrebe savremenih informacionih tehnologi/a, koje se postizu upotrebom racunara, Racunarski dobijene infarmacije posta!e su sastavni dio donosenja odluka u vecini organizacija. Karakteristike primjene racunara u tom procesu su brzo izvlacenje neophodnih informaclja na osnovu vel1kog broja podataka. Say taj proces prikupljanja i abrade podataka, prenosenja informacija i donosenja od!uka naziva se informac;cmi sistem. Preciznija definicija informacionog sistema je s!jedeca:

Informacioni "'istem predstav(ja sImp /judi, postupaka i opremc ImF po odrcilel1oj organizaciji i metodama prilmpfjajl1l zapisuju, obradujll, memoriraju i prikaZl{ju il1formacije,
Mada danasnji informacioni sistemi obicno ukljucuju racunar kao sastavni dio, informacioni sistemi pastoje u svim oblastima Ijudske djelatnosti, bez obzirada Ii se za obradu podataka i gener!" ranje informacija koriste racunari Hi ne. Raeunari ne predstavljaju sredisnju taeku informacionih sistema. Isto tako, sredisnja tacka informacionog sistema nisu ni podaci koji se obraduju. Sredisnja ~ ta{;ka svih informacionih sistema je covjek. Informacioni sistemi pastoje zbog Ijudl, a ne Ijudi ibog informacionlh sistema. Pored Ijudi, informacion] sistemi sadrie i postupke, podatke, infor- macije i znanje, Zapravo, smatra se da je prvi informacioni sistem nas'tao kada je covjek odlucio da side sa grane, jer da nije imao "informacioni sistern", on ne bi znao da ce mu na zemlji biti bolje nego na grani, pa bi i ostao na grani. Bez obzira na to sto su informacioni sistemi stari koliko i covjeeanstYO, danas kada kazemo "informacioni sistem" ipak najeesce mislimo na racunarski bazirane infor~ macione sisteme, iako moramo imati u vidu da to nisu jedini mogu6i informacioni sistemi.
21

Postupak pretvaranja analognih velicina u digitalne (AID kon~~.rzija) O~avlja se u d~ije et~~f?,y., ~. prvQj stapi uzimaju seuz9IYly!:li,~_dnosti,po~matrane ,ana!og.~e.~~j.!g~ _~ ta~nq8E!r~.<1ellli!lillm9~$ce..-ravnomjerno,asp&eCtenirn) vreffiehstim .. r(~nu~i!!::-.q.9"K_-.$,~ __ ~~!L~,n?st,' _p~~_~~~~_..?-.~9Jog~.e veliCine u ostalim vremenskim trenuclma prosto ignoriraju. Ovaj postupa'k naZlVa se diskretiz8cIJ8
-,.--~------.-.-~-.-----'

20

Racunarski bazirani informacioni sistemi ne mogu postojati bez odgovaraju6e hardverske, soft~ verske, kadrovske i edukacijske podrske. Mada se pojmovi hardvera i softvera u ovom udzbeniku obraduju tek kasnije, na ovom mjestu se pretpostavlja da ucenici'iz osnovne skole posjeduju elementarna znanja 0 ovim i njima srodnim pojrnovima. U hardversku podrSku informacionog sistema spadaju na prvom mjestu racunari, prateca oprerna i mediii koj! su odabrani tako da na najbolji i najjeftiniji nacin omogu6e efikasno generiranje neophodnih informacija. Jedan racunar, sam za sebe, tesko da moze ispunlti neophodne zahtjeve kOje postavljaju savremeni informacioni sistemi. Za potrebe informacionih sistema gotovo uvije,k je neophodno koristiti skupine medusobno povezanih racunara koji formiraju one sto se danas obicno naziva mreza racunara. Mreze kOje se koriste u informaeionim sistemima obieno su zasnovane na tehnologiji kJijentiserver (iii korisnik/pos/uilteJ/). Kod ove tehnologije korisnik (klijent) koristi se licnlm racuna~om iii radnom stanicom, koja je preko mreze povezana sa nizom raeunara posluzite~ lja (servera) od kojih je svaki zaduzen za odredenu aplikaciju i odrzavanje baze podataka vezane za nju, Klijent komunieira sa aplikacijom preko svoje tastature i ekrana, a svrha poziva aplikacije moze biti, na primjer, unos podataka iii trazenje neke informacije. Server obavlja dio obrade iii cijelu obradu, azurira datoteku na kojoj je obavljena promjena, te prikazuje rezultat obrade na korisnikovom ekranu iii stampacu. U softversku podrsku informadonih sistema spadaju svi pohranjenl podaci (baza podataka) kojima raspolaze konkretan informacioni sistem, kao i skupina programa koji omogueavaju pretvaranje ovih podataka u upotrebljive informadje koje omogucavaju donosenje odluka. Neophodne elemente softverske podrske informacionih sistema predstavljaju programi za upravljanje bazama podataka, programi za planiranje, formiranje izvjestaja, ltd. Dalje, softversku podrsku sacinjavaju j svi neophodni programski alatl koji se,koriste priiikom razvoja sistema. U softversku podrsku u. strem smislu spadaju i utvrdeni postupei, proplsi j definirana dokumentacija ko]i sluze kao osnova rada informacionog sistema. Kadrovsku podrsku informacionih sistema saCinjavaju korisnici informacionog sistema i raeunarski specijaJisti. Korisnici su osobe u organizaciji eiji ee rad bit] podrzan informacijskim sistemom. Racunarskf specl.lalisti predstavljaju kvalificirani kadar koji je u stanju da prihvati, projektira, programira i realizira neophodne zadatke na raeunaru. U raeunarske speCijaliste spadaju sistemski analitieari, projektanti, programeri, operated, itd. Sfstemsk; analiticar je osoba koja prikuplja i analizira informacije potrebne za razvo) informacionih sistema. On komunicira sa potencijalnim korisnicima sistema i priprema tehnlcke specifikacije za izvedbu informacionog sistema, Projektant prevodi zahtjeve sistema koje je pripremio sistemski analitiear u konkretan dizajn sistema i razvija detaljne specifikacije sistema. Programer je speCljalista koji obavlja prevodenje tehnickih speci~ fikacija sistema u odredeni programski jezik. Programeri takoder vrse i testiranje napisanih prograrna kako bi provjerili da Ii oni rade konkretno. Operateri unose neophodne podatke u racunarski sistern i obavljaju druge rutinske poslove vezane za rad sa raeunarom. Osoba koja u isto vrijeme posjeduje znanja sistemskog analiticara, projektanta i programera najeesce ima ulogu rukovodioca pfojekta koji nadzire cjelokupni razvoj projekta. informacioni sistemi ne bi mogli obavljati svoju svrhu bez odgovarajuee edukacijske podrske. Bitno is shvatiti da Ijudi koji razvijaju informacioni sistem nisu isti Ijudi koj! ce taj slstem i koristiti. KJajhji korisnici informacionog sistema moraju biti obueeni za upotrebu informacionog sistema, od~osno moraju biti osposobljeni za postavljanje upita putem tastature, unosenje podataka i zadaM vanje zadataka profesionalnom kadru. Osoba kOja razvija program obuke i upravlja realizacijom obuke osoblja informacionih servisa i krajnjih korisnika informacionih sistema naziva se koordinam tor obuke. 22

Danas postoje brojne vrste informacionih sistema, medutim najbolje su prouceni i najbolje razradenl upravljacki Informacioni sistemi iii MIS sistemi (Management J.nformation System) i s;stemi za podrsku odluCivanju iii DSS sistemi (Qecision Support .s.ystem). Upravlja6ki informa~ cioni sistemi predstavljaju informacione sisteme koji osiguravaju informacije potrebne za uspjesno donosenje odluka od strane rukovodilaea - menadzera. Oni predstavljaju najstariju vrstu informaclonih sistema. Donosenje odluka podrazumijeva izbor jednog od vise mogu6ih rjesenja. Prj tome su za uspjesno donosenje odluka neciphodne informacije 0 tome sta svako rjesenje daje, sta zahtijeva i kako se moze realizirati, a to su upravo informaeije kOje nude upravljaeki informacioni sistemi. S druge strane, sistemi za podrsku odfu6ivanju su informacioni sistemi koji koriste modele odlueivan~ ja i baze podataka sa ciljem potpomaganja nekih od speclficnih odluka sa kojima se suocavaju menadzeri. Oni ne donose od/uke za menadzera, nego ga samo podrzavaju u proeesu odlucivanja. Stoga se oni bitno razlikuju od upravljackih informacionih sistema eiji je prvenstveni zadatak bio obezbjedenje menadzera sa kompletnlm struktuiranlm informaeljama, odnosno izvjestajima. Pored opisanih informacionih sistema, vaznu vrstu informaclonih sistema predstavljaju i eksperlni sjs~

temi, koj] koriste svoje znanje 0 specificnim slozenim podrucjirna primjene, tako da djeluju kao strucni savjetnici (eksperti) krajnjim korisnicima. Ovi sistemi samo obezbjeduju odgovore na pitanja iz vrlo specificne oblasti primjene, poput covjeka kojl je dobro obucen za neku usko specijaliziranu oblast Primjeri poznatih ekspertnih sistema su MYCIN, koj] je dizajniran da pomogne Ijekarima u dijagnozi i !ijecenju nekih bakte~ rijskih infekcija, PROSPEKTOR koji analizira i lumaei geoloske podatke kao vodic za istraiivanja minerala, i XSEL koji pomaie prodavackom osoblju pri naruCivanju raeunarsklh konfiguracija za njihove musterije. U klasu ekspertnih sistema spadaju i geografski iniormacioni sistemf (G/S) koji se danas sve vise koriste u raznim podrucjima primijenjene geografije (kartografijl, geologi]i, meteoroiogiji, itd.).

1.1.11 Utjecaj racunara na drustvo i okolinu


Racunari su znatno poveeal] covjekovu sposobnost analize, racunanja i komuniciranja, usljed cega je znatno povecana Ijudska mogudnost planiranja i upravljanja raznim potrebama. Posto su racunari u danasnjem drustvu prisutni svugdje i u svim aktivnostima dnevnog zivota, prirodno je da su ratunari izvrsili znatan utjecaj na cjelokupno drustvo i okolinu. Kao posljedicu imamo pojavu da je drustvo postalo u potpunostl ovisno 0 racunarima i njihovoj upotrebL Uljecaj raeunara na drustvo i okolinu mazema posmatrati sa nekoliko aspekata. Na prvom mjes~ tu, imamo socioJosko~ekonomski aspekt. Na primjer, automatizac~a proizvodnih procesa moze imati efekat na smanjenje zaposlenosti i na obezbjedenje kupaca sa proizvodima boljeg I(valiteta i po nizim cijenama. Na taj nacin racunari utjecu na zapaslenost i produktivnost. Sa jedne strane, upotreba raeunara uvela je nove pos/ove i povecala produktivnost, ali je sa druge strane znacajno umanjila mogunost zapos/enja u nekim vrstama pos/ova. Raeunari su u potpunostl zamijenili rad mnogih sluzbenika i mehanieara. Novi poslov! koj! su nastali unutar radnih organizacija, traze drugacije.vjestine i,ob(azQvanje nego poslovi koji ne zahtijevaju upotrebu racunara. Stoga se moze desifda nekl:k.ad.r6vi postanu. tehn%ski visak, ali se, na sre6u, obieno moze izvrsiti njihova pre~ kvaJifikacija rJ9..-novErradrte zadatke. Produktivnost pojedinaca znatno raste upotrebom racunara, jer isti tadnlk mQzq:-da Qbavlja-vise poslova.za znatno kra6e vrijeme. Veda zarada uzrokovana porastom,-p;:odiJktivriostLstiti1ulirainv~sticije za sirenje proizvodnje, s10 bi u krajnjem slueaJu trebalo da dbvede i do poiat?fa:zapos/enosti. Treba napomenuti da utjecaj raeunara na zaposlenost moze biti pozi!i",atl JedinO\jkoliko novi poslov! i organizirana prekva!ifikacija postoje61h kadrova omogucuju - smanjiJn/e nerzaposffJl?Osti uzrokovane uvodenjem racunara. Racuna'rl- dopustaju velikim firmama da budu efikasnije, Cime se ostvaruje utjecaj racunars na
konkurencJju. Efikasnost firmama omogucava nastavak razvoja i spajanje sa drugim firmama, time

23

nastaju ve!ike i mone kompanije. Racunarski informacioni sistemi u stanju su da uprav!jaju s!ozenim aktlvnostima i odnosima koji uz njih nastaju, taka da i male firme magu steei prednast u odnasu na konkurenciju upotrebom racunarski baziranlh sistema. Danas se smatra da 6e samo firme sa efikasnim racunarskim informacionlm sistemima biti u stanju da pretive konkurenciju. Savremena upotreba racunara eliminira prisustva !judskih odnosa, time yidimo da racunari vrse utjecaj na indlvidualnost. .OVaj u~ecaj se obicno posmatra u nega1ivnom kontekstu, kroz tvrdnje da racunari dehumaniziraju i desocijaJfziraju pojedinca, davodeCi do gubitka njihovog vlastitog identiteta, jer savremena obrada informaclja svakog pojedinca tretira iskl]udvo kao skupinu podataka, a ne kao licnost. Takoder, racunarski bazirani sistemi zahtijevaju striktno postupanje po propisanim procedurama, 8to kod pojedinaca izaziva gubitak indlvidualnosti. Ipak, ovi problemi se dobrim dije!om mogu prevazi6i, cineel organizacione jedinice veCim, kreirajuei slozenije individualne i organizacione veze j poveeavajuei obim individualnih aktivnosti. Racunarima se mogu prepustiti dosad~ ni i rutinski paslov!, time se pojedincima ostavlja vise prostora za poslove koji trate individualnost i kreativnost. Jos jedan negafivan aspekt upotrebe racunara 0 kojem se sve cesce gavor! je utjecaj n8 privatnost. Smatra se da formiranje velikih baza podataka kaje sadrze privatne podatke 0 pojedincima povecava mogucnosti zloupotrebe, i omogueava organiziranje raznih vidova racunarskog kr;minaJa. Protiv ovakvih tendencija drustvo se (sa manja iii vise uspjeha) mora boriti kao i protiv svake druge vrste kriminala. Opcenito se ipak maze reCi da upotreba racunara dovodi do porasta kvafiteta iivola, zbog toga sto unapreduje kvalitet uvjeta rada i sadrzaj radnih aktivnosti. Upatreba ratunara dovela je do skracivanja radnog dana, sto dovodi i do povecanja slobodnog vremena. Ljudima ostaje vise vremena za rekreaciju, obrazovanje i kreativne aktivnesti. Doduse, neki poslevi nastali upotrebom racunara su dosadni i rutinski, tako da se od pojedinih radnika trati da se ponasaju kao masine, a ne kao kreativni budl. Mada takvi efekti imaju j stetan utjecaj na kvalitet zivota, oni su ipak neuporedivo manji od navedenih pozitivnih efekata. Na kraju, neophodno je napomenuti da je razvoj savremenih informaclonih tehnologija izvrsio veliki utjecaj na Jokalizaciju i globalizaciju pojedinca i drustva. Globalne racunarske mreze, kao sto je Internet, omogucavaju pojedincu da, ne izlazeCi iz svoje sobe, obavlja poslove za naJve6e internacionalne kompanije i da utjece na svjetska zbivanja, 6ime je pojedinac postaa die globalnog svjetskog sistema. Nerijetko mozemo nai6i i na remek djela u raznim oblastima, ukljucujuti nauku, knjizevnost, itd. 6iii je autor nepoznati, anonimni pojedinac koji je svoj rad "objavio" putem racunarske mreze. Ipak, ovakav trend sa sobom nosi opasnost od izrazite desocijalizacije pojedinaca, kOji, obavljajuci glavninu svojih djelatnosti putem racunara povezanih na globalne racunarske mreze, u potpunosti gube kontakt sa pojedincima u svojoj bllzo] okolini, kao ! osjetaj za realni svijet koji ih okruzuje. Za takve pojedince obicno kazemo da umjesto u stvarnom, zive u virtuafnom svi~ jetu (rijee virtuafan znaei nestvaran, prividan). Nerijetko se desava da se isti pojedinac u stvarnom i virtualnom svijetu ponasa kao dvije potpuno razJiCite [ienosti, sa razlieltim interesovanjjma, karakterima, itd. Psiholazi smatraju da je ovakav trend mazda i najveea opasnost koju sa sobom nose savremene inforn:tacione tehnologije,

Pilanja i zadaci
1. 2. 3. 4. 5. 6. 7. 8. 9. Kako blste definirali sta je informatika? Kakvo misljenje 0 tom pitanju vrijedi u SAD-u? Sta je podatak, asia informacija? U cemu su bitne razlike izmedu ova dva pojma? Kakve postoje vrste informacija, i sia su njihovi nosioci? Sta je integracija informacija? Koliko bita vrijedi informacija gdje se nalazi bijeli kralj na sahovskoj tabli? Sta je entropija i sta se njom izrazava? Sta je obrada informacija? Koje'su osnovne karakteristike Ijudske, a koje elektronlcke abrade informacija? Kakva je razlika izmedu analognih, diskretnih i digitalnih velicina? Koje od ovih veliCina dominiraju u raalnom svijetu u kojem zivimo? 10. Bta su analogni, digitalni i hibridni racunari? 11. Zbog cega je uveden binarni brajnl sistem? 12. Pretvorite brojeve 25,176,2412 j 33852 lz dekadnog u binarni i heksadekadni brojni sistem. 13. Pretvorite brojeve 10101101, 10100,1110101 i 111100 iz binarnog u dekadni i heksadekadni . brajni sistem. 14. Pretvorite brojeve 372, F2, ABC i 7D4 iz heksadekadnog u dekadni i binarnl brojni sistem. 15. Saberite, oduzmite i pomnozite binarne brojeve 10110100 110011010. Rezultal provjerite pret~ varanjem ovih brojeva i rezultata racunanja u dekadnl brojnl sistem. 16. Sta je Bulova algebra i cemu sluti? 17. Navedite neko\iko pravila Bulove algebre. 18. Pokusajte iskazatl rijeCima De Morganove teoreme. 19. Napravite tablicu istine za logicku funkciju Y == ABC v A 8(A v C) 20. Na osnovu tablice koju ste dobili u prethodnom zadatku pronadite barem jednu logicku funkciju koja je ekvivalentna funkciji iz prethodnog zadatka. 21. Pokusajte primjenom pravila Bu!ove algebre da pojednostavite funkciju iz zadatka 19. 22. Nacrtajte shemu uredaja koji realizira funkciju lz zadatka 19. pom06u osnovnih Jogickih kola. Uradite isto za pojednostavljenu funkciju koju ste dobiH u zadatku 21. Sta zakljucujete?

A----{,
B----L/

C --<r----{./

DiLj)-----1 x>--l

23. Odredite koju logi6ku funkciju realizira ure4aj s~ s!jEKie6e',s!lke. 24. Probajte pojednostaviti funkciju iz ,zadatka 23: i na"cliE!"jte: ur'edaj koji realizira pojednostavljenu funkciju. Sta se mote zakljuciti? . ~'.. . . . .. ~ 25, Sta su diskretizacija, digitalizacija i interpolacija~Ltemu-sLuZe? 26, Smatra se da prilikom prenosa glasa kroz telef?nSKU ffir~u ne dolazi 90 -promjeha brzih od 3400 titraja u sekundi. KoHko je cesto po.trebno.uzima..tf uz-iJi"KRglasa .da:bi se ostvario digita!ni prenos glasa bez gubltka informacija? . .. ,..' . 27. Sta su informacioni sistemi? Staje-sredisnja tackasvakbg,.inforrryacionog sistema? 28. Opisite hardversku, softversku, kadrovsku i ediJkacijsku PC?drsku informacionog sistema.
24

25

29. Sta je zadatak svakog ad sljedecih kategorija Ijudi: korisnika informac!onag sistema, sistemsk!h analiticara, projektanata, programera i operatera? 30. Kakve vrste informacionih sistema poznajete? 31. Kako biste opisali utjecaj racunara na drustvo i okoHnu? 32. Kakve eventualne opasnosti sa sobom nose savremene intormacione tehnologije?

1.2 ARHITEKTUFIA FlACUNAFlA


1.2.1 Historijski razvoj racunara
Sarna rijee racunar nastala je od rijed "racunati", odakle vidimo da je prvobitna namjena racunara bila da posluze kaa sprave za racunanje (mada je danas raeunanje sarno jedan ad zada1aka, i to ne glavni, koji racunari obavljaju u danasnje vrijeme nazlv informacioni procesor bio bi prikladniji). Potreba za racunanjem postoji od davnina, tako da su tokom razvoja Ijudske civilizacije javljala razna pomagala koja su sluzila za olaksavanje racuna. Najstarije poznato pomagalo za raeunanje je primitivna racunaljka poznata pod nazivom abak (abacus), stara oko 2500 godina', i koja se u raznim oblicima koristila u raznim svjetAbacus skim civilizacijama (oblik koji se danas maze vidjeti potjece iz (verzija Suan-Pan) Kine). Ova spravica is i danas u upotrebi u nekim azijskim zemIjama. Racunanje na abaku izvodi se rucno, pomicanjem kuglica nanizanih na nekoliko paralelnih zica. Izvje:'tban korisnik moze pomoGu abaka obavljati teM osnovne racunske operacije (sabiranje, oduzimanje, mnozenje i dijeljenje) prilicno brzo, u svakom slutaju brze nego pomo6u papira i olovke, Prvi mehani6ki automatski uredaji za obavljanje racunskih operacija pojavili su se u 17. vijeku. Smatra se da je prvu mehanieku ratunsku masinu sastavio Wilhelm Schickard, medutim model njegave masine je izgubljen. Nakoliko godina kasnije, Blaise Pascal konstruirao je masinu koja je magla obavljati operac!je sabiranja i oduzimanja, dok je krajem 17. vijeka Gottfried Wilhelm von Leibniz konstruirao napredniju masinu kOja je mogla izvoditi sve tetiri osnovne racunske operacije. Principi rada svih ovih masina uglavnom su bazirani na spregnutim zupcanicima, kao u satnim me hanizmima.

Blaise Pascal

Pascalova aritllletiika lIlaSilla

Gottfried Wilhelm von Leibniz

Smf3.tra -se.:da je Charles fJabbage ptvi predlozio koncept mashie koja.,:po osnovnim konceptima odgovara danasnjim ratunarima. 01'1, je 182~Vg9dine prvo predlozio tzv. diferencnu 'masinu, koja jefrel)ala_da bUge hesto r50put danasnjih kalkulatora, a z:atlm dJiset-godina 'kas.nije i tzV. analiticku masinu, kOja je, u sustini, ktasicn(digitalni r'acunar zasnovan Iwnceptualno na istim principima-'kaq}danasnji racunari (osim sto je za pogan trebala biti koristena: parna'm~sinaa ne elektricna struja). Analititka masina je trebala p-osjedovati j-' memoriju za smjestanje podataka kao i izl<':lzne jedinige za pdkaz rezultata. Programi su se trebali zapisi"
26

Charles Babhage
27

vati na busene papirne kartice, pri 6emu su raz1i6iti rasporedi rupica predstav!jali razliCite instrukciie. Medutim, 8abbageove masine su po dimenzijama bile preg!omazne da bi bile isplative za realizaciju (anaHti6ka masina trebala je imati dimenzije uporedive sa velicinom fudbalskog igralista). Stoga a~ami6ka masin,a nika?a v~ije rea!izirana, dok je diferencna masina realizirana stotinjak godina kasnlje kao ekspen~ent IZ elste radoznalosti (mada su u to vrijeme vee postojale savremenije masine). ~ad an.aliti6ke masine u danasnje vrijeme simuliran je uz'pomoc savremenih digitalnih ra6unara, I postoje osnovane pretpostavke da bi ova rnasina, da je ikada konstruirana, radlla (naravno, veoma sporo). Ova pokazuje koliko je Babbage bio ispred svog vremena. Interesantno je napomenuti da je Augusta Ada Gordon (poznata kao vanbracna kcerka cuvenog pjesnika larda Byrona) pNa predlozila kako bi se Babbageova analitieka masina mogla zaista i program irati. Stoga ~e smatra 'da j~ ana ~ila prvi programer u historiji, i jedan ad danasnjih programskih jezika nazvan Je upravo po njenorn Imenu - ADA. . . B~bba~eovu ide!~ za koritenje busenih kartica kao medija za unos programa i padataka isko~lstlO j9 krajem 19. vlJeka Herman Hoiernh, na osnovu s!ienog uredaja iz 18. vijeka koj! je konstruIrao Joseph Jacquardt;a potrebe automatskog upravljanja pletacirn masinama. Holerithova masina imala je mogucnost i jednostavne abrade unesenih podataka, poput sortiranja, i upotrijebljena je za potrebe popisa stanovnistva u SAD-u 1890. godine. !pak, Holerithova masina nije imala rnogucnost programiranja. Bitno je napomenuti da je kompanija IBM, kOja je jedna ad vodeCih racunarskih kompanija u svijetu, izrasla lz firme koju je osnovao upravo Holerith. Sredinom 20. vijeka javljaju se prvi ra6unari koji koriste i elekfri6nu struju. Princip rada ovih racunara kombinirao je metlanieke i elektrotehnicke principe, tako da ih svrstavamo u elektrome~ hanicke racunare. Glavna karakteristika avakvih racunara je sporost (oko petnaestak racunskih operacija u sekundi). Najpoznatlji ovakvi raeunari bili su 23, koji je 1941. godine konstruirao Konrad Zuse (isti tvorac je 3 godine ranije konstruirao mehanicki ra(;unar Z1) i Harvard MARK I, koji je konstrUirao Howard Aiken. Ovi racunari su po svojoj gradi bili digitalni racunari, a glavnu kornponentu od koje su bili sastavljeni Cinili su efektromehanicki re/eji. P.ryi elektr0f'!;c.kl digItalni raunarsastavio je 1942, godine John Vincent Atanasoff, medutim mnogcr-pozIiEHiji"'bio je-racunar-ENiAC (!;iectronic Numerical ,tntegrator ,8nd Qalculator), koji su 1946. godlne konstruirall John Mauchly i Presper Eckert. Ovi racunari su umjesto e!ektromehanickih releja koristili vakumske elektronicke cijevi. Racunar ENIAC bio je tezak oko 30 tona, i sastojao se od oko 18000 ejektroniekih cijevi. Dimenzije ovog raeunara bile su velicine prosjecne kuce, a troslo je toliko struje (174 kW) da je jaeina svjetlosti svih sijalica u gradu opala kada je ovaj racunar bio prvi put uk!jucen. Programirao se uz pornoc oko 6000 prekidaea, Izmedu ostalog, koristen je i za proracun prve hidrogenske born be. lnteresantno je napomenuti da je PNj kvar na elektronlckim racunarima uzrokovala bubica kOja je usetala u racunar i izazvala kratki spa), Otuda se i danas greke u racunarskim sistemima nazivaju bagovt - rijee bag (pise se bug) na engleskom jeziku znaei bubica Glavnl nedostatak racunara ENIAC bilo je nepostojanje memorije za pohranjivanje programa. Pored toga, ENIAC nije mogao da izvrsava petlje kod kojih bro] ponavljanja nije unaprijed poznat. Pry] ra6unar koj] je otklonio ave nedostatke bio je EDSAC "(&'Iectro~jc Qelayed s.torage Automatic Qomputer), koji je 1949. godine konstruisao Maurice Wilkes. Otprillke u isto vrijeme nastaje i racunar EDVAC (.Electronic .Qiscrete .Y.ariable ,Automatic "QQmpu1er),"prema zamislima John von Neumanna, koji je pred102io rnodel racunara kod kojeg se programi j podaci skupa pohranjuju u racunarsku memoriju. Von Neumann je takoder predloi(o upotrebu binarnog umjesto dekadnog brojnog sistema, sto je osjetno pojednostavllo arhitekturu raeunara, Vedina

danasnjih ra6unara zasniva se upravo na Von Neumannovom modelu, 0 cemu cemo posebno govoriti kasnije. Sve oplsane racunare mozemo smatrati prahistorijom racunarstva. Smatra se da je prva gew UNIVAC I (1!olY.ersa! :~ut9rnatic"Qomputer) koji je bro prvf komercijalno dostupan ra6unar (kostao'je 1000000 $). Najpopularniji racunar prve generacije bio je racunar IBM 650. -Svi racunari prve generaeije bill su zasnovani na elektronickirn eijevima, kOje su bile glomazne, nepouzdane i trasi!e su rnnogo energije. Zbog toga je podrucje primjene racunara pIVe generacije bilo veorna ogranieeno. Kapaciteti memorije ovih racunara bili su ad nekoliko kilobajta do nekoliko desetaka kilobajta, a brzina rada oka nekoJiko statina operacija u sekundL
nera~iJa.-racunara zap06ela 1951. godine sa ra(;unarom

__ .~f!E!!gJL9"t!.!]/l/1!~.ii~""!acunara nastupila je 1959, godine zamjenom elektronickih cijevi znatno "manj[m '( pouzdanijim tranz;stor;ma, koje su 1947. godine otkrili Walter Brattain, John Bardeen i Wilfiam Shockley. Raeunari druge generaclje bill su znatno manji, brzi i pouzdaniji. Brzina rada porasla je na oko stotinjak hHjada operacija u sekundL Za memoriranje programa i podataka koristili su se uredaji zasnovanl na magnetnom principu rada, koji su oneniogucavall znaeajnije smanjenje velielne racunara. Za unos programa i podataka i dalje su se koristile busene kartice.

TrJ?_t?!!_gJ!."fJ-.!'!.f.~i[a racunara zapocela je 1964. godine promodjom ra6unara IBM 360. U ovim racunarima znacajno smanjenje dimenzija ostvareno je uvodenjem. integr;ranih kola (iii iHpova), koji zapravo predstavljaju kompletne eiektronlcke uredaje (sklopove) izradene u jednorn kristalu silicija dimenzije nekoliko I<vadratnih rnilimetara. Karak1eristika trece generacije raeunara je i pojava programskih jezika viseg nivoa prilagodenih 6ovjeku, tako da je otpala potreba za mukotrpnim programiranjem u masinskom jeziku (pom06u kornbinacija nula i jedinica), kao i pojava PNih operativnih sistema. Brzina fada porasla je do aka nekoliko miliona operacija u sekundi, a dimenzije raeunara su se spustile na veliCinu manjeg ormara. Sistem busenih kartica za unos podataka ~ polako se napusta u korist unosa podataka putem tastature, a Seymour eray pojavljuJu se i prvi moniiori za prikaz izlaznih podataka. U tre60j generaciji pojavili su se i prvi rniniracunari, koji su magli da stanu na pisaci st~. Prvi miniracunar pod nazivom PDP-5proizvelaje firma DEC (Qigital,!;quipment Qorporation), a njihov najpoznatiji racunar bio je takoder miniratunar PDP-11. Seymour Cray 1964. godine konstruira superraeunar Cray CD C6600, koji je bio 10 puta brzi ad ostalih racunara Ist09 vremena. Medutim, opca l~ar8.kteristika svih raeunara trece generacije i dalje ostaje upotreba g!arnaznih magnetnih memorija, koje su sprecavale da!ju minijaiurizaciju ra6unara.
Smatra se da je"l?-.et.v!J~_genera_{:lja ra6unara zapotela 1972. godine, kada su magnetne memorije u potpunosti zamfjenjeife'''elektronicl<im kornponentama, to je dovelo do drastienog pada cijena i dlrnenzija memorija. Elektranicke memo[ije takod;er su zasnovane na integriranim kolirna, ali veoma velike gustine pakovanja, koja je omogucila pakovanje vise rniliona komponeliti u jedno inte~ grirano kolo, Vjerovatno prv) racunar cetvrte:; generacijf} bio je raeun~r IBM~370, Glavna karakteris~ tika ratunara cetvrte generacije, pored drasticn99 pove,9anja brzine rada.1 kapaciteta memorije, kao i smanjenja dimenzija, predstavlja' razvoj $ve savremehiFh uredaja zii unos ulaznih podataka i prezentaciju izlaznih podataka. . Nakon pojave prvog mikroprocesora (itavog procesQr-a-raeunara smjestenog u jednom clpu) 1970. godine ad strane firme INTEL, cijene rac.on?-ra,,'$y.:poc~!e"rapjdno'<?padati, i vee se magla naslutiti pojava ra6unara za kuenu upotrebu . Raeunar ALTAIR- 8080 prolzveden 1974. godine opcenito se smatra prvim kucnirn racun"i,uom~, 6vaj raEunar je bio "izuzetno primitivan, i nije pasjedovao tastaturu j ekran, nego je sa_korisnikori-rkomurUcirao pomocu. prekidaca i svijetlecih indikatofa. Interesantno je napomenut! da je BASIC interpr'iuer-za A~TAIR 8080 napisao 1975. godine Bill

John von Neumann


28

29

Gates i njegova firma Microsoft, koji 6e dvadesetak godina kasnije postati najbogatiji covjek na svijetu, Prvi personalni racunar sa tastaturom i ekranom bio je Apple II (njegov prethodnik Apple Ikonstruiran' je u garazi), koji je dozivio nevjerovatnu popularnost, i njegove siromasne konstruktore pretvorio u boga1ase. Desetak godina kasnije firma Apple proizvodi prvi racunar iz familije Macintosh. Racunari jz ave famillje i danas su najpopularniji racunari u SAD-u.
Prv! zaista jeflin racunar za ku(;nu upotrebu pod nazivom ZX 80 proizvodi 1980. godine Clive Sinclair i njegova firma Sinclair Research. Istl tvorae godinu dana kasnije proizvodi racunar ZX 81, a 1982. godine racunar ZX Spectrum, koji je dugo godina ,bio najpopularniji kucni racunar u EvropL Mada je po danasnjim mjerilima ZX Spectrum posve los racunar, ovaj ratunar i danas ima svojih vatrenih prislaliea sirom svijeta (u koje spada i autor ovog udzbenika). Njegov glavni konkurent bio je racunar Commodote 64, koji se pojavio iste godine, a smatra se najprodavanijim racunarom svih vremena. Firma Commodore nekollko godina kasnije izbacuje na trziste racunar Amiga, koj] je u svojim naprednijim verzijama prisutan i dan as. Ostali racunari koji su obiljezili ovu epohu su razni modeli firmi BBC i Afar;. Danasnju epohu ratunara uglavnom cine racunari firme IBM i njihove kopije (klonovi) raznih proizvodaca. Serija IBM PC racunara zapotela je 1983. godine sa racunarom IBM PC XT, Jedan klon ovog ratunara, pod nazivom IRIS PC 16 proizvodila je i domaca firma Energoinvest (sus ret sa IRIS PC 16 racunarom 1986. godine bio je prvi susret autora ovog udzbenlkasa PC racunarima). Dalje su slijedili ratunari J8M PC AT, i tako dalje, sve do danasnjih PC racuriara zasnovanih na Pentium procesorima. Cetvrta generacija racunara traje i do danas, mada se vee dugi niz godina vrse eksperimenti na razvoju racunara pe,tff; genera.cJje. Od ovakvih racunara se ocekivalo da oponasaju proces Ijudskog mis!jenja, tj. da posjeduju neku vrstu inteligencije. Ne moze se reCi da S8 na ovom planu nUe niSta postigio, ali uspjesi u ovoj oblasti istrazivanja znatno su manji ad otekivanih.

CENTRALNA JEDINICA

podad

Ulazni ~

ULAZNE JEDINICE

MEMORIJA ~ PFIJCES:l'1

II;';

IZLAZNE JEDINICE

I<~

Izlazni
podaci

Ulazne jedJnice, centralnu jedinicu i izlazne jedinice zajednitkim imenom nazivamo hardver ratunara. S druge strane, programi za racunar kao i podaci koje ti programi obraduju cine softver racunara. Hardver i softver zajedno saclnjavaju jedinstvenu cjelinu koju nazivamo racunarski SiSM tern. Tako, mozemo reCi da hardver zapravo predstavlja materijalni, opipljivi dio ra6unarskog sis~ tema, dok softver predstavlja, uvjetno receno, njegov intelektualni, neopipijlvi dio. U Von Neumannovom modelu, po prvi put su, za razliku od prethodnih modela ratunara, kako podaci, taka i programi predstavljeni na jedinstven naCin, i na istlm medijima. Po ovom modelu, pro~ grami i podad pohranjeni su u memoriji iskljucivo kao kombinacije nuta i jedlnica. Stoga se memorija dijeli na elementarne memorijske celije od kojih svaka maze da zaparnti tacna jednu binarnu cifru oiii 1 (1j. jedan bit). Zbog toga se i najmanja jedinica za mjerenje kapaciteta memorije takoder naziva bit. Jedan bit je ona kolicina memorije koja moze da zapamti tacno jednu blnarnu cifru. Jedine dvije operacije koje se mogu obavljati sa memorijama su 6itanJe podataka iz memori~ je i upis podataka u memoriju. Danasnje memorije najtesce nisu organizirane na nacin koji omogucava neovisan pristup svakom bitu u memoriji. Obicno se sku pine od po 8 bita grupiraju u cjelinu nazvanu bajt. Svakom bajtu u memoriji pridruzen je identlfikacijski broj nazvan adresa. Dio memorije koji odgovara jednoj adresi nazivarno memorijska lokacija. tz mernorije se sa odredene lokacije maze proCitati sarno citav bajt. S!icno vrijedi i za upis podataka u memoriju. Memorije pasjeduju skupinu ulaza nazvanu adresni uJazi, preko kojih se memoriji saopstava (u binarnom zaplsu) adresa memorijske lokacije iz koje zelimo da proCitamo, odnosno u koju zelimo da upisemo podatak, i skupinu ulazalizlaza nazvanu uJazilizlazi podataka, preko kojih se Cita iii upisuje zeljeni podatak (takoder u binarnom zapisu). Pored toga, memorije posjeduju i dva upravlja6ka ulaza, preko kojih se memoriji saopeava da zelimo iZVfsiti titanje, odnosno upis podataka. '

1.2.2 Von Neumannova arhilektura raeunara


Nacin na koji je graden racunar i na koji su medusobno povezani njegovi dijelovi nazivamo arhitektura racunara. Mada postoje razlicite arhitekture racunara, veGina racunara koji su danas u upotrebi zasnivaju se na arhitekturi koju je jos 1946. godine predlotio John von Neumann (iii na neznatnim modifikacijama ave arhitekture), stoga ovu arhitehturu nazivamo Von Neumannova arhitek tura. Glavne novosti Von Neumannove arhitekture u odnosu .na raf1ijELarhit~ktl!re sastoje se u upotrebi iste memorije za pohranjivanje programa i podataka, ka,oi upotrebJ binarnog brojnog sistema, sto je dovelo do znatnog pojednostavljenja grade ratunara. U nastavku cemo detaljnije opisati Von Neumannov model racunara.
u

Podsjetimo se da danas pod racunarom podrazumijevamo svakl uredaj koji je sposoban da prima podatke od korisnika, da ih memorira i obraduje prema zadanom programu i da saopci korisniku rezultate obrade. Da bi racunar mogao da opavlja navedenu funkcij.\J, on Deito mora posjedovati barem tri grupe uredaja:

Ad",,"

:::::;>LI_......_M_E_MO_R_I_JA--,-.--ll~
Nalog za Citanje

Podae!

t
Nalog za upis

Ulazne Jedinice, preko kojih racunarprimflpodatk&-0d korisnika; Izlazne jedinice, preko kojih ratunar saopc~lta korisnikv- reiull~te ob'rade; Centra/nu jedinicu, u kojaj se obraduju pO'dad, r-u .kojl(.se.'$r:njestaju pOd 0ci koji se obraduju, zajedno sa programom po kojem se vrsi obradif. -"' .
Ceritralnujedinicu dalje mozemc podijel[ti na koja sluzi.za-smjestanje podataka i prograrna, i centralnu procesnu jedinicu (kojase skraceno naziva i-sa:r:no' procesna jediniea, !Ii, jos cssee, procesOl'j, koja vrsi obradu podataka; Centralna proce-snajedinica skracend se oznacava sa CPU (Q.entral.Erocessing Unit). Von Neumannov model racw1ara shematskl je prikazan na sljedecoj slid:
30

me,motlju, .

Moze se postaviti pltanje zbog tega bajt ima bas osam bita. Bajt je zapraYG definlran: k.ao- ana koliCina memorije koja je dovoljna da se zapamti jedno slovo, cifra, iii interpunkcijski-znak(pri cernu se podrazumijeva standardni engleski a!fabet). Da bi se slova, iii opcenitije znakovi~-llJog!H:'?J:edstaviri u memoriji, potrebno ih je prikazati odredenom kombinacijom nula i jeqJn-ic~,: Dfi bi -se -ust-anoviio" kojom ee se kombinacijom _nula i jedinica predstavljati koji znak, uspostavljene"su Qdgovarajuce medunarodno dogovorene sifre koje propisuju kombinaeije nu!a i jedinica kojim s6_,.predstavljaju odredeni znakovi, i tih dogovora bi se svi trebali pridrzavati. Mada postol! vise ovakvih standardnih
31

sifri, danas ubjedljivo najvise koristena sifra (k6d) je tzv. ASCII k6d (ASCII - American ~tandard .Qades for Internatianallnterchange). Na primjer, znak "A" se prema ASCII standardu predslavlja kao 01000001. Znak "a" predslavlja se kao 01100001, znak "2" kao 00110010, znak "!" kao 00100001, znak"" (prazno mjesto) kao 00100000, itd, Kako se pakazal0 da se sa 8 nula iii jedini" ea maze saslaviti davoljno kombinaeija (28 = 256) da se prikazu sva mala i velika slova engleskog alfabeta, cifre i klasicni znaci interpunkcije, usvojeno je da bajt ima 8 bita. Napomenimo da je pored ASCII standarda danas sve vise u upotrebl j UNICODE standard, pri kojem se za pam6enje jednog znaka kariste 2 bajta (16 bita). Sa 16 nula j jedinica moze se napraviti 216 "" 65536 kombinacija, sto je davaljno za pamcenje svlh slova iz svih alfabeta koji se koriste na svijetu (npr., Ciri!ice, 9r6k09, arapskog, hebrejskog, kineskog i drugih alfabeta, nasih slova poput "c", "s" ltd.).
Veee jedlnlce od bajta su kllobajt (KB), megabajt (MB), glgabajt (GB) I terabajt (TB). Ponekad,

Broj masinskih instrukcija koje 'raspoznaju procesori krece se od nekoliko desetina do nekoliko stotina (iii nekoliko desetina hiljada ukoHko brojimo i sve podvarijante pojedinih instrukcija) . Procesori koji raspoznaju svega mali brej sasvim jednostavnih instrukcija nazivaju se RiSe procesari (Beduced lnstruction .set .computing), dok GISe procesori (Qomplex lnstruction .set Qomputing) prepoznaju veel braj ponekad i prili6no slozenih instrukcija. Mada na prvi pogled Izgleda da su Glse procesori bolji, RfSC procesori rade mnogo brze. Interesantno je da je dokazano da je procesof koji zna da obavlja svega dvije (tacna odredene) instrukcije teoretski u stanju da .njihovom kambinacijom postigne sve sto mogu da postignu svi ostall procesori (to naravno ne znaei da takve procesore treba praviti). Na osnovu opisanog rada procesora, vidimo da on neprestano komunicira sa memorijom, kao sto je prikazano na s!jede60j slici (na potpuno lsti na6in procesor komunicira i sa ulaznim i izlaznim jedinicama, samo sto se razmjenjuju samo podaei a ne i instrukcije, i sto ulazne jedinice nemaju nalog za upis, a izlazne nalog za cltanje).

mada znatno rjede, susrecu se i kilobit, megabit, itd. Odnos izmedu ovih jedinica je sljedeci:
1 KB = 1024 bajta 1 MB" 1024 KB 1 GB = 1024 MB 1 TB=1024GB

Prisustvo neobi6nog braja 1024 umjesto 1000 posljedica je Cinjenice da stvarne elektranicke rea" lizacije memorija imaju kapacitete koji kada se izraze u bajtima gotovo uvijek predstavljaju bra) koj! je stepen dvojke. Kako je broj 1024 stepen dvojke (210 "" 1024), a prilicno je bHzak broju 1000, uzeto je da odnosi izmedu jedinica budu izrazeni sa faktorom 1024 umjesto 1000, Cime je postignuto da se kapaciieti memorija izrazeni u KB, MB itd. izraz.avaju cijelim brajevima. Vee je reeeno cia Von Neumannov model predvida da se programi za raeunar takoaer na!aze pallranjeni u memoriji u vidu nula i jedinica. Tako zapisan program naziva se maslnski progrmT"l. RazliCite kombinacije nula i jedinica (nazvane masinske fnstrukcije iii ponekad instrukcijski kodovi) imaju razliMa znacenja. Prilikom rada raeunara, progesor eita masrnsku instrukciju sa neke adrese iz memoriie, izvrsava akciiu predvidenu njenim zna6enjem, zatim Cita narednu instrukciju (najces6e sa sljedece adrese); i tako unedogled, U tom smislu, svaka instrukcija se izvrsava u dvije faze: fazEl prlpreme (odnosno, taza dobavljanja instrukcije), i faza izvrsavanja. Za potrebe privremenog cuvanja masinske instrukcije koja se izvrsava ! podataka koji se obraduju, procesor unutar sebe takoder sadrzi male memorijske jedinice, kapaciteta nekoliko desetaka bita, koje se nazivaju registri. Koje instrukcije procesor zna da izvrsava, zavisi od konkretnog procesora, ali tipicno se radi 0 izuzetno primltivnim instrukcijama koje se mogu podijeliti u tetiri osnovne skupine: instrukcije za prenos podataka, aritmeticko-Iogicke instrukcije, instrukcije za upravfjanje tokom programa i ulazno-izlazne fnstrukcije. Instrukcije za preno$ podataka nalaiu procesoru da premjestl neki podatak sa jednog mjesta na drugo, na primjer da proCita sadriaj neke memorijske lokacije u neki od svojih registara, da upise neku vrijednost iii sadrZaj nekog registra na odredenu memarijsku lokaciju, ill da prepise sadrzaj jednog registra u neki drugi registar. Aritmeti6ko*Jogi6ke instrukcije nalazu proC8" .soru da izvrsi neku od elementarnih racunskih aperacija nad sadrzajlma registara iii memorijskih lokacija. Ove operacije mogu biti aritmeticke (poput sabiranja i oduzimanja) ill logicke (poput poredenja, konjukcije, disjunk.cije i negacije), Takoder, operacije koje obavljaju aritmeticko"loglcke jedinice mogu se pod!jeliti i na binarne, koje se obavljaju nad dva operanda (npr. sabiranje, konjukcija,Jtd,) i ur;arne, . koje se obavljaju nad samo jednim operandom (npr. negaclja). Instrukcije za upravljanje tokompro grama su veoma zna6ajne, jer omogu6avaju da S8 izvodenje programa nastav! ad proizyoljne. memo~c--. rijske lokaclje. Mogu se podijeliti na bezuvjetne, kod kojih se izvodenje programa bezuvjetno.f\astav~ , Ija od zadane memarijske lokacije, i uvjetne, kad kojih se prela,zak oa zadanu memorijsku '"iok~ciju ]zvrsava samo pod odredenim uvjetom (na primjer, uko!iko je rezultat pasijednje aritmeti6ko !ogJ6ke' instrukcije bio jednak nUli). Upravo uvjetne instrukcije za upravljanje takom programa ,om0Q:.Ucavaju ,'. racunaru da donosi odluke, tj. da planira buduce ponasanje u ovisnosti ad rezultata prethodnih 9peraci-. ja. Konacno, ulazno-izlazne instrukclje slicne su instrukcijama za prenos podataka,.sa.mo st6 ostv~u~,.- ju komunikaciju izmedu registara procesora i ulaznih odnosno izlaznih jedinica umjesto memorije.
h H

Adrese

...,
0 ::;
::;
ill

0:

Podaci i instrukcije Nalog za Citanje Nalog za upis

0:

if)

ill

(L

0:

Da bismo objasnili sta se tacno des.ava u komunlkaciji izmedu procesora i memorije, pretpostavimo da se u memor!j! na adresama 30, 31 i 32 nalaze tri masinske instrukeije koje redom zna6e "pribavi sadrzaj adrese 100 iz memorije", "saberi sadrzaj adrese 200 iz memorije na pribavIjeni sadrzaj"; i "smjesti rezultat na adresu 300". Tada se u komunikaciji izmedu procesora i memoriie moze uociti sljedeCi niz dogadaja: Procesor salje memoriji adresu 30 (sve se desava u binarnom brojnom sistemu) i nalog za 6ita-' nje. Memorija salje procesoru sadrtaj adrese 30, Procesor prihvata ovaj sadrzaj, anaHzka ga, i zakljueuje da se radi 0 instrukciji koja treba pribaviti sadrzaj adrese 100. Ovim je obav!jena faza pripreme prve instrukcije. Dalje, procesor salje memoriji adresu 100 i nalog za eitanje. Memorija salje procesoru sadrzaj adrese 100. Procesor ga prihvaca u neki od svojih registara. Ovim ie zavrsena i izvrsna faza prve instrukcije (tj. prva instrukcija je izvrsena). Procesor salje memori]i adresu 31 j na!og za Cltanje. Memorija odgovara, procesor prihvata sadrzaJ, anaHzira ga i zakijucuje da se radi 0 instrukciji koja treba pribaviti sadrzaj adrese 200 i sabrati ga sa prethodno pribavljenim sadrzajem. Proeesor sa!je memoriji adresu 200 i nalog za Citanje. Memorija odgovara, i procesor prihvaca podatak, Nak.an toga procesor prosljeduje prih va6eni podatak i sadrzaj registra u kojem je sacuvao prethodno procitani podatak na ugradeni sklop za sabiranje. Ovim je zavrsena i druga instrukcija.
H

Procesor salje memorijl adresu 32 i nal09 za 6itanie, Memorija odgovara, procesor prihvata sadrtaj, analizira ga i zaklJucuje da se radi 0 instn.ikciji koia treba upisati rezultat na adresu 300. Procesor salje memariji adresu 300 (na njene adresne ulaze), rezultat sabiranja (na njene ulaze podataka) i nalog za upis, Ovim je zavrsena i treca instru!ccija. Cijelo vrijeme dok rac,:-!nar radi izmedu memorije i procesora odvija se dijalog poput gore prikazanog dijaloga. Sve s10 racunar radi svodi se na kraju iskljuCivo na izvrsavanje ovakvih primltivnih instrukcija. Medutim', aka pazljivije razmotrimo prikazani dijalog, vidJecemo da prili6an dio vremena memorija
33

32

i procesar provedu u razmjeni infarmacija paput adresa i instrukcijskih kodova koji nemaju nikakve veze sa samim podacima koji se obraduju. Ova pojava naziva se Von Neumannovo usko grio, i predstav!ja najveCi nedostatak Von Neumannovog modela. Takoder, primijecujemo da izmedu razmjene masinskih instrukcija i podataka u sustini nema nikakve razlike. Zbog toga se svaka instrukcija mote interpretirati kao podatak, i obrnuto, svaki podatak mote se interpretirati kao instrukcija. Ova cinjenica smatra se osnovnom karakteristikom Von Neumannovog modela racunara. Da bi procesor mogao da obavlja opisanu funkciju, on pored registara mora da sadrzi i sljedeee uredaje: aritmeticko-Jogicku jedinicu (skraeeno ALU od engl. 8rithmetical 1,,0gieal11nit) i uprav~ Jjacku jedinicu. Arftmetieko-logi6ka jedinica je relativno jednostavan uredaj koji izvodi elementarne racunske operacije (poput sabiranja u gore navedenom primjeru), dok je upravljacka jedinica znatno sloten!ji uredaj koji generira adrese koje izlaze lz proeesora, naloge za citanje i upis, prepoznaje i analizira prihvaeene instrukcije, te upravlja radom aritmeticko-Iogicke jedinice, registara i ostalih dijelova procesora. Kao sto smo vidjeli, svaka masinska instrukcija izvrsava se u nekoliko etapa. prj tome, izvrsavanje svake lnstrukdje heba da bude rezu!tat uskladenog rada velikog broja komponenti unutar procesora. Da bi se ostvarila sinhronizacija izrnectu pojedninih komponenti, u svakom raeunaru se na!azi generator taktnih (klok) impulsa, koji se jos naziva i sat, iii jos 68sce klok (od engL clock) da se izbjegne zabuna sa satom ko]i prikazuje stvarno vrijeme. Generator taktnih impulsa vodi se na procesor (preciznije, na njegovu upravljacku jedinicu). Trenutak nailaska klok impu!sa odreduje kada ee zapoeeti s!jedeca faza masinske intstrukcije (izmedu dva klok impulsa procesor uvjetno receno miruje). Klok impulsi nailaze velikom brzinom u pravilnim vremenskim razmacima, i mozemo ih uporediti sa otkucajima ljudskog srca.

automata kao modela procesora koji ce kasnije omogueiti strahovito smanjenje dimenzija pracesara. Vidjeli sma vee da se svaka masinska instrukcija izvrsava u nekoliko etapa. Wilkesova ideja sastojala se u tome da se upute 0 tome kako se izvrsavaju pojedine etape svake masinske instrukcije pohrane u malu memoriju unutar samog proeesora (nazvanu mikromemorija). Te upute, nazvane mikrofnstrukcije, sastoje se od sasvim elementarnih informacija poput da Ii treba iii ne treba poslati nalog za citanje, sta treba raditi aritmeticko-Iogicka jedinica, da Ii se treba pristupati registrima (i aka treba, kojim), itd. Upravljacka jedinica zasnovana na koristenju mlkroinstrukcija nazvana je mikroprogramirani automat. Osnovna prednost koristenja mikroprogramiranog automata sastoji se u Cinjenici da je moguce mijenjati funkcioniranje automata sarno promjenom mikroinstrukc1ja, tako da isti_automat mote praktl6no slutiti kao upravljacka jediniea za ma koji procesor. Sasvim je jasno da je ovakav princ1p drasticno pojednostavio postupak projektiranja procesora.
Nakon Wilkesovog otkrica, dimenzije procesora su se neprestano smanjivale, tako da su 1970. godine Marcian Hoff i Victor Poor iz firme INTEL uspjeli da konstruiraju pIYi mikropl'Ocesor - Citav procesor smjesten u jednom jedinom cipu, Ovaj mikroprocesor, nazvan 4004, bio je zaista veorna los proeesor (4-bitni), desetak puta sporiji od tadasnjih procesora veeih dimenzija. Korisnici su bill razocarani, i firma INTEL je eak razmisljaJa da potpuno odustane od daljeg eksperimentlranja sa mikroprocesorima. Na svu sreeu, to se nije dogodilo, tako da je INTEL 1972. godine proizveo 8-bitni mikro~ proeesor 8008, a dvije godine kasnije i mikroprocesor 8080 koji je postigao ogroman trtisni uspjeh. Danas je INTEL vodeei proizvodac mikroprocesora, a njihovi mikroprocesori pocevsi ad modela
8088 pa preko modela 80286, 80386, 80486, Pentium, Celeron itd. Cine sastavni dio veeine raeunara koje danas obicno nazivamo PC raCunarima. Mnogl proizvodaC! mikroprocesora kao sto su AMD, Cyrix i drugi prave mikroprocesore kojl su kompatibilni sa INTELo.{)vim procesorima, sto

Klok illij)ulsi

znaci da ani razumiju Iste masinske insfrukcije kao i fNTEL-ovi procesori, i mogu izvrsavati iste programe. Drugi veliki proizvodac mikroprocesora je firma Motorola, i njihov procesor 68000 [ njegovi srodnici cine osnovu raeunara familije Macintosh firme Apple, koji su jako popu!arni u SAD"u, Medutirn, MotoroJini i /NTEL-ovi procesori nisu medusobno kompatlbi!ni, tako da PC racunari ne mogu izvrsavati programe pisane za Macintosh i obrnuto. Od ostalih mikroprocesora koji su obiljezili historiju ratunara treba spomenuti Z80firme Zilog na kojem je bio baziran racunar ZX Spectrum, kao j proeesori 6502 i 6510 firme MOS Technology na kojima su bitl bazirani racunari Apple II, BBC B i Commodore 64.

Oeigledno ce procesor raditi tim brze sto brze dotaze klok impulsi. Broj klok impulsa u jednaj sekundi naziva se frekvencija kloka i izratava se u- hercima (Hz). Kako je here m'ala jedinica, obicno se koriste vece jedinice megaherc (1 MHz : : : 1000000 Hz) i gigaherc (1 GHz ::: 1000000000, Hz). Na primjer, frekvencija kloka ad 1 GHz oznacava mitijardu klok impulsa u sekundi. Danasnji procesori vee mogu da fade sa frekvencijama kloka od nekoliko gigaherca. Frekvencija kloka zaprava izratava broj najelementarnijih radnji koje proeesor moze da abavi u jednoj sekundL Taka, procesor koji radi na frekvenciji kloka 1 GHz u jednoj sekundi obavlja oko mill jardu elementarnih radnjil Za procesore koji u jednom koraku mogu da obrade podatke- dutine n bita katemo da pred~ stavljaju n-bitne procesore. Nekada su na trzistu dominirali 8-bitni i 16-bitni procesori, dok sa danas najcasce susreCi 32~bitni, pa i 64-bitni procesoit QVe' cinjenic:e utjecu na brzinu rada procesora, pa je tako 32-bitni procesor u prosjeku dvostn,lko brzi 09 16-~lt.f)og pr~cesora prl istoj frekvendji kloka.

.2.4 Vrsle racunara

Svl racunari se s obzirom na svoja svojstva mogu podijeliti na vise skupina. Najrasprostranjeniju skupinu predsiavljaju mikroracunari. To su racunari najmanje snage, i sa njima se veeina danasnjih korisnika racunara najvise susrece. Mozemo ih podijelitl na kucne racunaf(:J i licne iii persona/tie racunare (skraeeno PC - Eersonal Qomputer). Kueni racunari su najjeftinijL i najiedriostavniji: i koriste se pretetno za igru i ueenje, dok su PC racunari pogodni i za poslovn~ -primjenl;l: Kako so" danas cijene PC racunara drasticno opale, oni se sve yise susreeu i u kuenoj upotrebi, ta}~o -da vise: ne motemo govoriti 0 strogo] podjeli na kuene i personalne racunare. -,' Mikroracunare.mozemo podijeliti i na stolne (desktop) i prenosne racuriare: StDlnl,raflVnarJ SU"" predvideni za smjestaj na jednom mjestu, dok su prenosni racunari predvideni z:St e'esto p~renoserije sa jednog na drugo mjesto, Stoga su prenosni racunarl matih-dimenzija i mal~ tetl.ne, a-opte-mljeni su i baterijskim napajanjem da omoguce rad na mjestima gdje gradska (Japojna mreza I]Jje ,dosiupna. Posto]i mnoga vrsta prenosnih ra6unara, a najpoznatiji su laptop racunari '(namijenjeni za drzanje na krilu), notebook racunari (ve!icine sveske), handnheld racunari (velicine,--kalkulatbra,
35

Prvi proeesori bili su glomazni uredaji, _prven$tv:eno,~zahyaljuju.c.i komplif<ovanoj upravlj'a6koj jedinici. Upravljacke jedinice p-rvih proces6ra niSu priJjeklirane nLna kakav sistematican natin, i koristile su posebne uredaje (komponente) za iivrsavCl,llje ratli6itih mC!sinskih instrukdja. Situacija se drasticno mijenja 1951, godjne kada Maurice Wllkes UVO?i koncept mikroprogramiranag

34

namijenjeni za drzanje u ruei), palmtop racunari (v!"!liCine diana) i sasvim minijaturni PDA racunari (Eersonal Qigital Assistant). Radne stanice predstav!jaj~ mocnije racunare _ od mikroracunara, namijenjene intenzivnijoj obradi podataka, Njihova brzina rada I kapacitet memorije znatno su veel nego kod mikroracunaril. Obicno posjeduju izvanredne mogucnosti grafickog prikaza podataka, tako da se intenzivno koriste za obradu grafickih podataka (dijagrama, crteza, slika, ltd.). Mlkroracunari i radne stan ice spadaju u jednokorisnicke racunare, jer su namijenjeni za istovremeno opsluzivanje sarno jednog korisnika.
Miniracunari, za razliku od mlkroracunara I radnih stanica, namijenjeni su za istovremeno opsluzivanje vise korisnika, te spadaju u klasu visekorisnickih racunara. Njihova snaga znatno prelazl moguenosti mikroracunara i radnih stanica, stoga se koriste kada je potrebna velika brzina abrade podataka. Najpoznatiji miniracunari blli su -racunari PDP~ 11 i VAX~ 11nSO (treba napomenuti da se granice izmedu skupina racunara pomjeraju sa razvojem tehnologije, tako da su danasnji PCmikroracunarl mocniji od nekadasnjih mlniracunara PDP-11 i VAX). Veliki (mainframe) racunari predstavljaju racunare Izuzetno velike snage, koji se koriste u situacijama kada ni miniracunari ne mogu ostvariti neophodnu brzinu obrade. Medutim, cijena velikih ra6unara js isuvise visoka, tako da Dve racunare sebi mogu priustiti samo velike kompanije. Veliki racunarski sistemi se tipicno koriste za opsluzlvanje vise stotina iii hiljada korisnika u velikim organlzacijama, koji su medusobno prostorno raStrkanL Najcesca primjena velikih racunara je u vla dinim agencijama, bankarstvu, upravljanju avlonima i svemirskim letjeHcama itd. Superracunari su najmoenija vrsta racunara, koji se odlikuju sasvim specificnom (namjenskom) arhitekturom i specijalnim tehnolosklm rjesenjima. Zbog enormno velike cijene (koja premasuje desetine miliona dolara) ne'proizvode se serijski, nego iskljucivo pojedinacno (po narudzbi), a nami~ jenjeni su iskljucivo za vojne primjene ill za potrebe veoma specificnih istrat.ivanja. Vodeci proizvodaci superracunara su eray Research i CDC (Control Qata Qorporation).

model predvida sarno jednu_ vrstu memorije, koja neposredno komunicira sa procesorom. U stvarnostl, imama dvije vrste memorlja: internu memorijukoja zaista neposredno komunlclra sa procesorom, i ekster nu memoriju, koja sa procesorom komuniclra posredno, posredstvom- uredaja ko]i se nazlvaju kontroleri eksteme memorije. 0 detaljnim razlikama izmedu intemih i eksternih memorlja govoricemo nesto kasnlje. 81oga, razradenu hardversku strukturu PC racunara mazema prikazati sljedeeom sllkom: KUGISTE RAGUNARA INTERNA MEMORIJA

PROCESOR
.

ULAZNE JEDINICE

...

ULAZNI VEZNI SKLOPOVI

IZLAZNI VEZNI SKLOPOVI

IZLAZNE JEDINICE

IKONTROLER I EKSTERNE MEMORIJE


..-

EKSTERNA MEMORIJA

Ulazne jedinlce, kao 5tO 1m ime govorl, slUle za unos podataka u racunaL Najprimitivnije ulazne jedinice predstavljaju prekidaci, koji omogucavaju unosenje binarnih Inforrnacija DNNE tipa. Sa modernim ulaznim jedinicama susreli ste se u nastavi informatike u osnovnoj sko!i, stoga cemo se sarno ukratko podsjetiti najrasprostranjenijih ulaznih jedinica koje se susreeu u savremenim PC racunarima i njihovih karakteristika:

Racunarske sisteme mozemo podijellti i prema nacinu grade, odnosno po arhitekturi. Opisana Von Neumannova arhitektura tipican je predstavnik jednoprocesorskih sistema, jer racunari gradeni po ovoj amitekturi imaju sarno jednu proeesnu jedlnicu. Postoje i viseprocesorski sistemi, kod kojih je karak~ teristicno postojanje vise procesnlh jedinica, ViseprocesorSki racunarski slstemj mogu neki zadatak podi jeliti na vise dijelova, koji se nakon toga istovremeno obraduju na vise procesora. Ovakav nacin obrade naziva se paralelno procesiranje. Na taj naCin se postlt.e znatno veda brzina rada nego na jednoprocesorskim sistemima. Grada viseprocesorskih racunara kao i grada programa kojl mogu radai na takvlm racunatima su prilicno slozenl, pa se takvl racunarl za sada ne koriste u svakodnevnoj upotrebi, nego iskljucivo za specifiCne zadatke kod kojih se trazi obrada velike koliCine podataka u kratkom vremenu.

Tastatura je najrasprostranjenljl ulazni uredaj, koji je ios uvljek nezamjenjiv pri unosu teksta u racunar. Danasnje tastature najeesce imaju 102 tipke, sa cijom ste se 'funkcljom upoznali u osnovnoj sko!i.
Mis je tipican primjer pokaznog ulaznog uredaja. Pomicanjem misa po nepokretnoj podlozi pomjera se odgovarajuei pokazivac na ekranu, a prltiskorn na jedan od tastera misa Izvrsava se neka od komandi koja je vezana za objekat na kojl pokazivac misa 0 tom trenutku pokazuje.
Pomicna kuglica (engL trackbafO je uredaj slican misu, koji izgleda kao naopako okrenutl mls. Glavna prednost jo] je sto ne zahtijeva posebnu nepokretnu povrsinu, pa se moze I(orlstiti u slucajevima kada s!obodna nepokretna povrsina nije raspo!oziva (na primjer, kod prenosnih racunara).

1.2.5 Hardverska slruklura PC racunara


Danasnji PC racunarl gradenl su po Von Neumannovom modelu, koji smo vee detaljno opjsali, taka da je opci' Von Neumannov model primjenijiv i na PC racunare. Medutim, da bi smo u potpunosJi razumjeli ham:: veTsku strukturu PC racunara, Von Neumannov model nije dovotjno precizan. Prvo, Iz- OVog modela moglc' '~" bi se zakljuciti da se ulazne i izlazne jedinice vezuju direkfno na centrafnu jedinicu racunara.. Stvame I,llazne' . I izlazne jedinice, poput tastature i monitora, nikada se ne prikljucuju direktno na centralnu jedinicu, oogo -senjlhovo prikljucenje vl'Sl pom06u uredaja kojl sa nazivaju uJazni odnosno izlazn; vezni sklopoyi. to.gitkL '. gledano, ulazni i Iziazni vezni sklopovi cine sastavni dio ulaznih I izlaznih uredaja, alf kako sE! .qni -nalaze unutar kueista racunara zajedno sa procesorotl) i memorijom (za raz1iku ad npr. same t!lstature i monitora koji su izvan kuCista), fizicki gledano izgleda kao da oni cine dia centralne jedinice. Drugo, Vo'! Neumann9v
36

Grat;cka plota ili tablet je uredaJ koji omogueava jednostavan unos crteta u ratunaL Crteti se crtaju uz pomoc specijalne olovke po specijalnoj ploci, kojl se automatski pretvaraju u racunaru prihvatrjiv obllk i prikazuju na ekranu racunara.

Skenerpredstavlja uredaj za direktni prenos slike sa paplrnog medija U racunar. Postoje skeneri koji mogu prepoznavati sarnO crno-bljelu sliku, kao i skeneri koj] prepoznaju slike u bajL KValitet skenera mjeri se brojem tacaka po ineu (DPI 120ts E.er Inch, 1 inc 2.54 em) kale su skeneri u stanju da razluce. Za razliku od graficke table, skeneri ne zahtijevaju da se crtez precrtava, vee su u stanju da prihvate vee nacrtane crteze ih slik~. Palica za igru (diojsfik) je pokazna naprava sa pokretnom palicom koja radi poput misa, medutlm koja je praktlcnija za potrebe upravljanja pomicnim objektima ko]] se prikazuju na ekranu, sto se naroCito cesto susrece u racunarskim igrama.

37

Mikrofon je danas sve z?stupljeniji ulazni uredaj, koji se moze koristiti za komunikaclju sa rac~narom putem govora. Digitalne kamere su danas nezamjenljiv ulazni uredaj za potrebe unosenja podataka koji se mogu prikazati u vidu pokretnih (animiranih) slika. Njihova glavna primjena je prilikom realizacije video tehnike uz pomoc racunara. Izlazne jedinice sJuze za prikaz podataka iz racunara u covjeku prihvatljivom obliku. Najprlmitivnije izlazne jedinice predstavljaju razne vrste svjetlosnih indikatora. Ovdje cema se podsjetiti prikaza nekih najrasprostranjenijill izlaznih jedinica kOje se susrecu u savremenim PC racunarima, a sa koji~ rna ste se takoder susreli u nastavi i~formatike u osnovnoj skoli:
Monitor je najrasprostranjeniji lzlazni uredaj, koji na svom ekranu prikazuje tekst, crteze i druge rezultate obrade u eovjeku prihvatljivom obliku. Kvalltet monitora izrazava se veliCinom njegovog eMana, koja S8 mjeri u incima po dijagonali (danas se najcesce susrecu 17-incni monitori), kao i rezolucijom, koja predstavlja broj tacaka (zapravo sicusnih kvadrati6a nazvanih pikseJ~ koje je monitor u stanju da prikaze na ekranu. Rezo!ucija monitora se izrazava u vidu produk'ta broja tacaka po sirini i visini (npr. 1024 768). Danas postoje manitorl sa katodnom oljev; iii CRT monitori (Qathode Bay lube) kao i pljosnati monitori sa tecnim krista/om iii LCD mo~ nitari (1iquid Qrystal Qisplay), koji se obiono susrecu u prenosnim racunarima,

nalaze i vezni sklopovi na koje je moguce prikljuciti razHCite vrste u!aznih i izlaznih uredaja. Najvazniji takvi vezni urec1,aji su paralelna vrata (iii paralelni port) j serijska vrata (iii serijsk; port). Na paralelna vrata prikljueuju se ulazni i izlazni urea-aji kod kojih se istovremeno sa racunarom razmjenjuje vise bitova odjednom (najcesce stampac iii skener), dok se na serijska vrata prikljucuju ulazni i izlazni uredaji kod kojih se u jednom trenutku sa raeunarom razmjenjuje samo jedan bit (najeesee mis i modem). Posebnu vrstu serijskih vrata Cine USB (Universal Serial Bus) vrata, preko kojih je omogueeno standardizirano povezivanje vece skupine uredaja koji koriste serijski prenos (do 127 uredaja) preko zajednickih vodica na jednu utiCnicu. Izlazni vezni sklop koji omogu6ava komunikaclju sa monitorom naziva se- graficka kartica, i od njenog kvaliteta (pored kvaliteta monitora) zavis] kvalitet slike koja-6e se moei prikazati na ekranu (broj baja, rezolucija, itd.). Vecina danasnjih grafickih kartica spada u porodicu SVGA (S.uper ,'iideo .Q.raphic Adapter) grafickih kartica. Ulazno~izlazni vezni sklop koj! omogucava komunikaciju sa mikrofonom odnosno zvucnlkom naziva se zvucna kartica (poznata je npr. Sound Blaster zvucna kartica). Za razliku ad graficke kartice, zvucna kartica ne mora biti prisutna u svakom PC racunaru. Vec smo rekli da se memorije mogu podijeliti u dvije grupe: interne memorije, koje se jos nazlvaju i unutrasnje, centraine iii radne memorije, i eksterne memorije, koje se jos nazivaju i vanjske, periferne iii inasovne memorije. Osnovni kriterlj po kojem se memorije dijele na interne i eksterne je naCin na koji lh vidi procesor. Interne memorije mogu neposredno komunicirati sa procesorom, dok eksterne memorije, iako logicki giedano spadaju u memorije, procesor uvijek vidi kao ulazne odnosno izlazne uredaje, i komu~ nicira sa njima na isti nacin kao sa tastaturom i ekranom koristeCi uJazno-iz/azne masinske instrukclje. Zbog toga se pojedini uredaji koji spadaju u eksterne memorije (poput raznih vrsta dlskova), ponekad svrsiava~ ju u ulazne ili izlazne uredaje, sto nije tacno sa iogickog aspekta (mada sa njima imaju mnogo slicnosti). Interne memorije se danas grade isk!jucivo na elektronickom principu rada, u vidu integriranih kola (cipova), dok su se ranije susreta!e i interne memorije kOje se zasnivaju na magnetskom prin~ cipu rada. Ove memorije su prakticno neprenosive iz raeunara u racunar, jer su (;vrsto povezane sa procesorom j ostalim dijelovima racunara. Brzina pristupa podacima koji su smjestenl u internim memorijama neuporedivo je veca nego brzina pristupa podacima na eksternim memorijama. Glavno svojstvo ovih memorija je cinjenica da se programi koji su u njima pohranjeni mogu neposredno izvrsavati, s obzirom na cinjenicu da im procesor moze direktno pristupatL Interne memorije se obicno dijele na dvije skupine, nazvane RAM i ROM memorije. Kod ROM memorija (Bead Qn!y Memory), podaci su u memoriju upisani jos u fazi proizvodnje neki.m postupkom (poput progorijevanja, busenja, ltd.) koji ostavlja trajne fizicke promjene u mediju koji slut! za memoriranje i stoga su podaci zapisani u njima trajni. Sto je jos bitnije, jasno je da se iz ovakve rnemorije podaci mogu samo Citaii, ali ne i upisivati, odakle j potice njeno ime, Mada se naziv ROM prvenstveno odnesi na vrstu interne memorije, neke eksterne memorije su takoder ROM tipa, u smislu da .se podaci sa njih mogu samo Citati (npr. CD ROM). Kod RAM memorija (Random 8ccess Memaryfpodaci se mogu nasumice upisivati i Citati iz bllo kojeg dije!a memorije j po potrebi brisatl, ogakle J P9tice njihovo lme. Nekada se nazivaju i RJW memorije (Bead/Write), sto je donekle nepre~ ciznO', jer-za veeinu eksternih memorija takoder mozerno reCi da su RlVVtipa. Obicno se tvrdi da sve RAM"rjembrije,_brisu komp/etan svoj sadrtaj iskijuCivanjem napajanja. Strogo uzevsi, ovo vrijedi sarno . za RAM. mernorije' kOje su zasnovane na elektronickom principu rada, dok to ne mora bit! slucal ked 'RAM memO-rila kOje su.zasnovane na nekom drugom principu rada (npr. magnetnom). Ipak, veGina - dana~[1jih- RAM memorija koristi iskljucivo elektronicki princip rada. lnteresantno je napomenuti da - .grafiCj{e-~artfge posjeduju svoju vlastitu RAM memoriju (za potrebe pamcenja slike Koja se prlkazuje !)a:ekranu), Qd-Cijeg kapaciteta direktno zavisi kvalitet slike koja moze bit! prikazana. Umjesto ,klasicnih ROM memorija danas se uglavnom koriste njihovi bliski srodnici PROM, E;:'-ROM i EEPROM. PROM memorija (Erogramable Bead Qnly Memory) je u trenutku proizvodnje 39

Stampac (printery je izlazni uredaj koji pre nasi sllku formiranu u memoriji racunara na papirnl medij. Donedavno su S8 najvise koristili matricni stampaci, koji su -sliku iscrtavali pomocu niza i91ica koje su iscrtavale sliku formiranu od sitnih tackiea. Medutim, kvalitet otiska ovakvih stampaca bio je prilicno los, a pored toga, oni su bili spori i buCni. Danas se najvise koriste laserskj stampacj, koji rade na elektrostatskom principu rada koji je gotovo identican principu rada masina za fotokopiranje, kao i stampaci sa mJazom tinte (eng!. ink~je~ koji rade na prindpu strcanja veoma tankog miaza tinte na papir, koji se uz pomoe elektricnog po!ja usmjerava na tacna odredena mjesla na papiru. Laserski stampaci su brzi od stampaca sa mlazom tinte i imaju nesto bolji kvalitet otiska. Umjesto tinte koriste boju u prahu koja se naziva toner. Prednost stampaca sa mlazom tinte je niza cijena, i jednostavna mogucnost stampanja stika u boji pomoeu vise strcaljkl koje Strcaju raznobojnu tintu, slo sa laserskim stampacima niie nimalo jednostavno postlei (stoga su laserski Stampaci u boji enormno skupi),
Crtac (platef) je izlazni uredaj koji iscrtava sJiku na papiru pomoeu posebnih, obitno razno~ bojnih pisaljki. Nekada se mnogo koristio, a danas se susrece sve rjede. Osnovna prednost crtaca u odnosu na Stampac je mogucnost crtanja po papiru veoma velikih dimenzija.

Muftimedijskf projektor je izlazni uredaj koj! omogueava projekciju sllka zapisanih u racunaru na p!atno iii zid, eime prikaz postaje znatno pogodniji za slucaj kada treba da ga prati velika grupa posmatraca. Multimedijski projektori najcesee projek1iraju istu sliku koja bi se inaee prikazivala na ekranu monitora, tako da multimedijs!<i projektor zapravo predstavlja alternativu za monitor, u kojoj ulogu ekrana preuzima platno iii zid. Multirnedijski projektor i monitor spadaju u interaktivne izlazne uredaje, jer se njihov prikaz moze izmijeniti u svakom trenutku, za raz~ liku od npr. stampaca, eiii js prikaz statiCan.
Zvucnik je izlazni uredaj kojl sluti za prezentaciju informaClja u zvucnoj formi, obicno u formi govora iii muzike (ne zaboravimo da je i muzika specijalan slucaj podataka i informacija).

Neki uredaji mogu se lstovremeno smatrati i ulaznlm I izlaznim uredajima. Takav je, na primjer, modem kO)i se koristi prilikom prikljucenja racunara na te!efonsku mrezu radi komunikacije sa drugim raeunarima. 0 ovome cemo detaljno govodti u poglavlju 1.6. Kao sto je vee receno, ulazni i izlazni uredaji prikljucuju se na ulazne i izlazne vezne sklopovL Ovo prikljucivanje vrsi se pomo6u utienica koje S8 nalaze na ku6istu racunara. Unutar racunara S8

38

prazna, Korisnlk u nju moze upisatl sadrzaj pomoeu uredaja nazvanog PROM programator, medutim taj sadrzaj se moze upisati sarno jedanput (I ne maze se izbrisatl) zbog toga sto postupak upisivanja ima destruktivno dejstvo na materijal ad kojeg je pravljena memorija. Kod EPROM mernorija Q;.rasab!e .Erogramable Bead Qnly Memory) postupak upisa je sliean kao kod PROM memorija, ali nacin na koji je izvrsen upis nije potpuno destruktivan taka da postoji nacin da se memarija vrati u prvobitno stanje i time Izbrise. Kod elektranickih EPROM memorija to brisanje se najeesce izvodi izlaganjem cipa. jako] svjelosti izvjesno vrijeme. EEPROM memo(fje (Electrical .Erasable .Erogramable Bead Qnly Memory) su prilicno sliene EPROM-ima, ali kod njih postoji moglJenost brisanja i pomoeu elektriene struje (tipicno mnogo jace nego pri normalnom radu). Logieki, EEPROM liei na RAMmemoriju, jer se u njega ipak mogu upisivati podaci proizvoljan braj puta Cisto elektriekim putem (dakle, bez potrebe za vadenjem eipa iz racunara). Stoga se EEPROM memorije ponekad nazivaju i FLASH RAM. Medutim, njihov sadr2aj je postojan kao kod ROM memorija, tj. ne brise se tek taka sam od sebe iskljueenjem napajanja. Jos bitniji razlog zbog 6ega se EEPROM radije svrstava u ROM memorije je Clnjenica da se upis podataka u EEPROM vrsi neuporedivo sporije (i do milion puta) ad upisa u klasicne RAM memorije tako da bi EEPROMtrebaio koristiti u situacijama kada postoji principljelna potreba za mijenjanjem upisanih podataka, ali koja ce se vrsiti vrlo rijetko. U danasnjim PC racunarima umjesto klasienog ROM-a najeesce se susrece upravo EEPROM. Eksteme memorije najeesce nisu gradene iskljucivo na elektroniekom principu rada, oego na elektromehanickom principu rada (poput magnetnih diskova) iii optickom (preciznije, optomehanickom) principu rada (poput optfckih kompakt diskova). Obicno posjeduju pokretne dijeiove, koji rotiraju za vrijeme rada, zbog 6ega je brzina pristupa podacima na njima neuporedivo manja ne90 kod internih memorija, S druge strane, eksterne rnemorije su uvijek u manjem iii veeem stepenu prenosive, i kapacitet im je najcesce znatno veei ad kapaciteta internih memarija. Kako procesor nema direictan pristup sadrZaju eksterne memorije, programi pohranjeni na vanjskoj memorlji ne mogu se neposredno izvrsavati, nego se moraju prethodno prebaciti u internu memonju. Recimo nekoliko rijeei 0 najvaznijim eksternim memorijama:
Disketa iii flopi diskje okrugla ploca presvueena tanj(im slojem magnetskog materijala i upakovana u eetvrtasto pl~sticno kuciste. Podaci su na disketu zapisani kao niz magnetiziranih cesti~ ca koje mogu biti magnetizirane na dva razllcita naCina, koji predstavljaju zapis stanja 0 iii 1. DisketaBe prllikom upotrebe ubacuje u dfsketnf pagon (engl. disc drive). Danasnje diskete su ye\iCine 3.5 inca i kapaciteta 1.44 MS, sto je po danasnjim mjerilima malo, tako da se diskete sve manje koriste kao eksterne memorije.

1. Postoje tri vrste kompakt diskova:,.p.D.BDM (na njih su podaci upisani ~i proi.z~~~e mogu se rnijenjati niti brisatiLQQ:B (oznaka R potice ad engl.l:reCordable)JialfQJL.!LQ.QQacj 1rl00u'tJ"plsati jedanpuf(poput PROM mem.2rija), i Cl'!MR!W dihgvLna.koje_se.pooacL.tIIo.gu..upj" slvatn15i1SatTrieogran7~tLQJ.oj_Puta..StandardnHGrp~8frkompakt diskova su 650 MB i 700 MB ruSlUcajevima kadase ani koriste kao muzicki diskovi, ovim kapacitetima odgovara 74 odnos~ no 80 minuta zvucnog zapisa). Pristup podacima na kompakt diskovima je mnogo sporlji nego pristup podacima na hard disku, dok se upis podataka na upisive diskove vrsi izrazito sporo. NajveCi nedostatak kompakt diskova je izuzetna osjetljivost na prasinu i masnocu, kao i priliena nepouzdanost odgovarajucih pogonskih uredaja (CD citaca). U posljednje vrijeme se pojavila i vrsta kompakt diskova pOd naz.lR.~(Qigital ~ersatile Qisc). Kapacltet ovih diskova je znat~ no ve61 (i do 17 GB), ali zahtijevaju specijalne pogonske mehanizme (citace). Mada je njihov kapacitet uporediv s~..1.?22.citetima hard diskov~c...~~L~E~.9.Q.lf?k~ ...IlELt2Qi~ct.\~iJL[lji~~vu fle,~.sibil~ , nosfUedina izfaZlt~dnOOt-im-je..prenosi)J.oSfLnjska...Gllima). .--. _.- -_.

,7~presvu6enu magnetnim materijalom, kOja je praktieno identiena kao traka koja se koristi za sni, manje muzike u kasetofonima (interesantno je spomenuti da su mnogi stari kucni raeunarl kao eksternu memoriju koristili iste kasete na kaje se snima muzika, a kao odgovarajuci pogonski uredaj za upis i citanje podataka obieni kasetofon). Najveca mana magnetnih traka je izuzetna sparost. u pristupu podacima, zbog potrebe da se traka prethodno premota na odgovarajuce mjesto. Mada spominjanje magnetnih traka danas moze djelovati posve zastarjelo, treba napomenuti da se one u pojedinim izvedbama (npr. strimer trake) zbog svoje male cijene i ogromnog kapaclteta i danas masovno koriste za arhiviranje velildh kolicina podataka kOjima S8 nece cesto pristupati (npr. za euvanje rezervnih kopija vaznih podataka). Svi programi i podaci na eksternim memorijama logieki su organizirani u povezane skupine nazvane datateke. Sto se tice fizicke organizacije podataka, napomenimo da su diskovi podjjeljeni na odredeni broj koncentricnih traka, i kruznih isjeeaka nazvanih sektori. Presjek jedne trake i jednog sektora nazlva se blok. Blokovi predstavljaju e!ementarnu strukturu fizickog zapisa podataka na disku. Racunar moze u jednom trenutku proCitati sadrzaj samo Citavog bloka sa diska (koji sadrii od nekollko stotina do nekoHko hiljada bajta), a ne i pojedinacne bajtove unutar bloka. Slieno vrijedi i prilikom upisa pcidataka na disk. Trake, sektori i blokovi iiustrativno su prikazani na sljedecoj slid:

.,-?(

Magnetne trake su najstarije eksterne memorije, koje za memoriranje podataka koriste traku

.*
, \ /

AzIP djs~ je, zapravo vrsta diskete znatno veceg kapaciteta (tipieno

~.Y . Hard disk (tvrdi disk,


7~

100 MB). Mada su veama pouzdanl, osnovni nedostatak ovih diskova je sto im je cijena prilieno velika u odnosu na } kapacitet, i sto zahtijevaju posebne disketne pogone, koje proizvodi sarno jedna firma (IOMega). fiksni disk) je po gradi sllean disketi, sarno sto nije savltljiv i izraden je od k~utjh materijala .. Za razliku od disketa, okreee se veHkom brzinom (stoga je pristup podaci~ ma.na njemumnogo brii). Kako su cestiee prasine iz zraka davoljne da ostete ovakve diskove, oni su. upakovani u .he(metieki zatvoreno kuCiste (zajedna sa pogonskim mehanizmom). Ovo kuc.lSte je .cvrsto" pricvrsceno na ku6iste samog racunara, tako da su ovi diskovi praktieno nepre)1osj~F(mogu ~e prenijeti iz racunara u racunar samo zajedno sa kudStem diska i cjeldkupnim pogorls{(im hlehilJl1zmom). Kapaciteti danasnjih hard dlskova mjere se u desetinama pa i stotina1yJa gig~bajta. . . . , Svi dijelovi racunara ka]i Se nalaze unutar kucista, poput procesora, memorije i veznih sklopova, povezani su na zajednicku skupinu provo~nika koji se nazivaju sabirn;ce. I pojedini dijelovi unutar procesora takoder su medusobn.o.pove.zani sabirnicama, ko]i se za razliku od prethodnih, tzv. ekstemih sabirn;ca, naz!vaju. interh~. sabirnJce. . Glavni dijelovi racunara; popuLprocesora.; Qsn'ovne.memorije, kontrolera eksternih memorija i osnovnih veznih sklopova, .naj6es.ce J?1.I ft~s.i.rani lJa jedrj6j ploei kOja sec naziva maficna plata (eng!. ' motherboard). Svi uredaji koji se 2.ele riaknadnoprfkljuciti u racunar, a koji se obicno nazivaju lcartice iii adapterl(poput npr. vee spomenute z.Vu9ne..~-a..rtjce); moraju bit!" gracieni tako da se mogu prikljueiti na sabirnice koje se nalaze u raeut}anJ .. Stogase na matte.noj ploei nalazi niz uticn;ca (slotova) koje su povezane na sabirnicu racunara,) kOje:sunamijenjene da se u njih utaknu odgovarajuce kartice, Cime je omoguceno nakn~dna dodavanj~nOl'jh _dijeiova u (atunar na jednostavan naein.

\,.

~~~K~mpa.kt.d~~~~~vr($k~a~e~~ tD) predstavljaju diskove ko]i su se prvo koristili za zapis muzike

(ne za~oraylmo da muz!ka takoder predstavlja samo hrpu podataka), medutim kasnije su se rasfrili i.kao. metlij Za masovno memoriranje podataka i programa. Za razliku od ostalih vrsta qisl<ova; bazirp.oi su "na opti6kom principu rada, pri 6emu se oCitavanje vrsi pomocu lasera koji formira veohla tanak i usmj~ren mlaz svjetlosti. Nairne, pojedini dijelovi medija ad kojih je kom~ .pakt disksacinjenodbijaju svjetiost pod raz!icitim uglovima, koji se mogu interpretirati kao 0 iii

40

41

1.2.6 Organizacija softvera PC racunara


Svaki racunar, pa taka i PC racunari, bez softvera predslavlja sarno neupotrebJjivu hrpu zeljeza, silicija, plastike i drugih materijala. Oa bi ra6unar postao upotrebljiv, neophodan mu je softver, koji ukljucuje sve vrste programa koji sadrze racunaru razumljive naredbe i taka kontroliraju hardver racunara prilikorn abrade informacija, kao i same informacije koje racunar obraduje. Mada je tesko izvrsiti pogodnu klasifikaciju softvera, uobicajeno je da se softver obi6no dijeli u dvlje velike grupe: sistemski softver j apiikativni softver, mada je za neke programe tesko razlu6iti u koju od ove dvije kategorije spadaju, jer granica izmedu ove dvije grupe nije ostra. Takoder, postoje i programi koje je veoma tesko svrstati u bilo koju od ove dvije kategorije (na primjer, racunarski virusi, koji bez obzira na svoju destruktivnu prirodu, ipak jesu softver). U sistemskf softver spadaju svi programi ko]i omogucavaju racunaru izvodenje osnovnih operaclja, i on nlje neposredno namijenjen za rjesavanje stvarnih problema sa kojima S8 susrece korisnik (na primjer, sa obradom-teksta i!i matematickim proracunima). Sistemski-softver omogu6ava komunikaeiju covjeka sa -racunarom, kao i komunikaciju izmedu pojedinih dijelova racunara iii izmedu vise racunara (na primjer, u racunarskim mrezama). Vazno je znati da bez sistemskog softvera ra6unar ne bi znao da ispise niti jedno s!ovo'-na ekranu, ne bi znao da prima komande putem tastature niti misa, ne bi znao da proCita podatke sa diska niti da zapise podatke na disketu, itd. Sve ove operacije, mada izgledaju banalne sa aspekta korisnika, raeunar "ne zna" odraditi sam po sebi (tj. racunarski hardver sam za sebe ne zna uraditi ave zadatke). Umjesto toga, postupci za izvodenje ovih operacija moraju biti objasnjeni racunaru preko sku pine masinskih instrukcija (braj takvlh instrukcija u danasnjem sistemskom softveru maze biti izrazen oak u milionima instrukcija). Upravo ta objasnjenja pohranjena su u sistemskom softveru. Najvatniji sfstemski &lJftver, bez kojeg je nezamisliv bilo kakav rad na racunaru, predstavlja
operativni sistem. To je program, iii grupa pr?~!~rna._"kojLslute.. ,?,!1_,,"~PE.!y'U~~j~,..ra~?m racunara. Operativni sistem -je tako projektiran-da-'''Sl:f"aufomatski pakre6e nakan ukljueivanja "racuni:fra (o ovame cemo detaUnije gavoriti u poglavlju 1.3). Kada se operativnj sistem pokrene, on preuzima pot~

ment koj! je uraden sa novijom verzijom nekog programa nije moguce otvonti pomocu starije verzije Istog programa. Jako, na primjer, tekstualni dokument koji je uraden pamocu programa za obradu teksta Microsoft Word verzija 97 iii 2000 nije moguce otvoriti u verzi]l Microsoft Word 6.0, osim ukoliko prilikom snimanja dokumenta nisma posebno naglasili da dokument treba sacuvati u formatu verzije 6.0. Posta cemo 0 aplikativnom softveru detaljno gavoriti u poglavlju 1.5 kao i u citavom drugom dijelu ovog udzbenika, reeimo sada nesto vise 0 sistemskom softveru. Vee smo rekli da je najvazniji slstemski softver operativni sistem. Postoje mnogobrojni operativni sistemi. Na mocnim racunarima najvise se koristi operativni sistem UNIX, a njegova verzija prilagodena PC raeunarima pod nazivom Linux danas ima sve vise pristalica. Ipak, na PC ra6unarima ubjedljivo dominiraju operativni sistemi iz porodice MS Windows (u raznim verzijama), koje je razvila firma Microsoft. Moguce je na istl raeunar postaviti vise operativnih sistema, tako da prilican broj korisnlka ima na svojim ra6unarima i Windows i Linux operativni sistem. Prije pojave Windows operativnih sistema glavni operativni sistern za PC racunare bio je MS-DOS (Microoft Qisk Qperating ,System), medutim danas se zbog zastarjelosti ovaj operativni sistem rijetko koristL PoSto je MS-DOS imao i nekih lijepih osabina koje se ne mogu !ako posIiCi pod Windows operativnim sistemom, u Windows je ugradena mogucnost oponasanja (emufacije) operatfvnog sistema MS-DOS, taka da je moguce Windows "natjerati" da se ponasa poput MS-DO$-a. Kako se ve6ina danasnjih korisnika susrece uglavnom sa Windows operativnim sistemima, reCi cemo nekoliko detalja 0 verzijama ovog aperativnog sistema. Mada je prva verzija Windawsa bila verzija 1.0, prva verzija kOja se masovnije korlstila bila je Windows 3.11. Sve verzije do verzije 3.11 (ukljucujuci i ovu verziju) nisu bile kompletni operativni sistemi, nego su se oslanjaH na MS-DOS (tj. nisu mogli da rade bez njega). Prvi neovisan Windows operativni sistem bio je Windows 95, koji je uveo i znacajne konceptualne izmjene u izgledu radnog okruzenja. !za ove verzije s!ijedile su i verzfje Windows 98 i Windows ME lMi!lenium ~dition). Windows 9B je u trenutku p!sanja ovog udzbenika bio ubjedljivo najrasprostranjenija verzija Windows operativnog sistema. Uporedo sa serijom Windows 951981ME koja je bila namijenjena obicnim korisnieima, razvijana je i serija Windows NT (New Iechno!ogy) operativnih Sistema (takoder u raznim verzijama), koja je bila namijenjena za profesionalne upotrebe. Mada Windows NT serija izgleda vizuelno poput obi6nih Windows operatlvnih sistema, Windows NTsu mnogo mocni]i aperativni sistemi, prilagodeni radu u mrezl. Windows NT se lsporueuje u dvije varijante: NT Server (namijenjen za posluii1elje racunarske mreze), i NT WorkStation (namijenjen za radne stanice unutar ra6unarske mreze). Nazalost, neki programi ko]i rade pod 9519B/ME serijom ne rade pod NT serijam. Operaiivni sistem Windows 2000 takoder spada u NT seriju (Windows 2000 je zapravo trebao biti Windows NT 5. 0, ali se Microsoft u posljed~ njem trenutku odluCio da ga izda pod zvuenijim imenam Windows 2000). Posljednja verzija Windows operativnog sistema koja je bila dostupna u vrijeme pisanja ovog udtbenika je Windows XP. Ova] operativni sistem predstavlja pokusaj (po misljenju mnogit1 neuspjesan) spajanja serija 95198IMEi NT u jednu cjelinu. Windows XP je razvijen iz Windawsa 2000, ali sa vise svojstava 95/98/ME serije i sa znatno izm-ijenjenim izgledom radnog okruzenja u odnosu na prethodne verzije Windowsa (koje se, doduse", m~ze.prilagodjti da izgleda i8to kao u ranijim verzijama Windowsa). --- Vatna kategorija sistemskog softvera su razni pomocni uslutni programi- (engl. utility soft~ wafe), k-dji' nisu dio operativnog sistema, ali su prirodna vezani za njega. Primjer ovakvih programa SU pf.ogratni Zit arhiviranje (kao sto su WinZip, WinRAR, ltd.) koji omagucavaju pakovanje, velika -._ :koJicrne. pr6grama i p.odataka u arhive koje zauzimaju znatno manje prastora na disku, zatim pro~ gramfza odriavanje- sistema, itd. - -Ja j~dna-vazna vrsta programa kojl spadaju u siste~'~ki softver su kompajleri, kaji prevode p~pgrame: napisane u nekom jeziku razumljivom covjeku u mEtS,inski jezik koji je razumljiv procesoru. kompaj\!9rima cemo detaljnije govoriti u poglavlju 3.1. U sistemski softver jos spadaju i programi ~a uprav/janje bazama podataka {za razliku od programa za pretraiivanje baza podataka koji
43

punu kontrolu nad racunarom, poput upravljanja memorijom, diskovima, ekranom, tastaturom, i opcenlto, svim dijelovima racunara. On je aktivan tokom citavog rada racunara, i neprestano kontrolira njegov rad. Kad god korisnik pokrene neki drugi program, njegovo pokretanje takoder vrsi operativni sistem. U danasnjim opera1ivnim sistemima, izvrsavanje svakog korisni6kog programa takoder je pod potpunom kontrolom operativnog sistema, mada postoje i operativni sistemi (poput DOS-a) u kojima operativni sistem nema kontrolu nad izvrsavanjem korisnickih programa. U aplikativni softver spadaju svi programi koji su namijenjeni za izvrsavanje speeificnih poslova sa kojima se susrece korisnik. Na primjer, u aplikativni softver spadaju programi za pisanje teksta, crtanje, vodenje finansija, planiranje, pretrazivanje baza podataka, matematlcke i nau6no-tehnieke proracune, kreiranje grafikona i dijagrama, rad sa zvukom, ltd. Programe koji spadaju u grupu ap!ikativnog softvera skraceno nazivamo apJikacije (npr. aplikaeija za vodenje finansija). Mada se vecina korisni6kih poslova obavlja putem aptikativnog softvera, neophodno je poznavati i rad sa operativnim sistemom, jer bez njega uapce nije moguce pokrenuti niti jednu aplikaciju. Bez poznavanja rada sa operativnim sistemom nfje moguce brisati dokumente, kopirati ih sa hard diska na disketu, itd. Takoder, obavljanje nekih poslova prilikom rada sa apllkacijama (poput snimanja dokumenta na disk) u suslini se izvodi pozivom nekih komandi operativnog sistema, a ne same aplikacije. Vecina softvera se sialno usavrsava, tako da gotovo svi ozbiUniji program! imaju svoje verzije. Verzije programa se obicno oznacavaju brojem, iii sa dva broja razdvojena tackom (npr. 1.5), pri eemu prvi broj oznacava verziju, a drugi podverziju. Vazno je znati razlikovatl pojedine verzije programa, jer izmedu dvije verzije istog programa mogu postojati znacajne razlike. Takoder, cesto S6 desava da daku- _
42

"'9

spadaju u aplikativni softver) koji upravljaju kreiranjem, odrzavanjem i upotrebom memoriranih podata~a i informacija KOjima se maze pristupitl preko razliCitih korisnitkih apHkacija. Na kraju izlaganja 0 PC softveru moramo nesto reCi i 0 veoma rasprostranjenom "softveru" koji tesko moze_da se svrsta bilo u sistemsl<i bilo u aplikativni softver (mada po principima rada spada u sistemski softver). To su programi specijalno pisani ad strane veoma iskusnih ali zlih programera, 6i}i je jedfnf eilj nanijetl neku stetu ra6unarskom sistemu (natalost, danas je poznato preko 20000 takvih programa), tako da bi ih mogll nazvati antj~aplikativni softver. Najpoznatiji stetni programi su racunarski virusi, koji imaju mogucnost da prave svoje vlastite kopije, taka da se "razmnozavaju" poput pravih virusa (stoga su i dobili lme). Virusi svoj rad obavljaju u pozadini, tako-da korisnik ne primjecuje njihovo prisustvo. Pored toga, virus! se obicno "prilijepe" na neku od datoteka (program iii dokumen1), time izmijene neke od karakteristika "napadnute" datoteke, i preuzmu kontrolu nad njom. Takve datoteke nazivamo zaraiene datoteke. Racunar se moze "zaraziti" virusom ukoliko pristupi zarazenoj datotecL Nekada se zaraza najeesce sirila putem razmjene disketa koje sadrze zarazene datoteke (obicno su bile zarazene diskete sa ratunarskim igrama, jer su "prosle" kroz najveci broj korisnika), dok je danas najces6! put zaraze preko racunarskih mreza i elektronicke poste. Postojl mnogo vrsta stetnih programa, a najrasprostranjeniji su:
Trojanski kanji -

Pitanja i zadaci
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15: 16. 17. 18. 19. 20. 21. 22, 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. Opislte kako je tekao razvoj racunarstva do pocetka 20. vijeka? Na kojem su prineipu radilj prvi racunari? Opisite generac!je savremenih racunara. Kada su se pojavtJi prvi jeftini racunari za kucnu upotrebu? Opisite glavne dijelove racunara po Von Neumannovom modelu. Sta je hardver, a sta softver? Koje su osnovne operacije koje S8 izvrsavaju nad memorijom? Koje su jedinice za mjerenje kapaciteta memorije i kakvi su odnosi izmedu njih? Objasnite zasto. KoUko bita ima u 640 kilobajta? Sta su ASCII i UNICODE standardi? Sta su masinske instrukcije i koje su faze izvrsavanja masinsldh instrukcija? Koje vrste masinskih instrukcija postoje i koje su im osnovne karakteristike? Sta su RISe, a sta else procesori? cemu sluzi upravljacka, a cemu aritmetitko-logicka jedinica? Sta se podrazumijeva pod pojmom "Von Neumannovo usko grlo"? Sta je generator taktnih impulsa i u kojim jedinicama se izrazava njegova brzina? Sta su mikroprocesori i kako su nastali? Sta znaci kada kazemo da je Intel Pentium IV32-bitni procesor? Kakve postoje vrste ra6unara? Sta su viseprocesorski ra6unari? Sta su vezni sklopovi? Sta je graficka kartica? U cemu je razlika izmedu internih i eksternih memorija? Kako se jos nazlvaju ave vrste memo~ rija? Navedite osnovne ulazne jedlnice i njihove karakterisUke. Navedlte osnovne iz!azne jedinice i njihove karakteristike. Sta su serijska a sta paralelna vrata? Sta su RAM, ROM, PROM, EPROM i EEPROM memorije? Navedite najvaznije vrste ekstern!h memerija i njihove !<arakteristike. Sta su interne, a sta eksterne sabirnice? Sta je maticna ploca ra6unara i sta se na njoj nalazi? Kakva je razlika izmedu sistemskog i aplikativnog sofivera? Sta je operativni sistem? Koje operativne'sisteme poznajete? Sta su racunarski virUS! j kakos!3 mote,rnoboriti 'protiv njih?

Programi koji na prvi pogled rade nesto korisno, a u pazadini prave neku

stetu.
Kameleon; - Pritajeni programi kaji u pazadini obavljaju neku skrivenu akciju. Na primjer, POznati program ovog tipa je Back Orifice-koji prillkom rada sa raeunarskom mrezom omogucava udaljenim korisnieima da,u potpunosti preuzmu kontrolu nad vasim racunarom (da yam brisu iii mijenjaju dokumente,-zabloklraju ra6unar, ltd.). Trojanski konji i kameieoni su prilicno s!icni, tako da mnogi autori ne prave razliku izmedu ovih programa.
Softverske bombe -

Programi koji prilikom prvog pokretanja unistavaju sve programe i podatke na racunaru. Kako ovi programi nisu pritajeni, brzo se sazna za njih, taka da obicno nap rave stetu samo na malom broju racunara.

Logiak! bombe- Prltajeni programi ko]] ne rade nista, dak se ne ispune odredeni uvjetl, kada izazivaju neku stetu. Kako ovi program! mogu dugo ostati neotkriveni, mogu napraviti stetu na velikom broju racunara.
Vremenske bombs - Pritajeni programi koji ne rade nista do odredenog trenutka, kada izazivaju neku stetu. Na primjer, virus Michelangelo ne radi nista sve do 6< marta (rodendana veHkog talijanskog umjetnika Mfchelangela), nakon 6ega brfse sve programe j podatke sa hard diska. Jos je god virus Chernobyl (poznat i pod imenom C/H), koji na godisnjicu nuklearne I<atastrofe u Cernobilu unistava sve sto moze da unisti (na mnogim racunarima uspijeva da one~ sposobi 6ak i maticnu pI06u).
~rvi - Racunarski virusi koji se sire putem racunarskih mreta. cesto nisu osobito stetni (mada lma i jako stetnlh poput virusa~crva Klez), ali se neke verzije (tzv. replikatorJ) umnotavaju u toJikjrn_k~liciflama da 'mogu u potpunosti zagu:3iti protek podataka kroz racunarske mreze.

Protiv-racunarskih :\iirusa moguce se bariti pom06u specijalnih tzv. antivirusnih programa (koji spadaju _ u kaf$gorfiLJ_ 'sisfef(1skog softvera), Postoje tri tipa antivirusnih programa: detektori (engL scan.ers) kojr-sarno lspituju .prisustvo virusa, clstaci (engl. cleaners) ko)i pokusavaju da oporave zaraz-enu' datot.?k.ti ~ ukoliko to nije moguce (sto je cest slu6a)) brisu i datoteku i virus koji je u njoj bio prisutan, i"stitovi(engL shields) ko)i pokusavaju da sprijece zarazu ra6unara virusom. VeGina . proiivodata. bji- prave antivlrusne programe nude pakete koj! sadrze sva tri tipa antivirusnih progrC!rrl,a, ahajpo;matiji iu Norton Antivirus, McAfee VirusScan Deluxe, Sophos Antivirus, F-Prot Professio11lil, itd. Postoji rasprostranjeno ali nikad dokazano misljenje da ljudi koji prave antivirusne programe ptave i viruse, da bi im se antivirusni programi bolje prodavaH.
44

45

1.3 OSNOVNI PRINCIPI RADA RACUNARA


1.3. j Mjere bezbjednosti pri radu sa racunarima
Sarno prikljucenje racunara je dosta jednostavan postupak, jer su racunari projektimni taka je da na6in njihovog prikljucenja prilagoden svim vrstama korisnika, ukljucujuci i one manje iskusne.

koje bi maglo dovesti do kvara racunara. Doduse, izvjesna mogu6nost nepravilnog prikljucenja postojl, jer na primjer, cesto su uticnice u koju se ukljucuju mis i tastatura istog oblika, tako da je za ispravno spajanje potrebno pratiti natpise iznad pojedinih uticnica ko]i prikazuju za sta je 'uticnica namijenjena. !pak, ukoliko pogrijesimo, racunar se neee pokvariti, nego jednostavno neee raditi ispravno, dok dije!ove ne povezemo kako treba. Bano ie napomenuti da se sv! dije!ovi racunara moraju propisno povezati prije nego sto racunar ukijucimo u efektricnu struju. Svako prikljucenje na racunar dok je racunar pod napajanjem veoma je riziano, i moze 05tetiti racunar, pa cak i ugroziti tivot korisnika! Neki dijelovi racunara, poput modema, zahtijevaju prikljucenje na telefonske i komunikacijske' kablove. Kako elektricna struja za napajanje iz ovakvih kablova takoder moze biti opasna po korisnika iii racunar, to se prilikom 'instalacije hardvera treba drzatl sljedeceg redoslijeda postupaka: IskJjucitl sve prekidate na racunaru; Povezati medusobno sve dijelove racunara koji ne trate ukljucivanje u telefonske iii druge utitnice; PrikljuCiti sve ostale neophodne kab!ove u uticnice na racunaru; Ukljuciti kablove koji trate ul<ljutivanje u teJefonske i slicne uticnice u odgovarajuce uticnice u zidu; Ukljuciti kabel za napaJanJe elektricnom energijom u odgovarajuc:u uticnicu u_ zidu; Ukljuciti racunar na glavni prekidac. P05tovanjem ovih pravila izbjeei cemo ostecenja koja mogu nastati usljed eventuaJnih strujnih udara. Prilikom rastav!janja racunara, nakon sto iskljuCimo sve prekidace, potrebno je prvo izvuci napojni kabeJ iz uticnice u zidLi, zatim sve ostale kablove koji su takoder prikljuceni na uticnice u zidu (npr. te!efonske), a tek tada mozemo pristupiti lskopcavanju ostalih kablova i rastavljanju racunara. U slu6aju da unutrasnji dijelovi racunara nisu sklopljeni, instalacija hardvera takoder nije osobito komplicirana. Postupak se uglavnom svodi na ukljuCivanje odgovarajuCih kariica u odgovarajuce uticnice na maticnoj ploci, i povezivanje uredaja eksterne memorije sa odgovarajuclm kontrolerima. Medutim, u ovom slu6aju postupak instalacije hardvera ipak je bolje prepustit! strucnom lieu. Nakon sto je uspjesno obavljena instalacija hardvera, neophodno je preci na instalaclj'u softvera, tj. na instalaciju neophodne programske podrske koja 6e "udahnuti zivot" raeunaru i pretvoriti ga u upotrebljivu spravu. Pod instalacijom softvera podrazumijevarno postupal< prebacivanja programa sa raznih prenosivih uredaja eksterne memorije (poput disketa, kompakt diskova, itd.). na fiksni disk racunara, sto 6e te programe uciniti stalno dostupnim racunaru. Na prvom mjestu, potrebno je lnsta1irati operativni sistem. Danas se PC ra6unari najcesce isporucuju sa vee instaliranim nekim operatlvnim sistemom (najcesee sa nekim od najnovijih oP.erativnih sistema iz porodiee Windows operativnih sistema). Ne zaboravimo da ~ez,operativnog sistema racunar ne moze raditi nista. Ukollko na racunaru nije insta!iran.operativni sistem, postoji mogucnost (kao sto cemo kasnije vidjeti) da se operativni sistem ucita l! radnu me:moriju (i nakon toga pokrene) direktno sa diskete iii kompakt diska. Nakan toga je-rnOguce rzvrsitf instaiaciju ope[H ativnog sistema poput instalacije svakog drugog programa. . . . Kako se vrsi instalacija nekog programa, u sustin] zavisi od samQ9~prQgi'am~~, ali j~' danas po~tu pak instalacije manje iii vise standardiziran. Obicno svaki proizvodac softvera.,zajeqno -sa glavnim programom lsporucuje i mali programcie nazvan instaJacijski program. Qvaj p"rog-ramcic obicno ima naziv INSTALL iii SETUP. U Windows operativnim sistemima, InstalaCijski program se pokrece otvaranjem Start menija, zatim izborom opGije Settings i podopcije .Control Panel, -na.kon 6ega treba duplo kliknuti na ikonu Add/Remove programs, i konacno na--dugme fnstall;-Ahernativno, pbkretanje instalacijskog programa se moze izvrsiti duplim klikom prvo na ikonu My Computer, 'zatim na ikonu

Utikaci na racunarima su takvih oblika da jednostavno ne omogucavaju nepravilno prikljucenje, taka da nije mogu6e povezati dijelove ra6unara aka so utikaci ne postave pravilno. Time je 051gurano pravilno povezivanje svih dljelova raCunara. To ipak ne znaGi da se pri radu sa racunarima no trebaju postovati elementarne mjere bezbjednosti. Glavne mjere bezbjednosti kojih se treba pridrzavati pri radu sa racunarima su mjere koje SLI propisane za rad sa ma kakvim e!ektricnim urectajima, jer je racunar uredaj koji za rad takoder koristi elektricnu energlju. To znaci da prikljucenje racunara na elektricnu mrezu treba izvrsiti postujud sve propise. Kabel za prikljuCivanje ratunara treba biti izoliran i sa uzemljenjem, Kaka je potrosnja racunara svega nekoliko stotina vati, nije potrebno predvidati neke posebne zastite ad preopterecenja. U slucaju nestanka elektricne energije neophodno je odmah fskljuCiti racunar da bi se izbjegao s1rujni udar u trenutku panovnog dolaska elektricne energije. Takoder, neophodno je iskljuciti racunar u slucaju grmljavine, Jer udari groma mogu prodrijeti u elektrienu mrezu i ostetiti racunar. Racunari koj! su pravljeni za americko i evropsko trziste imaju na kUClstu prekidac za veIJ6inu radnog napona koji moze biti 110 V (za americko podrucje) i 220 V (za evropsko podrucje). Prije ukljucenja takvog racunara u mrezu treba provjeriti da Ii je taj prekidac postavljen na ispravnu poziciju (220 V), Ovaj prekidac potrebno je podesiti sarno jedanput (prije prvog ukljucenja u mrezu), i vise ga ne treba dira,ti. U slucaju kvara racunara, treba ga odmah iskljuciti i pazvatLstrucno lice (servisera) ko)i ce abaviti neophodnu opravku. Do sada sma govorili 0 hardverskoj bezbjednosti. Medutim, potrebno je reci nesto i 0 softverskoj bezbjednosti. Kod racunara namijenjenih za upotrebu jednog korisnika na prvom mjestu misiirno na zastitu ad racunarskih virusa (u raaunarskim mretama potrebno je preduzimati znatno vece mjere bezbjednosti, u sta na avom mjestu ne mozema ulazlti). Korisnici racunara moraju uciniti sve sto je u njihovoj moGi da sprijece njihov pristup racunaru. Osnovni princip za5tite od virusa je da se svi diskovi koji se prenose sa nekog drugog racunara, kao i svi programi j dokumenti koji se pribave putem racunarskih mreza iii elektronitke poste obavezno moraju testirati na prisustvo virusa uz pom06 nekog od antivirusnill programa.

1.3.2Instaliranje racunara
Kada prvi put nabavimo racuhar,---ppt~ebnO-je.--jzVrsitj njegovu pripremu za rad, sto nazivamo instaiiranjem ratunara. Kako se sVakl racur-iars~,i sis!e.r~rsastoji od hardvera i softvera, to mozemo govorlti 0 instaiaciji hardv~ra I inst~t(}ciji .$oftv~'a. . Pod instalacijom hardvera svih fizickih dijelova racunara u funkcionalnu cjelinu, U slucE!ju d? je.la6I,!nar,'ispoJUcen sa vee sRlopljenim unutrasnjim dijelovima racunara koji se nalaze u kucistCI (sto je riajeescri slucaj), instalaciju hardvera moze da obavi i potpuno nestruno lice. Sve sto je potrebno/to je da.,,,utaknemo odgovarajuce uredaje koji se nalaze izvan kuCista racunara (poput tastature, monttoi~, ~fampaca, itd.) -u odgovarajuce uticnice na kucistu racunara. Kao sto je vee receno,-utikaci na ra0unarima'su takvih oblika da ne omogu6avaju prikljucenje
46

POdiaz:~mjjBVamG:i~_p';a'v~~ 'pov.eziy~nje

47

.:~

11

l
tOje zakoni kojima se softversko piratstvo najstroze kaznjava, a takav zakon 6e bit) uveden i kod nas (u vrijeme piS81lja ovog udzbenika takav zakon je bio u pripremi). Iz prethadnog razmatranja magao bi se steei zakljueak da je softver iskljuciva privi!egija bogatih. Na srecu, postoje Ijudi koj) pisu programe iz eistog entuzijazma iii hobija, i daju ih besplatno (tzv. freeware program!), iii ih prodaju za bagatelnu cijenu. Takoder, pastoje programi koji se mogu besp!atno koristiti odredeni probni period (reclmo, mjesec dana), a nakan toga se moraju iii izbrisatl, ill platiti (obiono ne skupo). To su tzv. shareware program;. Alternativno, shareware programi mogu se isporu6ivati u dvije verzlje: demo verzija, kOja se ne mora platlti ali kojaj nedostaju odredene kljuene opcije, i puna verzija koja se placa. Kvalltet freeware i shareware programa varira od programa do programa, medutim postajs shareware, pa cak i. freeware programi koji po kvalitetu nima10 ne zaostaju za sli6nim komercijalnim programima Gija se cijena mjer! u sIotinama maraka. U danasnje vrijeme je prakticno nemoguee razdvojiti instaiaciju hardvera ad instalacije softvera. Danas skoro svaka instalacija novog hardverskog uredaja trazi j instalaciju odgovarajueeg softvera za podrSku. Nairne, kako ni jedan operativnl sistem ne moze predvidjeti sve tipove ulazno-izlaznih uredaja koji mogu biti eventualno prlkljuceni na racunar, podrska radu ovih uredaJa ostvaruje Se pomoeu posebnih pomoenih upravljatkih programa nazvanih drajveri, koji nakon propisne lnstalacije praktitno postaju diD operativnog sistema. Tako, kada god na racunar prikljucite nekJ novi uredaj, za njegov ispravan rad moraeete instalirati i odgovarajuCi drajver (koji prolzvoc1ae uredaja isporucuje zajedno sa uredajem). Postoji relativno nova tehnologija nazvana PJug~and~Play (utakni i radi) iii skra6enim nazivom PnP, koja operativnom sistemu omoguCava da automatski otkrije prisustvo novih uredaja prikljueenlh na ratunar j da zatrati Instaliranje odgovarajuCih drajvera. Praksa je medutim pokazala dB. ova tehnologija prillcno cesto ne radi bas kako je zamisljeno, tako da cinici kazu da PnP zapravo znaei Plug-and-Pray (utakni i moli se),

diska sa kojeg vrSimo Insta!aciju, i konacno, na instalacijski program. Nakon sto pokrenemo instalacijski program, proces instalacije zapocinje. Neki proizvodaci softvera podase da se instalaeijski progr1im automatski pokrene elm S8 ubaci disk koji sadrzi program koji se instalira (instalacijskf disk). Instalacijski program u potpunosti automatizira proces Instalacije kroz niz pitanja na koje korisnik treba da odgovori, a od kojih zavisi proces instalacije. Instalacioni programi obicno nude barem tri vrste instalacije: tipicnu (eng!. typica~, kompaktnu (engl. compacQ i prifagodlpvu (engL custom). Kod tipicne instalacije korisniku se postavlja sasvim mali braj pilanja, a za odgovore na ,ostala pitanja podrazumijeva se da su u skladu sa potrebama veeine standard nih korisnika. Kod kompaktne instalacije, broj pitanja je takoder mali, a instalaclonl program podrazumijeva da zelimo da izvrsimo instalaciju sarno najnuznijih komponenti koji ee omoguciti rad sarno osnovnih mogucnosti programa. Kod prilagodljive instalacije, potrebno je odgovoriti na znatno veGi broj pltanja, ali ovakva instatacija omogucava da program bolje prilagodi rna svojim potrebama nego u slucaju tipicne instalacije. Na sljedecoj slici prikazano je kako izgleda jedan ad koraka prilikom instalacije programa Adobe Acrobat 4.0:
M

Bltno je napomenutl da se instaiacija ne svodi samo na prosto kopiranje datoteka sa prenosnih diskova na fiksni disk. Naime, programi su na instaladjskim diskovima obicno pohranjeni u vidu pakovanih arhiva sa ciljem da .se zauzme sto manje prostora na diskovima. Programi se ne mogu izvrsavati u takvom obliku, pa se prllikom instalacije obavezno vfsi njihovo raspakivanje, Dalje, 0 prisustvu vecine programa operativni sistem mora bit; obavijesten da bi mogao korektno da rukuje sa njima. Ova informiranje je takoder zadatak instalacijskog programa. lnsfalacijski p;ogriiill z;a Adohe Acrobat 4,0 Danasnji operativni sistemi za PC , " " _ ,- .' raounare informadje 0 instaliranim programfm,,:, kao i mnoge"drUgednformacije vezane za njihov interni rad drie u internoj bazi podataka nazvanoj reg;sfracijska baza (engl. registry base), Nije dobra praksa installrati programe koje necemo koristlti, IIi koje eemo koristitl svega nekoliko da~a. Mada gotovo svi programi podrzavaju mogu6nost svog vlastitog uklanjanja pomo6u postupka kOjl se zove deinstalacija (engl. uninsta/~, instalacija je nerijetko toliko kompleksan proces da dein~ ~talacija nije u st1!lnju da vrati sistem tacno u prvobitno stanje kakvo je bilo prije instalicije. Staga, eesta mstalacija i deinstalacija raznih programa (sto je u nasoj sredini naza'los~veoma uobicajeno), drasticno ugrotava stabilnost operativnog sistema. .Na avom mjestu nutno je ukazati na jednu negativnu pojavu. U vrijeme pisanja,Qvog iJdz6~ni- . ka veCina instalacionih diskova sa kojima su se korisnici racunara susretali"u' nasoj.sredjni .. predstavljali su iJegalne kopije originalnih diskova sa legalnim softverom, kojf preprodavc;i'SGftv~ra, nazvani softverskf pimti, prodaju u bescjenje. Veoma vazno je shvatiti da je softll-er"roba -koja se mora platiti, ito najcesce skupa roba. Diskove sa programima eija je stvarna trzisna djena riekoJiko. stoti~ ~a pa cak i hi!jada maraka, pirati prodaju za svega nekoliko maraka, -eime SEr stvara_neprbcjenjiva. steta proizvodacima softvera, Sto negativno utjeee na produkciju softvera. U mnogirtl zeni'ljama pos48
:'1

1.3.3 BIOS i proces pokrelanja racunara


Razmotrimo sada sta se desava u trenutku kada ukljuoimo racunar. Odmah nakon ukljucenja, procesor zapooinje svoj uobitajeni posao dobavljanja masinskih instrukcija iz memorije i njihovog izvrsavanja. Druglm rijeeima, proeesor odmah zapoeinje da izvrsava neki program. Prirodno je postaviti pitanje koji program i gdje se on nalazj. Taj program oCig!edno se ne maze nalazlti u RAM memoriji jer je ona prazna u trenutku pokretanja ratunara, niti na nekoj od eksternih memorija, jer procesor ne moze neposredno izvrsavati programe pohranjene na eksternim memorijama. Kao jedini odgovor preostaje ROM memorija (Hi njeni bliski srodnici popu! EEPROM memorije). Dakle, procesor zapocinje izvrsavati program koji se nalaz! u ROM memoriji, 8to je osnovni razlog zasto svaki ra6uriar pored RAM memorije nuzno mora posjedovati I ROM memoriju. Sljedece pitanje koje se name6e je kakvi se uop6e program! nalaze u ROM memoriji. Nekadasnji kueni racunari, poput ZX Spectrum-a i Commodore-a 64 imali su citav operatlvni sistem pohranjen u ROM memorijL Osnovna prednost ovakvog rjesenja bila je cinjenica da je operativni slstem bio prakticki ugraden u racunar, I dostupan istdg trenutka kada se ratunar ukljucl, tako da je bilo moguce zapoeet! rad sa racunarom odmah nakon ukljucenja napajanja. Praksa ugradivanja 6itavog operativnog sistema u ROM i danas se koristi kod nekih vrsta prenosnih raeunara, narodto dzepnih racunara. Medutim, osnovnl nedostatak ovakvog pristupa je Sio su tada racunari ograniceni na izvrsavanje sarno jednog operativnog sistema, s obzirom da se sadrZaj ROM memorije ne moze mijenjatL Zbog toga se kod danasnjih PC ra6unara u ROM memoriju upisuju sarno najelementarniji dijelovi operativnog sistema poznati pod nazivom BIOS (Basic .!nput-Qutput Q,ystem), IIi ponekad i _ ROM BIOS. Ostatak (odnosno glavnina) operativnog sistema nalazi se na dlsku, a zadatak 810$-a je, izmedu ostal09, da prebaci ostatak operativnog sistema u RAM memoriju, gdje 6e biti omogucenp njegovo izvrsavanje. Ovaj proces prebadvanja naziva se ucltavanje iH punjenje (engl. load).
49

ti
:1

'I 1

i J

BIOS u sustini predstav!ja skupinu programa (mazda je bolje reei potprograma iii rutina) koji prakticno odreduju sta racunar zna radlti bez ikakve pomod programa koji se uCitavaju sa diska. Najcesce se radi 0 sasvim elementarnim programima koji omogucavaju racunaru da ocita koja je tipka prifisnuta na tastaturi, ispise neki znak na ekran, prebaci sadrzaj nekog sektora sa diska u radnu memoriju iii obrnuto, iii da posalje odnosno primi neki podatak preko serijskih iii paralelnih vrata. Pored programa, BtOS sadrzi i neke elementarne podatke, poput podataka kako su rasporedenj znakovi na tastaturi, iii kakav je izgled pojedinih znakova koji se prikazuju na ekranu. Kod nekih racunara odmah po ukljucenju racunara sadrzaj 810S-a se iz ROM-a kopira u RAM i onda izvrsava iz RAM-a, eime se postize veea brzina izvrsavanja, S obzirom na cinjenicu' da su dallasnje RAM memorije brze od ROM memorija. Ovakva tehnologija naziva se BIOS iz sjene (eng!. Shadow BIOS),

omogueava korisniku da komunicira sa racunarom, opr. da zadaje racunaru komande itd. 0 ni6kim intetiejsima cemo detaljnije govoriti u poglavlju 1.4.

korls~

Cje!okupan proces uCitavanja i pokretanja operativnog sistema naziva se boot praces iii, u domaeem zargonu, dizanje sistema. Za vrijeme dizan]a sistema korisnik ne moze nista radlti sa racunarom. Ovaj proces, zavisno od slozenosti operativnog sistema, moze trajati od nekoliko sekun" di (npr. kod MS~OOS operativnog sistema), do nekoliko mlnuta kod slotenijih operativnih sistema.

Prvi program iz 810S-a koji se pokrene prilikom ukljuCivanja racunara naziva se POST (.!:ower-Qn ,Qelf rest). Zadatak ovog programa je da prikupi informaciju 0 tome koji su sve uredaji prikljuGeni na raGunar preko ulazno~iztaznih veznih sklopova, da ustanovi sa koliko radne memorije raspolaze raGunar, kao i da izvrsi niz testova pomocu kojih te utvrditi da li svi uredaji u racunaru funkcioniraju ispravno' (na primjer, provjera RAM-a se moze izvrsiti nasumicnim upisivanjem podata ka u RAM, a zatim ispitivanjem da !i citanje istih memorijskih lokadja zaista daje one podatke koji su tamo upisani). Prilikom rada POSTobicno ispisuje na ekran najbitnije rezultate obavljenih istrati" vanja, ito su prvi podaci koje ugledate na ekranu kada ukljudte raCUllar. Sljedeci program iz BIOSa kaji se pokrece nakon sto POSTzavrsi sa radom naziva se bootstrap loader(ovaj rogobatni termin je zaista nemoguee adekvatno prevesti sa engleskog jezika). Ovaj program je ujedno i posljednji program iz BIOS-a ko]i S8 automatski pokrece (svi ostali se pokretu iskljucivo na eksplicitan zahtjev) po ukljucenju racunara. Njegov zadatak je da ueita glavninu operativnog sistema sa diska u radnu memoriju, i prepusti mu kontrolu nad racunarom. U sustini, bootstrap loaderobavlja sasvim jednostavan zadatak: on sa diska ucitava u RAM sadrzaj samo jednog, tacno odredenog b!oka nazvanog boot sektor (mada se. zapravo radio bloku, a ne sektoru), i zapocinje izvrsavanje instrukcija pohranjenih u njernu. Boot sektor se tipicno nalazi u presjeku sektora, i trake koji SU obiljezeni rednim brojevima a (tzv. nulti sektor i nulta traka), Nakan toga, BIOS vise nema kontrolu nad raeunarom, i sta ce se dalje desavati ovisi iskljucivo ad inslrukcija zapisanih u bootsek~ tOfU. To su tipieno instrukcije koje ucitavaju ostatak operativnog sistema I predaju mu kontrolu, ali u boot sektoru se prlncipijelno mogu nalaziti rna kakve instrukcije. Program zapisan u boot sektoru maze korisniku ponuditi i izbor operativnog sistema ko]i ce bitl ueilan, npc Windows iii Linux (ova su tzv. duaJ~booti!i multiple-boot sistemi). Ukoliko se u raeunaru nalazi ubaceno vise diskova ad kojih su neki prenosivi (disketa, CD) a neki nisu (hard disk), tada obicno bootstrap loader uCitava boot sektor sa prenosivih diskova,' 6ime je omoguceno da se operativni sistem ucita sa diskete iii kompakt diska, cak i u slu6aju kada na hard disku vee postoji neki operativni sistem. Na disketama koje ne sadrie operativni sistem, boot sektor sadrzi sarno kratki programCic kojl na ekranu ispise poruku "Non-System Disk or Disk error. Replace and Htrike any key when ready." koju ste vjerovatno imali prj.like da vidite ukoliko yam je slucajt:lo ostala ,dlsketa u disketnom pogonu prilikom ukljuclvanja racunara. . . . Kao sto je vet reeeno, sta se uk!Jucenja ra6unara nakon ucitavallja boot sektora zavisi isklju61vo od lnstrukcija'koje sUJJ'njem1u z~pisane.Tipicno se proces dalje nastavlja ucltavanjem niza programa kofi tvore operativn(siste'ni,~'kao j iz:vrsavanj~m neophodnih pripremnih radnji kOje ce omoguCiti is'pravan ra~rovih:'i ~kas'-njjih' .programa. Kod operativnog sistema MS-DOS ova] proces sastojao se od uCitavanja i pokretanjqJrLprograma: 10. SYS, MSDOS, SYS i COBHP.1JD. COM (upravo navedenim redom),. dokje ~Qd"WjhdOWs'pperalivnjh siste-ma ovaj proces zllatno slozeniji i zavrsava se ueitavanjem I pokfetanjEHTi.p(ograma EXPL:ORER. EXE (koj! dovod! do prikaza poznate radne povrsine, odnosno CJesktopEij; Pos)j~gnji program koji se ueita i pokrene prilikom procesa ucitavanja operativnog sistema (npr. cor':10ANlJ. COM' 'u s'lucaju MS-OOS-a iii EXPLORER. EXE u slucaju Windowsa) tipicno predstavlja ko.risnicki' interfejs operativnog sistema, i upravo on
50

Detaljima procesa dizanja sistema obicno se moze uprav!jati preko sadrzaja odredenih tekstu" alnih datoteka kOje moze kreirati korisnik. Na primjer, dizanjem MS"OOS-a upravlja se preko dvije datoteke nazvane CONF'IG. SYS, koja sadrii najosnovllije sistemske informacije, kao I informacije o drajverima kOje treba uCitatl, j AUTO EXEC . BA'l' koja sadrii spisak komandi koje se automatski trebaju izvrsiti kao i spisak programa koji se trebaju automatski pokrenuti nakon zavrsetka dizanja sistema. Dizanjem Windows operativnih sistema upravlja se preko niza datoteka, od kojih su najvaznije WIN.INI 1 sYs'rEM,INL Datoteke CONFIG,SYS i AUTOEXEC.BAT U ogranieenom obimu upravljaju i podizanjem Windows 95 i Windows 98 operativnih sistema, dok Windows 2000 i Windows XP ugiavnom vise ne koriste ove datoteke. Jos jedan izuzetno" vazan program koji se nalazi unutar BIOS-a, i koj! se pokreee iskljuCivo na zahtjev korisnika, jeste program nazvan BIOS SETUP. Ovaj program om<;>9ucava korisniku da odre" di speciflcne detaije vezane za funkcioniranje samog hardvera racunara, poput brzine kojom ra6unar eita podatke iz memorije, koUko se brzo razmjenjuju podaci izmedu matiene place i odgovarajuCih kartica putem sabirnica, detalje 0 prenosu podataka preko serijskih ! paralelnih vrata, hardverskoj strukturi hard dlska. i ostalih diskova, itd. Pored toga, pomoeu BIOS SETUP-a moguee je podesavati i redoslijed prioriteta diskova sa kojih ce se vrsiti boot proces (npr. da Ii te prioritet imati disketa, kompakt disk Iii hard diSk), kao i jos mnoge druge detalje. Sve postavljene informacije racunar cuva u maloj RAM memoriji kapaclteta svega nekoliko desetina bajta nazvanoj CMOS (Qomplementary Metal Qxide Semiconductor) RAM. Ova memorija [ma posebno baterijsko napajanje unutar raeunara, taka da njen sadrzaj ostaje oeuvan cak i Ilakoll gasenja racunara (inace, CMOS je naziv za tehnologiju proizvodnje clpova i ostalih elektronickih komponellti kOja omogueava izuzetno malu potrosnju elektricne ellergije). Postavke ko)e se mogu izvrsiti pomocu BIOS SETUP-a mogu u drasticnoj mjeri da utje6u na periomanse rada ra6unara. Ipak, podesavanje parametara koji se mogu mijelljati pomocu 810S SETUP-a obavezno treba prepustlti stru6noj osobi, jer se zadavanjem pogresnih parametara moze poremetiti narma!no funkcioniranje racunara. Inace, BIOS SETUP se poziva tako sto se prHikom izvrsavanja POSTprograma, a prije pokretanja bootstrap loadera pritisne odgovarajuca tipka na tastaturi, koja ovisi od konkretnog proizvoaaea BIOS~a (najcesee Del, FlO,
Esc iii CtX'l+Esc) .

d~IJe d~a~a_priilkOrri

U danasnjim ra6unarima veoma je cesta situacija da se BIOS ne na!azi ROMmemoriji nego u EEPROM (odnosno Flash RAM) memorijL BIOS smjesten u Flash RAM memoriji obi6no se Ilazi~ va Flash BIOS (umjesto ROM BIOS). Na primjer, takvi -su goto.vo sviJ310&i koji podrtavaju Plugand-Play-tehno!ogiju. Velika prednost Flash BIOS-a u ,odnosu Ila ROM--BfOS:1e moguenost izmjene programa pohranjenih u BIOS, s obzirom na 6injenicu da jasadrtaj'Fla.Sti memorij~ mogu6e ' izmijenitL Nazalost, upravo ova mogucnost ornogueila je prograrneJima"s~' -?Hm' .ria.mjeram~ da naprave programe koji ee unistiti sadriaj BIOS-a, tako sto ce u njega u-pU~ati 'neke besmislice umjesto programa koji omogucavaju rad racunara. Najpoznatijl-"takav"destruktfvni program je vee spomenuti Chemobyl (ill CIH) virus. Ukoliko yam se ovako Ilesto,desi,.]edino sto mozete uraditi je da zamijenlte cip u kojem se nalazi BIOS, iii eak i cijefu matiCnu plotu (u-slu'6aju da je 6ip sa BlOS-om neodvojivo vezan za nju)!
51

1.3.4 Odnos nardI/era, BIOS-a, operativnog sistema i aplikacija


Nakan sto je proces dizanja sistema zavrsen, korisnik je u stanju da zadaje komande racunaru. Najcesca komanda koju korisnik zadaje je pokretanje nekog ad korisnickih programa, odnosno aplikacija. Neki operativni sistemi, poput MS-DOS-a, dozvoljavaju da se u jednom trenutku izvrsava sarno jedna apllkacija, dok moderni operativni sistemi (poput raznih verzlja Windowsa, Linuxa, ltd.) omogucavaju da se paralelno (u 15tO vriJeme) izvrsava vise aplikacija. Ovakvi operativni sistemi nazivaju se visezadani (iii multitasking) operativni sistemi. Strogo receno, niH jedan procesor ne moze u isto vrijeme izvrsavati vise neovisnih poslova. Staga se u viszada6nim aperativnim sistemima svaka ad aplikacija izvrsava izvjesno kratko vrijeme (nekoHko milisekundi), nakon 6ega se kontrola predaje drugoj aplikaclji, ltd. Kada posljednja aplikacija istrosl svoje vrljeme, kontrola se panovo predaje prvoj aplikaciji, nakon cega se postupak kruino ponavlja, Cime se stice utisak da se sve apllkaciJe izvrsavaju istovremeno. Ovakva tehnologija naziva se razdloba vremena (engl. time sharing). Starl]i operatlvni sistemi (npr. MS-DOS) prepustall su aplikaciji potpunu kontrolu nad racunarom nakon pokretanja, tako da se operativni sistem nastavljao izvrsavati tek kada aplikacija zavrsi sa radom, iii kada aplikacija eksplicitno zatrazi neku uslugu od operativnog sistema. Takoder, aplikacija je mogla slobodno komunicirati sa svim resursima ra6unara, ukljucujuci j harqver. U modernijim operativnim sistemima izvrsavanje svake ad aplikacija pod potpunom je kontrolom operativnog sistema"i operativni sistem maze da ap!ikacijama zabrani jzvrsavanje nekih akcija. Tako, na primjer, U modernlm operafivnim sistemima aplikacije nikada ne komuniciraju direktno sa hardverom ra6unara niti sa BIOS-om, nego u slucaju potrebe za takvom komunlkacijom iskljuCivo traze usluge od operativnog sistema kao posrednika. Operativni sistem takoder uglavnam ne komunicira direktno sa hardverom, nego za tu svrhu koristi us luge BIOS-a, mada postoji i moguenost neposredne komunikacije operatlvnog sistema sa hardverom putem odgovarajucih drajvera za upravljanje odgovaraju61m uredajem (hardverom). Takoder, aplikac!je mogu da medusobno razmjenjuju podatke i jnfor~ macije, ali pod strogim nadzorom, operativnog sistema. 8toga odnos izmedu hardvera, BfOS~a, operativnog sistema i korisnickih aplikacija najbolje mozemo prikazati sljedecom slikom (na kojoj sma pretpostavi!i paralelno izvrsavanje tri aplikacije):

Kako moderni operativni sistemi ne dozvoljavaju aplikacijama da komuniciraju direktno sa hardverom (pa cak ni sa memorijom), operativni sistem moze aplikacijama stvoriti lIuziju da imaju na raspolaganju znatno vecu koli6inu radne memorije nego sto je zaista ratunar posjeduje, pri 6emu operativni sistem po potrebi (bez ikakvog znanja aplikacija) prebacuje odredene dijelove radne memorije na disk Iii obrnuto (stoga cesto mozete vidjeti da tOKom rada lampica koja signalizira rad hard diska gori u trenucima kada izgleda da nema nikakvog osnovanog razloga za upotrebu diska). Tehnologija kojom se ostvaruje ova "obmana" nazi'va se virtualna memorija. Taka, npr. Windows 950perativni sistem daje svakoj aplikaciji iluziju da raspo!aze sa cak 2 gigabajia v!astite radne memorije (potpuno neovisno od drugih aplikacija i neovisno 0 stvarnoj koli6ini radne memorije), mada se u sustini radi 0 virtualnoj, a nestvarnoj memoriji. Medutim, aplikacija to ne moze da zna (niti treba da zna). Upravo zbog postojanja virtualne memorije, brzina ratunara drasticno ovisi I od stvarne koliCine RAM memorije. Nairne, sto je koliclna RAM memorije manja, operativni sistem ee 6esee morati da vrsi prebacivanje podataka lZ radne memorije na disk, Hi obrnuto, sto je izuzetno spor proces, s obzirom da su diskovi relativno sporl uredaji. Ap!1kacije se prlje pokretanja nalazs na eksternoj memorijl, tako da je pri11kom pokretanja aplikacija operativni sistem duzan da izvrsi njihovo prebacivanje lJ internu memorlju, kako bi se omogucilo njihovo izvrsavanje. Ovaj proces takoder se naziva ucitavanje (punjenje). Ovaj naziv js opeenlti naziv za rna kakav proces prebacivanja podataka iz eksterne u iniernu memoriju. Suprotan proces, tj. proces prebacivanja podataka 1z interne u eksternu memoriju (npr. iz RAM-a na hard disk) naziva se snimanje iii pohranjivanje, a cesto i bukvalno spasavanje (od engl. save). Sn1manje je takoder jadna ad usluga koju svakl operativni sistem mora obezbijediti. Na primjer, kada radimo sa nekim. tekstualnim dokumentom, on se za vrijeme rada naJazi u radnoj memorijL Kako se sadrzaj radne memorije brlse po iskljucenju racunara iz napajanja, neophodno je dokument iz radne memorije prije iskljucenja racunara snimiti, odnosno prebaciti iz radne memorije na disk. 8truktura razlicitih operativnih sistema razlikuje se drasti6no od sistema do sistema. Ipak, u svakom operativnom sistemu mazemo u061tl tri cjeline: jezgro (eng!. kerne~, izvrsioca (engl. executive) j Ijusku (engl. she/~. Jezgro predstavlja najnizi sloj operativnog sistema, najblizl hardveru. Ono sadrzi skup programa za izvodenje operacija poput ocltavanja tastature, prikaza sUke na ekranu, komunikaclje sa diskovima na fizlckom nivou (nivou traka, sektora i blokova), razdiobe vremena, upiavljanja virtual nom memorijom, itd. Izvrsilac je vis! sloj operativnog sistema, koji sadrzi skup programa ko)! obavijaju funkcfje kaje su vise orijentirane ka aplikacijama, kao sto su 10gl(;ka organizacija podataka na diskovima u datoteke 1direktorije (odnosno foldere), upravljanje procesima ucitavanja i snimanja, ltd. Konatno, ljuska je najvisi sloj operativnog sistema koji neposredno komunicira sa korisnikolTI. Ljusku operativnog sistema, na primjer, sacinjavaju programi ko]i predstavljaju korisnicki intertejs operativnog sistema. Suprotno onome sto veGina danasnjih korisnika misli, stari operativni sistemi, poput MS-DOS-a, omogucavaU su aplikacijama da u'principu budu mocnije i efikasnije, jer su imale neposrednu kontrolu nad svim racunarskim resursima. Stoga, iskusni korisnici racunara kada iele da obavljaju razne popravke na racunaru i intervencije u softveru, obavezno podlzu MS-DOS operativni sistem, jer jedino tako dobijaju potpunu kontrolu na_racunarom, bez ikakvih ogranicenja. Racunarski profesionalci moraju poznavali MS-DOS, bez obzira na njegovu zastarjelast, jer ih moderni operativni sistemi mogu onemoguciti u obavljanju odredenih intervencija. "Ipak, pristup koji daje korisniku punu kontrolu nad racunarom posjeduje citav niz nedostataka. Prvo, aplikacije koje neposredno komuniciraju sa resursima racunara kao sto je hardver nile nimalo lako pisati. Pisanje takvih aplikacija traii kako znanje, taka i vrijeme. Drugo, lose naplsana aplikacija maze da "srusi" cjelokupan sistem, jer operativni sistem nema nikakav uvid urad aplikacije. Principijelno, ad dvije aplikacije istog izgleda i mogucnosti, ad kojih je jedna pisana za MS~DOS, a druga za neki od Windows operativnlh sistema, aplikacija za MS-DOS ce se izvrsavati znatno bt1:e i efikasnije n'ego aplikacija za Windows, i zauzi- . mace mnogo manje memorije. Medutim, tinjenica je da je neophodno ulozitl enorman trud i vjestinu
53

"'.......................
APLIKACIJA 2

APLIKACIJA 1

~.

......................

I'"

,.IL_A--,P,.-Ll_K_AC_I_JA_3--1

OPERATIVNI SISTEM

.;-> ;

'~j

~~

CS
..1L._H_AR_D_V_E_R_....Jr
Odnos hardrcra, BIOS-a, opcratiVlwg sistema i ap/ikarija

52

da se napravi aplikacija za MSDOS koja bi imala isti izgled i mogucnasti kao tipicne aplikaclje za Windows, taka da se danas aplikacije za MSMDOS prakticna vise i ne proizvade.

relativnu brzinu uredaja u odnosu na plVe CD cita6e. Preporucena brzina u vrijeme pisanja ovag udzbenika bila je 52x.

1.3.5 Minlmalna hardverska i softverska konfiguracija PC racunara


Nakon sto sma objasnili osnovne principe rada racunara, napravicemo kratku analizu neophodnog minimuma hardvera i softvera koji omogucava normalan rad raunara. S10 se tice hardvera, ako govorima a krajnjem minimumu, PC racunar maze da radi ukoliko posjeduje proce "Sor, ROM i RAM memoriju, barem jedan univerzalni ulazni uretfaj (npr. tastaturu), barem jedan uni verza/an izlazni uredaj (npr. monitor) j barem jedan uredaj eksterne memorije (npr. hard disk) koj! je neophodan za dizanje operativnog sistema. Na oval spisak neophodno je dodati i napojnu jedinicu (koja omogucava napajanle racunara e!ektricnom energijom), kao i odgovarajuce prikljucne uredaje i kabfove. S druge strane, ukoliko govorimo sta bi danas jedan upotrebljiv ra6unar trebao da posje duje, odgovor nije posve jednostavan i zavisi od namjene racunara. Danas se smatra da bi jedan moderan PC racunar trebao da posjeduje sljedece dijelove:
M

Graficka kartica je neaphodna za prikaz slike na ekranu. Od njenog kvaliteta neposredno zavisi kva!itet sllke koji ce se mod prikazati na ra6unaru. Preporu6ene grafi6ke kartice su kartice iz VGA serije, sa barem 32 MB vlastite RAM memorije (sto vise, to bolje). Uz graficku kartlcu, neophadan je naravno i odgovarajuci monitor. Danasnje iskustvo pokazuje da bi monitor trebao da bude veliCine barem 17 inca, jer se sa manjim monitorima oei prebrzo zamaraju prilikom rada na racunaru. Zvucna kartica, zajedna sa zvu6nicima i eventual no mikrofonom, ne spada u neophodan hard ver, ali je veoma preporucljiv, jer bez ove opreme necete maGi koristiti racunar za reprodukciju muzike sa muzi6kih kompakt diskova, niti za bilo kakve primjene u kojima je zvuk vazan faktor. Mada se djene i kvalitet razlicitih zvu6nih kartica veoma razlikuju, razlike izmedu pojedinih zvu6nih kartica bitne su uglavnom samo muzickim profesionalcima, tako da ce i najjeftinija zvucna kartica sasvim dobra posluziti svrsi. Modem takoder, strogo gledano, ne spada u neophodan hardver, ali je danas tesko zamisliti ozbiljan rad sa ra6unarom bez mogucnosti prikljucenja na Internet, sto nam omogucava upravo modem, stoga cemo ga ubrojitl u uredaje bez kojih racunar ni fzbUza ne pokazuje svoju punu moc. Razli6iti modem! razlikuju se po brzini prenasa infarmacija, a preporucena brzina prenosa je 56 kilobita u sekundi (obi6no se u specifikacijama madema brzina prenosa oznacava samo siovom K, npi. 56 K).
Pored navedenih dije!ova u neophodnu opremu spadaju i kudiste racunara, napojna jedinica i prikljucni kablovi, medutim ovo su dijelovi koji svakako dolaze uz svaki ratunar, tako da 0 njima nema potrebe posebno govoriti. Takoder, pastole uredaji kOje je veoma pozeljno lmati ukoliko materijalne mogucnosti dozvoljavaju, poput ZIP dfskova, stampaca, skenera, pisaca CD dlskova, 6118Ga OVO diskova itd. mada ani ne predstavljaju neophodnu opremu, Radije cema je nazvatl preporuc/jiva oprema. Jedinice kojima se izrazava kapacitet memorije mnogima dje!uju prilicno apstraktno. Da bismo stekli izvjesnu sliku kolika ie zaista koliCina memorije jedan kiiobajt, megabajt, itd. navescemo nekolika i!ustratlvnih primjera. Jedna stranica gusto kucanog teksta formata A4 orijentadono sadrzi oka 1500-3000 znakova, taka da je za pameenje jedne stranice teksta potrebno oko 1500-3000 bajtov8, odnosna oko 1,53 KB, uz pretpostavku da se znakovi zapisuju po ASCII standardu. U slucaju zapisa po UNICODE standardu (koji se sve 6esce korist0 gdje jedan znak zauzima 2 baita, potrebna je oko 3 6 KB po j!dnoj stranici. Pri tome treba voditi ra6una da se misli lskljucivo na suhi, cist), neoblikovani (neformatirani) tekst. 6im pocnemo da ukrasavamo tekst, npr. da mijenjamo' ob!ik i velicinu slova iii da dadajemo slike, tabe!e, formu!e ltd. zahtjevi za memorijom pocinju intenzivno da rastu. Koliko jedna slika zauzima memorije, ovisi 0 vrsti i kvalitetu slike, njenoj velicini, broju boja i nacinu zapisa slike u memoriji, ali opcenito se moze uzeti da jedna slika zauzima ad neko/iko kilobajta do nekoliko megaba~ Ita: Moze sa primijetiti da sllke trose neuparedivo vise memorije nego tekst. To je i logi6no, s abzirom da sllka sadri! neuporedivo vecu koliCinu informacija od teksta (probajte, na primjer, da preko telefona flekomeVjerna opisete sliku koju gledate, a kaju sagavornik treba da nacrta). Ne kaze se dzabe u nar'. :: odu da "jedna sllka vrijedi vise od hiljadu fije6i. Sto se Me zapisa zvutnih informacija, osnovne ]deje o nacinu zapisa zvucnih podataka date su u adje!jku 1.1.9. Konkretna situacija jako varira od vrste j 'kvalitetazvucnog zapisa, ali se generalno moze uzeti da je jednu minutu muzi6kog zapisa vrhunske kvaUtete feprodukcije nemoguce zapisati u manje od jednog megabajta. M

Maticnu p/ocu sa mikroprocesorom (po mogucnosti sto brzim), ROM memorijom, serijskim i para/efnim vratima (barem po 2 komada za svaka vrata), te neophodnim kontrolerima za diskove. Preporucena frekvencija \aktnih impulsa mikroprocesora u vrijeme pisanja ovog udzbenika bi!a je oka 2 GHz, a preporuceni modeli mikroprocesora bili su Intel Pentium IVi Intel Celeron Veli6ina ROM memorije uglavnom nije bitna, s obzirom da svaki proizvodac stavlja u ROM memoriju tacno ana sto zna da je neophodno za odgovarajud racunar. Ina6e, kapaciteti ROM memorija krecu se od nekoliko desetina do nekoliko stotina kilobajta (sto je neuporedivo manje od tipicnih kapaciteta RAM memorije).
RAM memon/u, ciji bi kapacitet trebao da bude stn je god moguce veei, jer zahtjevi za koliCinom memorije rastu iz dana u dan nevjerovatnom brzinom (dobrim dijelom i zbog sve lasije pisanih programa). Pored toga, rekli smo da brzina rada ra6unara drasticno ovisi i od kapaciteta RAM memorije. Preporucena kolicina RAM memorije u vrijeme pisanja ovog udzbenika bila je 256 MS, a kakva de situacija biti u vrljeme dok citate ovaj udzbenik, zaista je tesko predvidjeti. Autor ovog udzbenika sjeca se vremena kada se sa 48 kilobajta radne memorije moglo sasvim lijepo radm, u sfa mnogi danasnji korisnici naprosto ne mogu da povjeruju.

Tastatura je danas ug\avnom standardizirana, tako da se pri njenom izboru ne moze mnogo pogrijesiti. Ipak, bilo bi pozeljno nabaviti tastaturu koja posjeduje nasa slova (C, 00, Z, itd.). Potrebno je napomenuti da je za koristenje nasfh slova neophodan i odgovarajud program za podrsku (drajver), koji najcesce treba posebno instalirati. Takoder, danasnje aplikacije je veoma tesko (mada ne i nemoguce, u sta mnogi korisnici ne mogu da vjeruju) koristiti bez misa, taka da u neophodne dije!ove mazemo svrstati i misa. Trebamo voditi racuna da nabavimo mis sa dvije iii tri tipke, jer postoje i misevi sa jednom tipkom (kakvi se, na primjer, koriste za Macintosh ra6unare). Hard disk je najneophodniji uredaj spoljnje memorije, za ko]] vrijedi slican princip kao za RAM memoriju: koliki god da uzmete kapacitet hard diska, uvijek ste treba!i uzeti vise. Preporuceni kapacite1i izrazavaju se u desetinama gigabajta, a u vrijeme kada budete citall ova] udzbenik vjerovatno i u stotinama gigabajta iii cak i u terabajtima. Flop; disk je takoder neophodan uredaj za prenosenje manjih kolitina podataka (npr. tekstual nih dokumenata) sa jednog na drugi .ratunar. Flop! diskovi su danas uglavnom potpuno stan dardizirani, taka da se 0 njima nema mnogo red.
Kaka se danas vecina instalacijskih diskova za softver isporueuje na kompakt diskovima (CD~ima): Citac kompakt diskova mozemo slobodno svrstati u neophodne uredaje. Razne vrste CD citaea . razlikuju se po brzini. Njihova brzina se izrazava brojem iza kojeg slijedi znak x, a koji oznacava
54

Razmotrimo sada sa aspekta izlozenih objasnjenja kapacitete nekih uredaja eksterne memorije. Najmanji kapacltet imaju diskete. Njihov kapacitet od 1.44 MB je prili6no mali, ali sve zavisi od nacina posmatranja. Na primjer, na disketu moze stati preko 500 stranica 6istog teksta (sto ni u kom
55

slucaju nije malo), ali nerijetko na disketu ne moze da stane ni jedna jedina citava kvalitetna sllka, 5to je u svakom slucaju deprimirajuce. Takoder, u najbo\jem slucaju na disketu bi moglo da stane nekolik6 minuta muzickog zapisa{i to ne vrhunske kvalitete}, $to je osnovni razlog za$to niko muziku ne snima na diskete (mada je to principijelno moguce). OVO diskovi su drugi ekstrem po pitanju kapaciteta memorije. Jedan jedini OVO disk (ko]i je prenosiv ureda]) maze imati kapacitet i od neko!lko desetina gigabajta. Ovaj kapacitet je sasvim uporediv sa kapaoitetom hard diskova (koji su neprenosivi uredaji). Medutim, OVO diskovi nemaju ni izbliza fleksibHnost koju imaju hard diskovi u pogledu mogucnosti upisivanja i brisanja podataka, brzine pristupa podacima, itd. OVO diskovi se najcesce koriste za pohranjivanje digitalno zapisanih filmova, jer kako animirana slika nije nista drugo nego slijed staticnih sllka koje se brzo izmjenjuju (tipieno 24 puta u sekundi), jasno je da vec i jedna sekunda pokretne (animirane) slike moze zauzeti jako mnogo memorije. 8toga se ponekad tvrdi da.skra6enica OVO zapravo znabQigital Yideo .!disk. 8to se tiee mlnimalne softverske konfiguraci]e racunara, tu je tesko postaviti neka precizna mjerila. U sustini, nuzni minimum je samo operativni sistem, jer bez njega racunar ne moze raditi ama bas nista. Danas je na PC raeunarima preporuceno imati oeki od novijih Windows operativnih sistema, a sve je popularniji i Linux operativni sistem, tako da iskusniji .korisnici eesta imaju oba operativna sistema (Windows oi u korn slueaju ne treba odbaciti, jer se aplikacije pisane za Windows operatlvn! sistem ipak susrecu mnogo tesce nego aplikacije pisane za Unw?). Medutim, sa samim opere ativnim sistemom ne moze se raditi nista korisno. Mada uz veCinu operativnih sistema kao sastavni dia dolate i jednostavnije aplikacije (poput programa za obradu teksta WardPad i programa za crtanje Paint koji dolaze uz Windows operativne sisteme), ove aplikacije su obicno nedovoljne za ozbiljan rad. Stoga je potrebno instalirati i odgovaraju6i aplikativni softver, SIO. zavisi ad konkretnih potreba korisnika. 0 ovome cemo detaljnije govoriti u poglavlju 1.5. Danas se obicno smatra da skup prograrna iz paketa programa poznatog pod nazivom Microsoft Office (ko]i, na primjer, ukljucuje program za obradu teksta Microsoft Word, program za tabelarne proracune Microsoft Excel, program za rad sa bazama podataka Microspft Access i jos nekoliko drugih programa) zadovoljava vecinu potreba prosjecnih korisnika racunara, koji nemaju vete racunarsko obrazovanje i vete prohtjeve. Kao dio uobicajene programske opreme PC racunara cesto se smatra i program za crtanje Corel Draw. Bltno je ista6i da kolicina memorije (kako interne tako i eksterne) koju zahtijevaju pojedini programi varira drastieno od programa do programa, tako da imamc programe ko]i zauzimaju svega nekoHko kilobajta, pa sve do programa koji zauzimaju nekollko gigabajta. Razumije se da masivniji programi zahtijevaju i mocniji hardver, tako da zeljena softverska konfiguraclja namece zahtjeve na hardversku konfiguraciju. Vrijedi i obrnuto, jer specificni hardverski uredaji zahtijevaju i specificne drajvere (koji predstavljaju sofl:ver), tako da se neophodna hardverska j softverska konfiguracija raeunara ne mogu nikada posmatrati neovisno jedna od druge. Kvalitet programa je cesto u potpunoj nesrazmjeri sa kolitinom memorije koju zauzima, kao i sa neophodnim hardverskim resursima koje zahtijeva za rad. Na primjer, nije nemoguce naci program velleine nekoOko stotina kilobajta koji obavlja brte i efikasnije gotovo istu funkciju kao j neki program koji zauzima nekoliko desetina megabajta, Naroato kratke i efikasne programe motemo naci medu -fre.ewa(e i shareware programima, jer takve programe autori pisu lZ entuzijazma i Ijubavi, a ne iz trke z.a: zaradom. Postoje i programl koji se namjerno prave tako da zauzimaJu neuporedivo vise memorijejtraz~neLJP9redivo vise resursa nego sto bi zaista trebali, 6ime prislljavaju korisnike da kupuju novi"~ardver i da.stalno ulatu novae u novu racunarsku opremu. Takvi programi,se obicno naziva"ju 'blo~ttwaFe,.programj, a takvih je danas sve vise i vise, posebno medu racunarskim igrama.

Pitanja i zadaci
1. 2. 3. 4. 5. 6. 7. B. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Kojih se hardverskih mjera bezbjednosti trebamo pridrtavati prilikom rada sa racunarom? Sta se podrazumijeva pod softverskim mjerama bezbjednosti? Opisite postupak hardverske instalacije racunara. Sta su instalaeijski diskovi, a sta instalacijski program]? Sta je registracljska baza j zasto nije dobra cesto instalirati i deinstalirati programe? Sta su softverski pirati? Sta su drajveri? Sta je Plug-and-Play tehnologija? Sta je BIOS i cemu sluti? Opisite kompletan proces dizanja sistema. Sta su dual-boot sistemi? Sta je BIOS SETUP i kako se pokrece? Koje su prednosti i mane Flash 810S-a u odnosu na ROM BIOS? Sta su multitasking operativni sistemi? Opisite odnos izmedu hardvera, BIOS-a, operativnog sistema i aplikacija. Staje virtualna memorija i na koji naCin kolicina RAMmemorije utjece na brzinu rada ratunara? Opisite ul09u pojedinih dijelova operativnog sistema. Opisite neophodnu hardversku konfiguraciju savremenih PC racunara. Kollko tacno stranica Cistog teksta moze stati na jednu disketu, ukoliko jadna stranica teksta zauzima u prosjeku 2500 znakova, i ukoliko se koristi UNICODE sistem zapisa znakova? Ukoliko neki digitalni fotoaparat uspijeva da snimi 24 fotografije na jednu disketu, ko!iko memorije ovaj fotoaparat koristi za zapis jedne slike? Znajuci da muzi6ki kompakt diskovi imaju kapacitet od 650 MS, a mogu zapamti1i 74 minute muzike, izracunati koliko se memorije trosi za zapis jedne sekunde rTluzike na muzlckim kompakt diskovima. (Napomena: zapis muzike na muziekim kompakt disl<ovima je daleko od optimalnog.) 8ta motete reCi 0 neophodnoj softverskoj konfiguradji savremenih PC racunara? Na koji naCin softverska i hardverska konfiguracija racunara utjecu jedna na drugu? 8ta oznacava termin bloatware?

"

il

22. 23. 24.

57

1.4 KOMUNIKACIJA KORiSNIKA SA RACUNAROM


1.4.1 Opca s!ruktura komunikacionog procesa
U prethodnim poglavljirna upoznali sma se dataljno sa prlncipima funkcioniranja racunara. Medutim, bez obzira na say hardver i softver ko]i posjeduje racunar, nezaobilazan je Ijudski faktor da bismo ad racunara imali i,kakve koristi. 60vjek je neophodan da dostavi racunaru podatke koji se obraduju, kao i da prihvati i interpretira rezultate abrade. Drugim rijecima, neophodna je komu nikaclj'a izmedu 60vjeka i ratunara. Prije ne90 5tO detaljnije razmotrimo komunikaciju izmedu covjeka i ra6unara, dacemo nekoliko opcih napomena 0 strukturi svih komunikacionih procesa koji ce nam biti od koristi u kasnijim razmatranjima. Bez obzira ko su u6esnici komunikacije i bez obzira na naCin na koji se informacije prenose izmedu ucesnika, u svakom komunikacionom procesu mogu6e je uoeitl tri bitna elementa: izvore informacija koji saliu informacije, prijemnike informacija koji primaju [nformacije, i kanale veze kojima se informacije prenose. Komunikacione procese mazemo podijeliti na proste u kOjima se javlja po jedan izvor i prijemnik informacija, kao i jedan kana! veze, i s/oiene, u Kojima se javlja vise Izvora i prijemnika informacija, kao i vise kanala veze (na primjer, skup !judi na pijaci koji komunici" raju medusobno sadrii mnostvo izvora i prijemnika informacija, kao i jos veGi braj kanala Kojima se informacije prenose). Kod s!ozenih komunikacionih procesa mazema razlikovati komunikacije u zatvorenim sistemima, gdje mozema uzeti da ueesnici komunikacije fonniraju jednu cjelinu (sisw tem) koja ne razmjenjuje nikakve informacije sa svojom okolinom, i komunikacije u otvorenim sjs~ temima, gdje ueesnici komunikacije koji tine sistem pored toga sto komuniciraju izmedu sebe, razmjenjuju informacije i sa drugim srodnim sistemima (npr. skupina Ijudi unutar neke radne organi" zacije, pored toga sto razmjenjuje informacije izmedu sabe, razmjenjuje informacije i sa pripadnicima drugih radnih organizacija). Mada sa socialaskog aspekta nije moguee posmatrati slozene komunikacione procese prosto kao skupinu prostih komunikacionih procesa, pri razmatranju tehnickih aspekata kOlTIuniciranja razb!janje slozenih komunikacionlh procesa na niz prostih komunikacionih procesa eesta se pokazuje sasvim opravdano. Zbag toga eemo detaljnlje razmotriti samo proste kamunikacione procese. Ove procese dalje mozema podijeliti na jednosmjerne (nekooperativne) u kojima Informacije uvijek teku samo od izvora ka prijemniku informacija (npr. eitanje novina, gledanje televizije, ltd.) i dvosmjeme (kooperativne) u kojima Izvor i prijemnik mogu po potrebi zamijeniti uloge (npr. obieni razgovor). Uprosc':eni model proslog jednosmjernog komunikacionog procesa prikazan je na sljedec':oj sHei: KANAL VEZE

goden kanalu veze (elektricni signali). SHena, izmedu kanala veze i prijemnika informaclje mora se nalazlti posrednik, nazvan dekoder, koji pretvara informacije lz oblika prilagodenom kanalu veze u oblik razumljiv prijemniku. U nasem primjeru ulogu kodera i dekodera preuzlmaju telefonski mikro" fan i slusalica. Nemoguce je zamisliti komunikacioni proces u kojem se neee pojaviti koder i dekoder u barem nel<om obliku. Na primjer, pri neposrednom razgovoru dva sagovornika, kanal veze je zrak, dok se informacije kroz kanal veze prenose u vidu zvuenih talasa. Medutlm, informacije u mozgu nijednog od sagovornika nisu zapisane u vidu zvucnih talasa -(tacan nacin zapisa informacija u Ijudskom mozgu do danas nije poznat, ali se sigurno zna da se ne radi 0 zapisu u vidu zvucnih talasa). Stoga se u funkciji kodera javljaju usta prvog sagovornika, koja informacije iz njegovog mozga prevode u zvucne talase, dok se u funkcijl dekodera javljaju us; drugog sagovornika, koje vrse obrnuto pretvaranje. U slueaju dva gluhonijema sagovornika koji gestikuliraju rukama, u funkciji kodera javljaju se ruke, dok se u funkciji dekodera javljaju oei, itd. U oba slucaja prenose se iste poruke, sarno je naC!n na ko]i se one prenose (t). nacin na ko]i su kodirane) drugaCiji. Dodatni doprinos 8hannona je u Cinjenici da je uoCio da prilikom prenosa informaciJa kroz kana! veze maze doci do gubitka informacija usljed prisustva smetnjj. Na primjer, u buenoj sredini sasvim je moguee da primalac primi pogresnu poruku, zbog toga slo se prava poruka koju je poslao izvor informacija pomijesala sa drugim nezeljenim zvukovima. 8toga se maze reCi da dekoder nika~ da ne prima izvorni signal koji je poslao koder, vee signal pomijesan sa smetnjom, usljed cega se primljena poruka moze razlikovati ad paslane. OpCi model prostog jednosmjernog komunikacionog procesa po Shannonu maze se efikasno prikazati pomocu sljede6e slike: Smetnja

Poruka IZVOR INFORMACIJA

KODER

~ 0)

Signa(+
SlIwtfl/U

DEKODER

PRIJEMI~IK

INFORMACIJA

OpCi model kVlllunikacioflog pmcesa po SfI,;UI!IOII!I

IZVOR INFORMACIJA

PRIJEMNIK INFORMACIJA

Mada Shannonov model moze djelovati prilicno naivan, on je omoguCio izvodenje veoma detaljnlh matematsklh proraeuna koji su omogu6i1i proueavanje tehnickih aspekata komunikacionog procesa. Jedan od najveCih Shannonovih doprinosa koji je izveden IZ ovog modela je euvena Shannonova formula koja povezuje maksima!nu teoretski mogueu brzinu prenosa informacija kroz kanal veze sa odnosom srednje snage signala kaji Izlazi lz kodera i snage smetnjL Ova formula S8 uveliko primjenjuje pri projekliranju telefonskih i racunarskih mreza. Sa Shanonnovim mode!om - prakticno je rodena maderna nauka 0 komunikacijama, koja je omogucila razvoj telekomunikacija, odnosno nauke 0 prenosu informacija na daljinu uz pomoc': savremenih tehniekih sredstava.

1.4.2 Metoda komunikacije covjek-racunar


Prikazani model isuvise je jednostavan da bi omogutio detaljn!ju anaJizu komunikacionih proce~ sa. Prvi detaljniji model prostog komunikacionog procesa predlozio je Claude Shannon, kojeg sma vee spominjall kao jednog od osnivaca teorije informacija. Shannon je primijetio da se informacije prakticno nikada ne prenose u onoj formi u kojaj su zapisane u izvoru, niti u forml koju oeekuje prj~ jemnik. Na primjer, prilikom telefonskog razgovora dva sagovornika, informacije se kroz telefonsku mrezu prenose kao elektrieni signali, koji sigurno nisu vid zapisa informacija kako ih doz!vljavaju sagovornici. Stoga se Izmedu svakog lzvora informacija i kanala veze mora nalazitl posrednik, naz- . van koder, koji pretvara informacije lz izvora (u nasem primjeru govorne informacije) u abUk prila"
58

Razmotrimo sada komunlkaciju izmedu eovjeka i racunara sa aspekta opc':eg komunikacionog ~ -- . modela. Jasno je da slJ informacije u racunaru pohranjene na posve drugaCijl natin u odnosu na naeiil koji 6cekuje eovjek. Na primjer, sve informacije u racunaru pohranjene su u vidu binatnih bro" .jeva, a korisnik niti zeli da taka zadaje informacije, niti zell da ih prihvaca u tom obliku. Slijedi da izmedu korisnika i racunara moraju postojati prili6na slazeni koderi I dekoderi (sa aspekta Shanonnovog modela) koj! ee izvrsiti neophodno prilagodenje. Ti kaderi I dekoderi moraju posjedavati kaka hardversku, taka i softversku komponentu. Neka, na primjer, korisnik zeli da unese slovo
59

A Korisnik pritisce tipku A na tastaturi, koja predstavlja hardversku komponentu komunikacije covjek-racunar. Tastatura salje racunaru binarni signal koji informira racunar da je pritisnuta odredena tipka. Medutim, taj signal treba pretvoriti u informaciju da doticna tipka zaista predstavlja slova A, i pohraniti tu informaciju u vidu binarnih cifri (reeimo po ASCII standardu). Taj zadatak se .obavlja u operativnom sistemu, u dijelu koji je namijenjen za upravljanje tastaturom, i taj dio opera tivnog sistema u navedenom primjeru predstavlja softversku komponentu komunikacije 6ovjekracunar. Dalje, pretpostavima da je rezultat obrade koji racunar zeli da saopc! korisniku braj 42. Ovaj brai je u racunaru pohranjen kao binarni broj, kaji prvo treba pretvoriti u dekadni broj, na osnovu kojeg treba generirati neophodne informacije (npr. informacije a vizuelnom abliku cifr! "4" i "2~) kOje su neophodne da se na ekranu monitora pojavi zeljeni rezultat u covjeku p-rihva1ljivom obliku. Ova je zadatak softverske komponente (koja takoder pdpada operativnom sistemu), dok js u ovom 'slucaju hardverska komponenta monitor koji prikazuje na ekranu sliku u covjeku razumljivoj formi. Iz izlozenog razmatranja jasno je da komunikacija izmedu covjeka j raeunara mora posjedovati kako hardverski, tako i soffversk; interfejs (rijee interfejs iii meduveza opcenito oznacava bHo kakvu vrstu spoja koji je neophodan da bi se ostvarila komunikaGija izmedu vise komponenti nekog sistema). Hardverskl lnteriejs u komunikaciji izmedu covjeka i ratunara predstavljaju odgovarajuce ulazne i izlazne jedinice zajedno sa pripadnim veznim sklopovima, dok softverski interfejs sa6injava odgovarajuea programska podrska za komunikaeiju. Tu na prvom mjestu spada operativni sistem, a narocito njegov najvisi sloi nazvan ljuska, koji je direktno zaduzen za prihvatanje komandi od koris nika r prikazivanje fezultata izvrsavanja komandi korisniku. VeGina aplikativnog softvera za vrijeme rada takoder trati sudjelovanje korisnika, taka da se pril1kom izvrsavanja apllkacija, same aplikacije takoeter javljaju kao softverski interfejs kamunikacije c':ovjekratunar (tacnije, njihov die poznat pod imenom korisnicki interfejs apllkacije). Medutim, za nasa dalja razmatranja 0 naCinima komunikacije izmedu covjeka i ra6unara uglavnom je nebitno da Ii se komunikaeija obavlja posredstvom korisnickog interfejsa operativnog sistema iii aplikacije. U po6etku su metod! komunikaeije covjek-racunar bili prilagodeni iskljucivo profesionalcima, jer je racunare koristio sasvim mali broj posebno obucenih ljudi (operatera), ko]i su bili posrednici izmectu krajnjeg korisnika kao podnosioea zahtjeva i racunara kao davaoca usluga. Na taj nacin, svi podaei i informacije koji se obraduju morali su biti unaprijed pripremijeni, sto je iskljucivalo moguenost bilo kakve intervencije tokom abrade. To je ujedno bia i jedini moguci pristup u vrijeme kada su se podaci u ra6unar unosili isklju6ivo putem busenih kartica. Takav pristup u velikoj mjeri je suzavao krug problema koji su se mogli efikasno rjesavati uz pomoc racunara. Medutim, sve veGi obim primjena racunara i njihova raznolikost imaju za posljedieu sve veei broj korisnika koji se sluie racunarom. Takav pristup doveo je do potrebe interaktivnog rada sa racunaram. _Korisnik u svakom trenutku mQra da bude u mogucnosti da vidi rezultate svog rada. Drugim rijeCima, komunikacija izmedu korisnjka i ra6unara odvija se cijelo vnJeme za vrijeme rada racunara. lnteraktivni rad omogucava koristenje ra6unara bez posrednika. Pri tome, korisnlk mora biti sposoban da jasno i preeizno -izlozi svoj zahtjev, i formulira ga na na6in prihvatljiv racunaru. Takoder, korisnik mora biti sposoban -da- prati i razumije sve odgovore koje prikazuje racunar, kao i da korigira svoje akcije u s[vcaju- potrebe. Stoga je eilj projektirati takve metode komunikacije jzmedu 60vjeka j racunara ko)i {;e'_l! sto je god moguce vecoj mjerl smanjitl potrebe za posebnim struonim osposobljavanjem karls 'nl~aza rao:naJa6unaru. ." N.i~tl3.Jle. m~ze korisnika u tolikoj mjeri odbiti od rada sa racunarom ko!iko lose projektlran korlst)iqkJinterfejs. NarbCito je iritlrajuce dugo cekanje na izvrsenje pojedinih komandi, sto korisnika tjera -.n-a-pronalazenje alternativnih nacina za rjesavanje problema. Stoga je jedan od najbitnijih zahtjeva -na koris~i6ki interfejs zahtjev da vrijeme odziva (tj. vrijeme kOje korisnik treba da 6eka da bi dobio -povratnu informaciju) treba da bUde sto kraGe. Pored toga, broj detalja kOje korisnik treba da zapamti ".(/a bi mogao koristiti korisnicki interiejs treba da bude sto manji, a intenzitet umnog j fizickog napaGO

ra koje zahtijeva vrsenje odredenih funkcija treba da bude sto slabiji. Bra] gresaka koje korisnik moze napraviti prilikom rada treba da bude sto manit. Posebno treba smanjiti mogucnost pravljenja gresaka od kojih je tezak oporavak. Korisnitki interfejs mora biti sposoban da uoei mogucnost takvih gresaka, i da ih na vrijeme signalizira korisniku. Korisni6ki interfejs bi trebao da bude "prijateljski raspa!ozen prema korisniku", sto se danas obiono ozna6ava engleskom frazom user friendly. Na prvom mjestu, korlsnicki interfejs bi trebao da bude sto je god moguee prirodniji, uz upotrebu prirodnog govornog jezika gdje je god to moguee. U slucajevima kada je to pogodno, korisni6ki interfejs maze .sadrzavati i sllke, tabele, formule i zvucna saopcenja (ukljucujuCi i glas). Pozeljno je obezbijediti komande koje omogucuju korisniku da ponisti odredenu akeiju u slucaju da je napravio gresku (komande tipa "undo"), kao i komande koje obezbjeduju korisniku prikaz sistema uputa (komande tipa "he/p''). Dalje, korisnicki inferfejs mora biti otporan na trivijalne greske kOje moze napraviti korisnik, poput slu6ajno pritisnute lipke, pogresno otkucanog slova, zamjene malih sa velikim slovlma, itd. Pozeljno je da poruke 0 greskama daju i kratku uputu 0 na6inu kako se greska moze otkloniti. Konacno, kolicina informacija koja se u jednom trenutku prikazuje na ekranu ne smije biti prevelika, jer to remet! koneentraciju korisnika (naroCito kada se koriste slike, koje nose veHku koli6inu intormacija). U svakom slucaju, I<omunikaeiju izmedu 60vjeka i racunara treba organizirati na nacin koji ce bit! sto je god moguce prihvat!jiviji za krajnjeg !<orisnika, bez obzira na poteskoee koje takav interfejs moze proizvesti prillkom konkretne realizacij8 softvera. Kroz historiju racunarstva razvijale su se razne metope komunikacije izmectu covjeka i racunara. U narednim odjeljeima detaljnije cemo razmotriti najrasprostranjenije metode, pocev ad komunikacije pomocu komandne Ilnije koja se prva pojavila, pa sve do najsavremenijih metoda komunikaeije, 1(Oje ukljucuju i komunikaciju sa racunarom putem glasa.

1.4.3 Komunikacija sa racullarom pomocu komandne linije


Prvi vid komunikacije sa racunarom koji se pojavio kada je kao ulazni uredaj uvedena tastatura (odnosno, kada su busene kartice napustene kao sredstvo za unos podataka), predstavlja komunikacija pomocu komandne linije. Kod ovog nacina komunikacije, racunar prvo korisniku ispisuje obavijest da od njega ocekuje komandu. Ova obavijest se naziva prompt. Prompt maze biti prosta poruka poput "Unesi komnndu:" iii cak samo nekl znak poput ">". S druge strane, prompt maze sadrzavati i neke korisne informacije, npr. koji je direktorij iii folder aktlvan, teku6i datum i vrijeme, ltd. Nakon toga, korisnik unos! komandu, koju racunar analizira, i izvrsava je u slucaju da je ispravna (u' suprotnom se prikazuje obavjestenje da komanda nije ispravna). Nakan izvrsenja komande,' korisniku se ponovo prikazuje prompt, i proees se dalje ponavlja u nedogled. Oio operativnog sistema koji obavlja komunikaciju pomoew komandne Hnlje (koj! spada u sloj ijuske operativnog sistema), naziva se komandni ;nterpr.eter. Komunikacija pom9cu ',komandne IInUe predstavljala ie glavni metod komunikacije covjeka sa racunarom'u operativn6m sist_E'if!1u Iv1S:DOS-.(njegC?v komandni interpreter je program pod imenom COlv[Jl1.'4..."m. COM). Na p.rjmjer, slika 'na S!jjed~coj strani prikazuje tipicnu komunikaciju covjeka i racunara pomoeu komandne linjje u.Qperativnom-,slste-mu"MS-DOS: Opisa6emo ukratko sustinu komunikacije prikazane-na ovoj slid (poteljn6 je.da_uc~nici-posj-eduju barem elementamo predznanje a MS-DOS operativnom sistemu, koji.su_ vjerQyatn6 stekli _kroz rl,,!stavu informatike u asnovnoj skoli, iako se navedeno objasnjene_.mo.z~"Pfatttii be,z ikakvog predznanja a DOS-u). Na pocetku komunikacije ispisan je prompt c: \;>" kOji, o$'im tinjejlice da racunar ocekuje komandu, obavjestava korisnika da je trenutni radni uredaj eksteme' mef!1~rije- hoard disk ('c :"), kao i da je trenutni radni direktorij (folder) korijenski direktorij ("\"). Pretpostavimo ~a sada korisnik zen da postavi da radni direktorij bude direktorij nazvan
61

Korisnik mora da zada racunaru odgovaraju6u komandu, koja u ovom slueaju glasi "CD SYSTEM" (CD potlee od eng!. ,Qhange Qirectory). Raeunar panovo izbacuje prompt, koji sada glasi "C: \ SYSTEM>", 6ime korisnik dobija informaeiju da je radni direktorij, zaista promijenjen. Pretpostavimo dalje da korisnik zeli da prikaze spisak lmena datoteka u radnom direktoriju, u sazetoj {ormi koja ns sadr-zi sve detalje a datotekama, i koja se Kumullikacija pnka kU/llumbll.' lil/l}c U operulimolll prikazuje u nekoliko kalona. sis/emu !ltV-DOS Korisnik tada zadaje komandu "DIR /w", pri cemu "DIR" oznaeava da zelimo pregledati sadrtaj radnog direktorija, a "fW' da zelimo pregled u sazetom obliku. Pretpostavimo da, nakan pregleda, korisnik odluei da zeli kopirati sve datoteke eija se imena z3V1savaju nastavkom". 8YS" na disketu. On tada zadaje komandu "copy ;,. SYS A:". Ovdje "copy" predstavlja komandu za kopiranje, ";' . SYS" predstavlja sve datoteke koje imaju nastavak " . 8Y8" (znak "*" je tzv. dzoker znak koji zamjenjuje proizvoljnu grupu znakova), dok oznaka "h:" predstavlja disketu. Prilikom kopiranja, racunar obavjestava korisnika koje su datoteke kopirane ("COl.JtT'TRY. SYS", "DISPLAY. SYS" i "KEYBOARD. SYS"), kao i brej kopiranih datoteka (3). Nakan obavljenog kopiranja, ponovo se prikazuje prompt, i raGunar js spreman da prihvati narednu komandu.
"SYSTEM".

Iz navedenog razmatranja mozemo vidjeti da potreba za komunieiranjem preko komandne linije postaji i danas, Ovaj vid komunikacije u danasnje vrijeme koristi se uglavnom za potrebe iskusnih korisnika. Taka je, na prlmjer, komuniciranje preko komandne !inije i danas glavni naein komunikacije u operativnom sistemu UNIX, koji se koristi u v.elikim i profesianalnim ratunarskim sistemima (najcesce za upravljanje racunarskim mrezama). Kako komuniciranje preko komandne linije moze biti od koristi cak i korlsnicima koji koriste Windows operativne sisteme, svi operatlvni sistemi iz Windows serije posjeduju takoder komandni interpreter istag imena (C01'll1l\ND. COM, iii CMD. EXE U novijim verzijama), koj! izgleda identicno kao komandni interpreter iz MS-DOS-a. Ovaj komandni interpreter iz Windows-a mazemo pozvati taka sto cemo preko Start menija i opcije Programs potraziti program nazvan MS-DOS Prompt (kaji nije nista drugo nego alternativno ime za program COMMAND. CON! ill' CMD. EXE). cak i u slueaju da oval program nije postavljen LI Start meni, on se uvijek moze neposredno pozvati navodenjem njegovog osnovnog imena (COMMAND iii CMD) prilikom pokretanja opcije Run u Start meniju. Napomenimo da se iz ovog komandnog interpretera, kada nam vise nije potreban, izlazi navodenjem komande "EXIT" (koja se, naravno, kuca slovo po slovo).

1.4.4 Komunikacija sa racunarom pomocu komandnih Ijuski


Prvu nadgradnju komunikacije uz pomoc komandne linije predstavlja komunikacija pomocu komandnih Ijusk;, u kojoj je komandni interpreter zamijenjen komandnom Ijuskom (eng I. command shem. Komunikacija pomocu komandnih Ijuski nalazi se na pre!azu izmedu komunikacije pomo6u komaridne linije i danasnjih metoda komunikacije uz pomo6 grafickog okruzenja. Naime, komandne Ijuske jos uvijek mogu koristiti tekstualni nacin rada (tj. u kojem se prikazuje sarno tekst i, eventual no, specijalni znaci, bez ikakvih slika). Medutim, u komandnim Ijuskama komande se ne kucaju (slovo po slovo), nego se biraju iz spiska ponucJenih komandi.lzbor komandi se najcesce vrsi pomo6u meniJa (jzbornika). Men]ji su, zapravo, spiskovi alternativnih akcija koji se prikazuju na ekranu, i iz kojih korisnik vrsi izbor jedne od akcija koju 6e racunar izvrsiti. Meniji u komandnim Ijuskama uopce ne moraju da imaiu izgled menija sa kojima se korisniei susre6u u Windows operativnim sistemima. Meni moze biti ma Imkav spisak ponudenih akeija, od kojih korisnik na neki nacin moze izabrati jednu od akcija (npr. pritiskom na dug me koje odgovara red nom broju trazene opeije). Jedan takav meni mogao bi, na primjer, izgledati ovako:
1. Uno" novih podataka 2. UC.i tavanje postojecih podataka

Iz izlozenog primjera se jasno vidi osnovni nedostatak komunikadje uz pomo6 kamandne Ilnije. Nairne, da bi korisnik magao da komunicira sa racunarom, on mora da zna koje komande racunar razumije, Imo i nacin njihovog ispravnag koristenja. Drugim rijeeima, korisnik koji ns zna komande ne moie sa racunarom da uradi nista. Stoga je pristup preko komandne lihije bio dugo vremena odbojan za vecinu korisnika, kojima je ucenje komandi i njihove ispravne upotrebe predstavljalo veliki problem. Ipak, komuniciranje pomocu komandne linije ima dvije bitne prednosti u odnosu na ostale vrste komunikaeije, Prva, oval nacin komuniciranja ne dozvoljava neiskusnim korisnicima da nap rave veliku stetu. Na primjer, u operativnim sistemima Windows potpuno neiskusan korisnik moze k!ikcuCi na razne ikone i birajuci razne opeije iz menija (Gije znacenje ne zna) da nesvjesno pobrlse veliku kolicinu podataka sp. diska, iii da izmijeni razne sisternske parametre racunara, i da na taj naCin napravi neproejenjivu stetu. S druge strane, to nije moguce pri!ikom komuniciranja preko komandne liniie. Na primjE)r, ukollko korisnik ne zna da za brisanje svih datoteka iz nekog direktorija treba atkucati komandu UDEL *.~", Gn to ne moze uraditi s/ucajno, tako da je znatno smanjena mogucnost slucajne stete_, Drugo, Komunikacija putem komandne linije moze da bude znatno brza nego drugi vidovi komunikaeije:- PrQba:jtej na primjer, .da pomocu Windows operativnog sistema sve datoteke sa nastav_korn." : TXT" Gije' line poeinje sa ';PR" sa diskete iskopirate na hard disk u folder nazvan "RADNI", a da pri -tom~ pr6'in)JenilEl:. naSlayke svih datoteka iz " . TXT" u " . INF", Ko)i god pastupak budete koristili, treb.?fCe v.<;t.m~~osia_ posla. S druge strane, pomocu komandne liniie dovoljno je ukucati samo jednu komandu.,koja. ~fa~i-"CQP'l A: PR *._ TX'l' C: \RADNI\PR * . INF", sto je, morate priznati, znatno brio (bez obzJra' sj<Finozda Srnatrate da je metod komuniciranja preko komandne linije sa,danasnjeg aspekf.<i prihlTtiv.an).-

3. Snimanje podataka
4. Pregled podataka

5. Stampanje podataka 6. Kraj rada

Maderniji meniji obicno omogucavaju da se izbor zeljene opcije astvari pomicanjem trake koja oznacava trenutno izabranu opciju uz pomoc tipki sa strelicama na Jastaturi, iii uz pomoc nekog ad pokaznih uredaja kao sto je mis (dovodenjem pokazivaea mi~a na ielje.nu opciju i priti~kom na taster miSa). Komandne Ijuske pojavile su se prilicno davno, tipicn~kao d6dacf~a-M$-DOS-ill UNIX operativni sistem. Jedan ad prvih popularnih komand~ih Ijuski za MS~DOS. ~o je program Norton Commander (program istag imena, koji se razvio iz iz.vQmog -Ndf:.fQ'n :CommC!ndera, koristi se i danas pod Windows operativnim sistemima kao alternatlva za-program: Windows Explorer). Uz verziju MS-DOS 4.0 kao sastavni dio operativnog sistema-, ispo.ruc[vala: se i komandna Ijuska MS-DOS Shell (fizicko ime ovog programa je DOSSHEI~L. EX.-~)-, Koja se mogla koristitl kao alterna~ fiva klasicnom komandnom interpreteru CGr1l'lAND. CQ:M. Sljedeta' ~lika -prikazuje primjer komu~ nikacije sa racunarom uz pomoc ave komandne lluske:" -

62

63

U komandnim Ijuskama, pojavili su se pored menija i drugi elementi komunikacije Covjekracunar, ko)i i danas sacinjavaJu srZ modernih metoda komunikacije izmedu covjeka i masine. Na primjer, tu spada metod komunikacije upit~ odgovor, kod kojeg racunar postavlja pitanje (najeesce DAiNE tipa), Coruw.l1d Pl'()Opt korisnik na njega daje odgovor, nakon 6ega racunar lzvrsava akciju ovisnu od odgovora. Dalje se cesto susrece i metod popunjavanja formu/ara (obraz8ca). Kod ovog metoda komuKmtnllli!w,ija prekn komnluinc ljuske DOS Shell u opcrativnnm sistemu MS-DOS' nikacije, ra6unar na ekranu prikazuje formular sa kurzorom postavljenim na PNO polje koje se popunjava. Kada korisnik popun~ sadrzaj ~olja, omogucuje se prelazak kurzora na sljedece polie, i tako $ve dok se formular ne popunl (naprednlJI fO.rmulari posjeduju mogucnost popunjavanja polja proizvoljnim redoslijedom, kao i izmjenu vee une~enjh podataka). Konacno, treba spomenuti i funkcionalne kljuceve, kod kojih korisnik m?ze ~a ~e~i na61n da prebaci ra6unar iz jednog stanja rada u drugo stanje (npr. pritiskom na neke komblnaclje tl~kl n~ tast~ turi) neovisno od stanja u kojem se ra6unar nalazio. 0 ovim savremenijin: .meto?am~ komu~l~acIJe, ~.o!e mada nisu nuzno vezane za graficko okruzenje, detaljnije cemo goYontl u sijedecem odJeljku, kOjl Je posvecen komunikaciji uz pomoe grafickog korisnickog okruzenja.

ikone. Takoder, komande se mogu zadavati izborom lz spiska moguclh l{Dmand1 (opcija). Ovi spiskovl nazivaju se meniji. lzbor ikona Hi opelja iz menija vrsi se pomjeranjem odgovarajuceg pokaz;vaca koji je vidljiv na ekranu pomocu tipki sa strellcama na tastaturi iii, jos 6esce, pomicanjem nel{Dg pokaziva6kog ulaznog uredaja (npr. mlsa), a zatim potvrdom izbora pritiskom na dugme ENTER na tastaturi iii pritiskom (klikom) na dugme misa (obi6no dvosfrukim). Na sljedecoj sllei prikazano je kako koncept WfMP izgleda u Windows 95/98 operativnim sistemima:

-~

WIMP konr:ept u Windows opcmthnim sisttrnimrr

Ii

Na gornjoj slici je zapravo prikazano mnostvo ikona i dva prozora. Koncepte koji slijede objasnieemo na primjeru Windows operativnih sistema, sa Cijim principima koristenja ste se vee upoznaH u nastavi informatike u osnovnoj skoli. SIi6nl koncepti vrijede za vecinu drugih grafickih korisni6kill okruzenja. Podsietimo se da u Windows operativnim sistemima prozori imaju na vrhu traku sa nas/ovom, sa 6ije se lijeve strane nalazi dugme~ikona za poziv sistemskog menija, a sa desne strane niz dug~ mad!, najcesce (redom sa lijeva na desno) dugme za sa/aivanje sadrtaja prozora (minimizaciju), dugme za povecavanje prozora na veli6inu cijelog ekerana (maksimizaciju) i dugme za zatvaranje prozora. Ponekad se susrece i dugme za prikaz pomo6i. Samo jedan prozor maze u jednom trenutku da bude aktivan (aktivni su oni prozori koji,primaju komande ad korisnika). Aktivan- prozor ima traku sa naslovom drugatije boje (obicno plave) od traka sa naslovom ostalih prozora (obicnosive). Prozor moterno uciniti aktivnim tako sto pokazivac misa dovedemobilo gdje na vid!jivi, dio . povrsine prozora i kliknemo misem. Alternativno, izbor aktivnog prozora mazemo vrsiti i pre~o trak~" sa zadacima (engl. taskbar') koja se obicno nalazi u dnu radne povrsine (engl. desktop) i u kojo]_ S8 nalazi, pored ostalog, i spisak svih trenutno otvorenih prozora. Prozare mozemo pomjerati' po raQ~ noj povrsini, taka sto pokazivac misa 'dovedemo na traku sa naslovom, nakon cega pomjeram5?-~ misa, drzedi pri tome pritisnut lijevi taster misa. Na sli6an nac!n,mijenjamo i velicinu prozora, ~ tim sto prethodno pokazivac misa dovedemo na jednu ad cetiri {vice prozora. U Windows operativnim sistemima koriste se dvije vrste menija. Prvu vrstu predstavljajLi" pad~ Judi meniji (engl. pulldown menus), koji izgledaju kao da padaju jz trake kOja se nalazi ispod trakesa naslovom prozora. Ova traka naziva se glavni men; (eng!. main menu), i ona sadrzi imena sVih pada65

1.4.5 Komunikacija sa racunarom pomocu gralickog okruzenja


Danasnja komunjkacija korisnika sa racunarom najcesce se zasniva na grafickom korisnickom okruienju, odnosno GUI okruienju (1afaphieal 1!ser Interface). Mada su ovakva korisni6ka okruzenja postala poznata sirem krugu korisnika tek pojavom Windows operativnih s~s tema, njihov koneept je mnogo stariji. Taka je, na primjer, vee 1~78. g.~dine firn:'~ .xer?x razv!la . graficko okruzenje za STAR radne staniee, a firma Apple je u SVO)u sefiJu operatlvmh sistema za Macintosh racunare (Mac OS) ugradila grafiCko okruzenje znatno pr!je pojave Windowsa. Zapravo je Windows operativni slstem (naroClto verzija 95 i kasnije verzije) pre-u_z_e?: .m~o~e [deJe. {jpra~o i~ grafickog okruzenja operativnih sistema za Macintosh raeunare; z~mg. cega)B. Mlcr~soft Imaocak 1 sudski spor sa kompanijom Apple. - Graficka korisnicka okruzenja zasnivaju se na konceptu poznatorl) - .pod _nazlvom WIMP (Windows, Icons, Menus, 1:ointer5). Objasnimo na cemu se zashiva-Ov~jk6119_~Pt. Rad~i ~ro~tor ~a ekranu podijeljen je u neovisne pravougaone ejelfne naz.van~ p~OZ0r.l.- .PmJ:or: n~_ ~nmjer, moze prikazivatl sadrzaj nekog dokumenta, a moze sadrzavati i niz ~ali~ sH?ica-nazy.a~!~ rlrone. Sva~a ikona je predstavnik nekog programa, dokumenta, komande Iii ~r~daJa ~~p:. dls~ete). _Zadav~nJe komandi, pokretanje programa i prikaz dokumenata moze, se vrSltI pros~m Izborom-odgovaraJuce
64

jucih manija. Padaju6i meni S6 otvara tako sto dovedemo pokazivac misa na njegovo ime u glavnom meniju i_ kliknemo lijevom tipkom misa. Meni prikazan na prethodnoj slici bio je upravo padajuei men! (nazvan "Edit"), dok je glavni meni sadrtavao imena 6etiri padajuca menija ("File", "Edit", "Search" i "Help"). Drugi tip menija nazivaju se iskocni meniji (eng!. popup menus)~ Ovi meniji iscrtavaju se odmah pored objekta na koji se odnose, a obicno se dobijaju dovodenjem pokazivaca misa na zaIjeni objekat i klikom na desnu tipku misa. Kako ovakvi meniji tipicno sadrze komande koje su vezane za objekat na koji se odnose, cesto se nazivaju i kontekstni meniji (engl. context menus). Opeije u meniju kOje trenutno nisu dostupne iz nekog razloga oznacene su bfijedom bojom. Kraj vecine opcija u meniju napisane su 6znake skracenica (eng!. shortcuts) koje omogucavaju da se odgovarajuca opeija pokrene pritiskom na odredenu tipku iii kombinaeiju Upki na tastaturi, bez potrebe za otvaranjem menija. Na primjer, opcija "Cut" iz menlja "Edit" skraceno 58 moze aktivirati pritiskom na kombinaeiju tipk! Ctrl+X. Na ovaj nacin ostvarena je neka vrsta funkeiona/nih kljuceva. Prozori koji su specijalno dizajnirani iskljudvo za komunikaciju racunara sa korisnikom, a ne npr. za unos nekog dokurnenta ill prikaz sadrzaja diska, nazivaju S8 dija/ozi. Na sljedecoj sHei prikazan je jedan tipican dijalog, sa nekoliko kamkteristicnih elemenata:
Po(jc

izvrsavanje komandi koje su na njima napisane. Pastoje jos mnogi drugi elementi koji se susrecu u slozenijim dijalozima u Windows operativnom sistemu, poput traka za pomak (eng!. serol/bars), traka sa alatirna (eng!. too/bars), itd. Opis svih ovih elemenata oduzeo bl previse prostora, taka da se na njima necemo zadrzavati. Sa veCinom ovih elemenata vjerovatno ste se vee upozna!i kroz praktiean rad sa Windows operativnim sistemom u toku nastave informatike u osnovnoj skolL Pril!kom komunikacije u grafitkim korisni(:kim okruzenjima veoma testo se koriste i sistemi povezanih dijaloga, pri camu na svakom od dijaloga postoje komandno dugma "Sljeda6i" (engl. "Next" za_prelazak na sljedeCi dijalog, komandno dugme "Prethodnl" (eng!. "Back") za povratak na prethodni dijalog, kao i komandno dugme "Kraj" (engL "Finish") pomoeu kojeg se prihvataju svi podaci unijet! u svakom od dijaloga. Ovakvi sistemi povezanih dijaloga u iargonu se nazivaju carobnja.ci (eng!. wizards). Oijalozi se u grafickim korisniekim okruzenjima koriste i za realizaciju metode komunikacije tipa upit-odgovoL Na primjer, na s!ici sa desne strane iskoristen je jednostavni dijalog sa tri komandna dugmeta za reaHzaciju ovog tipa komunikacije. U prikazanom slucaju racunar postavlja upit "Da Ii zelite snimiti izmjene u dokumentu?" na koji korisnik maze dati odgovor ONNE tipa, a predvidena je i variM x janta "Odustani" (engl. "Cancel") kojom se u potpunosti ponistava komanda koja je dovela do pojave ovog upita Da Ii ze!ite snimiti izmiene UdDkumentu? (sto treba razlikovati od odgovora NE). Pritisak na tipku Esc na tastaturi najeesce je ekvivalentan izboru opelje "Odustani". Primijetimo da je dugme "Oa" posebno obiIjezeno, sto znaei da je odgovor "Oa" podrazumijevani odgovor koji 6e se prihvatiti ako korisnk samo pritisne Dijalozi kao sredstvo za realizaciju tipku ENTER. Napomenimo da vecina upita u kolftullikacijc lipa upit-odgovor danasnjim korisnickim interfejsima nude upravo odgovore tipa Da/Ne/Odustani (engl. Yes/No/Cancel). Bitno je napomenuti da odgovor "Oa" (odnosno "Yes") nije uvijek i najbolji odgovor u svakoj situaciji. Na primjer, na pitanje tipa "Da Ii zelite obrisati kompletan sadrzaj diska", odgovor "Da" ne Illoze se smatrati preporuc!jiv!m odgovorom, osim ukoliko to zaista ne zelite!

(;'''IOS
Ime

I-liMn
IDraganovi6

2
..:J
;,

pOlm~.L.X[ . / dug mad


r. Musk; r Zemki
/'

Radio

Ad(esa

r
IGimn"dia "Me"%d Selimovi6"
'111 1

Sekciie' Likovna ,

foUa za ..
lzbor opCl}a

Skola:
Razred

I Muzicka

./ KomunJnu

P Folklorna / '

SpO!(SKa
Dramska

hi

dugme

Pad(ljuca lista

Prih'lati upis

1.4.6 Napredne meiod" komunikacije covjek-racunar


U danasnje vrijeme sve su vise prisutni trendovi da se komunikacija izmedu covjeka i ra6unara sto je god moguce vise priblizi metodima komunikacije izmedu !judi. Posto je govor najjednostavnije i najprirodnije sredstvo ijudske komunikacije, !ogicno je da se mnogo.napora ulaze u razvoj sredstava ko]i ce omoguciti komuniclranje izmedu (:ovjeka i racunara putem glasa. Zvueni unos podataka u racunarske sisteme jos uvijek nije dovoljno mzvijen, ali je Vee postao tehnoloski izvodiv za niz raznovrsnih primjena. Kada se zvucni ulaz jednq-g dana usavrsi,- on c8" predstav!jati najlaksi i najpouzdaniji metod unosa podataka i konverzacije. . U danasnje vrijeme vee pastoje uredaji 2:a zvucno:UJl(J$enj_e.pp'dat~k~ri pulem mikrofona. Ovakvi sistemi za sada posjeduju rjecnlke od nekoliko hilja_da"rijeCi; kao_t _iT!ogucnost istovremenog podrzavanja, vise korisnika. Princip rada ovakvih sistema zasniv?- sp.-n9-:!!potrs.bi -specijalnj~ mikroprocesora za potrebe raspoznavanja zvuka. Naza!ost, veeina-S.istema -za .govon)~ uJaz zahtijeva "trenln9" racunara da bi on bio u stanju da prepozna ograni6eni"broj rljecfsvakog pojedinca ko]i koristl sistem. Operateri treniraju sistem putem ponav!janja svake rijeci iz rjetnikavioo puta, time se ratunar "uci" da prepozna njihov glas. Dobra utrenirani slstemi postizu -ta6nosf od ~reko 99% prilikom raspozna67

Primjer diia1ugc: u gruji(;l.,ufIJ kurisllIBulll Oknl:'~e/~ill

Opisimo sada ukratko prikazane eiemente. Polja za unos (eng!. input boxes) su elementi dijaloga koji sluze za popunja~anj\?~obra~c~ neor?nodnim informacijama. Poljima za unos su slitne i pada~ juce liste (engl:' comqo boxesy!:coje, ombgucavaju da se aktiviranjem strelice sa desne strane prlkaze odnosno "otvori"- splsa.K9Pcija (kojj podsjeca na meni) iz kojeg korisnik moze da izabere jednu od opcija, umjel;to da vrsi' .upi,s .pre:ko -tast9-ture. ~adajuCim listama su sli6ne i liste opcij/f! (eng!. list boxes), koje::-nisu:prik.azane n,l prethodl")oj slici, a koje se razlikuju od padajuCih listi po tome sto su uvijek 6tvotene, tako..d,;t"s:e-na ekranu.vide sve opelje, iii dio opeila (u drugom slucaju sadrzaj liste opeija moze se-pomj~rati naprijedili 'hazad pomocu vertikalnog klizaca koji S8 nalazi sa desne strane). PoQ;iza ;zbor opcija (erig!: check boxes) predstavljaju kvadratice koji omogucavaju uklju6enje iii is~!jucet1je. neke cd opGiia~ kale mogu biti ukljutene u Isto vrijeme, za razliku od ra.dio dugmadi (engL radiO butlonsfkoja omogucavaju lzbor jedne iz grupe opeija od kojih samo jedna maze biti ukljucena u isto- \.-rijeme. 'Komandna dugmad (eng!. command buttons) sluze za
66

vanja rijecL Da bi Se izbjegla potreba za trenlranjem, danas se intenzivno radi na razvoju sistema za raspoznavanje govora neovisnih ad govornika, koji bi trebali racunaru omoguCiti da prepozna glas govornika koji nikada prije nije 6uo. Mada su svi danas dostupni sistemi za raspoznavanje govora jos uvijek prilicno ograniceni, sve viSe i vise kompanija koristi ove sisteme za razlicite potrebe. Jedna od mogucih primjena ovih sistema je identifikacija govornika koja se koristi u raznim sistemima,elek* troni6kog obezbjedenja. Uredaji za zvu6nu prezentaeiju informacija su znatno razradeniji nego uredaji za zvucno unosenje podataka. Oanas se intenzivno koriste eipovi nazvani sintetizatori govora, kolt sadrze svu neophodnu elektroniku, (tipi6no zasnovanu na mikroproeesorskcij tehniei) za proiivodnju Ijudskog glasB. Prvi ovakav 6ip razvila je firma Texas Instruments jos 1978. godine za potrebu proizvodnie igracaka koje su govorile. KValitet glasa je u to doba bio veoma los, medutim danasnji sintetizatori govora proizvode govor koji je prakticno nemoguce razlikovati od govora zivog covjeka. Danas se sintetizatori govora uspjesno koriste u racunarskim sistemima koji su u stanju da ponude korisnicima odgovore na upite i druge ulaze putem telefona. Sasvim je jasno da 6e prezentacija informacija putem govora u budu6nosti vjerovatno biti najjrasprostranjeniji vid prezentacije informaclja.

ka sa racunarom. SistemskE( integracija se odnosi na potrebu da se svi dijelov! racunarski zasnovane aplikacije:objedine u jedinstveno, cjelovito okruzenje, sto se maze postiCi pazljivim projektiranjem korisnickih interfejsa pojedinih dijelova, taka da oni mogu kamunicirati izmedu sebe. fnterdisciplinarna lntegracija tezi da u projektiranju racunarskih tehnologija uk!juci aspekte koji uklj~cuju ~'udsk; faktor kao bitnu komponentu za uspjesnu primjenu racunarskih tehnologija, poput soclofosklh aspekata (npr, problem otudenja, problem gubltka privatnosti, itd.), pSih%sMh aspeka~ fa (npr. problem st:aha od novih tehnolog!ja), organizacionih aspekata (npr. problem organizacije posl~), ergonomsklh aspekata (npr. problem sto udobnije veze korisnika sa sistemom), i mnogih druglh aspekata. _ .., '

U napredne metode komunikacije covjek-racunar spadaju takoder i interakUvne graficke komunikacije, kod kojih korisnik neposredno uprav!ja prikazom grafickih objekata koj! se prikazuju pomocu nekog interaktivnog lzlazn09 uredaja (ekrana iii multimedijskog projektora). Na primjer,_na
ekranu moze biti prikazana slika nekog trodimenzionalnog objekta (reeimo, neke kuce), a ko'risnik moze upravljati nacinom prikaza tog objekta (poput podesavanja daljine i pravca posmatranja objekta), uvecavatr i smanjivati prikaz, vrsiti prikaz samo pojedin!h detalja objekta iii cak prikazivati unutrasnjost objekta (poput prikaza izgleda pojedinih prostorija unutar kuce), itd. Tipican primjer interaktivne graficke komunikacije javlja se u vecini savremenih ratunarskih Igara. Korlsnik uprav Ija prikazom pomoc:u nekog od ulaznih uredaja koji dopusta interaktivnu komunikaciju sa racunarom (tastatura, miS, paliea za igru, grafi6ka tabla, itd.). U posljednje vrijeme se za interaktivnu grafi6ku komunikaciju veoma cesto koriste speeijalno projektirane grafieke table, kao i ekrani osjetljfvi na dodlr, koji predstavljaju specijalnu vrstu ekrana koji mogu da detektlraju i registriraju mjesto na ekranu na koje je korisnfk izvrsio pritisak prstom (ill specijalnom pisaljkom), taka da takvi ekrani pored funkcije izlaznog uredaja obavljaju i funkeiju ulaznog uredaja.

U vezi sa interdiscipllnarnom integracijom narocito je neophodno istaCi ergonomiju kao relativno novu nauku kOja se bavi problemima projektiranja oblika i flzickih karakterlstlka radnog prostora, u!aznih i izlaznih jedinica, kao i njihovog smjestanja u radno okrutenje sa ciljem sto udobnije veze izmedu covjeka i masine. Ergonomska istraZivanja najvise su usmjerena u pravcu mjerenja intenziteta zracenja i nivoa osvijetljenostl ekrana, mjerenja i izbora pogodnih fizickih dimenzija tastature i ekrana, izbora dimenzija i oblika radne stolice, izbora boja na ekranu ugodnih za oci, itd. Stoga kao osnovne ciljeve ergonomije mozemo navesti smanjenje bUke i suma u radnom okruze~ nju, pravilnu regulaciju temeperature u radnom okruzenju, smanjenje zracenja i jakog svjetla sa ekrana, prevazilatenje problema sa zamorom ociju i eventualnim ostecenjima vida usljed duzeg rada sa racunarom, kao i projektiranje i izbor udobnog namjestaja (prvenstveno radne'stoliee).

1.4.7 Integracija interaktivnog okruzenja racunarsli:og sistema


Integracija predstavlja izuzetno vaznu osobinu interaktivnog okruzenja racunarskog sistema, s obzirom na mnostvo podsistema koje trebaju da pomognu krajnjem korisniku u obavljanju njegovih poslova. Integriran sistem korisnicima treba da omoguci jednoobrazan i j'ednostavan pristup svim sredstvima i u svakom trenutku. Pri tome, korisnicki interfejs treba da iskoristi sva raspoloziva hardverska i softverska sredstva kako bi korisnik mogao sto prirodnije"komunicirati'sa ra6unarskim slstemom. Osnovni aspekti integracije 0 kojima treba voditl racuna u savremenifli ratt;Jnarskim sistemima su funkcionalna integracij8, integracija medija (iii multimedijskaJntegradJa1; -siStemska inte~ gracija i interdiscipfinarna integraci/a. Funkcionalna integracjja. PQdrSt~miLev.a- ostvarenje jed~ noobraznog I konzistentnog pristupa svim sredstvima i funkeijama koje ra:C.l!na:i'ski _sistem ukliucuje. Druglm rijecima, I<orisnik koji je jednom ovladao skupom komandi i pqstuppfma za obav1janje nekog pasla, ne bi trebao da-bude prisifjen da pri obavljanju istog-jli'sn6r10g posla 1,J drugi?m -konjekstu uCi posve nove komande i postupke. CHj integracije medlj'S Ie stvar~nje sistema .\<oif de modi raditi sa informacijama bez obzira da Ii su one raspolozive u obllku pisanog teksta-,-tabela, slika, govora, elektricnih signala, ltd. Ovaj vid integracije donosi preduvjete za znatno prirodniju komunikaciju kOrisni68 69

'.'~-

'.

Pitanja i zadaci
1. 2. 3. 4. 5. 6. Ko]] su bltni element] svih komunikacionih procesa? Kakve vrste komunikacionih procesa pastoje? Opisite mode! prostog jednosmjernog komunikacionog procesa po Shannonu. Kakva je uloga kodera i dekodera? Na koj] nacin smetnje utjecu na komunikacioni proces? Navedite primjere nekih komunikacionih procesa iz stvarnog zivota, j u06ite kako se njihove komponente uklapaju U opCi Shannonov model. Sta sacinjava hardverski j softverski interfejs komunikacije izmedu covjeka i racunara? Sta predstavlja interaktivni rad sa racunarom? Kakva bi svojstva trebao da posjeduje dobar korisnicki interfejs? Opisite komunikaciju izmedu covjeka i racunara putem komandne !inije. Koje su prednosti i mane komunlkaeije putem komandne Hnlje? Kako mazema karnunicirati putem komandne linlje u' Windows operativnim sistemima? Sta su komandne Ijuske? Koje elemente komunlkacije izmedu covjeka i racunara susrecemo u savremenim korisnickim intetiejsima? Sta je WIMP koncept? Opisite glavne elemente grafickog korisnickog interfejsa u Windows operativnim sistemima. Sta su dijalozi, a sta carobnjaci? Na koji nacin dijalozi omogucavaju realizaciju metode komunikacije 60vjeka j racunara tipa upit*odgovor? Sta se do danas uradilo na planu eventualne komunikacije covjeka i racunara putem govora? Sta su interaktivne graficke komunikacije? Sta predstavlja integraeija interaktivnog okruzenja ra6unarskog sistema, koje vrste integracije postoje, i kakvom se problematikom bave? Koje probleme u oblasti primjene racunarske tehnologije pokusava da rijesi erganomija?

1.5 PRIMJENA RACUNARA


1.5.1 Klasicne primjene racunara
Nakan sto sma se detaljno upoznali sa sistemskim softverom i savremenim metodama komu* nikacije izmedu covjeka i racunara, neophodno je razmotriti klase primjena racunara i odgovarajud apfikativni softver za realiziranje tlh primjena. !zlaganje cemo zapoeet! sa klasicnim primjenama racunara kOje se koriste jos od pojave prvih racun?ra pa sve do danasnjih dana, U najpoznatije klasicne primjene racunara spadaju naucno-tehnicki proracuni i masovne abrade podataka.

7. 8. 9. 10. 11. i2. 13. 14. 15, 16. 17. 18. 19. 20. 21. 22.

Nau6no*tehnicki prora6uni su, historijski gledano, prva klasa primjena racunara kOja se razvlla. Karakteristika ove primjene facunara su slozen!, matematski zasnovani postupci, kOje je rucno veoma tesko, a cesto i nemoguce rijesiti u razumnorn vremenu, lako je postupak -rjesavanja poznat. Na primjer, sabrati skupinu od milian brojeva koji podlijezu odredenim zakanitostima principijelno nije nikakav problem, mada je za taj posao covjeku potrebno vise mjesed fucnog rada. S druge strane, racunar ova] zadatak moze obaviti skoro trenutno. Realisticniji primjer je rjesavanje sistema jednaCina. Ucenicima je poznato iz nastave matematike da vec rjesavanje sistema od dvije Hi tri Ii~ nearne- jednacine sa dvije iii tri nepoznate mote biti zamoran posao. Siozenost ovog postupka drastiCno faste sa porastom broja jednacina, tako da mada je postupak rjesavanja sistema od N li~ nearnih jednacina sa N nepoznatih sasvim poznat, covjek bi se sa papirom i olovkom u najboljem slucaju mogao izboriti sa sistemom od dvadesetak jednacina, i to za prilicno mnogo vremena. Racunarima nikakav problem ne predstavlja rjesavanje sistema jednacina gdje bro] jednacina moze iznositi i nekoliko desetina hiljada, a potreba za rjesavanjem takvih sistema itekako se javlja u praksi, npr. u elektrotehnici, gradevinarstvu, masinstvu, fizici, hemiji, ltd. Prvobitni naucno-tehnicki proracuni koristili su se za proracune u nuklearnim procesima i raketnoj tehnici, a kasnije su se prosirHi na mnoge druge oblasti nauke i tehnike. Osnovna karakteristika naucno*tehnickih proracuna je obavljanje s/otenih postupaka nad reiativno rna/om kolicinom ulaznih podataka. Masovna obrada podataka je, lako jedna od najstarijih, mozda jedna ad najzastupljenijih prim* jena racunara sve do danasnjeg dana. Za razliku od naucno~tehni6kih proracuna kod kojih se obav* Ijaju slozeni postupei nad relativno malom kolieinom podataka, kod masovne obrade podataka se obavljaju sasvim jednostavni proracuni, ali nad ogromnom kolicinom pO,cjataka. Na prlmjer, posma~ trajmo obracun potrosnje elel<tricne energije. Ukoliko treba izvrsiti obracun za samo jednog potrosaca, za taj posao nam ne treba vise od minute (uz dobar kalkulator). Prvo je potrebno oduzeti posljednje oeitanje brajila utroska e!ektricne energije ad tekuceg oCitanja da utvrdimo broj potrosenih kilovat*sati, a zatim je potrebno pomnoziti utrosak sa cijenom jednog kilovat-sata. U slucaju da lmamo dvotarifno brajllo, postupak je potrebno obaviti posebno za visu i nizu tarifu, nakon cega treba sabrati ova dva obracuna da dobijemo ukupan lznos koji treba platHi. Medutim, sta ukollko treba obavlti obracun potrosnje elektricne energije za citav grad koji ima 500000 potrosa6a? Ocigledno bi bilo potrebno zapos!iti ogromnu kolicinu Ijudi koji bi moral! danonacno obavljatl veorna dosadan posao da bi se kompletan obracun zavrsio na,vrijeme. Pri tome je vjerovatnoca greske veorna velika, usljed dekoneentracije i zamora- radnog osoblja uzrokovanog krajnje jednolicnim i nekreativnim poslom. Isti posao danasnji racunari mogu obaviii za nekoliko minuta bez greske, tako da je prednost ocigledna. Masovne abrade podataka danas se koriste u svim vecim preduzecima za obracune plata i finansijsko poslovanje, zatim u drzavnim organima uprave, kao i u svim ustanova. ma u Kojima se vade evidencije stanovnistva, pareznih obveznika, vojnih obveznika, automobila, glasaca, ucenika, studenata, itd. Tesko je zamisliti ljednu ozbiljniju instituciju u kojoj se ne bi javila potreba za masovnom obradam podataka u barem nekom obliku.

70

71

1.5.2 Programi za obradu teksta


Program! za obradu teksta vjerovatno danas predstavljaju najvise koristenu vrstu apllkativnog softvera. Ovi program! slute za unos, ispravljanje, oblikovanje, !spis i cuvanje raznih vrsta tekstual" nih dokumenata, poput pisama, clanaka, dopisa, knjiga, ltd. Konacni eil] abrade teksta je stvaranje tekstualnog dokumenta u onakvom obliku i sa onakvim sadrzajem kakav zel! korisnik,

Prilikom kre'lranja tekstualnih dokumenata moguce je jasno uociti dva razHCita procesa. PlY! proces predstavlja unosenje sadrtaja teksta, uz eventualne ispravke uocenih gresaka, kao 1 brisanje neteljenih dijelova, prebac;vanje dJje/ova dokumenta s jednog mjesta na drugo, itd. Pri tome je dtav postupak orijentiran iskljuCivo na sadriaj dokumenta, dok su detalji 0 tome kako de zaista vizuelno izgledati konacni dokument potpuno nebitni. Ovaj proces naziva se edit/ranje iii uredivanje. Drugi proces predstavlja uoblicavanje tekstualnog dokumenta u ieij"enu formu. Ovaj proces podrazumijeva podesavanje obllka i velitine slova, podesavanje stila ispisa, prijelom dokumenta (tj. izbor ko]i de dijelovi dokumenta bitl ispisani na pojedinim stranicama), podesavanje sirina margina, itd. Ova] proces naziva se formatiranJe iii oblikovanje,
Programi ko]i obavljaju samo funkciju editiranja nazivaju se editor; (iii uredivac/) teksta, dok se programi koji obavljaju samo funkciju formatiranja nazivaju formateri teksta. Programi koji objedinjuju obje funkcije i omogueavaju uporedno obavljanje kako funkcije edltiranja, tako i formatiranja, nazivaju se tekst procesori. Danas se pod pojmom obrade teksta ug\avnom podrazumijeva postupak unosa, uredivanja, oblikovanja i ispisa teksta uz pomoc nekog od mnostva tekst procesora. Editori su, kao sto je vee reeeno, programi koji omogueavaju samo editiranje teksta. Funl~cije koje tipicno podrzavaju savremeni editori su unosenje teksta, pomjeranje taeke umetanja (kurzora) kroz lekst, umetanje novih dijeJova teksta unutar postojeceg teksta, brfsanje odredenih dlJelova teksfa, kopiranje i prebacivanje dijeJova teksta sa jednog mjesta na drugo, prefraiivanje teksta, zamjena odredenih rijee; i {raza u tekstu sa drugim frazama, te stampanje i memoriranje dokumenta. Moderni editori posjeduju i mnostvo drugih funkcija, poput automatskog prebacivanja dugaeMh ryeei na kraju reda u nOlI; red (ova osobina se naziva word~wrap), automatske provjere pravopisa, itd. Medutim, karakteristika svih editora je da oni ne posjeduju nijednu funl<ciju I<oja spada u podrucje formatiranja teksta, Tako je dokument ~oji je pripremljen pomodu editora sliean dokumentu priprem!jenom uz pomoe pisaee masine: sva slova su uvijek istog oblika i velieine. Editori se koriste kada zelimo priprernitl dokurnent kod kojeg nam je bitan sarno njegov sadrtaj, a ne i stvami izgled. Primjeri jednostavnih editora su program EDIT (punim imenom MS~DOS editoD koji je dolazio uz MSHDOS operatlvni sistem (mada se mote pozvati i iz Windowsa), i program Notepad, koji dolazi kao sastavni dio Windows operativnih sistema, j koji ste vjerovatno pokretali mnogo puta ako ste ikada radili sa Windows operativnim sistemima. Slika sa l!jeve strane prikazuje primjer rada sa MS-DOS editorom (ko]i je, mada stariji, bogatiji. moguenostima ad No/epada). Moze se postaviti pitanje cemu uop6e sluze editori ukoliko- ani ne mogu obav!jati funkciju formatiranja dokumenata. Medutim, postoje mnoge situacije u kojima je oblikovanje dokumenta potpuno nebitno, vee je bitna sarno informacija sadriana

u dokumentu, Na primjer, upute za koristenje pojedinih programa cesto S8 isporucuju u vidu neformatlranih dokumenata. Neformafirani tekstualni dokumenti nazivaju se i cisti tekstualni dokumen~ ti, i najeesce imaju nastavak (ekstenziju) " . TXT" na svom imenu, sto oznacava da se radi 0 cistom tekstualnom dokumentu. Ovakvi dokumenti zallzimaju veoma malo memorije, jar je u njlma pohranjena informacija iskljucivo 0 njihovom sadrzaju. Na primjer, neformatirani teksualni dokument ko)! se sastoj] sarno ad teksta "PORUKA", sadri] samo informaciju 0 einjenici da su njegov sadrzaj slova "P", "0", "R", "U", "K" i "An, i prema tome zauzima svega 6 bajta memorije (ukoliko pretpostavimo zapis znakova po ASCII standardu); Kako u takvom dokumentu nije zapisana nikakva informacija niti 0 obliku niH 0 velicini slova, kako 6e on zaista izgledati na ekranu iii na stampacu zavisi iskljucivo od konkretnog editora u kojem otvorimo dokument. Medutim, takav 6e se dokument moGi uvijek otvoriti bez potesk06a na svakom racunaru pod svakim operativnlm sistemom u svakom programu za rad sa tekstualnim dokumentima. Ovo je glavna prednost Cistih tekstualnih dokumenata u odnosu na formatirane dokumente. Dalje, prilikom pisanja programa Z8 racunar u nekom od modernih programskih jezika, programi se pisu u lskljueivo u formi cistog teksta pomocu editora teksta, a zatim prevode u masinske instrukcije pomo6u specijalnih programa prevodioca (kompajlera), 0 cemu cemo detaljnije govorlti u trecem dijelu ovog udtbenika. Gisti tekst se koristi zbog toga sto su informadje 0 obliku teksta pohranjene u formatiranim tekstualnim dokumentima potpuno nebitne za smisao programa, i najvjerovatnije bi potpuno zbunile kompajler.

Nekada su se editor!" i formateri koristili kao posebni programi, dok se danas pray! formateri veoma rijetko susrecu, jer su funkcije editiranja i formatiranja izvedene uporede u tekst procesorirna. Ranije, kada graficka korisnicka ekruienja nisu bila dovoljno razvijena, niti formateri niti tekst procesorj nisu prikazivali na ekranu tekst onako kako 6e izgledati na papiru, s obzirom da tehnologi~ ja prikaza na ekranu nije omogucavala dovoljno kvalitetan prikaz. Na primjer, korlsnik je umjesto podebljane rljeei xyz na ekranu vidio sarno informaciju 0 tome da je rijee podebljana, odnosno nesto poput IBOLD/xyz/ENDBOLD/, Drugim rijet!ma, mnoge od akcija formatiranja zadavale su se pom06u neke vrste pisanih naredbi (u navedenom primjeru /BOLD/ i /ENDBOLD/, sto su oznake za pocetak j kraj podebljanog teksta). Situacija se drasticno promijenila prije dvadesetak godina kada su se pocell pojavljiva1i prvi tekst procesori kojl su koristili WYSIW~G (What you .S:ee Is 'IN.hat you 9.8t) tehnologiju, koja je omogueila da dokument na ekranu izgleda praktieno isto onako kao sto ee izgledati kada se odstampa na papiru. Prvi WYSIWYG tekst procesori zahtijeval1 su za to doba izuzetno moene masine, ali u danasnje vrijeme ie gotovo nemoguee sresti lekst procesor koj! ne podriava WYSIWYG koncept. Najpopu larn iji tekst procesori za PC racunare danas su Microsoft Word i Corel WordPerfect (aba programa se javljaju u mnogobrojnim verzijama). Ovaj udtbenik je pripremljen pomocu tekst procesora Microsoft Word. Taka je sJika sa desne strane "uhvadena" upravo prilikom pripreme ovog udzb.enika._ ~omocu Mic.r0safi Warda. _Navedimo rie~e . od osnovnih mogu6nosti z~ obliKovanj(3: -teksta koje bi trebao da:-posjeduje~.svaki" formater (pa samim -tim i Jelksi' prQC~9it Na piyom mjestu tu je-, pod~savanje obfika teksta (otlnGsnG }zbor. tz.v~ tonta kOji, predstavlja zapis 0..f?gledu svth_ zMkova koji se priKazuju), kao l"-vefieine fstifa teksta. Pod sWom podrazumij!3vamo odredivanje da Ii
~j11~:'tt!l,::'j:l:'1~(rn",Wi-:zit:1:Jl':.!IIl/IIiilllllllllllllilllllliilllIlPlIliilllilllillilllll:,;J"ili]pl

,,,,::!B' "~. 1~' "!",~,"

MS-DOS editor, prill1jcr Ickstuarnng editnra o.l'rcdnjih 171ogu('nosti


72

Primjer rado

.'10

tckst procCSOf(!m Microsoft Word 73

su znakovi podebljani (engl. bold), nakosen; (engl. italic), jl!llJvuceni (engl. underline) itd. Dalje, moguce je podesavati Koliki ce biti razmak izmec1u pojedfnih redova teksta, odnosno razmak izmedu pojediliih qdjeljaka. cesto je mogu6e odrediti da Ii 6e tekst da se prikazuje u jednoj ijj vise kalona. Bitna je mogu6nost podesavanja sirina margina (odnosno praznine kOja se javlja izmedu rubova papira j pocetka teksta), kao j mogucnost ravnanja teksta uz jednu ifi obje margine. Na primjer, ovaj tekst je poravnat uz obje margine, 8tO se naziva dVDstrano ravnanje Hi diastifikacija (eng!. justify). Dobri tekst procesori omogu6avaju j postavljanje zaglavlja (eng!. header) i podnotja (engl. footery, koji predstavljaju tekst koji se ponavlja na vrhu iii dnu svake stranice (poput imena dokumenta iii poglavlja). Zaglavlja iii podnotja takoder mogu da sadrt8 broj stranice, datum stampanja, itd. Kao napredno forM matlranje, mnogi tekst procesori omogucavaju razne dekorativne opeiie, poput uokvirivanja i sjencenja teksta. Savremeni tekst proeesori omogucavaju i ubaeivanje raznih netekstualnih elemenata poput tabela, slika, grafikona, itd. u tekst, sto je donedavno bila iskljuCiva privilegija programa za slolno izdavastvo 0 kojima cemo govoriti nesto kasnije.
Dokumenti koji sadrze formatirani tekst zauzimaju znatno vise memorije nego 6isti tekstualni dokumentt, jer sadrze i informaeije 0 obavljenom formatiranju. Pored toga, ove informacije su ovisne od upotrijebljenog tekst procesora, tako da nije moguoe formatirane dokumente koji su radeni pomocu jednog tekst proeesora olvoriti drugim teks! procesorom, osim u slucaju da su oba tekst procesora specijalno pisana da podrzavaju jedan drugog. Formatiranl tekstualni dokumenti najeesce imaju nastavak " . DOC" na svom imenu, mada 1to zavisi od konkretnog tekst procesora. Danas postOji i relativno standardlzirani format zapisa fOt'matiranog teksta nazvan bogati tekst (engl. rich texQ koji u velikom broju slucajeva omogucava razmjenu formatiranog teksta izmedu razliCitih rat:unara i razlieitih tekst procesora, jer veoina danasnjih tekst proeesora znaju da snimaju (ako im se posebno naredi) i ucitavaju dokumente zapisane u ovom formatu. Dokumenti zapisani u ovom formatu imaju nastavak " ,R'FF" na svom imenu. Mada danas gotovo svi tekst procesori rade u WYSIWYG rezimu, izvjesni speeijallstiCki tekst proeesori jos uvijek mogu da koriste i nacin rada koji nije zasnovan na WYSIWYG principu. Najpoznatija vrsta takvog specijaJiziranog tekst proeesora je TeX, koji je razvijen iskljucivo za potrebe pisanja dokumenata koji sadrze veliki broj slozenih maternati6klh formula. Mada moderne verzlje TeX-a kao i neki njemu srodni speeijalisticki tekst procesori (npr. Scientific Workplace) mogu koristiti WYSIWYG princip, mnogi korisnici ovih sistema koriste neMvizualni nacin zadavanja teksta, jer je na taj naCin moguoe ostvariti preeizniju kontrolu nad prikazom. Na primjer, pretpostavirno da smo u TeX-u zada!i sljedece naredbe:
IOl lover {2pi} int from (-int) to (sgrt y) left( sum from k=l to n sin sup 2x sub k (tl left( f(t}+g{t) right) :t"ight) dt
FN

ski su postavljene na neke podrazumijevane vrijednosti, i ostaju takve_ dok ih korisnik one, promijeni, nakon cega se eventualno pamte vrijednosti kOje je postavio korisnik (do nove promjene). 0 obradi teksta cemo detaijnije govoriti u poglavlju 2.1 koje se nalazi u drugom dijelu ovog udtbenika.

1.5.3 Tabelarni proracuni i poslovna grafika


-~

Pod programima za tabelarne proracune podrazumijeyamo programe ko]i u svojoj osnovi omogucavaju korisniku da radi sa padacima kaji su ogranizirani u formi tabela sa vise redova i kalona. Medutim, bitna karakteristika ovih programa je njihova sposobndst da kreiraju takve tabele u kojima oe vrijednost'pojedinih polja u tabell zavisiti ad vrijednosti nekih drugih polja, tako da ce vrijednosti svih takvih polja biti automatski promijenjene onog trenutka kada korisnik promijeni sadrtaj nekog od polja od kojih takva polje zavise, bilo direktno, bilo indlrektno (u smislu da promijenjeno polje dovodi do promjene nekog drugog polja od kojeg posmatrano polje zavisi). Zbog toga se programi za tabelarne proraeune nazivaju i programi za unakrsna izracunavanja ili spredsit (eng!. spreadsheeQ programi. . Prvi program za tabelarne proracune bio je VisiCaic, koji je u kasnim sedamdesetim godinama proslog vijeka razvio Daniel BrJcklin, tada student pos\ovne slmle na Harvardu. Ovaj program je odmah po kreiranju postao jedan od najpopularnljih programa za racunare. Medutim, ostao je u upotrebf veoma kratko, jer su se uskoro pojaviii znatno savrseniji programi. Danas su najrasireniji programi za tabelarne proracune Microsoft Excel, Lotus 1-2~3 i Ciuattro Pro. Radna povrsina svih programa za tabelarne proracune organizlrana je kao mreza redova i kolona, u kojaj su redov! obicno oznaeeni brojevlma, a kolone slovima (!inije koje razdvajaju pajedine redove i kolone mogu se po potrebi uclniti nevidljivim za prikaz na ekranu). Polja kOja se nalaze u presjeku pojedinih redova i kolona nazivaju se {;elije (eng\. cells), i oznaeavaju se kombinacijom oznake pripadne kolone i pripadnog reda. Na prirnjer, celija "F5" je ceHja kOja se nataz! u presjeku kalone oznacene sa "F" i reda oznaeenog sa "5". Obieno postoji i moguonast da se oelijama daju posebna imena, koja ce bolje odrazavati njihovo znacenje, poput "PLATA", "TAKSA", "DUGOVI", ad. oelija mote biU prazna, a maze i sadrtavati neki podatak, bilo tekstuaini, bilo brojcani, datumskl, itd. Mogucnost rada sa tabelama danas nije iskljuciva privilegija programa za tabelarne proraeune. VeGina modernih tekst proeesora, poput Microsoft Word-a, takoder omogucava rad sa podacima predM stavljenim u vidu tabela. Medutim, ono sto daje programima za tabelarne proracune posebnu snagu kOja sa ne moze postiCi u tekst procesorima je cinjenica da celije mogu sadrtavati i formuJe. Formule SU, pravila koja odreduju kako sadrtaj neke celije zavisi od sadriaja drugih celija, Na primjer, ukoliko se u oeliju "C5" upise formula "A1+B4/2~, ta formula znaCi da oe sadrzaj 6elije "C5" u svakorn trenutku biti jednak sadrzaju cellje "Ai" sabranom sa sadrtajem cellje "B4" podijeljenom sa dva, ma sta da se na!azilo u ovim oelijama (naravno, pod uvjetom da se u celijama "A1" i "84" nalaze brojevisa kojima se mote racunati, a ne reeimo tekst), Drugim rijecima, uko1iko korisnik promijeni sadrzaj cellje "A1" iii "B4", automatski ce se promijeniti i sadriaj oelije "C5",.Formule mogu sadrzavatl i neke ugradene fUflkcije koje obavljaju razne sloienije radnje. Na primjer, formula moze glasiti "AVERAGE(AS:A15)" S;;i znacenjem "izracunaj prosjecnu vrijednost svih celija koje se nalaze u opsegu od AS do A15". Moderni programi za tabelarne proracune posjeduju na stotine ugradenih funkcija koje pokrivaju potrebe od najjednostavnijih proracuna pa sve do s!ozenih finansli,skih proracuna. Potrebu za programima za tabelarne proracune demonstrlracemo na jednom prakticnom primjeru. Na kraju svakog po[ugodista razredni starjesina nekog razreda u skoli duzan je da nastavnlckom vijecu preda detaljan izvjestaj, koji, izmedu ostalog, sadrti podatke 0 uspjehu svih ucenika u razredu, zatim broj ucenika sa odlicnim, vrlodobrim, dobrim, dovoljnim i nedovoljnim uspjehom, procenat
75

Kao rezultat ovih naredbi TeX 6e prikazati sljedeou formulu:

Potpuno je nebitno sto ne razumije.te ovu formulu da rad koji nije zasnovan na WYSIWYG prineipu.

smisao ovog primjera je da ilustrira kak6 izgle--

Bitno je napomenuti da tekst proeesori, kao i veGina aplikativnog softvera, dolaze pfipremljeni-sa podrazumljevanim postavkama opcija (eng!. default settings). To praktieno znael da kada prvi put pokrenemo tekst procesor, odredene opeija, poput vrste ravnanja, obllka i veliCine slova, ltd. ,aut6matM

74

odlicnih, vrlodobrih, dobrih, dovoljnih i nedovoljnih ucenika, kao i ukupnu prosjecnu oejenu za razred. Kao sto je poznata, uspjeh utenika se ratuna taka sto se saberu SVe oejene, i zbir podijeli sa ukupnim brojem oejena. Na kraju se dobijeni rezultat zaokruzi na najblizi eijeJi broj. Medutim, provedeni pastupak se ne vrsi u slucaju da ucenik ima jednu Hi vise slabih ocjena. U tom slucaju uspjeh ucenika je 1, bez obzira na sve 08tale oejene. Naravno, opisani postupak izracunavanja treba obaviti za sve ucenike, Nakon toga slijedi proces prebrojavanja ucenika sa uspjehom 5, 4, 3, 2 i 1, kao i izra6unavanje adgovarajuGih proeenata. Na pFimjer, proeenat odlicnih ucenika racunamo taka sto dijelime brej odlicnih u6enika sa ukupnim brojem ucenika u razredu, j mnozimo rezultat sa 100. Na kraju, treba izra6unati i prosjecnu Dejenu razreda sabjranjem uspjeha svih ucenika (ukljucujuci i one ko]i imaju uspjeh 1) i dljeljenjem zbira sa ukupnim brojem u6enika u razredu, Opisani postupak, mada je principijelno jednostavan, zamoran je i dosadan, i ad razrednog starjesine trazi nekoliko sati predanog rada sa papirom i olovkom, eventualno uz upotrebu dzepnog kalkulatora. Upotrebom programa za tabelarne proracune mogu se ostvariti znatno povoljniji efektL Pogledajmo prvo kako bi mogao da izgleda oplsani proracun jzveden uz pomoc programa Microsoft Excel za jedan izmi51jeni razred sa 8 ucenika u skoli u kojo) se izucava 5 predmeta (matematika, matemji jezik, bjologija, geografija i tjelesni odgo]), kao 5to je prikazano na slid.

sa 1 na 4, a prosjek razreda se povecava sa 3,25 na 3,63. Kao dodatni efekat, procenat prolaznostl razreda povetava se sa 75% na 87,5% sto je takoder veoma pohvalno, Moderni programi za tabelarne prora6une mogu ovu anallzu ostvarivanja zadanog cilja (eng!. goal seak) obavlti automatskL Na primjer, u Excelu je dovoljno postaviti pitanje sta uciniti da: se prosjek poveca iznad 3,5 uz sto manju promjeriu Dejena, i Excel ce sam prona6i odgovor. Vecina programa za tabelarne proraGune takoder omogu6avaju korisniku da prikaze tabelarne podatke u vidu raznovrsnih dijagrama, Naime, Govjeku je znatno lakse da uporeduje odnose izmedu pojedinih podataka kada su oni prikazani u formi grafikona nego u formi tabele. Grafi6ki prikaz tabelarnih podataka obl6no se nRziva pas/avna grafika, Osnovne vrste dijagrama koji se susretu u poslovnoj grafid su stapicasti dija~ grami (engL bar chans), linijski dijagrami (eng!. line charts) i kruzni dijagrami (engl. pie Charts), Veoma 6esto ovi grafikoni mogu POS{()VI1G grafika u progrmn/r Micmsofr Excel biti prikazani i u trodimenzionalnom obliku. Neki programi za tabelarne proracune omogucavaju cak i prikaze mnogo slozenijih grafickih objekata, poput digitalfziranih geografskih karata. Na slid zdesna prikazani su neki od karakteristi6nih dijagrama koji se mogu postiCi pomocu programa Microsoft Excel. a programima za tabelarne prora6une, kao i njihovoj upotrebi za graficku prezentaciju podataka detaljnije cemo govoriti u poglavlju 2,2,

;':..1 ~'"

t~l ;D"" ;"",,( FQ~

'Ioor,

1M'

\'1m,",
',~,

~"

~z:1
J:

,i:tC9.!;" irt,~f1",<f ::;';'-':;u-.[ l.1

t,."(Ii

r. Pi II

~'(l~{jli jW%~ Q

i$i,-",~'IW%, "":';~i {"'~~

0-,,&'-11:-'

.",,,,,,,;(\,,10;0'
1'''''~?'lIt1t'.(jIl\'M rrc~,",o!rJ~~""

12,5% 5D%
12,6%

DkJ};"""'!"
Ormj,f'",,,,,rM ,(O"i reol,,",,, 3,25

0%
25%

75%

Primjer rada sa progrmnml1 za tahclof}Jc pmrahmc Microsoft Excel

Da bismo uvidjel1 koja je stvarna prednost rada sa programom za tabelarne prora6une U odnosu na rUGni rad, zamislimo sljedecu situ8eiju, Ucenik Dusko Dugousko trenutno ima prosjek oejena 4,4, Pretpostavimo da posljednji dan polugodista ovaj ucenik odgovara maternji jezik i popravi oejenu sa 3 na 4, Time njegov prosjek postaje 4,6 i ucenik prolazi odlicnim uspjehom, Medutlm, ova promjena uzrokuje citav niz drugih promjena; broj odlicnih u6enika se povecava za 1, dok se braj vrlodobrih ucenika smanjuje za 1, To dalje uzrokuje povecanje proeenta odlicnih uceniha sa 12,5% na 25% i pad proeenta vrlodobrih ucenika sa 50% na 38,5%. Konacno, prosjek 6itavog razreda povecava se sa 3,25 -na 3,38, U slu6aju da razrednik koristi samo paplr j olovku, on pri svakoj prom, jenl neke od oejena mora izvrsitf ispitjvanje na sta 1a promjena utjece, i po potrebi, izvrsiti itav ni? racuna ponovo (ova je razlog zasto S8 veGina razrednika Ijuti kada u(:eniei ispravljaju oejene u . posljednjem trenutku). S druge strane, ukollko razrednik koristi program za taQE;llarne proracune (poput pomenutog Microsoft ExceJa), dovoljno je samo izmijeniti oejenu, a sve ostale ispravke izvr~'-ice: se automatskL Doduse, za ostvarenje ave funkeionalnosti potrebno je isprogramirati ; prora6un unosom odgovarajucih formula u odgovarajuce celije. Medutim, avo programiranje se o~avlja sarnD jedanput, a isprogramirana tabeia se moze koristiti za citav niz generacija ucenika! Doctatna prednost programa za tabelarne prora6une je mogucnost vrsenja analiza u_stilu "sta bi ._ bilo kada bi bilo", Na primjer, razredni starjesina moze tragati za najbrtim nadnom kako da se prosjek razreda povisi iznad 3,5. Na prvi pogled, izgleda da bi nekoliko ucenika moralo da popravi svoje Dejene, Medutim, eksperimentiranjem sa tabelom razrednik lako moze ustanoviti da je dovoljno da Medvjed Jog; svoju oejenu iz maternjeg jezika popravi sa 1 na 2, Time se njegov uspjeh povecava

1.5.4 Finansijski programi


Finansijski program! blisko su povezani sa programima za tabelarne proracune. Pored programa za obradu teksta, tabelarne prora6une i upravljanje bazama podataka, finansijski programi su vjerovatno najvazniji programi za vodenje bllo kakvog ozbiljnjjeg poslovanja. U finansUske programe spadaju kako programi za vodenje licnih finansija, tako i programi za vodenje poslovnih finansija. Programi za vodenje {ic,nih finansija omogucavaju korisniku vodenje racuna 0 prihodima i ispis cekova, automatizirane bankarske transakeije, kao i planiranje finansijskih ci!jeva. .Ratunari mogu- auto'ma1izirati velikl broj rutinskih finansijskih poslova, sto korisniku ostavlja mogucnost da se _~vi izazOVnijim poslovima, poput povecanja profitabllnosti poslovanja.
troskovim~,

MnogL-lJro'grami- z~_v~'d~nje licnih finansija, kao sto su QUicken i Microsoft Money, uk!ju6uju kao sastavne kompoif~r.i:e Jednostavn~ alate kao 510 su elektroni(;ki kalendar i elektronicki kalku~ iator, Medutim,-to njfe--njihova os-novnanamjena. Programi za vodenje licnih finansija moraju biti u stanju -da Node--origu_o -razlicitim vrstama racuna preko kojih se vode korisnikovi prihodi i troskovi, poput k(eqitriih- kartic,a, itd. -Svl finansijski programi rnoraju podrzavati manipulacije sa cekovnim .knjJiicama. Pri tome se orrlogu6avapopunjavanje 6ekova putem obrazaea na ekranu, koji se kasni-

76

77

je mogu stampati na stampacu u ~formi pravih cekova. Mnogl finansijski programi podrzavaju i automatska pfacanja racuna putem mreze racunara (naravno, ukoliko odgovarajuca banka podrzava taj"vid usluga). Dalje, sv] finansijski programi moraju posjedovati mogucnost uporedivanja korisnikovih stvarnih troskova sa planiranim Iroskovima kao i uporedivanje troskova ostvarenih u dva razli6ita vremenska perioda (npr. troskova u toku tekuce i prethodne godine). Konacno, finansijski programi moraju biti sposobni da vrse obracun poreza u skladu ,sa zakonskim odredbama koje propisuju pravila placanja poreza; kao i razna druga planiranja koja korisniku mogu pomoCi za sto bolje upravljanje licnim budzetom.
L

Baze podataka su nekada uklju6ivale samo' tekstualne podatke. Danasnje baze podataka ukljucuju i s/ike,.zvuk i animacije (pokretne sllke). Tako, na primjer, mnoge baze podataka 0 Ijudima, pored obicnih tekstua!nih informacija 0 pojedincu, sadrze i njegovu sHku, a mozda i kratki zvucni zapis njegovog glasa. Najvazniji danasnji programi za upravljane bazama podataka koji posjeduju mogu6nost zapisa grafickih i zvucnih podataka ,su Microsoft Access, Microsoft Visual FoxPro, Paradox i Claris Filemaker Pro. Krelran'e baze podataka su obicno sasvim jednostavne za upotrebu, medutim proces kreiranja baza podataka maze biti jako slozen. Zbog toga, savremeni programi za upravljanje bazama podataka moraju da olaksaju kako koristenje baza podataka, tako i njihovo kreiranje i odrzavanje. Najmanji element svake baze podataka naziva se po/je: Polje predstavlja jedan elementaran podatak u bazi podataka, kao na primjer ime nekog ucenika, njegova adresa, iii ocjena iz matematike. Skupina medusobno povezanih polja naziva se slog. Na primjer, slog moze bitl skupina podataka 0 jednom uceniku, poput njegovog imena, prezimena, broja u dnevniku, adrese, j oejena iz svih predmeta. Skupina medusobno povezanih slogova naziva se datoteka. Na primjer, datoteka maze sadrzavati podatke 0 svim ucenicima u jednom razredu. Konacno, skupina medusobno povezanih datoteka naziva se, kao sto smo vee rekli, baza podataka, Na primjer, baza podataka moze sadrzavati sve podatke 0 svim ucenicima u svim razredima neke skole, kao i podatke 0 svim nastavnicima i nenastavnom osoblju. 0 ogragnizaciji baza podataka i programima za upravljanje bazama podataka detaljnije cemo govoriti u poglavlju 2.4. Svaki program za upravljanje bazama podataka mora omogu6iti jednostavan I biz pristup svakom slogu u bazi podataka. Na primjer, korisnik baze podataka mora da bude u mogucnosti da brzo i jednostavno pristupi podacima 0 ma kojem uceniku iii nastavniku u bazi podataka iz prethodnog primjera. Takoder, mora postojati jednostavan nacin izmjene rna Kojeg od pohranjenih podaiaka. Programi za upravljanje bazama podataka moraju biti u stanju da sortiraju podatke u bazama podataka po raznim krlIerijima, neovisno ad poretka u kojem su podaci unoseni u bazu podataka. Na primjer, mora postojati mogucnost da se spisak svih ucenika moze sortirati po abecednom poretku, iii recimo po prosjecnoj oejeni (tako da se, na primjer, podaci 0 najboljem uceniku nalaze na vrhu liste). Neophodna je i mogucnost formiranja raznih izvjestaja (u stampanoj formi) 0 podaci~ ma pohranjenim u bazi podataka. Dobri programi za upravljanje bazama podataka omogueuju i obavljanje jednostavnijih proracuna nad pohranjenim podacima, kao i prikazivanje raznih vrsta dijagrama koje omogucavaju prikaz pohranjenih podataka u grafickom obliku. U danasnje vrijeme se mnogo kariste i specijalizirani programl za upravljanje bazama podataka koj! se nazivaju organizatori licnih informacija, o'rga-najzeri (eng!. organizer) ill prosto PIM (Eersonallnformation Manager) prograrrii. Organajzeti su programi koj! pomazu korisniku da prati informacije sa kojima se svakodnevno susre_ce, poput adres8,- brojeva fe/efona, datuma i mjesta ugovorenih sastanaka, pfanov8 -zaduienja I 6f?a:ve,za. Poznati _ programi ove vrste su Lotus Organizer, Microsoft Outlook i Act. Na- prifnjer,Jotus:Orgaf}izerna ekranu prikazuje izgled jednog tipicnog rokovnika, i sadrti sve detalje koje bi jedan~gobar:rokovni~ trebaa da sadrzi, samo u elek~ tronickoj a ne u papirnatoj formi. Ovak\l'i~prQgh:im(imajl,l-yeoma efjkasne opcije za pretrazivanje pohranjenih podataka, tako da korisnik mote d~~.p[?hade".upisani -podatak mnogo brte nego u klasicnom rokovniku. Pored toga, ovakvi prograhlj-yode raCuna a stvarflom vremenu, tako da mogu u odgovarajuce vrijeme da upoz6rekixlso"ika na' planirani d.ogadaj, na primjer na zakazani sastanak,

Programi za vod~nje licnih finansija mogu pomoei korisniku da otkrije gdje mu "curl novae" i zasto nikada nema dovoljno novca, Naime, praksa koristenja ovih programa pokazala je da vecina korisnika najvise novea izgubi na razne sitnice (casopise, razne grickalice, kekse, itd.), Mada individualno gledano trosKovi za te sitnice nisu vetiki, tih se troskova u toku mjeseca moze toliko da nakupi da njihov ukupni iznos daleko prelazi naizgled mnogo krupnije troskOV8. Finansijski program! pornazu korisnicima da otkriju takve troskove i da smanje nepotrebne izdatke. Pored programa za vodenje licnih finansija, finansijski program! ukljucuju i slozenije programe za votJenje pos/ovnih finansija. Ovakvi programi mogu podrzavati rad sa mnostvom raznih vrsta obrazaca koji se u savremenom poslovanju koriste za placanje poreza, carina, faksj i slicnih dazbi~ nR Programi kao sto su TaxCut i Turbo Tax obavljaju slozene dazbinske proracune, uz stain! nadzor eventualnih gresaka, i cesto su u stanju da donesu zakljucke do kojih bi korisnik veorna tesko dosao bez pomoci programa; Programi za upravljanje dazbinama cesto su povezani sa programima za vodenje licnih finanslja u jednu cjelinu. VeGina programa za vodenje poslovnih finansija podrzava poslove vezane za vodenje finansija koji se prakticno javljaju u svim vrstama preduzeca, poput vodenja knjigovodstva iii platnih spiskova. Neki od programa kao sto su Business Plan Pro, Management Pro i Perfomance Now idu i mnogo dalje od obicnog rukovodenja finansijama, i omogucavaju korisnicima da osmisle plan poslovanja prakticno od samog temelja, Konacno, postoje i finansijski programi za analiziranje ispJativosti investicija, kaa sto su StreetSmarl (autor Charles Schwab) i Online Xpress (autor Fidelity Software), kao i programi za upravljanje penzfonim i drugim investicionim fondovima.

1.5.5 Programi za upravljanje bazama podalaka


Pod bazom podataka u ,najopcenitijem smislu mozemo smatrati svaku organiziranu skupinu podataka-pohranjenJh u ratunaru, najcesce na nekom od uredaja spoljnje memorije. U utem smislu, pod bazom podataka mazemo podrazumijevati skupinu medusobno povezanih datoteka u ne!wm racunarsk!]m' $Lstemu. patot\3Ke' koje sacinjavaju bazu podataka povezane su na osnovu njihovih - zajednicklh efemenata.' Pqd -programima za upravljanje bazama podataka iii DBMS (Qata 12ase Management .Q-yst'e'rriJ pfi:,gr?mima, p-odrazumijevamo programe kojl upravljaju organizaeijom baza podataka ~a0 i pr.is.tupompoaataka,pohranjenim u njima. padataka su prethodili programi za upravljanje datoi'ekaf!l8 (engt.. fiIe_-managers); T~ -su- bili programi kojl su omogucavali manipuliranje samo sa jednom datotekom 'u jednoirJ trenutku. Za razliku ad njih, programi za upravljanje bazama podataka 'omogucavaju m~J:1ipulirat:lje podacima ko]i su razbacani u mnostvu datoteka koje su medusobno . povezane na' oc(reOEmi nacin. .
78

prog;~mj~~ .za~~p~a~ljanje Q~zama

79

1.5.6 Graficki programi


Mnogi pisei odbacili su svoje stare pisa6e maine i presl1 na programe za obradu teksta. Stoga se ne treba (;udlti da pajedini umjetnici svoja platna, kistove i uljane boje takoder zamjenjuju racunarima, misem i raznim grafickim programima. Prednost je ocigledna: kada zabrljate boje na platnu, jedino sto motete uraditi je baciti platna i pacetl ispocetka. Nit ra6unaru je u slicnoj situad]i davoljna izvrsiti UNDO iii neku s!icnu komandu. Naprosto iznenaduje koliko umjetnika uspijeva pomocu misa j sliCnih pomagala kreirati slike koje po svom kvalitetu prakticno ne zaostaju za slikarna koje S8 mogu kreirati pomoGu uobi6ajenih alata I1kovnih umjetnika. Jos je neobi6nija cinjenica da se Ijudi koj,i nemaju mnogo dara za likovnu umjetnost cesto veoma dobro sna\aze sa programima za kreiranje slika. Postoje dvije vrste programa za kreiranje slika: program; za crtanje (engl. drawing) i programi za slikanje (engl. painting).

tavniji nego rad sa programima za ertanje. Medutim, programi za slikanje nisu pogodni za kreiranje crteza u kojima preciznost lma presudnu ulogu. Programi za slikanje posjeduju i magucnost kreiranja nekih geometrijskih objekata, medutim slike kreirane ovim programima ne moraju posjedovati nikakve geometrijski utvrdene oblike. Kako je geornetrijska struktura takvih slika priHcno nedefinirana, racunar ovakve slike pamti forriiiranjem veoma guste mreze (rastera) sastavljene ad veoma sltnih kvadratica, a zatim pamti informacije 0 boji svakog kvadratiea (za koji se zbog malih dimenzija pretpostavlja da sadrzi samo tacke iste boje). Graflka dabijena na ovaj naCin naziva se rasterska (ili bit~mapirana) grafika, 0 cemu cemo detaljni~ je gavoriti u poglavlju 2.3. Karakteristika programa za slikanje je da ve6ina ovih programa omogucava direktno unosenje slike sa papira u program pom06u skenera, sto nije svojstveno pro gramlma za ertanje, s, obzlrom da slike kreirane u programima za ertanje moraju da postuju odredenu geometrijsku strukturu koja ne mora da bude prisutna u slikama nacrtanim na papiru. Jedan posve jednostavan program za sl1kanje pod nazivom Microsoft Paint dolaz! kao prateCi program uz Windows operativne sisteme, i sa njim ste se vjerovatno susreli tokom nastave infor~ matike u osnovnoj skoli. Ovaj program je prilicna siromasan mogucnostima, mada iskusan kOrisnik moze i pomocu njega da naslika prilicno kvalitetne slike (za tu svrhu potrebno je koristlti 1 neke skrivenije i manje poznate opeije ovog programa). Primjeri nekih od najpoznatijih kva!itetnijih programa za slikanje su Adobe PhotoShop, Corel PhotoPaint, MetaCreations' Painter i JASC's PaintShop Pro. Na slici sa desne strane prikazan je primjer djecjeg crteta naslikanog za nekoliko minuta pomoeu programa Microsoft Paint. Vrijedi napomenuti da mnogi likovni umjetniC:i nisu najsretniji zbog masovne upotrebe racunarski podrzanih programa za crtanje i slikanje, jer smatraju da se na taj nacin degradira profesija Ilkovnog umjetnika. o programima za crtanje i slikanje, i racunarskoj grafici opcenito, detaljnije cerna govoriti u poglavlju 2.3.

Program! za crtanje su programi kod kojih se slika formira od elementarnih geometrijskih objeka ta, kao sto su npr. Hnije, fukovi, 'krutnice, krugovi, e/ipse i pravougaonici, slicno kao kada se crtaju crteti na papiru uz pom06 pomagala poput finijara i sestara. Grafika koja se dobija na takav naCin naziva se vektorska (iii linijska) grafika, 0 Gemu cemo detaljnije govoriti u poglavlju 2.3.
Na izvjestan nacin, u programe za crtanje mazema svrstati i programe Zl:! dizajniranje uz pomoc racunara, odnosno tzv. CAD (Qomputer Aided Qesign) programe, 0 kojima cema detaljnije govoriti u poglavlju 2.5. Medutim, dok su CAD programi vise usmjereni ka preciznom zadavanju dimenzija poje dinih dijelova crleta i njihovom tacnom poziGioniranju, klasicni program! za crtanje obicno ukljucuju mnoge opGije koje omogucavaju formi wrifl'IT'JTITZ7":::;';'ill :l.""'="". ;:;.li'illiIIJIIlB.IlIIIIIIII...IIIIl ..,OIllillllW"IIIIIIIIIl''''''!!lI",,1 ranje vizue!no Ijepsih crteza, 5to je pot flo !,"" ~~W \,.,,,,, b'",,' [1I<f" l~A >eot", V . , , ' b' [th~~lLLJj&lm,QlifuTS)CJ[~T r -1 T::t-:J1i1~ puno ne Itno u CAD programima. Na ~=L:::::~-,_c21 '-'''- :'L: ~. ~;!==.u~'--:--'[----:--~~~: primjer, program Sketcher nudi koris~ 'i - niku iZ?or1ieddnog Odd12 uzorakka ~(OikO ~ moze Izg e ati poza ina po ojaJ se
n

-:--

---"

__

R.'

~D~ ..<...... 51,


0 ........':;

. ..

II.~~'"

~~ {;

clta (od izgleda ravnog pap ira do izgle da slikarskog platna), zatim lzbor raznih virtualnih "materijala za crtanje", "'--' poput krede, ofovke, pera, ffomastera iii dfVenog uglj'a. Najpoznatiji program! za crtanje ovog tipa su Core/DRAW, Adobe Illustrator j Macromedia Freehand. Slika sa lijeve strane prikazuje kreiranje crteza uz pomoe programa Core/DRAW, vjerovatna najvise korltenag programa za ettanje za PC racunare.

'~j

"'J . :;",t1
~.ri,~"> ii'l"'''&!IEJ1i!'JJ~TI::.:"~jlJ;i)ti'SIlI ~'l '71['-3S'1

-",-

.. "IDJjCBl:!!!!!IIIIl~5.'ILr~

Primjer dike nasTikanc P0n10CIl progmma Microsoft Paint

Primjcr ateia J10Cl'fanog u programu CorelDRAW

1.5.7 Programi

za slolno izdavastvo

U programima za slikanje, tezlste je stavljeno-n~ kreira:nj~:.c.rt~z-a na na6in I.<ao kada sfikamo sfobodnoni rukom po platnu uz pomoe kista, dakle be"z ograniq,~nja nif'Utvrdene geometrijske obtike. Kod ovakvih programa ulogu slikarskog kista preuzimaju mis, ,grfJficka -fabla, i~ cak i patiea za igru. Korisnik maze da bira oblik i velicinu virtualnog kista~-Kaold(olfa_Qoje pomotu vjrtualne palete boja.

Bitan element svih programa za slikanje ie j virtualna ...gi1~ica :za _ briSinje," koja omogucava brisahje proizvoljnog dije\a slike, -sto nije svojstveno 'programlma za crtanje kod kojih je moguee izbrisati samo citavu liniju, citav Uk, ltd. (mada. R~ki programi- Z8. crtanje, poput novijih verzija Core/DRAW-a, posjeduju alate koji se pona~aju prilicno sli'6Jlo-kao-gumica Z<;l brisanje u programi~ ma za slikanje). Zbog toga je Jad sa programima za slikarije -neiskl:lsnam korisniku mnogo jednos
80

Stolno izdavastvo, iii skraceno DTP (Qesk1:op l:ublishing), predstavlja skup postupaka"Kojj_Ko-riste racunar, pratece ulazne-i izlazne jedinlee poput misa, skenera i stampaca (najcesc,e lasersko.tr}-"kao i odgovarajuci softver, sa ciljem dobivanja veoma kvalitetne stampe koja moze-posluziti ;?:a izdwanje.. knjiga, brosura, novina, itd. Pri tome se stampac najeesce koristi samo kao sredstvQ-ta PXelirt)ll}a-r.ryu. stampu prije zavrsne ~tampe, dok se zavrsna stampa obavlja uz pomoc profesianalnih_inaioa_,-za _ stampanje koje daju jos kvalitetniji otisak nego najbolji stampacL U profesionalne DTp'pr9gr-ame spadaju QuarkXPress i Adobe PageMaker. Takoder je poznat i orp program--Mfcrosoft-Pl.!blisher, medutim on po kvalitetu i moguenostima ni izbJiza ne dostize prethodna dva progr{3.ma.

81

Da bi se neki program mogao zvati OTP programom, on mora posjedovati odredena bitn~ svojst",a. Na prvom mjestu, tu je mogucnost proizvoljnog mijesanja teksta i graffke. OTP prograrr: mora omoguCiti da se prolzvo!jni dijelovi teksta i slika pozicloniraju po zelji jedan u odnosu na drugl unutar jedne stranice papira. Mora biti omogu6eno podesavanje velicine siika, izmjena njihovih baja, svjetline, kontrasta i pazadine, kao i razne druge manipulacije nad sHkama. Pored toga, DTP pro~ grami moraju omogu6iti podesavanje izgleda teksta do najsitnijih detalja. Mnogi od danasnjih tekst procesora, poput Microsoft Warda, posjeduju lzvjesne osobine OTP programa, ali nl izdaJeka u onoj mjeri kao pravi OTP programi. Za razliku od tekst procesora, u OTP programima te21Me je stavljeno na veoma precizno fo(matiranje dokumenata, dok su funkcije editiranja svedene na nuzn! minimum. Zbog toga, nije efikasno pomocu DTP programa radit! obradu teksta i kreiranje crteta. Umjesto toga, tekst se prvo pripre mi pomocu nekog cd tekst procesora (npr. Microsoft Warda). Crtez\ se kreiraju pomocu nekog ad programa za crtanje (npr. Core/DRAW-a), dok se !otografije oCitavaju uz. pomoc skenera, i obraduju pomocu nekog od grafickih programa za sllkanje koji mogu raditi sa fotografijama (npr. Adobe PhotoShopa). Tek nakon toga, tekst i slike se uz pomoc DTPprograma uoblicuju u konacan doku~ ment koji'je spreman za zavrsnu stampu. 8tolno izdavastvo je posao koji trati mnogo iskustva, vjestine i poznavanja grafickog dizajna, i definitivno nije posao za svakoga. Zaista, upotreba DTP programa ad strane neprofesionalaca moze dovesti do posve losih rezultata. Ipak, dck je nekada izdavastvo bilo iskljuClva privilegija velikih i mocnih kompanija, OTP programi pruiaju mogucnost i manjim kompanijama da se bave poslovima izdavastva.

Pomocu komunikac1onih programa moguce je prenositi datoteke sa jednog racunara na drugi. Na primjer, vlasnici kojl posjeduju i kucni i prenosni racunar, mogu koristiti komunikacione programe za razmjenu datoteka izmedu prenosnog i kucnog ratunara putem telefonske mreze. Moderni komunikacloni programi omogucavaju takoder prijem j slanje telefaks poruka. racunarskim komunikacijama, kao i komunikacionom i ostalom pratecem softveru (poPU! programa za razmjenu elektroni6ke postel detaljriije cemo govoriti u poglavljima 1.6. i 2.7.

1.5.9 Interaktivni mullimedijski obrazovni programi


Pod multimedijskim obrazovnim (edukacijskim) programima podrazumijevamo programe specijalno razvijene za obrazovne primjene, koji koriste razlicite vrste medija poput teksta, grafike, ani macije, video isjecaka, muzike i govora za prezentaciju informacija. Ovakvi programi su tipicno inter aktivni, sto znad da korisnik moze upravljati prikazom informacija. Dobri obrazovni programi ne nude sarno prikaz informacija, oego i postavljaju pltanja i ocekuju odgovore ad ucenika. Nivo inter~ akcije varira ad najprostije, gdje se upravljanje prikazom informacija vrsi prostim izborom objekata prikazanih na ekranu, do veoma slozenih interaktivnih programa u kojima se od korisnika zahtijeva da igra neku od uloga u nekom simuliranom okruzenju, i gdje akcije korisnlka pruzaju mogucnost istrazivanja na koji nacin promjene desavanja u okruzenju ovlse od preduzete akcije. Multimedijski obrazovni programi tipicno se isporucuju na CD ROM~ovima, s obzirom da se na CD ROM maze smjest1t1 velika kolieina informacija koje su lako dostupne. Postoje razne vrste multimedijskih obrazovnih programa. Programi tipa "obuci i lIjeibaj' (engl. drill and practice) omogucavaju korisniku da vje.tba neku oblast (na primjer, matematiku iii rjecnik stranih jezika) sve dok ne postigne zahtijevani nivo zrianja. Programi uciteiji (eng!. tutoriais) prutaju korisnicima detaljne instrukcije .za obavljanje nekog zadatka, obicno kroz precizan niz koraka koje je potrebno preduzeti da bi se nek! zadatak obavio, uz neophodnu demonstraciju svakog od koraka. Kasnije se korisniku nudi moguenost testiranja da li je dobra savladao sve neophodne korake. EJektronicke encikJopedije, atlasi, rjecnici i slien! programi mogu iskoristiti punu snagu kombini ranja raz!ieiUh medija za prikaz raznih tipova informacija, pri temu je mogucnost pretrage inrormacija znatno jednostavnija nego kod klasienih enciklopedija, atlasa j rjecnika. Eleidronicke knjige (engl. electronic books iii skraceno E~books) imaju mnostvo prednosti u odnosu na stampane knjige, zahvaljujuci mogucnosti multimedijskog saopcavanja informaclja, kao i mogucnosti korisnika da ih iscltava na interaktivan na6in. SimuJacije omogucavaju korisniku da sfmulira ponasanje neke stvame situacije koju .teli. da proucava, i da interaktivno proueava kako neka od poduzetih akcija utjeee na ponasanje te situaclje. Takoder, postoje i obrazovne igre,koje stvaraju zanimljivo i interesantno okruzenje kOje, ukoliko se iskoristi na pravi nacin, mote u znatnoj mjeri poditi nivo znanja korisnika. Multimedijski obrazovni programi pruzaju informaCije na razliCite naCine (slikom, zvukom, tekstom) sto u znatnoj mjeri olaksava usvajanje__ znanja, jer Ie, ist0vremeno angazirano vise razlicitih Ijudskih osjetila. Ovi programi-mogu pon~vrjati lelsdje .kbllko' god puta to zeli korisnik, j mogu ispitivati korisnika sve dok se ne postigne trazerii nivQ,~znanja~ 'ML!ltimedijski programi mogu biti zabavni u toj mjeri da ih korisnik dozivljava kao ,igru i da uopGane-.b"t:iae svjesan da $e_zapravo radi 0 ucenju. Time se prevazilaze i psiholoske barijerepopu(st.rana_09- ibunjenosti, neuspjeha, ltd. Poseban znac,aj multimedijskih se -0 Cinjenici da se pomotu njih maze ostvariti ucenje oblasti koje jeleskO_ PQs~ci.kta:sjCnilJl.srEtdstvima nastave, na primjer u slucajevima kada se radi a proucavanfu _veoma--sitnih objekata (poput balcte.rija) iii veoma krupnih objekata (poput zvijezda iii galal<slja), proucavanju proc"e.sa ko]i traju isuvise kratko iii isuvise dUgo, kao i pri proucavanju slozel1ih, apstraktnih dinami6kih ,si:stema, ze. koje je nemoguce iii opasno vrsiti stvarni
83

1.5.8 Komunikacioni programi


Sve do nedavno, mnogi korisnici raeunara nisu ni slutili da ce im preko njihovog vlastitog rac:unara biti dostupne informacije koje su pahranjene na rnillonima rac:unara sirom svijeta. Danas je sasvim prirodno da sa svog kucnog racunara pristupate beskrajn0i. koli6ini informac1ja razbacanih sirom svi jeta koje formiraju apstraktni viliLlalni svijet u zargonu nazvan sajberspejs (engl. cyberspace). Inate, ovaj termin je prvi upotrijebl0 William Gibson u svojoj priCi Neuroromancer u kojaj ovaj termin oznacava izmisljenu mreiu raeunara na koju Ijudi prikljueuju svaje mozgove i tako ostvaruju globalnu razmjenu informacija. Danas se pod sajberspejsom uglavnom podrazumijeva svijet informacija koje nudi Internet, a posebno njegov servis poznat pod nazivom World Wide Web (skraceno WWW), 0 eemu cemo kasnije detaijnije govoriti. Jedan od eiemenata koji su nam neophodni za pristup sajberspejsu predstavljaju upravo komunikacioni programi. Komunikacioni prograrni upravljaju prenosom podataka izmedu vise povezanih racunara. Ve6ina korlsnika racunare povezuje preko modema, uredaja 0 kojem cemo govoriti II sljede6em poglavlju, a'koji omdgu6av~ P9vezivanje racunara preko telefonske linije. Zajedno sa modernom se obicno' dobijaju. l",:odgQvarajuei" komunikacioni programi. Poznatiji komunikacioni programi su . Crosstalli: Quic~qnk-i,Procomm PI,-!S. Komwoika9i?ni pr;gra~(:p~uiajU korisnicima razne mogucnosti. Na prvom mjestu, to je mogucnost poveziyan}a na.raznexaej.Hlarske'mreze, ne samo na fntemet, nego i, na primjer, na lokalnu mrezu raeunara u preduzeeu.jJkojemlorisnlk ra6unara radio Moguce je obavljati razne vrste finansijsklh transak cija,.poput-n?rudzbipla6?f1ja ratune. iii vrsenja rezervacija avionskih karata. Mnoge komunikacione programe"je mog\-loo' podesiti da obavljaju funkciju telefonske sekretarice, taka da se automatski javijaju _ na telefo1-1 u slueaju .da korisnik nije kod kuCe. Takoder, moguce je programirati automatske pozive oaredenih telefonskih broj~va, kao i automatsko ponavljanje biranja u slueaju da je veza zauzeta.

robe,

edUk.E!cijSkl~ P;~9~.a~~ ~-astOji

82

eksperiment. Taka, na primjer, multimedijski obrazovni programi mogu upoznati korisnika sa principom rada nuklearnih procesa ili sa procesom razmnozavanja ameba, sto je nemoguce ostvariti kroz stvarni eksperiment. Takoder, rna kakva nastavna materija u kojoj se javlja mnostvo trodimenziona/nih sJika nije pogodna za koristenje klasicnih nastavnih sredstava, s obzirom da je trodimen zionalne objekte tesko prikazati na tabU ill papiru, tako da je u tom slucaju plimjena multimedijskih obrazovnih programa idealno rjesenje. NaroCito su korisni multimedijski programi za praucavanje anatomije ljudskog tije/a, te raznih bi%skih i hemijskih procesa. Danas smo suoceni_sa revolucionarnim promjenama u nacinu drzanja nastave i ucenja koje su izazvane naglim razvojem multimedijskih nastavnill sredstaV8. Multimedijski programi svakako mogu biti znacajno sredstvo za unaprijedenje kvaliteta nastave. Medutim, mora se voditi raeuna 0 tome da vrijednost multimedijskih obrazovnih programa kao nastavnih sredstava ne lezi u njima samima, nego u nacinu na ko]i se oni koriste.

Raeunari dobijaju sve vjse primjena i u saobracaju. Mnoge oblasti saobraeaja, poput kontfble letova i zra6nog prostora u aviosaobracaju nezamislive su bez pomoei racunara. Takoder, ie. ljeznicki saobraeaj se danas veama cesto izvodi automatizirano, pri cemu racunari vode brigu 0 lokaciji pojedinih vozova na pojedinim prugama kao i njihovoj brzini, ina' osnovu toga automatski upravljaju svjetlosnim signaHma, skretnicama, itd. Pri tome je covjeku omogueeno da u svakom trenutku na monitoru maze dobiti sve neophodne informacije 0 cjelokupnoj zeljezniekoj mrez]. Upravljanje slozenim sistemom semafora na raskrsnici danas se takoder izvodi uz pomoc racunara, sto lma velike prednosti u odnosu na neracunarsko upravljanje. Na primjer, racunar moze da uz pomae raznih senzora mjeri gustinu saobraeaja, i da na osnovu nje sam prilagodava trajanje crvenQ9 i zelenog svjetla ovisno od saobracajne guzve, da komunicira sa udaljenijlm semaforima za ostvarivanje tzv. zelenog va/a, ltd. Na kraju, ne smijemo zaboraviti i mogucnost da se pomoeu raeunara vrse rezervacije prevoznih karata na daljinu, sto takoder spada u primjene u saobracaju. Jedna od relativno novijih primjena racunara je i primjena u medicini, Dio prlmjena u medicini odnosi se na probleme sistema finansiranja zdravstva i njegove infrastrukture, te vodenje evidencije 0 korisnicima zdravstvene zaStite, penzionom 11nvaHdskom oslguranju, itd. Drugi j mnogo interesantniji vid primjena racunara u medicini je koristenje racunara za pracenje i nadzor pacijenata, anaIlzu parametara z.dravstvenog stanja poput krvnog pritiska, temperature j pulsa (npr. EKG uredaj za pracenje rada srca nije nista drugo nego jedan specijaliziranf racunar), kao i za pomoc prf postav~ Ijanju dijagnoze. Na osnovu parametara zdravstvenog stanja racunar moze ukljuCiti iii iskljuciti poje~ dine aparate, dozirati pravilne kolieine lijekova, i po potrebi pozvati zdravstveno osob!je. Primjena racunara za postavljanje dijagnoze zasniva se na ekspertnfm sistem;ma, specijalnoj vrsti informa. clonih sistema 0 kOjima'smo govorili u odjeljku 1.1.10. PomoGu ovih programa ljekar racunaru saopcava simptome pacijenta, a racunar na osnovu prethodno pohranjenih inforrnaclja a raznim bolestima predlate moguce dijagnoze i potrebne terapije. Posebna vrijednost ovih programa je sto oni sa vremenom "uce", odnosno racunar lma mogucnost da od Ijekara "nauei" simptome nekih bolesti koje prije nije poznavao. Najpoznatiji ekspertni sistemi u oblasti medicine su programi MYCIN i ASSISTANT. Racunari se prlmjenjuju i u sportu. Na prvom mjestu, racunari su prisutni kao sastavni dio razne opreme za trening, gdje se susretemo sa slicnom vrstom primjena kao j u medicini (mjerenje pulsa, praG'enje rada srca, itd.). Na taj nacin sportista prilikom vjetbe mote da prati kompletno stanje svog organizma. Pored toga, racunar moze da vodi evidenciju 0 rezultatima ostvarenih treninga. Na prim~ jer, prilikom treniranja biciklista na spravama za kucni trening, raeunar moze voditi evidenciju 0 predenoj kilometrazl, maksimalnoj i prosjecnoj ostvarenoj brzini, kolieini ostvarene snage, itd. Drugi aspekt primjene racunara u sportu je pracenje komp!etne statistike igre na sportskim borilisfima, poput pracenja informacija 0 broju go!ova, kornera, pogodaka u precku, zutih kartona, itd. za vrijeme fudbalske utakmice. Prikupljeni podaci m'ogu se neprestano prikazivati na vetiklm displejima (kojima se takoder uprav!ja pomocu racunara), sto o!aksava gledaocima pracenje igre. Na kraju, ne smijemo zaboraviti ni na primjenu ra6unara za svrhe zabave. Tu na prvom'mjestu mislimo na racunarske Igre. U svojoj sustini, danasnje ra6unarske igre mogu se svrstati U kafegoriju interaktivnih multimedijskih programa, jer se u njima korlste razni mediji za prikaz,' peput tek-sta, grafike, animacije i zvuka, dok je interaktivnost ovih programa o6igledna'- Na OVOID mje.st~ _nama potrebe da detaljnije govorimo 0 racunarskim igrama, jer 0 ovoj kategoriji programa vecina 'uceriikl::!-, :.' vjerovatno posjeduje vete znanje nego autor ovog udzbenika... . .

o multlmedijskim
ovog udzbenika.

programi'ma, i multimedijl opcenito, detaljnije cemo govoriti u poglavlju 2.6

1.5. j 0 Oslale primjene racunara


Tesko je na ovako malom prostoru opisati sve moguce primjene racunara. cak i za njihovo povrsno opisivanje vjerovatno bi trebala Citava knjlga veliCine ovog udtbenika, a i tada je sigurno da neka od eventualnih primjena ne bi bila obuhvacena. Ipak. na ovom mjestu opisacemo ukratko jos neke primjene racunara koje nisu bile obuhvacene u dosadasnjem izlaganju u ovom poglavlju, Na prvom mjestu treba spomenuti primjenu ra6unara u inzinjerstvu. Pod inzinjerskim programima podrazumijevamo namjenske programe koji omogucavaju i olaksavaju ~esavanje specifltnih problema sa kojima se susrecu inzinjeri. Ovi programi se grubo mogu podijellti u dvije skupine: programi za projektiranje uz paffloc racunara iii CAD (.computer Aided Qesign) program; i pro~ gram; za prolzvodnju uz pomo6 racunara iii CAM (Computer Aided Manufacturing) program;. U grupu CAD programa spadaju svi programi tija je namjena izrada projekata, tako da se u ovu grupu ubrajaju programi za izradu raznih vrsta nacrta, shema (npr. u elektrotehnici), prora6una razlicitih vrsta, tehni6kih crteta (npr. u masinstvu i arhitekturi), trodimenzionalnih mode/a, simulaclja s/otenlh tehnoloskih procesa, itd. S druge strane, CAM programi se koriste za upravljanje proizvodnlm masinama uz pomoc ratunara. 0 CAD i CAM programima detaljnije cemo govoriti u poglavlju 2.5.
UpravljanJe procesima je jedna od prvih primjena ratunara koja je uvela racunare direktno u razne proizvodne procese.u fabrlkama. Osnovna karakteristika ovih primjena je u tome da je raCunar neposredno vezan za proizvodni proces, i da od njega doblja podatke za obradu bez ucesca covjeka. Ovdje Covjek uglavnom vrsi samo nadzor proizvodnog procesa kroz komunikaciju sa racunarom, i donosi odgovarajuce odluke,uglavnom samo ako_'je_-dqslo dp,'~ekih_ne~redvidenih stanja u procesu. Procesi koji se nadgledaju uz pomoc racunara-mogu.da budu sasv]m jednostavni, ali j veorna sloteni. Na primjer, upravljanje jednim kotlom iii niotor-Orn.p~mjerje Iednostavnog upravljanja proceSOm, za razUku od npr. upravljanja hemijskim p~stroj~_~j~o:(zaPrffrad-u n(}.fte iii quklearnom elektranom. Racunar u ovim primjenama Ima mogucnost :da, pf-ati v.eriki broj tehnoloskih parametara procesa (poput temperature, pritiska, protoka,"napona, i~d.t~.f<oJlma--bi se covjek mogao lako izgubiti, koje po potrebj uskladuje kada dod~ do. ne~ih prbrnjena.. Takoder; ra"cunar oslobada tovjeka potrebe da bude prisutan na mJestu gdje sEfvrs1 tehbo!oski,proce~,_gaje su testo iZrazito nepovoljni radni uvjeti. Taka, na primjer, umjesto uz visokupec, m?siyni-motQr iH naftovod, covjek je uz racunar, ina ekranu monltora prati sva dogadanja u procesu i<ojfin s-e-upravlja.84

85

Pitanja i zadaci
1. Koja je osnovna razUka izmedu naucno-tehni6kih proracuna i masovne abrade podataka? Kada su se ave primjene racunara pocele koristiti? 2. Kakva je razUka izmedu editora i tekst procesora? 3. Koje tipicne funkcije obavljaju editor!? 4. Koje su funkcije koje posjeduju tekst procesori a ne posjeduju editori? 5. Sta ~e podrazumijeva pod pOjmom-cistog tekstualnog dokumenta? 6. Zasto se koriste editori kada pastoje j- tekst procesori? 7. Sla ie WYSIWYG koneepl? 8. cemu slule programl za tabelarne proracune i ko]i su najpoznatlji? 9. Koj! je znaea] formula u programima za tabelarne proracune? 10. Sta je poslovna grafika? 11. Sta motete reci 0 finansijskim programima? 12. Sta su baze podataka, a sta programi za upravljanje bazama podataka? 13. Koj! su asnovni elementi svake baze podataka? 14. Gta su program! organajzeri? 15. Kakva je razlika izmedu programa za crtanje i programa za sHkanje? 16. Sta su programi za stolno izdavastvo i koji su najpoznatiji? 17. cemu sluze komunikacioni programi? 18. U cemu je osnovna upotrebna vrijednost rnultimedijskih obrazovnlh programa? 19. Gta su CAD, a sta CAM programi? 20. Opisite primjenu racunara u upravljanju procesima. 21. Opisite primjene racunara u saobracaju, medicini i sportu. 22. Razmislite kako bi se mogla ostvarlti primjena racunara u ugostiteljstVu, trgovini i sredstvima javnog informiranja. 23. Sta znate 0 racunarskim igrama? 24. Navedite barem jos neko!iko primjena racunara kojlh se motete sjetiti, a koje nisu obradene u ovom poglavlju. .

1.6 PRENOS PODATAKA I RACUNARSKE MREZE


1.6.1 Osnovni principi prenosa podataka
Masovna upotreba racunara dovela je do potrebe razmjene podataka izmedu sku pine racunara, sto je ostvareno povezivanjem racunara u sistem nazvan racunarska mreia. Racunarsku mretu mogu Cil1iti posve jednostavnl sistemi koji se sastoje od svega nekoliko racunara (u principu, cak i dva povezana racunara mcitemo smatrati racunarskom mretom), dok s druge strane pastoje i s\oiene mreze u kojima S8 brej medusobno povezanih racunara (bilo direktno iii indirektno) izrata~ va cak-u milionima. Pri tome, povezani racunad mogu geografski blti veorna udaljeni. Bez obzira na vrstu, s!ozenost ili nacin grade, svaka racunarska mreta ima istu osnovnu funkciju: prel10s podata~ ka izmedu dva fizicki odvojena mjesta. Pod prenosom podataka u racunarskoj tehnici obicno mislimo na razmjenu podataka izrnedu vise povezanih racunara iii izmedu racunara i vanjskih uredaja (mada se u sirem smislu i izmedu racunara i okoline takoder vrsi prenos podataka). Prema opeem modelu komunikaclonog proeesa, prillkom prenosa podataka izmedu racunara, pored racunara u ulozi izvora i prijemnika informacija, moramo imati i kodere; dekodere i kana! veze. Razl1Cite vrste mreta razlikuju se upravo po tome kako su izvedeni ovi elementi. Informacije su u racunarima pohranjene u digita!nom obliku. Stoga se brzina prenosa informadja izmedu dva ratunara mjeri bro/em bita prenesenih u sekundi (to ne znad da Se informacije kroz kanal veze obavezno pronose u digltalnoj formi - situacija bltno ovisi od upotrijebljenog kodera i dekodera). Bit u sekundi skraceno so oznacava sa bps (ad eng I. J2its Qer Second). Sistemi za prenos podaiaka trebali bi da imaju sto je god mogu6e veeu brzinu prenosa podataka, sio se, izmedu ostalog, postize i kompresijom podataka. Pod kompresijom podataka smatramo postupke koji omogueavaju da se ista informacija izrazi manjim bt'Ojem znakova iii op6enito bita (npr. kada umjesto "i tako dalje" napisemo "itd." ostvarili smo jednu vrstu kompresije podataka). Nataiost, svi podaci se ne mogu kompresovatl. Mogu se kompresovati samo oni podac! kod kojih zapis sadrii vise bita nego sfa iznosi kaliCina informacije sadriana u njfma. Za ovakve podatke se kaze da posjeduju za~ Hhost iii redudanciju. Na primjer, pisani tekst sadrti veliku kollcinu redudancije. Motemo primijetiti da iz pisanog teksta mozemo odstranitl reeimo svako trece slovo, a da se smisao teksta jus uvijek moze bez vecih problema odrediti. OVo je upravo posijediea redudaneije. Narodto veliku koliCinu redudancije sadrie slikovni iii zvucni podad, stoga se lakvi podaci veoma dobra kompresuju. Medutim, izvjesna doza redudancije pri prenosu podataka je pozefjna, jer omogueava automatsko otkrivanje a ponekad i automatsku korekciju nekih gresaka u prenosu podataka. Na prlmjer, ukolike vidite (ijec "stoUea", Vi 6ete je vjerovatno autornatski procitati kao "stoliea", bez obzira na to sto ana sadrii gresku. Informacija se iz pogresno prim!jene poruke "stoUea" mote razaznati upravo zahvaljujuei redudanciji govornog jezika. Kod prenosa digital nih podataka razlikujemo dvije vrste prenosa: paraJelni pumas i serijski prenos. Kod parafelnog prenasa istovremeno se kraz vise vodica (tiea) prenosi vise bita, najeesce osam bita koji tvore jedan bajt. Zbog toga cesto katemo da se kod paralelnog prenosa podaei prenose bajt po bajt. Kod serijskog prenosa podaei se prenose bit po bit Na prvi pogled izgleda da se serijski prenos maze realizirati koristeei isk!juCivo jedan vodic. Medutim, ipakje neophodan i drugi vodic, tzv. masa, da bi se mogao zatvoriti strujni krug lzmedu racunara koji vrSe razrnjenu, tako da se serijski prenos realizira kroz par vodica. Paralelni prenos je o6igledno 8 puta brti ad serljskog, pri jednakim ostalim okolnostima. Takoder. paralelni prenos podataka je znatno jednostavniji za izvedbu u komunikaeionim programi-

..-.

".

66

87

rna, zbog cinjenice da su podaci u racunarskim memorijama organizirani upravo po bajtovima. Medutim, potreba za velikim brojem vodica ogranic:"ava upotrebu paralelnog prenosa iskljuCivo za potrebe povezivanja uredaja Cija udaljenost ne prelazi nekoliko desetaka metara. Pri iole ve6im udaIjenostirna, za prenos podataka kor/sti 5e isklju6lvo ser/jski prenos.

1.6.2 Prenos podataka kroz tele!onsku mrezu i modemi


Tipicni komunikacioni sistem u kojem se ostvaruje analogni prenos informacija predstavlja
tele~

fonska mreia. Zafsta, telefonske mrete su projektirane za prenos govora, koji po svojoj prirodi
predstavlja tipicni primjer analognih informacija (mada se i govor moze digitalizirati, 0 cemu smo govorili u odjeljku 1.1.9). Te!efonske mreze prisutne su decenijama, i danas povezuju prakticno sve krajeve svljeta. 8toga je telefonska mreza dom;nantna komunikaciona mreza u svijetu. Rasprostranjenost telefonske mreze namece ideju da se ona pokusa iskorlstiti za prenos podataka izmedu dva udaljena racunara, Kako se za prenos putem teJefonske I11reze koristi jedan par vodica, jasno je da U obzir dolazi samo serijski prenos. Medutim, pri koristenju telefonske mreze jav!ja se -jedan sustinski problem, Telefonska mreza namijenjena je za prenos govornih, a ne digi~ tal nih signala (mada danas postoje i telefonske mreze koje su prilagodene prenosu digital nih podataka), Karakteristika digitalnih elektricnih signal a su nagli skokovi napona sa jedne na drugu vrijednost, s obzirom da u njima napon maze imati sarno jednu od dvije moguce vrijednostl, koje odgovaraju ciframa a i 1. Klasicna telefonska mreza ne moze da korektno reagira na ove skokove, zbog cega dolazi do izob!icenja signa!a u toj mjeri da ga prijemnik ne moze da prepozna. Izlaz iz ovih problema naden je u pretvaranju digitalnih signala ko]i izlaze iz racunara u analogne signale koji sadrze istu informaciju, a koji su takvog oblika da S8 bez problema prenose kroz telefonsku mrezu. Ovaj postupak naziva se" modulacija, a uredaji koji obavljaju ovaj postupak nazivaju se modufatori. Opcenito, modulacija je ~postupak pretvaranja signala iz jednog obUka u drugi oblik pri~ lagodeniji prenosnom mediju, bez gubitaka informacije. Kod ovog postupka, korisna informacija se, na izvjestan naCin, "utlskuje" u noseCi (obiGno tonski) signal, koji ce je prenljeti na odredlste. Na primjer, jedan od mogucih post!Jpaka modulacije koji se cesto koristi, nazvan frekventna modulacija iii skraceno FSK (Erequency ,Shift Keying), zasnlva se na tome da se podatak 0 predstavi tonom jedne visine (frekvencije), a podatak 1 tonom drugacije visine. Na ovai nacin, kroz te!efonsku mrezu prenose se iskljuCivo tonovi, s10 za telefonsku mrezu ne predsfavlja problem. Drugim rijecima, podaei se kroz telefonsku mrezu prenose tonskf kodiranf. Na sljedecoj slici prikazano je kako izgleda izvorni digitalni signal i rnodulirani signal prema FSK postupku pri prenosu podatka 10110010:

Uprakticnim izvedbama serijskog prenosa razlikuju se dvije izvedbe serijskog prenosa: sinhroni
prenos i aslnhronl prenos. Kod sinhronog prenosa podaci se prenose u blokov;ma iii paketima (izvorni, tesko prevodivi engleski naziv ovih blokova, odnosno paketa, je burst). Blok sadrzi fiksan broj bajtova (reeimo, 512), pri cemu se svi bajti koji cine blok razlazu u seriju bita i salju jedan za drugim, fiksnom brzinom, bez pauza izmedu pojedinih bajtova. Blokovi se takoder salju jedan za drugim, medutim izmedu svaka dva bloka salje se specijalan niz ad 8 bita, tzv. sinhroniiacioni bait iii skraceno SYNC, koji nije sastavni die bloka i koji ne sadrz! korlsnu informaciju, a Gija je jedina svrha da osigura sinhronizaciju prenosa blokova lzmedu posaljioca i primaoca. S druge strane, kod asinhronog prenosa, svaki elementarni podatak (tipicno jedan bajt) prenosi se neovisno jedan ad drugog. Prije nego sto zapocne prenos jednog podatka, kanal veze nalazi se u neaktivnom stanju i1i tzv. IDLE. stanju (oblcno stanju logicke jedinice). Prenos podataka zapocinje promjenom stanja kanala veze (npr. sa logicke jedinice na logicku nulu) u trajanju jednakom trajanju prenosa jednog bita (ova promjena naziva se start bit), nakon Gega sHjedi prenos stvarnih bita ko]i Cine podatak. Nakon sto se citav podatak prenese, kanal veze se ponova vraca u IDLE stanje, koje trajB do prenosa novog podatka. Vrijeme trajanja IDLE stanja nije odredeno, medutim obicno se propisuje da IDLE stanje nakon prenosa jednog podatka mora trajati makar koliko iznosi trajanje prenosa jednog bita pornnoteno sa 1, 1.5 iii 2. U tom slucaju kazemo da se koristi asinhroni prenos sa jednim, jednim i po [Ii dva stop bits. Sljedeca slika ilustrira razliku izmedu sinhronog i asinhronog prenosa:

Sinhroni prenos

Asillhrol1i prenos

Sinhroni prenos je ocigledno mnogo efikasniji, jer se kod asinhronog prenosa prakticki vrsi sinhronizacija svakog elementarnog podatka pojedinaGno, Cime se gub! mnogo vremena. Medutim, asinhroni prenos podataka je mnogo praktlcniji u slucajevima kada se prenose male koliCine podata ka, pri cemu je tacan razmak izmedu pristizanja podataka koji se prenose potpuno nepredvidiv, na . primjer, prilikom prenasa podataka koje korisnik kuca sa tastature (vrijeme izmedu pritisaka na tastere je nepredvidivo, a sam podatak a pritisnutom tasteru je kratak). Asinhroni prenos se najcesce koristi za prenos podataka izmedu racunara i prafece racunarske opreme, dok se za prenos podataka izmedu racunara koristi pretezno slnhroni prenos.
w

J-lJ--l_ . _J~L~ rV\rvWVVV\/\fV\;


lzvorni digitafni signal
Modulirani (1111l{ogni.signal

Nakon prijema moduliranog signata, potrebno je ovaj signal vratiti u prvobitni oblik. Taj postupak naziva se dem()dulacija, a ureda]i koj! obavljaju ova] postupak nazlvaju se demodulatori (modulatori i demoqulatori su zapravo jedna vrsta kodera i dekodera u Shannonovom mode{u komunika_cion09.-p-rocesa). t\{lodulator i demodulator najcesce se objedlnjuju u jedan ureaaj nazvan modem . (skrac~nica .od Modulator i J2~modulator). 8toga se kao posrednik izrnedu racunara i te)efonske --rnrez~:u.vijek tl<;llazi modem, kao sto je prlkazano na sljedecoj slici:
- signa! ,
/\llII!ogni

Kada sma govorili a paralelnom i serijskom, odnosno sinhronom i asinhronom prenosu podataka, podrazumijeval1 sma da se radi 0 prenosu digita/nih informacija. 8toga takav prenos podataka nazivamo digitalni prenos. U sljedecem odjeljku cemo vidjeti da je u nekim slucajevima digitalne informacije prije prenosa na daljinu povoljnije pretvoriti u analogne informacije, a zatim vrsiti prenos tako dobijenih analognih infarmacija, koje ce se na mjestu prijema ponovo pretvoriti u digitalne informacije. Prenos analognih informaeija sa jednog mjesta na drugo naziva se ana/Dgn; prenos.

Prt'llos podatakn kroz tdcfonsku mrezu


88

89

Kako "zvuce" modulirani podaci prilikom prenosa racunarskih podataka kroz telefonsku mrezu vjerovatno stB imali prilike da cujete ukoliko ste slucajno pozval\ neki telefonski broj kod kojeg se sa druge strane zice kao sagovornik umjesto zivog sagovornika nalazi prikljucen modem (iii, jos vjerovatnije, faks uredaj, koji sadrzi modem kao svoj sastavnl dia). Modemi mogu bit! ugradeni u sarno ku6iste racunara, j tada S8 nazivaju Interni (unutrasnj~ modemi, a mogu biti i izvan kuClsta kao posebni uredaji ko]i S8 prikljucuju na sedjska vrata racunara, i tada S6 nazivaju ekstemi (va!1jsk~ modemi. Interni modemi obicno se izraduju u vidu kartice k~ja S6 ubacuje u uticnicu na maticnoj plod racunara. Oni su maHh- dimenzija, ne zauzimaju posebno mjesto na statu, ]eftiniji su _ad eksternih modema i ne zahtijevaju posebno napajanje (za razliku ad eksternih mOdema). Medutim, nedostatak internih modema je sto zauzimaju jednu uticnicu na maticnoj ploei i sto moraju biti saglasni sa tipom sabirnice na maticnoj ploeL Pored toga, tesko je nadzirati njihov rad i upravljati njihovim radom. Za razliku od internih modema, eksterni modemi se prikljucuju na serijska vrata, j neovisni su od tipa sabirnice koja se koristi u raGunaru (pri cemu je oCigledan nedostatak zauzimanje jednih serljskih vrata). Kako se ovi modemi nalaze izvan raeunara, njihov rad je veoma laka nadzirati preko svjetlasnih indikatora ko]i se nalaze na ku6istu modema. Takoder je lako i upravljati njihovim radom, preko prekidaCa koji se takoder nalaze na kucistu modema. Postupak prenosa clteta j fotografl/a na dalj,'nu kroz 1e!efonsku mrezu, koji se naziva fototeJegrafi~ ja, fe/efato prenos, faksimil prenos, telefaks iii samo skraceno faks (od engl. facsimile), takoder se zasniva na upotrebi modema. Zapravo, urectaj za faksimil prenos (iii faks ureaaj) je kombinacija ske ners, stampaea, modema j specija/iziranog raeunara ZS obradu. Skener sliku sa papira pretvara u digltalnl zapis, koji se nakon obrade u specfjallziranom racunaru moduJira uz pomoc modema i salje kroz telefansku mrezu. Na mjestu prijema, nakon demodulacije primljenog signala i njegove abrade, primIjena slika se stampa na stampatu, time se dobija vjema kopija poslane slike. Vazno je naglasiti da faks uredaji svaki dokument prenose kao sliku, cak i ukolika dokument sadrzi samo Cist! tekst. Ve6ina danasnjih madema omogu6ava da se svaki raeunar opre'm!jen skenerom, printerom i takvim modemom koristi i kao faks uredaj. Takvi modem! nazivaju se faks modemi.

podrazumijevamo mreze koje pavezuju ra6unare na relativno malom prostoru (npT. unutar neke skole iii fabrike), dok rasprostranjene mrete medusobno povezuju racunare na znatno sirem prostoru, koji maze obuhvatiti i citav svijet. Rasprostranjene mrez'e takoder medusobno povezuju i skupine lokalnih mreza. Raeunare koji ucestvuju u komunikaciji putem racunarskih mreza nazivamo cvorovi mreze. Da ii je neka mreza LAN iii WAN mreza ne moze se suditi samo po geografskoj udaljenosti poje dinih cvorova. Na primjer, LAN mreze se mogu rasprostirati i na pavrsini od nekoliko kvadratnlh kilomatara, dok je u principu, WAN mrezu mogu(:e organizfratl i na znatno manjem prostoru. Staga pas toje drugi kriteriji koji odreduju da Ii je neka mreza racunara LAN iii WANtipa. Osnovni kriterij je nacin na koji je izvedena komunikaclja izmedu- racunara. Ukoliko su racunari u mrezi povezani lskljucivo kablovima razli6ite vrste, pri cemu je to povezivanje iii neposredno, iii preko'relativno malog broja uredaja za pasredovanje, tada se sigurno radi 0 LAN mrezl. Ukoliko se za komunikaciju izmedu ra6unara koriste te!efonska mreza, modemi, pa cak i komuniciranje putem satelita, sigurno se radi o WAN mrez!. Dopunski kriterij je brzina prenosa informacija jzmedu racunara. LAN mreze su nam jenski dizajnirane sa ciljem omogucavanja izuzetno brzog prenosa informacija izmedu racunara, koji se izrazava u stotinama mi!iona bita u sekundi, sto je nemogu6e ostvariti sa WAN mrezama. Najveca brzina prenosa kaja se moze posti6i u WAN mrezama statinama je puta manja nego brzina prenosa u tlpienim LAN mrezama. Da bi se racunari mogli medusobno povezivati u lokalnu mrezu, ani moraju posjedovati odgovaraju6i mreini adapter (mreinu karlicu). Uloga ovog adaptera je pretvaranje podatka Iz racunara U oblik prihvalljiv kanalima veze mreie: Mrezna kartica se sa jedne strane prikljucuje na sabirnicu racunara, a sa druge strane na prenosni medii (kabel) kojim se podaci pre nose, Naravno, za upravIjanje mreznom karticom neophodan je i odgovarajuCi pogonski program (drajver). Nadzor nad lokalnam mrezom obicno $e prepusta jednom ad racunara u mrezi koji se naziva
posfuzitelj mreze iii mrezni server. To je obiGno najjaei racunar unutar lokalne mreze, i koji je

1.6.3 Racunarske i lerminalske mreze


Kao BtO je vee reeeno, raeunarske mreze su skupine medusobno povezanih racunara, sa Giljem razmjene podataka i informacija izmedu racunara. Razlozi za formiranje racunarskih mreza su visestruki. Na prvom mjestu, raeunarske mrete amogu6avaju korisniku da pomo6u jednog raCunara pristupi informacijama koje su pohranjene na bilo kojem drugom racunaru, kao da se one nalaze na istom racunaru na kojem korisnik trenutno radi. Dalje, racunarske mreze omogucava]u razmjenu . poruka izmedu udaljenih korisnika ei]1 su racunari prikljuceni na istu mrezu. Vazan razlog za formi. ranje racunarskih mreza je i koristenje zajedniekih resursa (kako hardverskih tako i soitverskih);_Na primjer, ukoliko neka skala ima 20 racunara i samo jedan stampae (hardverski resurs), poyezivanje racunara u mrezu omogucava da se sa bilo kOjeg od raeunara posalje dokument n?--stam-pa.nje-, i' ne samo sa raeunara na koji je stampac direktno prikljucen. Takoder, svih 20 raCi.mara mogIJJ<.oris~' tlti neki program (softverski resurs) koji se nalaz! na samo jednom racunaru. Konacno, r-acunarske mreze omogucavaju i raspodlj'elj'enu obradu podataka. Jedan veliki posao maze se podijelitfria' ~rse . dijelava, nakon 60ga sa pojedini dijelovi izvrsavaju istovremeno na vise racunara, "pri cemu jeulO.fja mrete razmjena medurezultata izmedu racunara koj] obavljaju pojedine dlje!ove posl?~ koJfi Je1:~sto neophodna prilikom raspodijeljene obrade podataka. .. ' : -.... ___ . . Bve racunarske mreie mozemo grubo podijeliti na lokalne iii LAN (hoca~' Area ~~tworkfmre;e i gJobalne, rasprostranjene iii WAN (Wide Area Network) mreze. Pod lokalnjm mretama'Obieno -

najces6e posebno dizajniran za svrhu upravljanja mrezom. Kod manjih i manje opterecenih mreza, mrezni server pored nadzora mrezom moze obavljat! i druge poslove, dok je kod veCih j optere6enijih mreza server u potpunosti posvecen upravljanju mrezom. Na mreznom serveru mora se iz;vrsavati operativni sistem kaji je posebno prilagoden potrebama nadzora i upravljanja racunarskim mrezama. Takvi operativni sistemi nazivaju se mrezni operativn{ sistemi iii NOS (Network Qperating System). Na primjer, server svoje zadatke ne moze da obavlja sa Windows 98 operativnim sistemom koji nije mrezni operativni sistem. Primjeri mreznih operativnih sistema su Novell, UNIX i Windows NT Server. Kod malih lol<alnih mreza prisustvo servera se maze !zbjeci, taka da se svakom racunaru dodijele jednaka prava. U takvim mrezama, koje se zovu peerutoupeer mreie (naziv je tesko prevodiv, engl. peer znad ravnopravan), svaki racunar abavlja i ulogu nadzora mreze. Ovakve mreze su jef~ tine i pouzdane, jer kvar servera ne(:e dovesti do prestanka funkcioniranja mreze. Dalie, ove mreze ne zahtijevaju specijalizirane mrezne operativne sisteme~- Meduiim, sustinski nedostatak ovakvih mreza lezl u cinjenici da je veoma tesko nadzirati rad i upravljatl radom oval<ve mreze, S obzirom na to da nije mogu6e vrsiti nadzor i upravljanje sa jednog -mjesta. Na primjer, u veCini racunarskih mreza neophodno je voditi evidenciju 0 pravima pristupa pojedinih korisnika raGunarske mreze, s obzirom da sv[ korisnici mreze ne moraju [mati prava pristupa svim podacima koji se nalaze u mrezi, kao ni svim ostalim resursima mreze. Ovakvu evidenciju mnogo je lakse vrsiti uk9!iko se nadzor i upravljanje vrse preko jedinstvenog racunara. Stoga je gotovo nemoguce napraviti kvalitetnu peer-to~peer mrezu kOja ukljueuje iole veGi broj racunara. Dodatni nedostatak peeHo~peer mreza je njihova relatlvna sporest pri ve6em broju-ukljucenih radnih mjesta. Kod rasprostranjenih mreza racunari se tipicno povezuju putem telefonske mrete. Za povezi vanje se mogu koristiti kako javne, tako i privafne teiefonske mreie. Javne telefonske mrete su telefonske mrete koje su dostupne svim pretplatnicima mreze, dok su privatne tefefonske mrete
91

90

namijenjene iskljucivo odrectenom krugu korisnika. Na primjer, mnoge drzavne organizacije, poput vladinih institucija, policije, vojske, avijacije, zeljeznice, itd. imaju svoje privatne telefonske mreze kOje mogu, ali i ne moraju imati spoj sa javnim telefonskim mrezama. Za prikljucenje racunara na telefonske mrete najcesce se koristi modem, uz pretpostavku da se radi 0 klasicnim tel~fonskim mrezama namijenjenlm za prenos analognih informacija. Danas pastaje i specijalizirane te/efonske mreie za prenos digita/nih podataka. Najpoznatija ovakva mreza ie ISDN (Integrated Q.erviee 12igital Network) mreZa koja, izmedu ostalog, zahvaljujuei naprednoj tehnici nazvanoj multipleksi~ ranje, omogueava i prenos vise signala (do deset) kroz istu telefonsku ticu, taka da je npr, moguee u isto vrijeme ostvarivati razmjenu podataka izmedu dva racunara i voditi normalni telefonski razgovor, sto niie moguce kod klasienih telefonskih mreza, Za prikljucak racunara na ISDN mrezu ne koriste se modemi, vee terminalni ISDN adapterl (kart/ce). Kako kod ISDN mreza otpada potreba za modulacijom i demodulacijom, sa ISDN mrezama moze se ostvariti daleko veea brzina prenosa podataka nego sa klasicnom telefonskom mrezom, U posljednje vrijeme pojavile su se i ADSL (8symetrie Qigita! ubscriber .bine) mreze, kOje koriste veoma napredne tehnike digitalne obrade signaia iii DSP (12i9ital 9.ignal Erocessing) tehnike za ostvarivanje izuzetno velike brzine prenosa podataka, koja postaje uporediva sa brzinom prenosa podataka u lokalnim mrezama, Veliki problem kod lokalnih mreza sastoji se u cinjenici da ukollko postaj! potreba da se jedan raeunar lzmjesti sa jedne lakacije na drugu (npr.lz jedne u drugu zgradu), potrebno je iznova vrsiti hardversku konfiguraciju mreze da bi racunar ostao unutar iste lokalne mreze kao i prije. Ovaj problem rjesava se koristenjem virtualnih toka/nih mreta (skraeeno VLAN), koje predsfavljaju mrezu raeunara koji sa ponasaju kao da su prikljueeni na istu zieu, mada se oni fizieki mogu nalaziti u sasvim udaljenim dijelovima jedne lokalne mreze. Virtualne mreze S8 konfiguriraju uz pomoc softvera, a ne hardvera, sto ih cini Izuzetno fleksibilnim. Jedna lokalna mreia u nekoj organizaciji maze logicki biti podijeljena na nekoUko virtualnlh mreza, tako da korisnici imaju utisak da u organizaciji postoji nekoliko razlicitih lokalnih mreza, iako su zapravo svi prikljuceni na jedinstvenu lokalnu mrezu, lIuzija pastojanja neko!!ko neovisnih mreza osivarena ie uz pomoe softvera, odakle i potlte naziv virtualne (nestvarne) mreze, Arhitekture LAN i WAN mreza donedavno su se logicki posmatrale potpuno razdvojeno, Kod lokalnih mreza, prenos podataka je brz, tako da ne postaji potreba za klasifikacijom vrste podataka kojl se prenose, S druge strane, kod rasprostranjenih mreza, prenos je spar, i cesto postoja velika kasnjenja u prenosu uvjetovana zagusenjem mreze podacima, Postoje vrste podataka koje ne trpe kasnjenja u prenosu, poput prenosa g/asa i video prenosa (odnosno prenosa pokretnih slika), Zbog toga se prenos ovakvih podataka sve do nedavno morae tretirati drugacije od prenosa podataka koji trpe kasnjenja. U posljednje vrijeme se radi na razvoju nove mrezne tehnologije nazvane ATM (Asynchronous Iransfer Mode), Ova tehnologija na izvjestan nacin objedinjava LAN i WAN tehnologije, Kod ATM mreia, podaci se pre nose u sasvim malim blokovima fiksne veliejne, na nacin koji osigurava da ni jedna specificna vrsta podataka ne okupira cjelokupan kanal veze. ATM mreze se narocito koriste prilikom prenosa glasa I video prenosa na velike daljine, Neki strucnjaci misle da ce ATM tehnologija rijesiti problem zagusenja u racunarskim mrezama, dok su drugi strucnjacI po istom pitanju izuzetno sumnjieavi. Na kraju, u vezi sa racunarskim mreiam<?- treba spomenuti i terminalske mreie, Ove mreze nazivaju se i pasivne racunarske mreze. Za razliku od svih do sada spomenutih racunarskih mreza (koje mozemo nazvati aktivne racunarske mreze), kod terminalskih mreza iskljucivo jedan racunar - na sebe preuzima cjelokupnu obradu podataka, dok svi ostal! racunari samo dostavljaju glavnom racunaru podatke na obradu, i prikazuju rezultate abrade, Drugim rijecima, svi racunari osim centralnog racunara imaju ulogu sarno terminafa za unos i prikaz podataka, Ovakva vrsta mreza susreee sa U organizaeijama koje posjeduju jedan mocan raeunar i veliki broj znatno slabijih racunara. Ovaj vid mreza u proslosti se koristio veoma cesto, kada su moen] racunari bili sku pi, pa je veeini organizacija bilo nemoguce da nabavi veGi broj dovoljno mocnih racunara. Danas se ovakav vid mreza sve rjede susrece.
92

U ovom odjeljku razmotrili sma osnovne tehni6ke aspekte racunarskih mreza, Napradniji aspekti raeunarskih mrezB, kao i nacini koristenja racunarskih mreza bice detaljnije obradeni u poglavlju 2,7.

1.6.4 Topologije racunarskih mreza i telekomunikacijska oprema


Pod topologijom racunarske mreie podrazumijevamo prikaz rasporeda veza izmedu pojedinih cvorova mreie. Kod lokalnih mreza postoje tri glavne topologije:- zvijezda (engl. stai), sabirn;ca iii magistra!a (engl, bus) i prsten (engL ring). Kod topologije tipa zvijezda, sv] cvorovi mrete povezani su na zajednicki sredisnji uredaj koji se naziva koncentrator iii hab (engl. hub). Ovaj vid topologije se danas najeesee koristi. Prednosti ove topologije su jednostavno dodavanje novih racunara u mrezu, centralizirano upravljanje prenosom podataka (s obz!rom da svi podaei prolaz! kroz koneentrator), kao i Cinjeniea da kvar nekog od racunara nece ugroziti rad mreze, Takoder, prekid rna kojeg od kablova ugroziee sarno rad racunara koj! je spojen preko tog kabla. S druge strane, ukoliko se koneentrator pokvari, citava mreia ce biti izvan funkelje. Kod topo!ogije tipa sabimica, sv! racunari su pov~zani na zajednicki kabel, kojl predstavlja sabirnieu, Osnovni nedostatak ove topologije ie cinjeniea da prekid zajednickog kabla uzrokuje odvajanje ad mreze svih racunara koji se nalaze iza mjesta prekida, Kod topologije tipa prsten, sv! racunari su medusobno povezani u ciklicnu strukturu, ~ako da je svaki racunar spojen sa dva susjedna raeunara. Prenos podataka u ovakvim mrezama moze biti izrazito efikasan, medutim prekid bilo kojeg kabla u mrezi uzrokuje prekid rada Wave mreze. qpisane topologije !okalnih mreza shematski su prikazane na sljedeeoj slici:

Topologija "zvijezda"

Topologija "sabimica"

TopologUa "prsten"

Postoji mnostvo mreznih tehnologija Kojima se realitiraju naveden! tipovi mreznih topologija. Jedna od naje"esee koristenih tehnologija poznata je pod naz]vom Ethernet. Ova tehnologija realizira topologi-je tipa sabfrnica (prj manjim brzinama-prenosa) i zvljezda (pri vecim brzinama prenosa), a omogu6ava brzine prenQsa od 10 do 100 miliona bita u sekundi. Zbog svoje pristupacne cijene i tehnicke jednostav:.":.osti, ~themet}; najrasireniha tehnologija Iokalnih mreza za povezivanje PC racunara. Za>ostVariVanje kanala veze izmedu pojedinih cvorova u lokalnim mrezama, najcesee S6 koriste trl tipa_" p"YenQsnih medija; u1(iJene telefonske parice, koaksijalni kablovi i apt/(;ki kablovi. :--. U~ijf;ni )eJf!fo.nske parlee su 'medusobno isprepletene bakame tice koje se inace kor/ste za prikljuc?Jij~lele{onskih aparata. Njihova prednost je niska cijena i Clnjenica da su cesto vee postav~ lJ1ne" ?a~potrebe prikljocenja telefonskih aparata. Nedostatak telefonsk!h pariea je mala brzina . prenqsa- podataka- i ogranicenje udaljenosti prenosa podataka na maksimalno stotinjak metara, koaksijalni kabfovi su znatno skuplji od telefonskih pariea, a sastoje se od izolirane sredisnje iiee, kOja-lEi okolo omotana t:ieanlm oklopom koji ima ulogu drugog vodica, citav kabel je spolja zasfieen vanjskim izolatorom. Ovakvi kablovi su najcesce koristenl prenosni mediji u !okalnim mrezama. Kako
93

je koaksijalnl kabel mnogo otporniji na smetnje, njime je moguce prenositi- podatke znatno vecom brzin~m, i na znatno vece udaljenosti.

1.6.5 Internel kao najrasprostranjenija racunarska mreza


Rijec Internet zauzela ie udarno mjesto u medijima. Svakodnevno sma bombardirani tom rijecju od televizije'do dnevne stampe, a nazalost prilicno mali braj !judi zna sta je uopce Internet. Zapravo, nije nimalo jednostavno reCi neupueenom covjeku sta je ustvari Internet. Zbog toga, mazda je najtaeniji odgovor sadrzan u reklamnom spotu racunarske firme Apple:

Opti6ki kablovi predstavljaju trenutno najsavremeniji prenosni medij. Opticki kablovi umjesta bakarnlh provodnika koriste opticka v/akna (engL optical fiber; koja predstavljaju snop tankih staklenih vlakana zatvorenih u zastitnu ovojnicu. Za razliku od obicnih, kablova koji provode elektricnu struju, kroz opti6ke kablove se signal prenosi uz pamoe svjetlosti. Na ulazu u opticki kabel, specijalni elementi nazvani lasersk~ diode pretvaraju elektricne digitalne impulse koji izlaze iz nieunara u povorku svjetlosnih impulsa, koji se prenose kroz opticki kabel, i na mjestu prijema uz pamoe fotodetektora ponovo pretvaraju u elektricne impulse koji se vade u raeunar. Oplicka vlakna su -potpuno neosjetljiva na elektromagnetske smetnje i zraeenja, tako da su pogodna za prenos podataka veoma velikim brzinama. Opticki kablovi imaju 6ltav niz prednosti u odnosu na druge prenosne medi je. Medutim, pored 6injenice da su skuplji od obicnih kablova, cijena njihove ugradnje i polaganja je takoder visoka, i za njih su potrebni dodatni uredaji za pretvorbu elektri6nih impulsa u svjetlosne i obrnuto, sto ogranicava njihovu upotrebu u primjenama u kojima je cijena bitan faktor.
M

Ne raVlli#iaJte 0 tome staje to Internet. Internet je ona .~to Vi zelite da on bude.


Internet je, u stvari, najrasprostranjenija racunarska mreza, koja omoguGava pojedincima iz svih dijelova svijeta da medusobno komuniciraju i dijele informacije. Oakle, Internet je mreia koja povezuje mnostvo drugih racunarskih mreza sirom svijeta u jednu ogromnu mrezu. Pored toga, Internet je I jedan ogromni informacioni sistem koji objedinjuje informacije pofJranjene na svim tim racunarima, Internet se slikovlto moze zamisliti kao ogromna paukova mreia (eng!. web) koja obuhvaca cije!u zemaljsku kuglu, i povezuje razne raeunare i manje racunarske mreze. Zbog toga se Internet 6esto naziva sarno Mreza, sa vel1kim "M" (engL The Web). Internet je multimedijski sistem, jer omogucava prenos informacija kako tekstualne, taka i slikovne iii zvucne prirode. Moguenost interneta danas je posebno izraiena u bankarstvu i trgovlni (kupovina putem Interneta), a u novije vrijeme rasprostranjeno je i gledanje televizije, kao i felefoniranje putem Intemeta (skraceno VOI- ~oice Qver Internet). Hlstorijat Interneta zapocinje davne 1968. godine, kada amerieko Ministarstvo odbrane pokrece eksperimentalni projekat razvoja novog koncepta ratunarske mreze. Taj projekat povjeren je orgalii~ zaciji ARPA (Advanced Research Projects Agency), te je tako nastala mreza ARPANETkoja se smatra prethodnicom Interneta. Onog trenutka kada je Ministarstvo odbrane odlucilo povezati svoju ARPANETmrezu sa drugim javnim univerzitetskim i naucnim mrezama, nastao je Internet kal<av danas poznajemo, ali u neuporedivo manjem obimu, jer je tadasnja mreza obuhvatala same cetiri instilucije. eitava mreza jos uvijek se nije nazlvala Internet, vee je Internet bila sarno skra6enlca -09 fraze Int~[ t:J.fl1working (povezivanje mreza). Sustinski doprinos nove tehno!ogije je u tome sto je ornogud!a povezlvanje razlicitifJ vrsta racunara, sto je presudno za funkcioniranje lnterneta ov~kvog kakav je danas. Potetkom osamdesetih godina nastaju nove lokalne mreze, j sve one su htjele da budu spojene na ARPANET, koji je tako postao sredstvo komunikacije i za mnoge komercijalne organizacije, a ne samo za vojne i nauene ustanove, kako je prvobitno bllo zamisljeno. Jedan od najvedh problema na samom pocetku razvoja !nterneta bio je problem povezivanja udaJjenlh raeunara na novu mrezu. Privatne telefonske [inije bile su preskupe da bi neko mogao priustiti hiljade kiJometara 21ca do nekog cenfra!nog racunara koji upravJja mrezom. Zbog toga)e od!uceno da Internet bude potpuno decentraliziran. Stvorene su regionalne rnreze po drzavama j veeim gradovima, koje su medusobno povezivane. Na taj nacin, svaki racunar indirektno moze doei do bilo kojeg drugog racunara na mreii. Isti princip odrzan je sve do danas. Stoga, Internet nije nicije vlasniStvo. Orugim rijecima, oe postoji kom~ panlja nazvana "Internet', ~oja yam omogueava pristup In1ernetu, vee- yam taj pristup omogucava neka ad mnostva kompanija (npr. TeiecQm BiH) koje- vee imaju pristup !nternetu. Kompanije koje pojedjnci~ ma nude pristup Internet-u-nB:Ztvciju se)n.teinet snabdjevaci iii provajderi (engl. Internet Provider;.

Topologije rasprostranjenih mreza su znatno sloienije, i njihovo razmatranje izlazi van okvira ovog udzbenika, pogotovo sto je za njihoyo razumijevanje neophodno razmotrlti i topologije telefonskih mreza, koje su bitan element svake rasprostranjene mreze. ReGimo ipak nekoliko osnovnih informaGija 0 putu podataka od jedne do druge telefonske uticnice. Signal od telefonske utienice putuje kablovima do najblizeg komutacijskog cvora. Komutacijski cvorovi su zapravo automatizirane telefonske centrale, ciji je zadatak da informacije pristigle ad jedne telefonske uticnice prosH jede ka drugoj. U slucaju da je ciljni telefonski pretplatnik prikljucen na isti komutacijski eyor, komutacijsl~i evor sarno prosljeduje pristigle intormacije ciljnom korisniku. U suprotnom, komutacijski evor prosljeduje pristigle informacije drugim komutacijskim 6vorovima sa kojima je povezan, tako da informacije mogu proei kroz nekoliko komutaGijskih evorova prije nego sto stignu do komutacljskog evora na koji je prik!jueen ci!jni korisnik. Komutacijski evoroVl' su organizirani hijerarhijski, u smislu da je vise loka[nih komutac1jskih cvoro'va prikljueeno na jedan mjesni komutacijski ev~r, vise mjesnih komutacijskih cvorova na jedan regiona[nl komutacijski 6vor, vise regionalnih komutadjskih cvorova na jedan drzavn! komutacijski evor, itd. Komutacijski evorovl izmedu sebe mogu bit! povezani na razne naCine, na primjer pomocu optickih kablova, ill pomocu satelita, ukoliko se radi a komutacijskim evorovima koji su veoma udaljeni jedan od drugog (npr. na dva razli6ita kontlnenta). Do sada sma razmotrili neke elemente neophadne telekomunikacione opreme koj! su potrebni za realiziranje racunarskih mreza poput modema, mretnih adaptera, ISDN adaptera, koncentratora i prenosnih medija. Recimo jos nekoliko rijeei a 05taloj telekomunikacionoj opremi koja se cesto susreee u racunarskim mreiama. Vee smo rekli da je sredisnji uredaj u svakoj zvjezdastoj mrezi koncentrator (hab). Osnovni nedostatak koncentratora je u tome sto on informacije pristigle od jednog racunara salje svim ostalim raeunarima kO!i su na njega prikljuceni, bez obzira kome su - pristigle inlormacije zaista namijenjene. U slueaju velikog broja prikljucenih racunara ovo moze bit! jako neefikasn.o. postoji inteligentniji uredaj od koncentratora, nazvan skretnicar (engl. switch). Za Ya:z;likD od_Koncentratora, skretnicar analizira primljeni paket Informacija sa cHjem da utvrdi kome su one namijenje:nE!, i naken toga, salje Rakennformacija samo onom racunaru koj! te informacije zaista j-traz~--U_s'luepj~liima kada se LAN mreza prikljucuje na WAN mrezu, potrebno je korlstiti i usmjerj~ ~a_cili."'rfer(e_ngL touter). To~e uredaj koji omogueava razmjenu podataka izmedu razlieitih tipova mreia. "~$mjerivaci zapmvo prebacuju mrezne podatke lz jednog dijela mreie u drugi. Usmjeriva6l -su _dobJlj>svoje "ime z?hvaljujuei svojoj sposobnosti da odrede u kojem pravcu treba prosjijediti __)odatk~" da bJ_ o~! na bezbjedan naein dasli do svog cilja.

Internet se razvlja nevjerovatno~~,briinom-: :J-B86. gQdine u,lnternet mrezu bilo je povezano oko 10000 racunara, ddk se sveg-a~ 1U_goqjna ka~nije broj raunara povezanih u Internet procjenjuje na preko 6 miliona. Danas niko ne moze.d~prpcrjenikoli,ko je tacno ra6unara povezano u ovu mrezu, ali se zna da je preko 30% -stan()~m!stva SjStlinjen-lh Ameritkih- Orzava u potpunostl ovisna ad upotrebe Intemeta. Internet danas u 1o!ikoj 'mjeN_ utjec~ lJa-poslovni, drustveni i svakodnevni zivot !judi da se smatra jednim od n-ajyecih ..tenomena..dvade~etog vijeka. U naso] zem!j! Internet se prvi put po6eo spominjati 1993. gbdine (stvarni pristup tntemetu omogucen je 3 godine kasnije), da bi svega 10 godina kasnije zivot bez lnterneta post~ nezamisliv za veliki broj stanovnika nase zemlje.
95

94

rvlada Internet kao mreza postoji vee tridesetak godina, tek je u posljednjih desetak godina dobio danasnji izg\ed. Ono sto je Internetu na pocetku nedostajalo bio je dobar korisnicki interfejs. U prvo vrijeme, nije postojalo standardizirano okrutenje kOje bi omoguCilo jednoznacan pristup' do svih usluga na lnternetu. Pored toga, sva komunikacija se ostvarivala putem komandne linije. Karisnici nisu znali (iii nisu htjeli da nauee). neophodne naredbe, koje su bile dosta slozene, i kojih je nekad bilo potrebno upisati na desetine da bi se pristupilo zeljenim podaclma. Stoga je 1989. godine Tim Berners Lee iz Evropskog laboratorija za nuklearnu fiziku CERN, predlozio jednoobrazan sistem za pristup podacima na Internetu. Novi sistem zasnivao se na konceptu nazvanom hipertekst, kOj! je krajnje jednostavan, a 0 kojem cerna detaljno govoriti u poglavlju 2.6. Cijela ideja zasnivala se na postajanju ozna6enih mjesta u dokumentima nazvanih hiperveze iii h;perlinkovi, preko kojih je omogucen brz prelaz iz jednog dokumenta u drugi, bez potrebe za zadavanjem ikakvih posebnih naredbi. Projekat je tada bio namijenjen sarno nauenicima, jer 1989. godine jos uvijek nije bilo malih (kuenih) korisnika sa pristupom na Internet.
Intern~t

Pitanja i zadacl
1. Sta su racunarske mreze?

2. Na koj] naein se izrazava brzina prenosa podataka? 3. Sta je kompresija podataka i na koj] naein se postize?
4< Koja je razlika izmedu serijskog i paralelnog prenosa? Koj] je naein prenosa efikasniji?
5. Sta je sinhroni, a sta asinhroni pre nos podataka?

Iz Bernersovog projekta, krajem 1990. godine izrastao je projekat pod nazivom World Wide Web (iii skraceno WWW). Prve verzije WWW-a radUe su isklju6ivo u tekstualnom okruzenju, da bi se poeetkom 1993, godine u WWWpoteladodavatiigrafika. WWWjedanasubjedljivonaJrasprostranjenija usluga koja se nudi putem Intemeta. WWWse zapravo sastoji ad nepreglednog broja hipertekstualnih dokumenata (nazvanih Web stranice) koji su medusobno povezani putem hiperlinkova. Ove dokumente kreiraJu i medusobno povezuju, kako razne organizacije siram sVijeta, tako j pojedinci. I vi mazete kreirati svoju Web stranicu i uvezati je u WWWsistem (preciznije, izradenu stranicu morate poslatl nekoj organizaciji koja ce vasu stranicu uvezati u WWW, osim ukoliko vas racunar nije ujedno i posluzitelj u mrezi, kada to uvezivanje mozete obaviti i sami). 0 WWW-u cemo detaljnije govoriti kada budemo govorlli 0 multimediji i ra6unarsklm komunikacijama (poglavlja 2.6 i 2.7). Pored WWW-a, Internet nudi i mnostvo drugih usluga. Najvise koristene ostale usluge koje nudi Internet su elektronicka posta (eng!. E~maf~ i caskanje {engl. chaQ. Elektronicka posta je sistem razmjene poruka izmedu udaljenih korisnika, sli6no obicnoj posti, samo sto se obavlja neuporedivo brze. Prilikom slanja elektroniCke poste, primalac poruke ne mora biti prisutan kod racunara, nego primljenu' poruku maze procitati kasnije, kad god pristupi sistemu elektronieke poste. Za razliku od e\ektronicke paste, Caskanje je oblik direktnog elektroniekog komuniciranja, slienog obitnom razgovoru, koji zahtijeva da svi sagovornicl u ista vrijeme budu prisutni kraj racunara.

6. Koja je dominantna komunikaciona mreza u svijetu? 7. Sta je modulacija? 8. 8ta je modem i kakve vrste modema postoje? 9. Sta je telefaks i kako rade telefaks uredaji? 10. Kakva je razlika izmedu LAN i WAN mreza? 11. cemu sluz] mretni server? 12. Kakva je razlika izmec1u javnih i privatnih telefonskih mreza? 13. Sta je peer-to-peer mreza? 14. Sta su ISDN j ADSL mreze? 15. Sta su virtualne, a sta ATM mreie? 16. SIa su terminalske mreze i kada se koriste? 17. Opisite topologije lokalnih mreza. 18. Sta je Ethernet? 19. Kakve vrste prenosnih medija se koriste u lokalnim mrezama? 20. Sta su komutacijski cvorovi? 21. cemu s!uze koncentrator, skretnicar i usmjerivac? 22. Sia je Internet i kako je nastao? 23. Sta je WWW servis? 24. Koje jos usluge Interneta osim WWW seIVisa poznajete?

o na6inu povezivanja na Internet, uslugama koje on nudi, i naCinu koristenja usluga !nterneta, detaljnije cemo govoriti u poglavlju 2.7.

96

97

1.7 RJESAVANJE PROBLEMA UZ POMOC FlACUNARA


1.7.1 Uvod u problemaliku rjesavanja problema
U poglavlju 1.5, upoznali sma se sa aplikativnim softverom, kojl je, kao sto vee znamo, nami* jenjen za rjesavanje stvarnih problema sa Kojima S8 susrece korisnik. Stoga je pIVi korak koji de poduzeti korisnik racunara, kada se susretne sa nekim prakticnim probJemom, potraga za aplikativnim softverom koji rjesava taj problem. Medutlm, ne maze S8 ocekivati da postoji napisan apHkativni softver za svaki problem sa kojim se korisnik moze susresti. Konacno, ni aplikativni sottver ne postojl ad postanka svijeta, nego je i taj softver morao neko napisati. Zbog toga je neophodno upaznati S8, barem u elementarnim okvirima, sa metodologijom rjesavanja problema uz pomo6 ratunara, sto je osnovni preduvjet za pisanje aplikativnog softvera. 0 pisanju programa detalino cemo govoriti u treeem dijelu ovog udzbenika. Danas je situacija za korisnika racunara mnogo povoljnija nego prije dvadesetak godina. Autor ovog udzbenika se sjeea da je u njegovim srednjoskolskim danima (prije otprilike dvadesetak godina) aplikativnog softvera bilo veoma malo, taka da je korisnik za veCinu problema sa kOjima se susretao morao da pise programe'sam. Drugim rije6ima, gotovo svaki korisnik racunara morao je da zna programjranje (odnosno, postupak pisanja programa za ratunar). Stoga je u to vrijeme bilo malo karisnika ratunara, pa su ratunari dozivljavani kao neke misteriozne sprave sa kojima znaju rukovati samo vrhunski nautniei. Danas se situacija drastitna promijenila, jer za rjesavanje ogromnog broja stvamih problema vee pastoje gotovi vrhunski programi kOje su napisali vrhunski strutnjact, i koji su krajnje jednostavni za koristenje. Stoga, veeina !judi koji danas korlste ratunar ne pisu svoje vlastite programe. Umjesto toga, ani koriste gotove programe koji se mogu kupiti na trzistu (oblcno pohranjenl na diskovima), ili programe koje su napisali profesion,alni programeri u nji~ hovoj radnoj organizaciji. Iz izloienog moglo bi se pogresno zakljuciti da danas poznavanje programiranja nije potrebno niJhme oSim manjem broju ra6unarskih speeijalista. Taj zakljutak je pogresan zbog nekoliko razlogao Prvo, karisnici koji poznaju programiranje mnogo ee bolje poznavati principe rada ratunara i sta se od racunara moze, a sta ne maze o6ekivati. Stoga 6e takvi korisnici mnogo efikasnije koristiti racunar od korisnika koji ne poznaju programiranje i neee ad njega otekivati nemoguGe stvari. to rugo, !judi koji narucuju izradu softvera ad profesiona!nih programera 6esto postavljaju sasvim ~nerealistitna otekivanja ad softvera iz prostog razloga sto ne znaju sta se moze, a sta ne maze izvesti. Ovi prob,lemi bi se veorna smanjili kada bi narut10ci softvera (ovdje prvenstveno mislimo na poslovne IJude, rukovodioce preduzeea itd.) poznavali barem elementarne osnove programiranja, sto bi omogu6i10 postavljanje realistitnijih zahtjeva, kao i saradnju narudoca programa sa pro~ gramerima u toku izrade projekta, sto bi dovelo do krajnjeg programa koji je mnogo prilagodeniji potrebamanarutioca. trre6e, ~orisnik 6e se prije iii kasnije susresti sa nekim problemom za koji ne, postoji, adekva{an apHkativni-OOtrver, a koji je dovoljno jednostavan da korisnik maze sam '-. sas1aviti program za rjei'?avanje tog problema, Kona6no, danas je pragramiranje mnogo lakse nego sto j~:-!;iil6 nekada. Danas postoje speeijalizirani programski jezici koji su po'sebrio prilagodenl rlesav_a:nfU n~ke ".Specificne klase problema, ali ko]i su zbog toga mnogo jednostavniji za razumije'-"' v~t1je~~i.-0p.~~re.bU .Od prog~amskih jezika opee- nam j ene' .. f[~:Sit!Q..ak pis'anla programa, sve dok se tovjek ne navikne na njega, nile jednostavan zadg.tak. " -.LQgik~ .kojom ,radl ratunar gotovo da nema nista zajednitko sa logikom Ijudskog razmisljanja. Kom-uniKacija izmedu covjeka i racunara nije ni izdaleka taka prirodna kao komunikacija izmedu !juctiA~jlJd{ cesto-mogu da bez veCih problema razumiju nepotpune i nedovoljno precizne informacije, ,1 da-djeluju u skladu -sa njima1lMedutim, ratunari uvijek izvrsavaju sarno ana sto im je naredeno, ni nianje ni vise,ad toga. RaeJnar nije sposoban da razmislja i da zak!jucuje sta je korisnik htio'da

;{

kaze. testa se kate da je programiranje tesko zbog Cfnjeniee da racunar ne radi ono sto mi telimo da on uradi, nego ono sto smo mu rekli da treba da uradi. Nairne, mnogi Ijudi znaju tacno Ma hoee, ali ne znaju kako da to precizno iSkazu.1lnteresantno je da je nekim Ijudima programiranje izuzetno jednostavan i logf6an posao, dok s druge strane neki Ijudi nikada ne uspijevaju da savlada~ ju nitl najosnovnlje programerske, tehnike. Jednostavno, ti !judi imaju nedostatak sposobnosti preciznog razmisljanja i jasnog iskazivanja misll, kao sto neki Ijudi nemaju dara za slikarstvo iii muziku. Zbog toga se programiranje smatra jednom ,od disciplina za koje je neophodan odredeni talenat. Razmotrimo na jednom primjeru tinjenicu da ratunari, za razliku od Ijudi, izvrsavaju samo one sto je ekspl1citno naredeno. Pretpostavimo da u nekom reeeptu za kuhanje tovjek na kraju reeepta procita da lonac u koji je prethodno s!avio neophodne sastojke treba staviti na stednjak, i da se sa tom informacijom recept zavrsava. Covjek bi sigurno stavio lonae na grijacu p/ocu stednjaka, i ukljucio slednjak (preciznije,' odgovarajucu plocu na stednjaku). Robot~kuhar koji bi radio po ponudenom reeeptu stavio bi lonac negdje na,stednjak (ne nuzno na grija6u plocu) nakon tega bi se zallstavio, jer je dosao do kraja recepta (programa). Zbog 6ega robot ne bi slavio lonae upravo na plotu i ukljucio plotu kada se to podrazumijeva? Odgovor je jednostavan: te Cinjenice ne pisu u reeeptu, a masine ne mogu nista da podrazumijevaju. Pretpostavimo dalje da je neki saljivdtija u recept ubacio informaciju da u lonac treba ubaciti pola kilograma eksera. Svaki tovjek koji bi titao ovakav recept sigurno bi ovu informaciju shvatio kao salu (vjerovatno inspirisanu bosanskom narodnom pripovijetkom "klin~torba"), i ignorirao bi primljenu informaeiju. Robot-kuhar U ovakvoj naredbi ne bi primijetlo nista cudno j izvrsio bi je bez pogovora. Upravo je zbog ave cinjeniee racunare moguce program irati da rade destruktivne stvari. Racunaru naredbe koje nalazu brisanje svih podataka sa hard diska iii upisivanje besmislenog sadrzaja u Flash 810S nisu nisla manje logicne od naredbi kojima se trazi ratunanje koliko je 2+2. Nazalost, ovu cinjenicu obi lata zloupotrebljavaju tvorci ratunarskih virusa, Posmatrano povrsno, pisanje programa se sasto]! samo ad zadavanja niza naredbi, koje posmatrane same za sebe obi6no nisu komplicirane, tako da programiranje mote izgledati kao jednos~ tavan posao. Jednom su prilikom pitall jednog 6uvenog ameritkog pijanistu da Il je tesko svirati ktavir. Njegov odgovor je glaslo: "Ne, sasvim je jednostavno: sve slO trebate uraditi je pritisnuti pravu tipku u pravo vrijeme.", SUtno, programiranje zahtijeva da se "prava naredba upotrijebi na pravom mjestu". Medutim, upravo tu nastaje problem, Racunari, suprotno onome sto se obicno misli, ne poznaju vearna veliki braj raz/icitih naredbi. Naredbe tipa "rijesi jednatinu" iii "naertaj slona na ekranu" ratunar, sam po sebi, ne poznaje. Racunari poznaju iskljucivo mnogo primitivnije naredbe, pa je zahtjeve korisnika neophodno preformulirati koristeei iskljutivo takve naredbe. Posl:upak se moze grubo uporediti sa pokusajem objasnjavanja sfa je nuldearna elektrana petogodisnjem djetetu (koje posjeduje prilitno ogranicen rjetnik, i nikakvo predznanje 0 toj materiji). Dalji problemi sa kojima se susrecu Ijudi koji pisu programe je neophodnast preciznog defini ranja svih neophodnfh kora~a; kao i neophodnost vodenja ratuna 0 svim detaljima problema, 8to nUe taka jednostavno (mada se, v'remenom;_ C6vjek navikne na takav natin razmisljanja), Zbog toga je prije samog postupka pisanj~ p(~ram.a potrebho temeijito razmotriti problem koji se rjesava, uk!jucujuei sve njegove ~peclficnosti. l;.!a,kQn' toga je potr-ebno razraditi metodologiju rjesavanja pos~ matranog problema, neovisno 00 toga.d~ s,? problem rjesavati na ra6unaru iii ne. Tek kada je u detalje razradena strategij~ _~jesa~_~nj~_ probl-ema, -pristupa se pisanju programa. Prilikom razvoja programa, najteza fe upravo~ova P.f\l~,. prlpEemria faza, koju nazlvamo i faza rjesavanja problema. Druga faza, u kojoj se raz(adena~strate.gJif( rje.savanja pretvara u konkretan program, naziva se faza implementacije, i 0t1a je, n.alqesc_E: prjliCtiq rut~nski posao uz pretpostavku da je strategija rjesavanja problema obavljena- dobro:_ Velika_ gres~a. KCiju testo prave pocetnici u programiranju je sto pokusavaju da odman pii;(,tprograf!'.. bel. prethodne razrade problema, Na takav natin programe mogu pisati samo-jskusni program"E!ri,koji su u stanju da razradu problema obavljaju uporedo sa pisanjern programa. Medutim, j u to!f1_ slucaja je sasvim moguee da de se u programu pojaviti veliki

n:te

99

propusti, kojih ne bi bilo da su svi aspekti problema razmotreni prije pisanja prve instrukeije programa, Pisanje programa bez prethodne razrade problema sHena je zidanju kuce bez prethodno pripremljenih skiea i nacrta, iii gradnji nekog elektronickog uredaja (npr: televizora) bez prethodno pripremljenih shema veza i spojeva, itd,

povrsina, SV! problemi tipa "odrediti vrijednosti nekih velleina taka da neke druge velleine poprime zadane vrijednasti" uvijek se smatraju inverznim problemima, Tako je, na primjer, problem nalaienja vri~ jednosti izraza 3.x + 5, ukoliko je poznato da je X : : : 4, direktni problem, dok je problem odredivanja vrijednosti nepoznate X, ~kolikO je poznato da je vrijednost izraza 3.x + 5 jednaka 23, inverzni problem. Problemi za dokazivanje mogu biti posebno tesk! za rjesavanje, pogotovo ukoliko ne postoji jasna ldeja kOja ukazuje na postupak njihovog rjesavanja, Na primjer, problem "Ispitati da Ii se na svakoj geqgrafskoj karti regije mogu obojiti pomocu sarno cetiri razlicite boje tako da ne postoje dvljs susjedne regije kOje su obojene istom bojom," postavljen je prije vise od 200 godina, a uspjesno je rijesen (potvrdnim odgovorom) tek prije nekoliko godina,

1.7.2 Tipovi problema


Prije nego sto razmotrimo metodologiju rjesavanja problema, moramo reei nekoliko osnovnih stvari 0 tipovima problema sa kojima se mozemo susrestL Osnovnu klasifikaeiju problema prije vise od 2000, godina dao je Euklid, koji je sve problema podijelio u dva.tipa: probleme za nalazenje rjesenja (iii probleme racunanja) i probleme za dokaz;vanje (iii probleme odlu(;ivanja). U problem/rna za nalazenje rjesenja na osnovu unaprijed paznatih poctataka i uvjeta koje trebaju zadovoljavati ovi podaci trebamo da odredimo vrijednosti nekih nepoznatih velieina-. 8 druge strane, kod problema za dokaz!vanje trebamo da ispltamo da Ii je neko tvrdenje tacna, odnosno da Ii odredeni podaci zadovoljavaju zadane uVjete. Odgovor koj! se oeekuje kao rjesenje problema zei. dokaziva~ nje uvijek je tipa "ON' iii "NE". N~ primjer, problem "Naei duzinu hipotenuze trougla Gije katete imaju poznate duzine a i b." je primjer problema za nalazenje rjesenja, dok je primjer problema za dokazivanje "Ispitati da Ii je trougao sa zadanim dutinama stranica a, b i c pravougli trougao.", Problemi za nalazenje rjesenja i dokazivanje ne moraju biti matematski formulirani. Na primjer, problem tipa "Naei treGi padez mnozine od rijeel kupus." je problem za nalazenje, a problem "Ispitati da Ii se receniea Ana voll Milovana cita isto sa pocetka i kraja:' predstavlja problem za dokazivanje. Kod svih problema razlikujemo ulaz, koji predstav1ja podatke koji su poznati prije rjesavanja problema, i iziaz, koji predstavlja informaciju koju ocekujemo da bismo problem smatrall rijesenim. Na primjer, u prethodnim prlmjerima problema, ulazi su bil! redom duzine kateta a 1h, duzine straniea (1, b i c, rijee "kupus', odnosno recenica "Ana voli Mifovami'. Kod svih problema za dokazivanje izlaz je iskljucivo odgovor "DA" iii "NE", dok kod problema za na1atenje rjesenja izlazi mogu biti raznovrsn1. Na primjer, u prethodna dva primjera problema za nalazenje izlazi su redom trazena duzina hipotenuze c, kao i trazeni treei padez mnotine od rijecH "kupus" (odnosno rijee "kupusima'). Pored ulaza i izlaza, kod problema za nalazenje rjesenja mogu se zadati i pocetni uvjeti koji moraju biti ispunjeni da bi problem uopce imao smisla. Na primjer, za problem nalazenja hipotenuze trougla, poeetn! uvjeti mogu biti a > 0 i b > 0, jer u suprotnom problem nema smisla (ne postoji trougao sa negativnim duzinama straniea). Problemi za nalazenje rjesenja mogu se podijeliti na direktne i inverzne probJeme, Kod direk~ tnih problema put od ulaza do izlaza Je iii jasan iz same formulaeije problema, iii se smatra poznatim od ranije. Na primjer, problem naiaienja povrsine kruga sa zadanim polupreenikom r predstavlja direktni problem, jer se formula P = ,.:In:. za nalazenje povrsine kruga poznatog poluprecnika smatra dobro poznatom formulom. 8 druge ~trane, kod in.verznih problema, jasno je samo sta zelimo da dobijemo, dok postupak nalazenja rjesenla nije oCigledan. Inverzni problem! su dobili svoje ime zbog cinjenice da tipicno nastaju zamjenom ulpge,.uJaza i. izlaza u direktnim problemima. Na primjer, problem nalazenja poluprecnika kruga ,'clja'je povrSina.P zadana predstavlja inverzni problem, koji je nastao iz prethodnog direktnog problema iamjenolIl uloge !,llaza i izlaza. Inverzni problemi su, osim u trivijalnim slueajevima (peput prethe~t!9g. prir1}jt?r~!2J.: rjesava nalatenjem pozitivnog rjesenja jednatine P =: r'it po nepoznatoj r, kOje gfasi.f- :;;:,.VP{rt)" uglavnom teski za rjesavanje. Natalost, stvarnost covjeku namece uglavnom potrebu ~a"~~~.savanjem inv~rznih problema.

1.7.3 Metodologija rjesalfanja problema


Mnogi filozoti, poput Descartesa, Leibniza i drugih, smatrall su da mora postojati neka unlverzalna metodologija rjesavanja problema, koja bi se mogla mehani6ki prlmjenjivati na sve tipove problema. Nazalost, polovinom proslog vijeka, zahvaljuju6i preteino radovima Alana Turinga, otkriveno je da ovakva univerzalna metodologija ne postoji, Medutim, u pokusaju da pronadu ovu univerzalnu metodologiju, mnogi naucnici su dosli do vaznih djelimicnih rjesenja, od kojih su mnoga korisna upravo u oblasti informatike i racunarske tehnike, Veoma korisne upute za prlstup metodologiji rjesavanja problema dao je poznati madarski matematicar i vrhunski metodicar Georg polya. Po njegovim uputama, globalna strategija rjesava~ nja problema odvija se u cetlri etape: razumijevanje problema, mzrada plana akcija, realizacija akClla i osvrt na rjesenje. U nastavku cemo detaU'nfje'razmotriti ave cetiri etape.
U etapi razumijevanja problema, na prvom mjestu je potrebno jasno definiratf problem, tj, utvrditl sta se zapravo traii. Bez jasne definicije problema, say daljl trud je uzaludan. Potrebno je sag1edati sta su ulazi, izlazl i potetni uvjeti problema. Nakan sto je problem jasno definiran, bitno je utvrditi kakve su veze izmedu ulaznih i izlaznih velieJna, sto testo nije jednostavan zadatak. Veoma cesto je problem takavda veze izmedu ulaznih i lzlaznih velitina'nisu vidljive na prvl pogled. U tom slucaju, potrebno je problem razbiti na vise manjih potproblema, i pokusati analizirati svaki od njih. Postupak razbijanja po potrebi treba obavljati vise puta, sve dok se ne dobiju problemi kod kojih su veze izmedu u!aznih i izlaznih ventina jasne. Sve dok se etapa razumijevanja problema ne obavi kako treba, ne treba ni pomis!jatl na druge etape rjesavanja problema. Vazno je da znamo da ukoliko mi kao inte!igentna biea ne razumijemo sustinu nekog problema, sigurno je neoe razumjetl nf racunar, tako da od njega ne6emo imati nikakvu korist. Ovo ne treba pogresno protumacitL Da bi se neki problem mogao rijesiti pomocu racunara, barem neki covjek ovaj problem mora shvatiti u potpunosti (to ne moramo nuzno biti, mi), Problemi ciju sustinu nl jedan covjek ne razumije, ne mogu se rjesavati nitl pomocu racunara!

l,se

Pitanje koji je problem direktnr; koJ!inverzni,.predstaYlja -filozofsko pitan/e na' koje nije uvijek laka dati adgovor. Na primjer, moglr b,ismo formulu rd:~ p[qglasiti "dobra poznatom formulom" i problem nalazenja poluprecnika kruga poznate povrsinesmatrati direktnim problemom. Ipak, intuitivno je jasno da je ovo inverzni .problem, zbog Clnjenice da je'-poluprecnik mnogo elementarnije svojstvo kruga nego
100

Najteza etapa u rjesavanju problema je razrada plana akeija. Situacija je krajnje jednostavna ukoliko je problem koji se rjesava odranije poznat Na prirnjer, problem na\a2:~nja fJovrsine .kruga zadanog poluprecnika ill jedan ucenik srednje skole neee'smatrati tesklm, je"r'se sa formulom p := r~n kOja predstavlja kljuc Za rjesavanje ovog problema ve'c susreo mnogo puts, Mea~tim,.'nekorne ko se nikada nije, susreo sa ovom formulom, isti problem bi bio jako tezak, i mnogo",bi,se .tr1jga moralo ulozlti za otkrlvanje ove formule. 8toga, prilikom razrade plana akcija!:-prvi.korak'~Ltrebao da_bude provjel'8 da Ii je I'jesenje poznato odranije, da bi se izbjeglo "ponov!J.o' otk'r[vanje ~op.Je vode": Nazalost~ u praksi se' cesto desava da se mnogo truda ulozi da se otkrlje. rjese~nekog problema~ koje je ad ranije poznato, sarno sto rjesavaei problema toga nisu- bil~ s:vjesni. .' Za plan akcija mozemo re6i da je razraden tek kada su detaljno d~finirant'--svL koraor (ukl}ucujuei i tacan redoslijed njihovog izvodenja) koje je potrebno preduzeti nad ulaznl!il'podacima da bf se
101

dobili zeljeni izlazni podacL Na primjer, plan akclja "Pronaei najveei braj u spisku od 100 brojeva na papiru.". ne moze se smatrati razradenim planom akcija, jer iz ovog plana nije jasan postupak kako prona! taj najveCi bra]. Oa bismo formirali razradeni plan akcija, moramo razmisliti kako bismo mi taj problem rijesm ukoliko bi nam ga neko postavio. Nakon malo razmisljanja, mogli bismo doei do sljedeeeg razradenog plana akcija:
~l'isku. Zatim posmatramo sl'aki s{;edeCi braj u !>pisku. (Jkoliko ustanol'inw daje posmatrani broj I'ce; od zapamcellog broja, umjesto do tada :,apalllcenog broja pamtilllo pOS1Jlafrani broj. Postupak ponal'ljamo dok ne pregiedamu Sl'e brojeve u spisku. Posljednji-bruj koji smo zapamtili predstaJ'?ia "pral'o trazelli najJ'eCi broj.

Zapamtbno prvi braj no

metodom grube site (engL brute force solving), Za mnoge problema veama je lako sastaviti postupak rjesavanja metodom grube sile, Medulim, ovakvo rjesavanje za veCinu prakticnih problema traje nedopustivo dugo cak i ukoliko se za rjesavanje koristi racunar, pogotovo ukoliko je opseg u kojem se maze kretati trazena veli6lna velik, Zbog toga, prvo treba razmotriti da Ii se nekako maze suziti opseg testiranja. U nasem primjeru, posto je velicina X pozitivna, produkt X . (X - 2000) mote blti jednak pozitivnom braju 5135529 samo ukoliko je j X - 2000 pozitivan broj, odnosno ukoliko je X > 2000. Samim tim, brojeve u opsegu ad 1 do 2000 uopee ne moramo testlrati. U ovom slucaju je osvrt na rjesenje doveo do znatnog poboljsanja efikasnosti postupka. Medutim, ovo ni izdaleka nije najbolji metod da se rijes! ovaj problem. Pokazlmo kako se ovaj problem moze rijesiti uz malo dosjetki i poznavanja elementarne matematike svega ~ nekoliko koraka:

Razrada plana akcija je postupak ko]i trazi izvjesnu vjestinu. Nesumnjivo- je da bi svaki covjek normalne inteligencije znao da pronade najveei bra] u zadanom spisku brojeva, ali je iznenadujuce koliki procenat Ijudi nije u stanju da jasno i precizno opise postLipak kojim su nasli taj bro]. Veoma cesto ~esavanje nekog problema ukaze i na nacin rjesavanja nekih drugih problema. Na prlmjer", nakon sto smo razradili postupak nalazenja najveceg broja u spisku, jasno je da se sHean postupak maze primijeniti i na nalazenje najmanjeg broja u spisku. Ovakvo rjesavanje problema naziva se rjesavanje po analogiji. Nakon razrade plana akcija, slljedi etapa realfzaclj'e akc/j'a. U ovoj etapi je potrebno da razluCimo da Ii nam je za problem potreban racunar iii ne. Na primjer, za nalazenje povrsine kruga zadanog poluprecnika racunar nam nije potreban: obican dzepni kalkuiator dobro ee pos!uziti za isti posao, Medutim, ukoliko)e potrebno da saberemo redprocne vrijednosti svih prirodnih brojeva od 1 do 1000 (tj. da izracunamo zbir 1/1 + 1/2 + 1/3 + ". + 1/1000), racunar ce nam biti od velike koristi, jer bi nam za ovaj posao uz pomoc dzepnog kalkulatora treba!o nekoliko sati, a uz pomoo racunara svega nekoliko minuta (u ovo vrijeme je ukljuceno i vrijeme potrebno da napisemo program za rjesavanje ovog problema). Ukoliko smo zaklJuti!i da nam za rjesavanje problema ne treba racunar, prelazimo neposredno na izvrsenje planiranih akcija, dok se u slucaju problema za dje nam rjesavanje treba ratunar, realizacija akcija svodi na prevodenje razradenog plana akcija u program za racunar, a cemu cemo kasnije detaljnije govoriti. Konacno, nakon realizacije akcija, veoma bitna etapa je osvrt na rjesenje (odnosno "pogled unazad"). Veoma cesta siluacija je da nakon sto nademo neko rjesenje problema, detaljnija analiza pokazuje da se problem mogao rijesiti znatno efikasnije (P61ya je poznat po tvrdnji da je metodoloski mnogo korisnije jedan lsti problem rijesiti na 10 razlicitih nacina, nego 10 razlicitih problema na 1st! nacin). Na primjer, posmatrajmo problem nalazenja zbira svih prirodnlh brojeva od 1 do 1000 (tj. zbira 1 + 2 + 3 + ... + 1000). Na prv! pogled, za rjesavanje ovog problema treba nam racu'nar, jer bi rjesavanje uz pomoc dzepnog kalkulatora ill papira i olovke trajalo predugo. Meduti[l1, uz malo razmisljanja, problem se mote rijesfti napamet. Ukoliko saberemo prv]"i posljednjl brpj, zatim drugi i pretposljednji broi, zatim treGi bro] i treGi braj odozada, itd. primijeticemo da se uvijek dobija i$ti rezultat 1001 (1 + 1000 = 1001, 2 + 999 = 1001, 3 + 998 = 1001, itd;), KakoJlVakvih parovll ima 1000/2;:::: 500, ocigledno je ukupni zbir 1001 500;:::: 500500; Je'dnostavhp, zar~-.he?'Moguee je avo rjesenje uopciti, i zakljuCiti da je zbir svih prirodnih brojeva od'1 do),T jednak:"N' '.,(N + 1}-'/ 2. Ovorjesenje otkrio je cuveni matematicar Karl Friedrich Gauss JOB dok je, bio"!.lC_90i.K-psnov'6e sKole.Osvrt na rjesenje_cesto pomaze da se mnogi postupci rjesavanja nijim. Na -primjer, posmatrajmo sljedeCi problem: "Naci priropan pr9j. X h:.mediTfj 5000 -koji imaosobinu da je njegov proizvod sa istim brojem umanjenim za 2000 Jednak broJu 5135529.". Prvo rjesenje koje se odmah namece je da ispitujemo jedan po jedan broj-X 1Z opse,ga od i_do 5000, ida ispitujemo da Ii je proizvod X . (X - 2000) jednak 5135529. Rjesavanje pr(koje-rrj se testiraju sye moguee dozvoljene kombinacije nekih veliCina. u potraz! za rjesenjem 'Daziva se rjesavanje 102

x . (X X'
(X X

2000) = 5135529 (sada dodajemo 10002 na obje ,\'f!'ane)


(da dobijemo kvudrut ruzlike)

X' - 2000 X = 5135529 X'- 2 X 1000" 5135529 1000)' = 6135529 (X -1000)' ".2477' 1000 = 2477 iii X --1000 = -2477 2, X 1000 + 10002 = 5135529 + 10002 = 6135529

(ia j'Y6135529 = 2477)


(iz N '" 8' slijedi A '" B ili A '" -B)

X=1000+2477 iii X=1000-2477


X = 3477 iii X = -1477

Braj X;:::: -1477 ne pripada trazenom opsegu, taka da je jedino rjesenje problema X;:::: 3477. Ovim smo problem rijesili bez primjene grube sile. Nazalost, ne postoji nikakva univerzalna metodologija koja pomaze da se utvrdi kako bi se neki problem mogao rijesiti bez prirnjene grube sl1e. Za mnoge probleme sa kojima se racunarska nauka susrece, poznata su, nazalost, samo rjesenja primjenom grube sile. Medutim, ovakva rjesenja treba izbjegavati po svaku cijenu, jer brzinu racunara niposto ne treba precjenjivati. Postoje problemi za koje bi rjesavanje grubom silom cak i uz upotrebu najbrzih postojeoih racunara trajalo vise nego SID iznosi procijenjena starost svemira, a ko]i se inteligentnijim postupkom bez primjene grube sile mogu rijesitl za svega nekoliko sekundi! Nazalost, takya inteligentna rjesenja obicno nije nimalo jednestavno pronaci. Kakvi sve cudni faktori mogu utjecati na rjesavanje problema najbolje je demonstrirao upravo Georg Po/ya svejim cuvenim problemom lovea i medvjeda ko]i glasi:

Lovae izlazi iz svog satora, odlazi jedan kilometar na Jug, zarim jedlln kilomeiar na istok. U tom trenutku ugleda medvjeda i ubije gao Nakon toga, lovac odlazijedan kilometar na ~jeJ'el' i ugleda neposredno ispred sebe spaj sator. Koje je boje ubijelli med}jcd?
Na prvi pogled, problem je potpuno besmislen, jer izgleda da navedenl podaci nemaju apsolut~ no nikakve veze sa bojom medvjeda. Medutim, ukoliko pazljivo procitamo problem, primijeticemojednu prividnu nelogicnost, u kojej se upravo krije rjesenje problema. Obratimo paznju na cinjenicuda se lovae vratio ispred svog satora nakon kretanja 1 kHometar na jug, zatim 1 kilometar na istok, i konacno, 1 kllometar na sjever. cini se da je cijela situadja nemoguea, S obzirom da nedostaje kretanje 1 kilometar na zapad da bi se lova~ vratio pred Syoj satar. Medutim, to bi vrijedilo kada bi zemtja bila ravna ploca. Orijentacija tipa isfok-zapad na Zemlji ostvaruje se pomoGu sistema paralela, a orijentacija tipa sjever-jug pomo6u sistema meridijana. Pri tome se paralele medusobno ne sijeku,: " dok S8 svi meridijani sastaju u dvije tacke na Zemlji: sjevernom i juznom polu. Ako malo boije,-pogledamo globus i razmislimo 0 problemu, zakljuci6emo da postejl jedno mjesto na Zemlji na kojem je kretanje opisano u problemu moguce: sjeverni pol. Zaista, kretanje na jug i sjever vode nas po 103

P:~obl~~~a u~ri~; ~nogo e~ik?~"

dva rneridijana, a kretanje na istok po jednoj od para!ela, prl cernu se oba meridijana sastaju na sjevernal!! polu. Maguei put !ovea iz opisanog scenarija prikazan je kariklrano na s!jedeeoj slid:

'

Najstariji nacin zapisivanja a!goritama je opis pojedinih koraka a!goritma govornlm jezikom, prj cemu se svakl od koraka oznacava rednim brojem od 1 nadalje. Ukoliko je potrebno da preskoCimo odredene korake prilikom realizadje algoritma (obicno pod odredenim uvjetom), iii da ponovimo odredene korake algoritma, neophodna grananja iskazujemo pomocu iskaza oblika "idi na korak n" gdje je n rednl broi koraka od kojeg izvrsavanje algoritma treba da se nastavi. Na primjer, a!goritam za rjes8vanje skupine jednacina obllka a . X ::: b (odnasno jedna61na elji smo postupak rjesavanja detaljno raz~otrijj u prethodnom primjeru), koristenjem ovog zapisa bi se mogao prikazati ovako:

Pazljivlji posm_atrac ce primijetiti da postojl jos jedna tacka na Zem!ji, koju je tete uociti, a u kojoj je takoder moguee kretanje iz opisanog scenarlja (postojanje ave tacke presueuje se u gotovo svoj Iiteraturi koja dtira ovaj problem). Ona se nalazi oko 1159 metara sjeverno od jutnog pola. Zaista, nakon jednag kilometra kretanja na jug dolazimo do tacke koja se nalazi 159 metara sjeverno od juznog pola. Kretanje na istok sa tog mjesta vodi nas po paraleli cljl je obim 2159 m sio Iznos] tacno 1 km, odnasno na tom mjestu kretanje na istok vodl nas po krugu obima 1 kilometar, tako da se nakon predenog kilometra vracamo u istu tacku. Dakle, postoje dvije tacke na lemlji na koja] je kretanje opisano u postavci problema moguce. Medutim, u blizini Juznog pola nema nikakvog zivota, pa samim tim ni medvjeda. 8toga je opisani scenario moguG sarno tacno na sjevernom potu. Zakljucujemo da se radi 0 pofarnom medvjedu, odnosno, boja medvjeda ie bijela.

1. Unesi vrijcdnosti brojeva a i b; 2. Ukoliko je a jednako nuli, idi na korak 6; 3. Pod(jeli b sa a; 4. IspiSi da je rjdenje jcdnaCil1c jedl1a/.:o izrahmflfom ko/i(\niku: 5. ldi na korak 10; 6. Ukolikoje b jednnko nuli, idi na korak 9; 7. lspi,~i dajtdnl7chw nemo rjdcnja; 8. Idi na korak 10; 9. IspW do je svaki broj x rje.fenje jedna6nc; 10. Ukoliko imajonrdnnfill(J koje treba rije.fiti, idl na korak 1.
Ovakav nacin prikaza a!goritama nazivamo prikaz sa numeriran;m koracima. Kako je ovakav naCin prikaza pri!icno nepreg!edan, razvijeni su i drugi nacini prikaza algoritama kod kojih se algoritml prikazuju graficki. Najstariji naCin grafl6kog prlkazivanja algoritama predstavlja prikaz pomocu diJagrama taka (organigrama). Dijagram toka za pretjodni algoritam prikazan je na s!jedecoj slid:

1.7.4 Pojam algoritma


Vidjeli sma da je najteta etapa u procesu rjesavanja problema razrada plana akcija. Bilo bi pozeljno kada bi se razrada plana akcija mogla prikazati u nekam formalnom zapisu, koji bi kasnije ornogu6!o jednostavniju rea!izaclju plana akcija. Za tu svrhu uveden je pojam algodtma. Nije !ako tacno definirati 8ta je zapravo a!goritam. Dovoijno jednostavna i ujedno davoljno precizna definicija g!as! ovako:

Algnritamje svaldjasan, precizan i nedvasfIli.<;icn urc(feni niz koraka, kop It konacnmn vre menu I'odf do rjel~e1fja nelwg problema uko.liko problem ima 'rje.fenjc, odnosllo II kOl1ab1Ofn l'rC111enU daje odgovor da problem nema'fje!fenja uknliko problem Ilona fjeSC1~ia.
Sarna rijec atgoritam potice od nepravilnog izgovaranja pos!jednje rijeci u imenu srednjovjekovnag perzijskog matematicara eije je puna ime Abu Ja'far Mohammed ibn MUSE! afKhowarizmi. Smatra se da je on prvi formulirao jasne i precizne postupke (odnosno a!goritme) za obavljanje cetiri osnovne racunske operadje pomocu papka i olovke. Prilikom formiranja algoritama ne smiju ostat! nikakve nejasnoce iii nepredznosti. Na primjer, neka je dat problem koji g!as! "Naci vrijednost x takvu da je a . x ::: b.". !z postav!jenog problema moglo bi se brzopleto zakljuclti da rjesenje problema glasl "Trazena vrijednost x jednaka je bfa.". Medutim, ova rjesenje ie nepotpuno, jer ne govori sta raditi ukoliko je a == O. Naime, nulom se ne maze dijeliti. U slucaju da je a == 0, problem se svodi na na!azenje vrijednosti x takve da je 0 . x == b. Odavde zak!jucujemo da uko!iko je b 0, tada problem nema rjesenja, jer nula pomnotena bilo kojim brojem daje ponovo nu!u kao rezu!tat Medutim, ukoliko je i b _== 0, tada se problem svodi na nalazenje vrijednosti x takve da je 0 . x '" O. U tom s!ucaju, svaki braj x predstavlja rjesenje problema. A!goritam za 1esavanje opisanog problema treba da predvidi postupke za sve op!sane slucajeve. Postoje razni nacini na koje se mogu zapisivati a!goritmi. Neki ad nacina koriste opis postupka govornim jezikom, dok drug] naCini koriste grafi6ki prikaz. U nastavku cemo razmotriti neke od najvaznijih nacina na koji se zapisuju a!goritmi.

NE

NE

DA

104

105

U dijagramima toka pojedini koraci algoritma opisuju se raznim grafiekim simbolima, dok se tok prelaska sa jednog na drugi korak opisuje pomocu stre/ica. Bimbol e/ipsa predstavlja granieni blok 1 on oznacava pocetak iii kraj algoritma. U jednom dijagramu toka moze bitl sarno jedna oznaka pocetka (odnosno jedna ulazna tacka), dok oznaka kraja (izlaznih ta6aka) moze biti vise. Simbol para" le/ogram predstavlja ulaznoizlazni blok, i on oznacava korake u kojima se vrsi unos ulaznih podata" ka, odnosno ispis izlaznih rezultata. Simbol pravougaonik predstavlja blok abrade podataka. U ovim bJokovima navode S8 svi korael u kojima se vrsi neko izra6unavanje ill, op6enitije, ma kakva obrada podataka. 8imbol deltoid predstavlja blok odfuka. Ovi blokovi ozna6avaju mjesta u dijagramu toka u kojima se danose odluke, Obi6no je u takvim blakavima upisan neki uvjet, a iz bloka vode dva puta: pul u kojem se izvrsavanje -algoritma nastavlja ukoliko je uvjet tacan, i put u kojem se izvrsavanje algoritma nastav!ja ukoliko uvjet nije ta6an. Pored ovih, osnovn!h simbola, ponekad se susre6u i drugi simboli, poput veznog simbo/a, koji ima oblik malog kruga. To je pomocni simbol, koji sluii za povezivanje pojedinih tataka u velikirn dijagramima toka, koji se ne mogu prikazati na jednoj stranici. Oznaka upisana unutar veznog simbo!a povezuje izlazni dio jednog dljela dijagrama taka i u[azni dio drugog dijela dijagrama taka, koj! je zapisan na nekom drugom mjestu (npr. na drugoj stranici). Prikazi algoritama sa numerkanim korae'lma i prikazi pomo6u dijagrama toka intenz'lvno su se koristili dug! niz godina za prikaz algoritama. Medutim, praksa je pokazala da ovi nacini prikaza algo" rltama pods1i6u neke zastarjele melodologije rjesavanja problema kOje su u protivurjecnostl sa modernim pristupima ovoj problematici. 8toga su u posljednjih petnaestak Godina sve prisutnije teznje da se ovi na61ni prikaza zamijene drugim naCinima pr!kaza ko)i se bolje uklapaju u savremene metodologije,rjesavanja problema. Tako se danas prikazi algoritama sa numeriranim koracima praktieno nigdje vise j ne koriste ni za kakve ozblljne primjene. Dijagrami toka se jos uvijek susrecu, ali se j oni polako napustaju. Osnovna zarnjerka ovirn na6inima prikaza sastaji se u 6injeniei da oni ne nameeu nikakva ograni6enja na strukturu a!goritama, tako da je maguce pisati potpuno isprepletene algoritme, koje je veorna tesko pram!. Pogledajmo, na primjer, sljeded algoritam, u kojem smo sa desne strane ozna6ili grananja koja se u njemu javljaju:

Sljeded primjer pokazuje kako je to uradeno za opis algoritma za rjesavanje skupine jednaCina oblikaax=b:

"*

Ponm'ljaj sljeddu skupinu koraka: Unesi vriiednosti brojcva a i b; Ukoliko je 0 razliCito ad nule onda: Podije/i b sa a; Ispisi da je rje!ienje jednaCinc jednako izra(:unalOln lwii(flil;u; U suprotnum: =!> Ukoliko je b razlicito od nufe onda: => Ispisi do jedl1aCina !lema rje.~enja; =!> {j sUjJrotnom: ~ [spi.~i da je svaki broj x rje/ienje jedll(/t~ille; =!> Ponavljaj sve dok imajednaCil1(( koje treba rz;e!iiti; => Kraj.

"* "*

"*

"* "*

Kod prikaza pomocu struktuiranog govornog jezika, koraci koji se ponavljaju, odnosno koraei koji se izvode pod odredenim uvjetima, pisu se uvueeno, da bi se lakse moglo uociti gdje je po6etak, a gdje kraj skupine akcija koje se ponavljaju, odnosno skupine akcija koje se izvode samo pod odredenim uvjetima. SljedeCi primjer prikazuje algoritam za ispis najveeg od tri zadana broja opisan pamocu struktuiranog govornog jezika:

"'*
=!>

Unesi vnjedllosti broje\'u a, b i c: Ulwliko je a veee od b onda: => UkoUko je a l'eCe od C onda: =!> IspWa; ~ U suprotnom:
~ hpL<'ic;

lInesi vrijedllosti b~jeva a, b i c; Ukolik'OJe a vece adb, idina )corak ] ]; --_. 3. ldi na korak 8;
L 2.
4.
lS]Ji,~i
lUl

=!>

U suprulnom:
~

a;

Ukoliko je b vde od C onda:


=!>

.-

1-.
=!> ~

hpLfi b;

6. lspisi b' ----_._--'""--7. ldi no korak 13; - - - - - . 8. Ukoliko je b veG'e od c idi na korak 6; --<Of:... 9. [spisi C' 10. ldi na korak 13; 11. Ukoliko je a veee ad c, idi na korok 4; "",.. 12. ldf no korak 9,'

5. Idi

korak 13;

U suprotnom:
=!>

!spisi c;

Kraj.

-~----

.= =--

Prednost u odnosu na prikaz sa numeriranim koracima je 06igledna. Bitno je napomenuti da dijagrami toka takoder mogu biti veoma pregfedni. Na primjer, sljede6! dijagram toka sasvim pregledno prikazuje ist! algoritam: .

13. Kraj.

Mozete Ii zakljuclti sta ovaj algoritam radi? Primijetieete da je prikqzarn -a!gorftam v~oma- tesko . pratiti, zbog toga sto se u njemu javlja mnogo grananja. S druge strane;,'on u ~wst(nr obavlja SasV-iIT) prostu stvar: ispislJje najveei od tri zadana broja. Dijagrami toka su n~sto pregfedniji; ali_i.on! mogu biti veoma 'Isprep!eteni. Medutim, osnovni problem je 5tO iz i!,pn9pleteojb a./gorltama-kashije nasfaju isprepfeteni programi, koje je naknadno prosto nemoguce odrzavatj. .Da bi S8 !zbjegao pomenuti problem, danas su razvijeni. i dr!Jgi Jedan od na/vise koristenih zapisa je prikaz pomocu strukhiiran6g govornog jetilu1. -Ovakav prikaz je slican prikazima pomo6u numeriranih koraka, s t6m razlik6m da, ~i'! ked opisa pomoc:u strukt~ira~og govornog jezika koraei ne oznatavaju brojevima. Umjesto t094'1, pbtrebno je pazfjivo formullrati algoritam tako da se potrebe za iskazima tipa "idi na korak n'" Lt potpunbsti izbjegnu.
106

_metfld(z~~:p~ika a;~oritama-'

107

Medutim, problem sa dijagramima taka je 11 tome sto ani ni na kakav nacin ne prisiljavaju rjesavaca problema da pise pregledne dijagrame toka. Pored toga, proizvoljno napisani dijagrami taka se -veoma teskoprevode u moderne programske jezike. Stoga su razvijeni i drugi vidovi grafickog prikaza algorita:na. U posljednje vrijeme sve vise se susre6u strukturni dijagrami. Na primjer, na sljede60j sliei pnkazan je strukturni dijagram algoritma za rjesavanje skupine jednatina oblika a . x :::: b:

1. 2. 3.

Unesi neki prirodan broj; Uknliko je bra} paran jJodijeli ga sa 2, au supratnonl, pomnozi ga sa 3 i doda) ] no rezultat; Ukofiko je nOl'oriobijeni bra} rtlzliCif od jedan, idi no korak 2;

4. Kraj.
Na primjer, ukoliko unesemo broj 7, ovaj postupak 6e prodi kroz sljedeei niz medurezultata: 7, 22,11,34,17,52,26,13,40,20,10,5,16,8,4,2 ii, nakon cega se zaustavlja. Dodanasnjeg dana nikome nije poslo za rukom da potvrdi lJi opovrgne da se ovaj postupak zaustavlja u konacnom broju koraka za svaki uneseni broj, iako je za rjesenje problema cak raspisana velika nagradal

Ponal'(jaj za svaku odjednaCilla


Vllesi a,b
DA DA
pmh!cl11 ncmfl rjr.fenja

NE NE
,waH bro} x

rjeSenje je broj bla

predstm'lja Ije.kllje

8itno je naglasiti da je cesta greska prilikom definiranja algoritma zaboravljanje cinjenice da algoritam mora da ponudi rjesenje problema iii odgovor da problem nema rjesenja za konacno vrijeme. Pretpostavimo da je dat sljeded problem: "Ispitati da Ii postoji takav prirodan broj X za ko]i je 991 . X2 + 1 kvadrat nekog drugog prirodnog broja.". Neko bi mogao da pokusa da ispituje redom sve prirodne brojeve 1, 2, 3, 4 ltd. odnosno da primjenom grube sile sastavi sljedeci "algoritam":
1. 2. 3.

Vazno je naglasiti da postoje mnogobrojni problem! sa kojima S8 covjek susre6e u svakodnevnom zivotu, a cije je rjesavanje veoma teska, iii gotovo nemoguce iskazatl u vidu algoritama. Na primjer, ukoliko po~matramo postupak koji Ijekar koristi prilikom posfavljanja dijagnoze, primijeti6emo da je ovaj postupak veoma tesko svesti na neki odredeni algoritam, Ljekar donosi odluku 0 dijagnozi vise na osnovu intuicije, iskustva, prethodno stecenog znanja, i uocavanja bitnih i nebitnih simptoma kod pacijanta, nego na osnovu nekll1 unaprijed preclzno definiranih koraka. Svaki pokusaj definiranja algoritma za ovaj problem dovodi do nedozvoljenog pojednostavljivanja problema, pa prema tome i do nepotpunih odluka i netacnih rjesenja. 0 ovama treba dobro voditi racuna pri utvrdivanju da Ii se nacin rjesavanja nekog problema moze iskazat! aigoritmom iii ne. Medutim, problemi eije se rjesavanje ne moze iskazati pomocll algoritama, ne mogu se rjesavati ni pom06u racunara. Mada su racunari u mnogim aspektima rjesavanja problema (brzini izvrsavanja, preciznosti, itd.) mnogo superiorniji u odnosu na covjeka, neposjedovanje intuicije j inteligencije cin1 ih posve neprimjenljivim u situacijama koje se ne mogu predvidjeti unaprijed. Polovinom prethodnog vijeka, Alan Turing je matematicki dokazao da postoje problem! za koje je nemoguce sastaviti algoritam, cak ni teoretski. Na primjer, nemogu6e je sastaviti algoritam koji ee biti u stanju da za svaki zadani niz koraka ponudi odgovor da Ii taj niz koraka zavrsava rad za konacno vrijeme iJi ne. Drugim rijecima,_ nemogu6e je sastaviti algoritam koji 6e provjeravati da Ii zadani niz koraka predstavlja algoritam Hi ne. Ovo je Guveni problem zausfavljanja iii halting problem. Problemi za koje S8 ne moze sastaviti algoritam nazivaju se neod/ucivi problem!. Postoji pretpostavka; nazvana Church- Turingova tez8, po kojoj one problema za koje ni teoretski ne postoji algoritam, ne moze rijesiti ni covjek. Ova ieza zapravo tvrdi da i covjek uvijek postupa po algoritmirna, mada oni mogu ponekad da budu enormno slazeni, taka da se ne mogu !ako tskazati. ChurchTuringova teza do danas nije niti dokazana niti opovrgnuta (nit! ima nade da 6e odgovor na nju biti uskoro naden, jer je ona vise filozotsko nego matematicko pitanje).

4. 5.
6.

7.

Pretpostavi daje traieni broj J; Kvadriraj pretpostal'fjeni broj, [!mfll1Oii go sa 991, i dodo) J na rezultat; Ukoliko je kmdmtlli korijen iz rczulfatn ci}eli broj, idi na korak 6; Povedaj pretpostm'fjcni brf~i za 1; ldi na korak 2; IspiSi da {mieni bro} posto}i (i da je }N/nak trcl1l1f1lo prcfpostavljclIOIn broju); Kraj.

Medutim, prikazani niz koraka, mada jasan, precizan i nedvosmislen, uop6e nije algoritamJ Primijetimo da 6e prikazani niz koraka, ukoliko je odgovor na postavljeni problem potvrdan, zaista nakon konacnog broja koraka pronaCi trazeni broj i dati patvrdan adgovor. Medutim, ukoliko problem nema rjesenje, ovaj postupak 6e stalno ispitivatl nove brojeve i nikada nece zavrsiti. Neko bi mogao pomisliti da je dovoljno pustiti da se ovaj postupak izvodi izvjesno vrijeme, i ukoliko se za to vrijeme ne pronade broj sa trazenim svojstvom, zakljuciti da je odgovor na postavljeni problem odrecan. Medutim, ovaj zakljucak je posve pogresan. Naime, postavljeni problem zaista ima potvrdno rjesenje, ali bi i najbrzi racunari na svijetu danima trazili trazeni broj, jer je najmanji broj sa trazenim svojstvom broj sa cak 29 cifara (to je broi 12055735790331359447442538767)! Ovaj primjer n~veo.je poljski ~atem~ticar Waclaw Sierpinski. Odavde vidimo da algorltam nije svaki jasan, pre clzan ) nedvosmlslen nlZ koraka. Inaee, za postavljeni problem, lako na prvi pogled izgleda prilicno naivno, nije nimalo jednostavno sastaviti algoritam (za tu svrhu potrebno je poznavati naprednu teoriju brojeva i tzv. Pel/ove jednacine). Postoje nizovi koraka za koje se cak ne zna da li su algoritmi iii nisu. Jedan takav primjer-predlozio je Lothar Collatz. Pogledajmo sljedeci niz koraka:

1.7.5 Konslrukcija algori!ama


U mnogim slucajevima nije nimaio laka na osnovu postav!jenog problema konstruirati algoritam za njegqvo rjesavanje. Jedan od najboljih pristupa koji olaksava konstrukeiju algoritama je pristup 'tazvoj8_odC!zgo na dofje iii top-down pristup. Sustina ovog pristupa sastoji se u tome da se prvo . ,uoei koji su'raspolozivi ulazi i zeljeni izlazi iz algoritma. Zatim se uoce gfavni korael koji su potrebn.idA'se_ od raspotozivih ulaza dobiju zeljeni izlazi. Nakon toga se svaki od uocenih koraka.poseb.. no, fascl~njuje na j~dhostavnije karake. Novodobijenl korael se po potrebl dalje razraduju sve dok . _--~s-e liE?: postigne nivo jasnoce u kojem nema nikakve nedvosmislenosti u naCinu kako treba obaviti . pojedine-,korake. . Razmotrimo ovu strategiju na jednom primjeru. Pretpostavimo da zellmo da sastavimo algoritam zf3.: prona!a.tenje telefonskog broja osobe poznatog imena i p'rezimena u rokovniku (algoritmi ne moraju imati nlkakve veze nitl sa racunanjem niti sa racunarima - recept za kuhanje govede supe
109

108

nije nista drugo nego jedan algoritam). Ovdje su oCigledno raspolotivi uiazi ime i prezime osobe ciji broj telefona tratimo i rokovnik, dok je zeljeni izlaz broj tefefona osobe. Razmis!imo malo 0 ovom problEimu. Telefonski imenici u rokovnicima obicno imaju posebne stranice za svako slovo abecede, pri cemu je to slovo izvuceno u obliku posebnog jezicka, taka da se ieljena stranica moie otvoriti bez listanja rokavnika. 8toga, mazemo sastaviii sljedeci grubi algoritam:
1. Otvori rolwvnik; 2. Nadi stranu koja Odgulhtf'G pocetnom slui'u prezimena uso!;e; 3. Nadi ime i prezime traiene osobe na pronadeno) strani; 4. ProCitaj broj telelona nadene osobe.

Ovaj algaritam mozema iskazati i U obliku struktuiranog govornog jezika:

"* "*
=}

Kreni od prve stranice; Sve dok je slovo na stranici razliCito od trazenog slova radi stjedeffe: =} Fredi na slj'edeClI stranicu; Kraj.

Ovom algaritmu odgovarao bi sljedeci dijagram taka:

Nadi stranu sa pocetnim sluram prezimena osobe Na{ti ime i prezime [raiene oso/Je rKI
;SIH.IJli

Prikazimo ovaj razradeni dio i u vidu dijagrama toka: Razradimo sada podalgoritam za nalazenje imena 1prezimena trazene osabe na nadenoj strani:

2. 3. 4. 5. 6. 7. 8.

Do kojeg nivoa treba razradivati algoritam, zavisi od onoga ko taj algoritam treba da izvrsi. cak i sasvim malom djetetu narmalne inteligencije koje zna da eita, ovaj algoritam bi bio dovoljan da pronade trazenj brej telefona. Medutim, svako ko se iole ozbiljnije bavio programiranjem racunara, n.edvojbeno je zakljucio da su racunari zapravo ve'oma glupe sprave. Razmotrimo kako bi se ovaj algoritam mogao razraditi (ova razrada bi mogla posluziti ukoliko bismo kasnije ovaj algoritam tre~ b?li-~a pretvorimo u program za racunar koji bi pretrazivao brojeve telefona u nekoj bazi podataka, odnosno elektronickom rokovniku). Moze se primijetiti da su neki korael, poput koraka "Nadl stranu _sa pocetnim slovom prezimena osobe.", nedovoljno konkretni. Ovakvi koraci, koji trate dalju razradu, u dijagramima taka oznaeavaju se blokovima sa dvostrukim okvirom. Pogledajmo kako bi 's~,ovi-koraci u navedenom primjeru mogl! detaljnije razraditi. RazmisJirno pIVO kake-bi mogao Izgle'. dati podalgoritam za nalaienje strane sa pocetnim.slovom prezimena osobe:

Ukoliko je stronico pmzna, idi na korak 7; Kreni od prvog imena i prezimcna na stranici; Ukoliko je pusmatrarw fme i prezime jednako tmienam imcllll i prezinw!lu, idi na korak 9; Ukoliko nema vi/ie imena i prezimel/a lUi stranici, idi na 'wrak 7; Predi na sUedde imc i prezime; Jdi na korak 3; Nema podlltllka 0 trazenoj osobi; ldi na korak 10; 9. FroNtaj braj teleJona nadcne osobe; 10. Kraj.
1.

Iskazan struktuiranim' govornim jezikom, isti algorilam bi magao glasiti ovako:

"*
00::>

=:> =:>

C 2. 3. 4.
5.

Kreni od prve straniu:; Ukoliko je strallica obiljczena tratcnim slOt'om, idi na korak 5; Predi na sljedeCu stranicu; ldi na korak 2;
Kra).

.'*

Pripremi se za Citanje./)f'Vog imena i prezimclw no sirunici (ufwliko nije prazna); Fonovljaj sljeddu 'skupinu koraka .I've dok se nc ispitaju .I'm tll/nw i prezimena Ita strullici iIi- dok se tiC lir:onade trazena osoba: Prt'drn!1- ~iJedec'e f/IJc iprezime; 9 UkoJ.tAu je p(),imatrano imc i prezime )ednako frazenOl'll imenu i prezilli(!IIU. oncla: ""*", ,-ZqpdrrU:{da je (raf.ena psoba naJena; UkoHkO )e..iraie..fIa:osQ-ba nadena, onda: =. ProchaJ teleJolla lIadene osobe; U ,\upr(}tnO/it.~ :;:. . ~. Nemapodatakp rTlraienoj osobi; Kraj_

o.(o)

Mozemo primijetiti CIa je opis a!goritma struktuiranirn govornim jezikom nesto s!ozeniji nego opis
111

110

pomo6u numeriranih koraka. Medutim, opis struktuiranim govornim jezikom mnogo je prilagodljiviji u slucaju potrebe za naknadnim promjenama, jer se u s\ucaju opisa numeriranim koraeima prilikom dodavanja novih koraka cesto javlja potreba za izmjenom brojeva kojima se iskazuju grananja (poput "idi na korak n"). Prikazimo sada ovaj dio algoritma dijagramom toka:

druge strane, ukoliko se uvjet petlje"testira tek na kraju peUje, takve petlje izvrsi6e se makar jedanput, zbog cega. se nazivaju i bezuvjetne pettie. PeUje kod kojih je broj ponavljanja unaprijed odreden, takoder se ubrajaju u bezuvjetne petlje. Prilikom konstrukdje algoritama, petlje kod kojih je braj ponavljanja unaprijed poznat obicno se realiziraju uvodenjem brojaca, koji bro]i koliko puta je petlja izvrse'na. Na primjer, neka je potrebno realizirati algoritam za sabiranje 100 brojeva, Ocigledno, treba unijeti broi, sabrat! 9a sa sumom do tada unesenih brojeva (koja je na pocetku nula), i ponoviti cijeli postupak 100 puta. Ovaj algoritam mogao bi se realizirati sljedeCim dijagramom taka:

NE

Orfgovarajm:a

osoha?

DA KRAJ
tm;:cll/1 osohe

'--"-"--<Brojac!S lOO?

Ovim su sada svi dijelovi pocetnog algoritma prUicno detaljno razradenL Sada bismo mogli razradene dijelove dijagrama toka ubaciti u pocetni dijagram toka umjesto blokova sa dvostrukim okvfrom da dobijemo razradeni dijagram toka, medutim obicno se to ne rad! zbog preglednostL Kao sto je vee receno, ne postoje nikakva jasno definirana pravila do kOje mjere treba razradivafi algorltme. Stepen detaljizaeije radnjf zadanih algoritmom mora odgovarati moguenostima izvrsioca algoritma, jer se algoritmi uvijek prave iskljucivo za konkretnog izvrsioca. Ukoliko algoritmi treba da posluze kao osnova za kasnije pisanje pragrama za racunar, razradu treba vrsitf do onog nivoa dok ne bude jasno kako se svaki korak moze izvesti u vidu naredbj koje razumije racunar. PriHkom opisanog postupka konstrukcije algoritama, moze se uociti da se u algoritmima pojavljuju neke karakteristic['Ie strukture. Obicno se smatra da se u algoritmima javljaju tri tipa karakteristicnih struktura:, linearn; tok (sekvenca), ,grananje (odluka, izbor, seJekcija) i pet/js (ciklus, iteracija). Linearni tok.,predstavlja,.Q-rup"t) korakf! u kojoj se korael izvode jedan za drugim, onim redom kako su napisanL, Graniinje je struktura. u kojoj se jedna grupa akcija izvrsava u slucaju da je neki uvjet ispunjen, a druga-grupa: .akCija- -(koja moze ,da ne sadrii nit! jednu akciju) u suprotnom slucaju. Petga je struktura u kojo(s~ odred~f!a grupa akcija ponavlja odredeni broj puta. Kod peUji broj ponavljanja. mote biti:"unaprijed baieden (np~._ "Stavi tri'kasi6ice se6ero. u 6aj."), ill se porio.vljanje moze vrsiti dok je neki, u\(jel ispu-njen- -(nr~.f. "Sve a_ok caj nije dovoljno sladak dodavaj kasicicu se6era u caj."), odnosno dok $8.-nek:tlJ-vjef ne ispuni inpr. "Dodavaj kasi6icu secera u caj sve dok ne postane_ dovoljno'sladakc.'l Uviet se'.u petljama maze lspitivati kako na pocetku, tako i na kraju pet/je. Ukoliko se uvjet ispitLJIe na'p6cetk~ petlje, tada u slueaju da uvjet admah na pocetku nije ispunjen, petlja se ne6e izvrsiti njiijedanput'{takav. sma primjer imali kod trazenja imena I prezimena osobe na stranici Us!u~aju da je ~tranica prazna). Stoga se takve petlie nazivaju i uvjetne pet/je. S
112

U ovom dijagramu toka upotrijebljene su neke skracenice koje se cesto koriste u opisu algoritama. Taka, na primjer, skracenice "Surna.;- 0" i "8roja6.;- 1" predstavljaju skraceni zapis koraka "Pastavi sumu na 0." i "Postav! brojac na 1.", dok skracenice "Suma <1--- Suma + Brol' i "Brojac.;- Broja6 + 1" predstavljaju skra6eni zapis koraka "Nova vrijednost sume postaje jednaka staroj vrijednosti sume uve6anoj za braj." i "Nova vrijednost brojaca postaje jednaka staroj vrijednosti brojaca uve6anoj za 1.", odnosno, kra6e iskazano, "Dadaj broj na sumu." i "Poveaj brojac za 1.?

1.7.6 Put od algoritmadil-pr6grama


..
~
"

..

Kao sta sma do sada vidjeli, etapa razrade plana_akdja, odnosno_ etap?-~zriide algoritma, vrsi se bez pomoci racunara, Ostaje jos da u kratkim crtama raZn:Il.}trimo' sta' -$"e', d'alle desava ukol1t<o pretpostavimo da imamo napisan algoritam za rjesavanje- nekog prc;bleiniI, :tr. 1(~kgV je put pd algaritma do programa za racunar. Kada smo u poglavlju 1.2 govorili 0 arh!fel<turi -racunara,-vidjell sma da racunar zapravo zna izvrsavati same elementarne 'instrukclje 'koje' se 'sastoje ad nlzova nu\a i jedinica, koje se nazivaju mas/nske inslrukclj'e. Staga je krajnji. oplik Li koji -svaki al90ritam mora biti transfOfmiran upravo tai niz nula i jedinica. Kod prve gerjeracije racunara", taj po'stupak prE?vodenja algori113

tama u masinske instrukcije morae je obav!jatl covjek. Da bismo stekli osnovni uvid ko!iko je avo tez,ak posaa, pretpostavimo korak algoritma koji 91asi "lzra6unaj koliko je 14 . (11 +15) i ispisi rezuI1at.". Vjerovali iii ne, cak i ovako prost korak racunar ne zna izvrsiti odjedanput. Razlozi za ovo su sljedeei: Procesor zna raditi sarno sa binarnim brojevima, tako da bi brojeve 14, 11 i 15 trebalo prvo pretvoriti u binarne brojeve. Procesor razumije samo elementarne operadje, pa se sabiranje i mnotenje moraju izvest! u posebnim koracima. Da stvar bude jos gora, sve donedavno procesori 6ak nisu poznavali ni operaciju mnozenja, pa bi se u takvim slu'cajevima mnozenje moralo reaiizirati svodenjem na prostije operacife (npr. na ponovljeno sabiranje), Rezultat ra6unanja procesor ee opet zapisaU u binarnom obliku, tako da je potrebno izvrsiti i seriju instrukclja koje 6e ove binarne brojeve pretvoriti u 1akve signale upravlja6kom sklopu monitora koji ee uzrokovati da se na ekranu manitora ispise trazeni braj u decimainom obliku. Kao sto vidimo, neophodno je strahovito mnogo posta za tako jednostavan zadatak. Kada bismo zaista ispfsali (po redovfma) sve potrebne instrukcije (koje naravno predstavljaju kombi,nacije nula j jedinica) za obavljanje avog zadatka, dobili bismo s!jaded program (uz pretpostavku da se koriste neki od Intelovih procesora ill njihovih klonova drugih proizvodaca, i neke od standardnih grafickih kartica za PC racunare):
10110000 11100011 10001.1.1.0 l.l.OOO1.00 00110010 00001011 10Ul0n 11011001 00110000 11100100 00000100 00000100 10110001 10001000 00001011 00001111 00000000 00001010 001.00111 10110011 10111001 11110110 10000011 01110101 00001110 00000000 111.10001 11101011 11110000 11110110 10111000 10000000 00000010

je pohranjen program, analizlraju ga i, ukoliko je korektna napisan, pretvaraju ga u niz masinskih instrukcija kOje, razumije racunar. Dakle, kompajleri na sebe preuzimaju mukotrpan praces prevodenja razumijivih instrukcija poput PRIN'T 14 * ( 11 + 15) u nerazumljivu skupinu nula i jedinica, koju smo maloprije ilustriralL Dakie, tek pojavom prvih kompajlera proces programiranja je pastao dostupan sirem krugu korisnika. Treba naglasiti da su kompajleri veoma komplikovani programi, i da su prvi kompajleri morali bitl pisani pomo6u masinskih instrukcija, jer na pocetku nista drugo niie bilo na raspoiaganju. Medutim, kada- su napravljeni prvi kompajleri, oni su posluzili za pisanje slozenijih kompaj!era, koji su dalje iskoristeni za pisanje jos slozenijih kompajlera, pa sve do danasnjih kompajlera, koji su dostigli nivo slotenosti kakav autor! prvih kompajlera nisu mogli ni naslutiti. Motema zakljuciti da se danas proces prevoctenja algoritama u programs za ra6unar odvija u dvije faze. Prva taza je prevodenje algoritma u program pisan u nekom 60vjeku prihvatljivom programskom jeziku, sto js za covjeka koji dobro vlada odgovarajucim programskim jezikom najcesce rutlnski posao, Druga faza je potpuno automatizirana, i sastoji se u prevodenju programa pisanog u covjeku prihvattjivom programskom jeziku u nizove niasinskih instrukcija, Ovu fazu, kao sto je vet receno, obavljaju posebno pisani programi - kompajleri. Da bi se ove faze mogle realizirati, potrebno je poznavati barem jedan programski jezik, Tek tada je moguce algoritme prevesti u programe i koristiti ra6unar kao sredstvo za rjesavanje problema za koje nisu na raspolaganju vee gotovi programi. Kako je citav treei dio ovog udtbenika posveeen upravo programskim jezicima, kompajlerima, metodologiji programiranja t programiranju uz pom06 programskog jezika Pascal, sa ovom problematikom 6ete imati prilike da se kasnije detaljnije upoznate.

lldooooo

Uzasno, zar ne? Na prvim generacijama ra6unara, zaista se moralo ovaim raditi. Ovi nizovi nula i jedinica unosili su se u memoriju pomo6u prekidaca, iii busenih kartica, na kojima je raspored rupica odredivao raspored nula i jedinica. Programiranje ra6unara u to doba bilo je zaista nocna mora. Sre60m, ovakvo programiranje je stvar davne proslost!. Pokazalo se da racunari ne mogu naei siroku primjenu ukoliko se ne oiaksa nacin pisanja programa. 8toga su danas razvijeni specijalni programski jezici prilagocteni covjeku, pomocu kojih je korake algoritma r:noguce na znatno jednostavniji nacin prezentirati racunaru. Na primjer, u programskom jeziku BASIC sa kojim ste se susreIi' u nastavi informatike u osnovnoj skoli, dovo!jno bi bilo napisati naredbu:
PRINT 14* (11+15)

Ovo je, bez ikakve dileme, neuporedivo jednostavnije, Dak!e, algorilmi se danas ne prevode u masinske instrukcije, nego u neki od programskih jezika koji su znatno prihvatljiviji covjei(u, To su jezi 'ci u kojima je mnogo lakse opisati problem za ko)! je algoritam razraden, bez ulaska u cisto tehnicke detalje koje bi zahtijevao masinski jezik, Ve6ina ovih programskih jezika nastoji da S0 priblizi prirodnom Ijudskom jeziku. Tako, na primjer, fijec' PRIN'l' na engleskom jeziku znaci "jspisi". Sto nam je na raspa',laganju savrseniji programski jezik, to 6e proces prevadenja algoritma u programski jezik biti jednos, tayniji. Ostaje jos da vidimo kakav je put od cavjeku razumljivih 'naredbi u nekom razumljivom pro'gram-skarn jeziku poput naredbe PRINT 14, * (11 +15) do nizova nula i jedinica koje razumije racunar. , Programi u covjeku razumljivijim programskim jezicima pisu se pomo6u objenih editora teksta, o ,kpjima smo vee govorili. Ti programi, posmatrani sami za sebe, racunaru ne predstavljaju nista drugo nego obicni "Iekstualni dokument, poput odlomka iz nekog ramana Mes0>Selirnovi6a, iii neke best]lislene skupine znakova. Nakon sto se program unese u editor teksta i sacuva na nekom od uredaja 'eksterne memorije (npr. disku), u pomoe se pozivaju posebni programi prevodioci, nazvani ko.mpajle';. Ovi programi, koji spadaju u sistemski softver, iscitavaju tekstualni dokument u kojem
114

115

Pitanja i zadaci
1. Kada je neophodno pisati vlastite programe? 2. Navedite barem nekoliko razloga zbog kojih nije jednostavno pisati programe za racunar. 3. Sa kojim se fazama susrecemo pr'1 rjesavanju problema uz p0l)106 racunara? 4. Zbog tega nije dobra odmah pisati program?
5. Koje vrste problema pastoje?

2. KORISNICKA INFORMATIKA
2.1 SISTEMI ZA OBRADU TEKSTA
2.1.1 Razvoj sistema za obradu leksla na PC racunarima
U prvom dijelu ovog udzbenika upoznali sma se sa pojmom tekst procesora kao sistema za obradu teksta koji uporedno obavljaju kako funkcije editiran/a, odnosno urecJfvanja teksta, tako i funkcj~ je formatiranja, odnosno oblikovanja teksta (za razliku od editora, kojl obavljaju samo funkc\je editira~ nja). Danasnji tekst procesori veoma se razlikuju od riekadaSnjih tekst procesora. Nekada se tekst pro~ eesori po izgledu gotovo nisu ni razlikovali ad obicnih editora teksta. Taka se, na primjer, program WardStar ko)i je godinama bio jedan od najpopularnijih tekst procesora za mno&tvo ra6unara, ukljucujuci i PC racunare pod MS-DOS operativnim sistemom, vizualno nije mnogo razlikovao od editora teksta EDIT i slicnih editora za MS-DOS. Jedino 5to je ove programe razlikovalo od editora teksta bila je mogu6nost oblikovanja teksta koji Ge biti ispisan na stampacu, iako ta oblikovanja nisu bila vidljiva na ekranu. Ubacivanjem posebnih znakova iii naredbi u tekst, korisnik je mogao podesavati oblik i velicinu ispisa, kao i neke druge detalje. To podesavanje se vrsilo nas/ijepo, dok je pravi oblik dokumenta bio vidljiv tek nakon stampanja. Jasno je da je ovakav naCin rada bio veoma podlozan greskama. Razvojem grafickih kartica, pojavili su se i prvi tekst procesori koji su imali mogucnost prikaza stvarnog izgleda dokurnenta na ekranu< Doduse, brzina rada tadasnjih ratunara nije dozvoljavala da ratunar neprestano manipuiira sa visokokvalitetnim prikazom na ekranu, tako da su tadasnji tekst procesari obitno lmaH dva nacina rada: normalninatin rada, u kojern se radilo naslijepo, i fzv. pregledni(engl. previeW; nacin rada u kojem se dokurnent prikaie na ekranu u obUku u kojem 6e biti i odstampan. Pri tome se u preglednom nacinu rada dokument nije mogao uredivatl, nego sarno pregledati. Stoga je bib kakav Qzbiljniji rad sa dokumentom tra2io stalno prebacivanje iz notma!nog u pregledni nacin rada i Qbrnuto. Najpoznatijitekst procesori za PC racunare koji su koristili takav naCin rada bile su ranije verzlj'e programa WordPerfect (firme Core~ za MS~DOS operativni sistem. USkOfO su se poceli pojavljivaH i tekst procesori koji su uspijevall da eitavo vrijeme rada prikazuju dokument na ekranu prilieno vjer no (u odnosu ha stvarni izgled stampanog dokumenta), uvazavajuti razne vrste i velleine sloVq, kao j razlielte stilove ispisa (poput podebljanja iii podvlaeenja dijela teksta), Jedan ad veoma popu!arnih tekst procesora koji je imao takve mogucnosti bio je program ChiWrifer za Ms.-DOS. Na slici sa desne strane prikazano je kako je izgledao rad sa ovim tekst procesoram, Jedan od razloga za nekadasnju veliku popularnost proPrimjer r(/(h sa tcksf procesorom ChiWdter za MS-DOS
117

6. 7. 8. 9. 10. 11.
12.
13.

14.
15. 16. 17. 1B. 19.

Koje je etape rjesavanja problema predloiio Georg P61ya j koje se akcije preduzimaju u pojedinim etapama? Sta mislite zasta Polya tvrdi da je korisnije rijesit! jadan zadatak na vise razliCitih nacina nego vise razli6itih zadataka na 1st! naCin? Sta je rjesavanje metodom grube sila? Sta je algoritam? Koje naCine prikaza algoritama poznajete? Formirajte algoritam za ispitivanje da Ii je trougao sa zadanim duzinama stranica a, b i c pravougli trougao, j nacrtajte njegav dijagram taka. Farmirajte algoritam koji prikazuje vas tlpican radni dan ad ustajanja iz kreveta do odlaska na spavanje, 1 nacrtajte njegov dijagram taka. Farmirajte 8ta je god moguce razradeniji algori1am za kuhanje kafe, i nacrtajte njegav dijagram taka. Formirajte algoritam za raeunanje prasjeene aejene ueenika, i nacrtajte njegov dijagram taka. Zasto svaki jasan, precizan i nedvosmislen uredeni niz koraka nije algoritam? Navesti nekoliko primjera problema sa kojima se eovjek susrece, a eije je rjesavanje tesko opisat] algaritmom. Sta je pr]stup razvoju odozga na dolje? Koje se karakteristicne strukture javljaju u algoritmima? Opisati principijelno kako Se napisani algorltam prevod] u program za ratunar.

116

grama ChiWrifer lezi u tinjenicl da je on bio jedan od prVih tekst procesora koji SU omogucavali unosenje raznih matematickih i drugih formula u tekst, koje su bile odmatl vidljive pri radu sa tekstom. Doduse, kvalitet odstampanih formula je bio prilicno bijedan, i nije se mogao porediti sa kvalitetom formula odstampanih pomocu specljal!ziranih programa kao sto je TeX, koji smo spominjali u prvom dijelu udzbenika kada sma govaril! 0 prirnjenama racunara za potrebe obrade teksta. Medutim, TeX je za vecinu prosjecnih korisnika bio prekompliciran za upotrebu, i u to doba nije omogucavao prikaz formula na ekranu (nego sarno na tampanom dokumentu), taka da je veGina korisnika koji se obradom teksta nisu bavill profesionalno za svoje radove koristila ChiWriter (ukljucujuCi autora ovog udtbenika, kojt je u ChiWriteru uradio svo) diplomski rad j nekoliko strucnih seminarskih radova), Ubrzo nakon pojave ChiWritera, pojavile su se i novije verzije WordPerfecta za MS-DOS, koje su omogucavale veoma vjeran prikaz dokumenta citavo vrijeme tokom rada sa dokumentom, prj cemu se takav nacin prjkaza mogao iskljuciti ukoliko je suvise usporavao rad na sporim masinama. Medutim, za takav prikaz, WordPer1ect je zahtijevao mnogo snaznije maslne nego ChiWriler (tijl je kvalitet prikaza, doduse, bio mnogo manje vjeran, ali dovoljan za mnoge primjene). Pojavom snaznijih racunara i Windows operativnih sistema koji neprestano rade sa grafickim karisnickim okruzenjem, kvalitet sistema za obradu teksta je naglo porastao, Danas su racunari dovoljno snaini, tako da praktieki svi danasnji tekst procesori omogucavaju rad u tzv. WYSIWYG (What you .ee Is What You Get) rezimu rada, u kojem dokument na ekranu Citavo vrijeme rada izgleda prakticno isla onako kao sto ce izgledati kada se odstampa na papiru. Danas se najvlse koriste razne verzije tekst pro~ cesora Microsoft Word i novije verzije WordPer1ecta prilagodene Windows operativnim sisternima. U prvom dijf;!lu ovog udz:benika govorili sma 0 osnovnim operacijama editiranja i formatiranja teksta koje bi trebao da padrtava svaki program za obradu 1eksta. Medutim, da bismo se detalino upoznali sa naCinom izvodenja ovih operaciia, moramo se odlueiti za neki konkretan tekst procesor, jer se natini rada sa razlicitim tekst procesorima mogu medusobno prilicno razlikovatL U nastavku cemo razmotriti postupak rada sa tekst procesorima iz serije Microsoft Word for Windows, koji su jos poznati pod skracenim nazivima WinWord, ill ponekad, samo Word.

zaista treba dosta vremena da se upoznaju sve njegove mogucnosti. Autor ovog udzbenika radi sa Microsoft Wordom duzi niz godina, i neprestano otkriva nove skrivene mogucnostl ovog programa. Medutim, sretna okolnost je da se osnovne radnje sa ovim programom mogu savladati za svega nekoliko sat! rada. Mada ste se sa programom Microsoft Word vee susreli u nekoJiko navrata kroz nastavu informatike U osnovnoj skoli, moramo se detaijno podsjetiti rada sa ovim programom, jer ie njegovo temeljito razumijevanje kljuc za razumiievanje veGine drugih aplikacija pisanlh za Windows aperativni sistem. Nakan pokretanja programa Microsoft Word, na ekranu se pojavljuje prozor karak~ teristicnog oblika. Izgled ovog prozora, kao i njegovi osnovni elementi, prikazani su na sljedeeoj slici:
Nilslovna C/arnt Traka sa alatima Traka sa ulalima Traka meni "Standard" "Formatting"

HOI"iwn/ulni
[inijar

2.1.2 Kralak pregled osnovnih operacija u programu Microsoft Word


Program Microsoft Word for Windows ie vjerovatno najpopularniji program za' obradu teksta koj! je danas u upotrebi za PC racunare koji rade pod Windows operativnim sistemima. Pored PC racunara i Windows operativnih sistema, ovaj program je prilagod~n i mnogim drugim vrstama racunara i opera~ tivnih sistema, tako da postoje Microsoft Word for Macintosh, Microsoft Word for UNIX, itd. U vrijeme pisanja ovog udzbenika najrasireniia verzija programa Microsoft Word u nasim obrazovnim !nstitucijama bila je verzija Microsoft Word 97, mada se dosta koristila j novija verzija Microsoft Word 2000, koja se ad verzije 97razlikuje samo u nekim sitf]ijlm detaljima koji nisu sustinske,prlrode. Takad'er, u vrijeme pisanja ovog udzbenika pojavile su se i najnovije vetzije Microsoft Word2002 i Microsoft Word XP koja je posebno prilagodena iskljucivo za rad sa Windows XP operativnim sistemQm:_Opis u ovom udzbenlku odnosl se na Microsoft Word 97, mada ee se sve opisan~ stYarl gotovo_'sigurno "moei primijeniti u bilo kojo] verziji'Microsoft Warda kOja ucenicima bOde na ra~pola.9anj~:-~r1!ikQm _koristenja -o'(og udzbenika. Komunikacija korisnika sa programom~ Microsoft WorP' odvij~(se~pre~o naredbi i poruka.koje su tipicno pisane na engfeskom jeziku, mada- postoje J verzije- Word~}} _.kojem su naredbe i poruke prevedene na mnage druge jezike. Tako se, na prfmjer, na na.Sirn:p~ostorirria cest9 moze sresti ver~ zjja Worda prevedena na hrvatski jezik. Mi cem.o, u ns,stavku udzhenika, 'podrazumijevati da radimo sa engleskom verzljom, koja se ipak najeesce. susrece:" . -Microsoft Word je veoma slozen program, Potpune upute~i-~ kbristenje 0"';'09 programa zauzele bi nekoliko hHjada stranica. To, m.edutim, ne znael -cia je ovaj-program te~ak za koristenje, mada
liB

Dugnwd za izbor naCina prikaza

Statuma traka

Traka sa alafilJUl
"Drawing"

Horizon/ulna traka za pomak

Moguce je da ce u vaseni slucaju nakon pokretanja Microsoft Warda izgled pro~ora bltJ nezAaino drugaeiji, npr. da" nece jmati neke ad elemenata prikazanlh na slid (npr. vertikalni linija'i). Raz[o,g tome je elnjenica da je program Microsoft Word prilagodljiv i da nudi mogucnost likljueiv.:inja 6dr;-os~ no isklju(;ivanja pojedinih elernenata. tome kako se postizu ova prilagodavanja govoric.em-Q Q8stO:kasnije. Takoder, vazno je napomenuti da Word spada u tzv, programe koji podrt.avaju pristup' .. _ orijentiran ka dokumentu, sto zapravo znad da ee aktiviranje ikone kOja predstavlja dkt)rri~l-," pisan u Wordu pokrenuti Word i automatski ucitati U njega dokument,o kojem je rijee". Go!njaslika (sa praznim dokumentom) jav!ja se samo u slueaju da smo Word pokrenl,lli kao pr'ogram f'na prazno"j, a ne preko nekog pridruzenog dokumenta. "

119.

]'1

Nas/ovne traka sadrzi, pored naziva programa Microsoft Word, ime dokumenta ko]] se trenut~ no obraduje. Nakon pokretanja Micrastoft Warda "na prazno", to lme je uvijek Document1, i astaje tako Sve dok ne zadamo naredbu za snimanje dokumenta na disk, kada eema morati unijeti i ze!jano ime dokumenta.
Tacka umetanja iii kurzor E1znacava mjesto na kojem de se pojaviti sljedeCi znak pritikom kucan]a teksta. Kurzor je mogu6e pomjetati pomodu tipki sa strelicama na tastaturi iii pomocu misa. Medutim, kUfzor se moze pomjeratl samo kroz ana) dio dokumenta u koji je vee unesen nek! tekst. Pri tome se razmaci kaje korisnik unese smatraju kao dio teksta, mada se_ ti razmaci ne vide na ekranu. Drugim rijecima, moguce je kretanje kurzorom kroz razmake koje je unio korisnik, all ne i kroz prazan prostor dokumenta u ko]i nije uneseno nista. Za brzo kretanje kurzora kroz dugacke doku~ mente moguce je koristiti tipke Page Up i Page Down, kao i vertikalnu (raku za pomak. Tipke Home i End pomjeraju kurzor na pocetak, odnosno kraj tekuceg reda. Za brisanje znaka lijevo ad kurzora koristi se tipka BackSpace (na nekim tastaturama oznacena znakom <'--), dok se za brisanje znaka desno od kurzora korist! tipka Qelete. Pri tome, pritisak na tipku BackSpace takoder pomjera kurzor jedno mjesto ulijevo, dok pritisak na tipku Delete ostavtja kurzor na istom mjestu. Ukoiiko primijetite da se tekst koji kucate prepisuje preko postoje6eg teksta umjesto da se umeoe u postojeci tekst na mjesto kurzora, tada ste najvjerovatnije nehoticno uktjuciti prepisujuci (engt. overwrite) naiHn rada. Mozete ga isk!]uciti pritiskom ns tipku fnsel1, kOja ukljueuje, odnosno iskljucuje ovaj naein rada.
Pritlkom unoSenja teksta, Microsoft Word sam prebacuje u novi red rijed za kOje ustanovi da su predugacke da bi stale u teku6i red (ova osobina se u eng!eskoj literaturi naziva word~wrap). Tipku ENTER, koja se inaee u editorima teksta koristi za prelazak u novi red, treba koristiti samo ukotiko zetimo da zapocnemo novi odjetjak teksta, koji svakako mora poceti u novom redu, ill ukoUko zetimo da napravimo nekoliko praznih -redova u dokumentu. Drugim rijeCima, nije dobro pritiskati tipku ENTER za pretazak u novi red unutar odjeljka, vee treba pustiti Word da sam obavi prelamanje reda. U suprotnom, Word be pogresno smatrati da svaki red teksta cini zaseban odjeljak, sto 6e kasnije dovesti do probtema prltikom obHkovanja (formatiranja) teksta, cija se !6gika ug!avnom zasniva upravo na organizaciji teksta u odjetjke (koji se jos nazivaju i paragrafl). Uko!iko tipku ENTER pritisnemo u trenutku kada se kurzor na!azi unutar nekog paragrafa, Word 6e tada razdvojifi taj paragraf na dva dijela, upravo na mjestu gdje se nalazio kurzor u trenutku prjtiska na tipku ENTER. Obrnuto, da bismo spojili dva paragrafa u jedan, koristimo tipku BackSpace, pri cemu kurzor treba postaviti tacno na pocetak drugog paragrafa koji zetlmo da spojimo sa prvim. Mnoge naredbe za uredivanje i oblikovanje teksta trate da se prethodno oznaci (markira) dio teksta na koji 6e se naredba odnostiti. Oznaeenl dfQ feksta rikazu~e se SJ;!: zatamn ecrom Cizadinom o ut ove recJ;!hrce: Oznacavanje teksta motemo obaviti pomadu tastature iii pomoeu misa. U oba s!ucaja, prvo je potrebno dovesti kurzor na pocetak dijela teksta ko)! zelimo oznaciti (bito pomocu misa, bilo pomocu tipki za pomjeranje kurzora). Ukoliko zelimo da oznaeimo dio teksta pomocu tastature, prva pritisnemo tipku Shift, a zatim, drzed tipku Shift stalno pritisnutu, oznacavanje_vrsimopomo6u tipki za pomjeranje kurzora. Oznacavanje pom06u tastature prakticno je ukotiko treba oznaciti manje' dijetove teksta. __ Da blsmo pomocu misa oznadli dio teksta, pritisnemo lijevu tlpku' misa, i ne pustajuci je, pomjerimo pokazivac misa na kraj dijeta ko]i zeJimo da oznacimo. Tek nakorl" toga smljemo pustiti tipku misa. Dvostruki ktik lijevom tipkom misa oznacava citavu rijec_na k-oju ~okazuje pokazivac misa, a trostruki k!i.k oznacava citav paragraf u ko]em se nalazi pokG):zivac misa-. Cltav red mozemo brzo obitjeziti tako sto pokazivac misa dovedemo na prazan prostor tijevo od Zff:~ Ijen09 reda i ktiknemo. Da bismo po~istm obiljezavanje nekog dijela teksta, dovotjno je samo ktik.nu"Ii u trenutku kada se pokazivac misa nalazi bito gdje izvan obiijezenog dije!a. 81tno je napomenuti da je obiljezeni diD teksta pripremljen za neku akciju, i svakl nehoticni pri:tisak tipke na tastaturi iii tipke misa moze dovesti do neieJjenih pas/jed/ca. Tako; na prlmjer, prltisak na neko stovo na tastaturi za vrijeme dok je dio teksta obiljezen, ima kao posljedicu zamjenu
120

obitjezenog dijela teksta slovbm koje odgovara pritisnutoj tipki. Ukoliko yam se ovo slucajno dogodi, prltisnite kombinaciju tipki etrl + Z, tj. pritisnite prvo tipku Ctrl, a zatim, ne pustaju6i ie, tipku Z (vidje6emo kasnije da se isti efekat moze postiei i na drugi nacin). Ova komblnacija tipki ponistava posljednju izvrsenu akciju. Istu kombinaciju tipki mozete iskoristiti i vise puta, da ponistite posljednjih nekotiko akcija, a ne sarno jednu. Vodite racuna da ukoliko pritisnete lijevu tipku misa u trenutku dok se pokazivac misa nalazi na obiljezenom dijelu teksta, tada svako pomjeranje miss dok je lijeva tipka misa pritisnuta dovo~
di do pomjeranja obiljezenog dijela teksta na novu poziciju pokazivaca misa cim otpustimo Upku miss. avo je jedan od nacina kako mozete brzo premjestiti dio teksta sa jednog mjesta na

drugo. Medutim, taka se maze desiti da ova premjestanje izvedete nehoticno, narodto ukotiko niste vjesti pri rukovanju misem. U stucaju da yam se to dogodi, ponistite nezeljeno pomjeranje pritiskom na kombinaciju tipki Ctr/ + Z. Ispod nas!ovne trake, nalazi se glavni menj programa Microsoft Word, koji sadrii sljedece menije: Eile, Edit, J{jew, insert, Fgrmat, c~~;+x Ivols, r.tbJe, .window i fjelp. Nije isk!juceno da se u novijim verzija- J{' :.CUI ma Microsoft Warda pojave i dodatni meniji. Meniji se aktiviraju na '~':opy Ctri+C nekotiko nacina. Najlaksi nacin je dovesti pakazivac misa na ime meniCtrl+V ~t:a5te ja i pritisnuti tijevo dugme misa (ktlknuti). Umjesto toga, moguce je pri" P"aste" ~eciaL . tisnuti tipku Alt na tastaturi i, ne pustajuCi je, pritisnuti tipku sa potcrtanim stovom u imenu zeljenog menija (npr. tipku F za slucaj menija File, 8to cemo ubuduce skraeeno pisatl kao AIt+ F). Nakan aktiviranja CieS!r Delete menija, meni se prikazuje na ekranu. Na slicj desno prikazan je meni Select All ctrl+A Edit nakon aktiviranja.

.'

Svaki ad menija sadrzi mnostvo naredbL Biranje naredbi iz menija vrsi se pomocu misa, iii pomjeranjem trat<e za izbor pomo6u tipki sa strelicama (gore iii dotle) i potvrdom izbora pomocu tipke Enter. U slucaju da je naziv neke naredbe prikazan b!ijedo ,(sivo), ta naredba se iz nekog raztoga ne moze izabrati u datom trenutku. U prikazanom meniju, takve su, na primjer, naredbe Paste as Hyperfink, Links i Object

lift Eind:<"
Rspla(e...
~o

Ctr!+F
Ctt"l+H

To..

CtMG

Sa desne strane nek\h naredbi iz manija -stojl ime tlpke ill kombinacije tipki pornocu kojih se odgovarajuca naredba moze izvesti direktno, bez aktiviranja menija. ave tipke se nazivaju 'fipke kratice (eng!. shortcut keys). Na primjer, pritisak na tipku Delete ekvivalentan je izboru naredbe Clear iz menija Edit, dok je pritisak na kombinaciju tipki ('trl + X ekvivalentan izboru naredbe Cut iz istog menija. Pojedine naredbe u menijima imaju neko stovo potcrtano, Pritisak na odgovarajucu tipku (za vrijeme dok je odgovaraju6i meni aktivan) takoder aktivira naredbu. Na primjer, pritisak na tipku E dok je meni Edit aktivan (tj. prikazan na ekranu) jzvrsava naredbu Replace, jer je slovo E potcrtano U imenu ove naredbe. tspod glavnog manija nataze se dvije trake sa a/aUma (eng!. toolbars), nazvane Standard i . Formatting. Ove_'trake se, doduse, mogu isktjuciti, ali su ol:?icno ukljucene. Trake sa alatima sastoje se od niza slicica odnosno ikona, nazvanih a/arke. Alatke predstavljaju brzi naCin za aktiviranje odredenih naredbi. Dovodenje pokazivaca mi8a na a!atku i klik lijevom tipkom misa aktivira naredbu prfdruzenu atatkL Ukoliko se pokazivac misa samo dovede do atatke (bez klika) i tu zadrzi izv~ "1esno vrijeme, prikaza6e se mali prozorcic u kojem je ispisano ime naredbe koja je pridruzena alatki. Pored aJatki, trake sa alatima sadrze j nekotlko padajueih listi (npr. listu za izbor vrste slova). U samom dnu prozora na!azl se statusna traka. Ova traka sadrzl, gledano s lijeva na desno,. redni broj tel<uce stranice (Page), redni broj teku6e cjeline (Sec), razlomak obtika p/q gdje p predstavlja redni broj stranice a q ukupan braj stranica, zatim polozaj kurzora na stranici (At - udatjenost kurzora
121

ad vrha strane, Ln ~ Redni bro] lihije, Gol ~ Redni bro] kolone), kao i niz indikatora (REG, TRK, EXT, OVR, yvPH) k?ji .svojom b?jo~ (~ivom iii ernom) pokazuju razlicita stanja u kojima se program maze nalaz!tl. Na pnmjer, zaernJen mdlkator OVR govor! da je aktivan prepisujuCi (overwrite) naCin rada. Dvoslruki klik misem na indikator mijenja stanje indikatora iz a~tivnog u neaktivno, i obrnuto. . 8ada cerna navesti kratak pregled najvaznijih naredbi koje se nalaze u menijima programa Microsoft Word. Neeemo ulaziti u previse detalja, jer ste se vjerovatno sa veclnom ovih naredbi vee susreli tokom nastave informatike u osnovnoj skoli. Meni File sadrii naredbe za osnovne operacije sa dokumentom, odnosno sa njemu pridruzenom datotekom na disku. Neke od najvaznijih naredbi u meniju File su s!jedece:
New - Kreira novi dokument. Microsoft Word moze da radi istovremeno sa vise dokumenata (prelaz iz jednog u drugi dokument vrsi se pomocu menija Windows). Nakan izbora ave naredbe, prikazuje se dijalog ko]i omogueava izbor veeeg brojaunaprijed pripremljenih sablona ~engl. template) za kreiranje pisama (eng1. letters), memoranduma (eng!. memo), itd. Izaberite sablan Blank Document ukoliko zelite da zapocnete rad sa patpuno praznim dokumentom.

File Name u koji uplsujemo Ime dokumenta koji zelirno da sacuvamo, kao i padajuea lista Save in pomocu koje biramo !okaciju na koju zelimo snimiti dokument. Zeljenu lakaciju mazema birati i preko ikona kOje su vidljive u sredisnjem prozoru diialoga. Oijalog za naredbu Save As sliean je po izgledu dijalogu za naredbu Open, samo sadrzi manie opcija, Dokumenti kOje snimamo iz progra~ ma Microsoft Word automatski dobijaju ekstenziju (nastavak na [menu) . DOC,

juea IIsta Look I'!., pomoeu kOle biramo lokaciju (uredaj i folder) na kojoj se nalazi dokumenl koji zelimo olvorit!. Zeljeni dokument i lokaciju mozemo birati i preko ikona kaje su vidljive u sredisnjem prozoru dijaloga, Dugme Find Now sluzi za pronalazenje svih dokumenata koji zadovoljavaju kriterije kOje smo unijeli u dfjalog, i maze se lijepo iskoristiti za trazenje izgubljenih da~umenata, VeGi izbor opeija za pretragu dobijamo pomoeu dugmeta Advanced, ave opcije su Jako moene, ali su nesto komplleiranije za upotrebu, i namijenjene su uglavnom iskusnijim korisnicima. Na sljedeeoj slid prikazan je moguCi izgled dijaloga za naredbu Open.
......... !

:nenti.polie za unas File Nam~, u koji upisujemo ime dokumenta koji zelimo da otvorimo, i pada-

Open - Otvara postojeei dakument Ova naredba prikazuje dijalog u kojem su najvazniji ele~

Page Setup - Omogueava precizno podesavanje izgleda stranice. Izbor ove naredbe prikazuje dijalog sa 4 kartice: Margins, Paper Size, Paper Source j Layout. Kartica Margins omogueava podesavanje sirina margina (praznih traka kOje se nalaze izmedu ruba papira i pocetka pisanog teksta na papiru). Margine treba raz!ikovati od fzv. uvlaka (engl. Indent) ~ margine su zajedni6ke za Citavu stranicu, dok pojedini odjeljci na stranici mogu jos biti dodatno uvueeni u odnosu na margine. Kartiea Paper Size omogueava podesavanje velieine papira i orijentacije stampanja, Pod orijentaeijom podrazumijevamo izbor da Ii Zelimo uzduzno (opcija Portrait) iii poprecno (opci~ ja Landscape) stampanje. Kartica Paper Source amogucava izbor nacina na koji ce stampae uzimati papir, ti. da Ii ee se papir ubacivati jedan po jedan rueno, iii ee se uzimati automatski iz ladiee stampaca. Kartica Layout omogueava postavljanje razlieitog izgleda stranica sa parnim i neparnim brojevima, sto je ponekad korisno kod stampanja knjiga (npr. zelimo da na parnim stranieama braj stranice pise slijeve, a na neparnim stranicama zdesne strane). Na sljedecoj slici prikazane su kartice Margins i Paper Size dijaloga za naredbu Page Setup.

~lJ~Jr!JlI" 1iblJ1'!i.1
i~

IClm!

..:;",,,.1':1
6~,-..;.q,',.,: ,J

Print Preview - Omogueava pregled dokumenta pred stampu. Izborom ave naredbe ulazimo u specijalni retim rada u kojem se dokument prikazuje tacna onako kako ee izgledati na papiru (otpriHke ovako je izgledao pregledni nacin rada u starijim t!kst procesorlma). U ovom rezimu prikazuje se posebna traka sa alatima pomocu koje mozemo podesavati da Ii zelimo da na ekranu istovremeno gledamo jednu iii vise stranica (naravno, u umanjenom mjerilu), iH mazda eventualno samo dio stranice u uveeanom mjerilu, Povratak u normalni rezim rada vrsi se klikom na dugme Close na traci sa alatima.
Print - Stampa dokument. Izbor ave naredbe otvara dijalog pomoeu kojeg, izmedu ostalog, mozemo odreditl koliko kopija dokumenta telimo (pomoeu polja za unos Number of Copiesj-, kao i da Ii zellmo stampanje citavog dokumenta, sarno tekuce stranice, samo oznacenQg dijela,> ili navedenog opsega stranica (pomoeu radio dugmadi Page Range i polja' za"uno's,Pagei;}. Ostale opelje u dijalogu namljenjene su uglavnom iskusnim korisnieima, Stampat!ie zapocinje" aktiviranjem dugmeta OK. .

.Close - Zatvafa trenu~no aktivni dOkuine~t. UkoHko- dOk~iDent~:~ire prethodrlO sacuvan Jenom naredbe Save, blee nam ponuden upi~ da ILzeli~o sauvati dQ~lIment

prim~

Save- 8nima trenutno aktivni dokumerit POdiStiril~rme[JO~-i~h~jstu'.IOkacljukako"j~ bilo ranije zadano upotrebom naredbe Save As, bez postavljailja- ikakvjh" pita'nia korisniku; Ukollko nared~ ?a Save. As ,nije bila prethodno koristena,_ tad~ S"}ye"ratl) ist6-"~to i" Save As. Veoma vazno je cesto smmatl dokument ko)i radimo, da bi se'-zastitHi Od:gubitk~ dokl,miEmta usljed eventualnog nestanka struje, ili kraha sistema.' . .
Save As - 8nima trenutno aktiv:ni dokument pod ,zadanim,imenom i-na z~danu lokaciju (uredaj i folder). Najvazniji elementi dijaloga koji Se otvara upqtrebom ove_ naredbe su polje za unos
122

Exit - Zatvara sve dokumente j napusta program Microsoft Word. Ukoliko pastois doJ~uinenJi", koji nisu prethodno sacuvani, pojavljuje se upit da Ii zelimo saeuvati dokument za svaki od-do~U:": menata koji nije sacuvan. ' "

Pored toga, u File meniju nalazi se j spisak imena posljednjih nekoliko dokUl:nenata (obicno 4)_,kojl . su se obradlvali, sto omogueava njihovo brzo otvaranje, . ,
.t23

Meni Edit sadrzi naredbe koje olaksavaju uredivanje (editiranie) dokumenta. U tu grupu nared bi spadaju i naredbe za rad sa metfuspremnikom (engl. clipboard), specijalnim dijelom memorije koji j'e namijenjen za privremeno pohranjivanje isjecaka dokumenta sa ciljem njihovog kopiranja odnosno premjestanja iz jednog dijela dokumenta u drugL Verzija programa Microsoft Word 97 i ranije verzije dozvoljavali su da meduspremnik u jed nom trenutku moze sadrzavati samo jedan isjecak, dok kasnije verzije dozvoljavaju cuvanje nekoliko (do 10}.razliCitih isjecaka u meduspremniku u i5to vrijeme. Neke od najvaznijlh naredb] u meniju Edit su sljede6e: Cut - Isijeca oznaceni dio dokumenta i smjesta ga u meduspremnik, Kasnije, upotrebom naredbe Paste, isjeceni dio mozemo prebadti na drugo mjesto u dokumentu, ili u drugu aplikaciju, proizvoljan braj puta.
Copy - Kopira oznaceni dio dokumenta j smjesta ga u meduspremnik. Pri tome se sa izvorno obiljezenim dljelom dokumenta ne desava nista posebno. Ova naredba se, zajedno sa naredbom Paste, koristi kada zelimo da kopiramo dio dokumenta na vise mjesta Hi u druge apllkacije. Paste -

izvrsenih naredbi mogu se dobiti preko trake sa alatima, a cemu 6emo govoriti nesto kasnije, iii pomocu vee spomenute kombinacije tipki etr! + Z. Naredbe Cut, Copy i Paste takoder mozema dobitl pom06u iskocnog menija koj! se pojavljuje ukoliko desnom tipkom misa kUknemo na tekst, sto ponekad moze bit! prilicno korisno. Menl View sadrzi naredbe koje uglavnom upravljaju naCinom prikaza dokumenta na ekranu, bez ikakvog utjecaja na izgled konacnog dokumenta na papiru. Neke ad najvaznijih naredbi u meniju View su sljede6e:
Normal Prikazuje dokument u naeinu brzog prikaza. U ovom nacinu rada Microsoft Word omogu6ava rad sa dokumentom uz najmanje iastajkivanja. rv1edutim, u ovom reiimu rada prikaz na ekranu nije posve identiean prikazu dokumenta na papiru. Neki ad detalja, poput margina, zaglavlja i podnozja teksta, eventualnih ilustracija ubacenih u tekst, kao i prijeloma teksta u vise stupaca, nece biti prikazani na ekranu u ovom naeinu rada. U takvim slueajevima treba koristitj nadn prikaza Page Layout. U najnoviiim verzijama programa Microsoft Word, naein prikaza Norma! vise ne postojL '

Umece sadrzaj meduspremnika (koji je prethodno napunjen 'pomocu naredbi Cut iii Copy) u dokument, na mjesto gdje se trenutno nalazi kurzar.

Clear- Brise oznaeeni dio dokumenta.

Select AII- Oznacava citav dokument. Ova naredba je korisna kada zelimo da obavimo neku operaeiju (npr. promjenu velicine slava) nad citavim dokumentom.

Prikazuje dakument na nacin ugodan za oei. U ovom nacinu rada Microsoft Word prikazuje na ekranu dokument u obliku kakav je najmanje zamoran za oei prilikom gledania u ekran. Medutim, U ovom nacinu rada pril<az moze da dosta odudara od onaga kako 6e dokument izgledati prilikom stampe.
Online Layout -

Find - Trazi zadanu rijee iii frazu u dokumentu. Izbor ove naredbe otvara mali dijalog'sa poljem za unos u koji treba unijeti rijee Hi frazu koja se trati. Nakon pronalazenja prvog pojavljivanja tratene rijed iii fraze, klikom na dugme Find Next mazemo traziti sljedeca pojavljivanja trazene rijeel iii fraze. Klikom na dugme JViore dobijamo deta!jniji (rasirenl) dijalog, pomocu kojeg mozemo preciznije raznaeitl sta trazimo. Na primjer, ukoliko zelimo da trazimo samo fraze u kojima je raspored malih i veliklh slova ldentlean unesenom rasporedu ukljuelcemo opeiju Match case, a ukoliko zelimo pretragu sarno kompletnih rijeCi a ne i dijelova rijeCi (npr. ukoliko ne zelimo da nam rilee "put" bude nadena unutar riieei "stranpulica"), tada cemo ukljuciti opeiju Find Whole Words Only. Na manje detaljan dijalog mozemo se vratiti klikom na dugme Less. Replace - Omogucava zamjenu zadane rijeel iii fraze u dokumentu sa drugom rijeei iii frazom. Ova naredba radi slieno kao naredba Find, sarno 5to odgovarajuci dij8 log sadrzi dva polja za unos: Find What (u koji se upisuje sta se trazi) i Replace With ~epi"',,"Jh (u koji se upisuje zamjena kOja se treba lzvrsiti). Zapravo, dijalog za naredbu Replace je sarno druga kartica i8tOg dijalo~ 9a kao za naredbu Find. Nakon pronalaska prve pojave trazene rijeei iii fraze, klikom na dugme Find Next motemo tratiti sljede6u pojavu bez vrsenJa _zamjene, klikom na dugme Rep/ace mozema izvrsiti zamjenu, dok klikom na dugme Replace All trazimo da se zamjena izvrsi u citavom dokuinentu, -bez. posebnog zaustavtjanja na svakoj pojavi nadene rijecll1i fraze. Slika sa strane prikazuje dijc;rlag za naredbu Replace, u raSiren?j formi.
w

Page Layout- Prikazuje dokument na realistican natin. U ovom naCinu rada Microsoft Word nastoji da prikaze dokument na ekranu upravo onako kako 6e da izg!eda na papiru prilikom stampanja, sa svim detaljima. Drugim rijeeima, u ovom rezimu rada Microsoft Word u potpunosti postuje WYSIWYG princlp (What You See J.s What you i1et). Mada je ovaj haCin prikaza osjetno spori)i od naeina prikaza Normal, danasnji racunari su obieno dovoljno brzi da omogu6avaju rad u Page Layout nac\nu bez suvisnih zastajkivanja,tako da je Page Layoutdanas preporuceni naCin rada.
Outline- Prikazuje sarno okvirnu strukturu dokumenta. U ovom naejnu rada prikazuje se samo gruba strulctura dokumenta (naslovi poglavlja, odjeljaka, itd.) ali ne i cftav dokument. Ova opci ja je korisna pri radu sa velikim dokumentima, kada zelimo da na pregledan naein slozimo ' poglavlja dokumenta u zeljeni redoslijed.

Too/bars - Aktivira odnosno deaktivira trake sa alatima. Pom06u ove naredbe mozemo birati koje ce trake sa alatima bitl prikazane na ekranu, a koje neee. Nakon izbora ove naredbe, prikazuje se spisak traka sa alatima, pri cemu kvaeica ispred imena trake oznacava da je odgovarajuca traka vid!jiva na ekranu. Mnoge trake sa alatima namijenjene su sarno iskusnim karisnicima. Stoga, nije mudro drzatl ukljueeno mnogo traka sa alatima, jar se na taj na6in smanjuje koristan prostor na ekranu. Za svakodnevni rad potrebno je drzati ukljucene trake sa alatima nazvane Standard, Formatting i, eventualno, Drawing. Ruler - Aktivira odnosno deaktivira linijar (ravnalo)., Pom06u ave naredbe mazemo ukljuciti odnosno iskijuCitl linijar kojl se prikazuje iznad odnosno sa lijeve strane prozora sa dokumentom. Unijar nam omogucava da mozemo imati uvid u ?tvarne mjere dokumenta. Takoder, porn" jeranjem odredenih dijelova linijara pomocu misa mozema direlctno utjecatl na promjenu velicinu margina, uvlaka, ltd. Treba napomenuti da se jedino u na6inu prikaza Page Layout vide oba Ii'nijara, dok sa u nacinu prikaza Normal vidi sarno linijar iznad- prazora sa dokumentom. U naCinima prikaza Online Layout i Outline linljari se ne prikazuju.
Sil

Pored toga, u meniju Edit se, po potrebi, nalaze j naredbe Undo, Repeat I Redo, iza kojihJipicnq": .slijedi i naziv posljednje izvrsene naredbe (npr. Undo Clear). Naredba Undo' ponlstava prethodno izvrsenu naredbu, dok naredba Repeat ponavlja prethodno izvrsenu naredbu jos jedal]put. Naredba Redo ponistava efekat ponistenja koji je izvrsen naredbom Undo. Vece mogucnosti za ponistenje .
124

Document map Aktivira odnosno deakt!vira mapu dokumenta. Mapa dakumenta prikazuje sa lijeve strane, Iljevo od prozora dokumenta, i sadrzi popis naslova pojedinih poglavlja i odjeljaka u dokumentu. Poma6u ave mape mozema S8 brzo prebacivati iz jednog dijela dokumenta u drugi, 8tO je naroeito korisno pri radu sa velikim dokumentima.
125

Header and Footer- Omogucava unos zaglavlja, odnosno podnoija straniee. Zaglavlje (eng!. header; je tekst koji se pojavljuje u vrhu svake straniee, negdje unutar gornje margine, dok je pod~ nozje (eng!. footer) tekst koji se pojavljuje u dnu svake stranice, negdje unutar donje margine. Zaglavlja i podnozja obi6no sadrze informacije poput naslova dokumenta, nasleva peglavlja, daturna stampanja, broja stranice, ltd. Aktiviranjem ave apcije dobijamo posebnu traku sa alatima koja sadri! razne alatke (ikone), paput ikone za umetanje broja stranice (ikona Insert Page Number), umetanje datuma (ikona Insert Date), itd. Ikana nazvana Switch Between Header and Footer omogucava da se iz zaglavlja prebacimo u podnotje, i obratno. Prikaz zaglavlja i podnozja zatvara se klikom na dugme Close na traGi sa alatima. Zaglavlje i podnotje prikazuju se samo u Page Layout na6inu rada. Sadrzaj zaglavlja i podnozja na ekranu se prikazuje blijedom bojam, mada ce, prilikom stampanja, zaglavlja i podnozja biti prikazana kao i ostatak dokumenta.
Fu/J Screen - Prikazuje dokument na citavom raspolozivom prostoru ekrana. Ovom opcijom aktiviramo prikaz u kojem dokument zauzima say raspolotivi prostor na ekranu, taka da se ne prikazuju niti meniji, niti trake sa alatirna, niti ista drugo osim samog dokumenta. Iz ovakvog na6ina prikaza- motemo izad prltiskom na tipku ESC.

neprekidiva crtiea (eng!. nonbreaking hyphen). Neprekidivi razmak koristimo u slucaju kada zelimo da izmedu dvije rijeel ubaclmo razmak pri eemu ni u kom slueaju ne ielimo da nam Word izvrsi prije!om u novi red lzmedu te dvije rjjeel (npr. kada pis,emo formu!u A + B : : : C, razmaci izmedu s!ova A, B i C i znakova + i ::::: treba!l bi da budu neprekidivi razmaci, da bismo sprijecili da Word eventualno polovinu formule prelomi u jedan, a drugu polovinu u drugi red). Slika sa strane prikazuje moguci izgled kartice Symbols dijaloga za ovu naredbu. Footnote - Ubacuje napomene na dnu stranice iii na kraju dokumenta. Nakon izbora ovog dijaloga imamo mogucnost da kreiramo napomenu na dnu stranice, tzv. fusnotu (ukoliko izaberemo radio dugme Footnote) ili napomenu na kraju dokumenta (ukoliko izaberema radio dugme Endnote). U oba slucaja, na mjestu kurzora pojavice se redni braj iii specijalni simbol koji upucuje na napomenu.

Index and Tables- Ubacuje razne vrste automatski kreiranih informacija u dokument. Pomocu ove opeije mogu6e je automatski generirati sadrzaj dokumenta, indeks pojmova, indeks slika, ltd. Ova opcija namijenjena je uglavnom isku5nim korisnicima, 5toga je dosta kompiickana za upotrebu.
Picture - Ubaeuje sliku iii crtez u tekst. 0 ovoj opciji cemo detaljnije govoriti nesto kasnije.

Zoom - Omogucava promjenu velleine prikaza dokumenta na ekranu. Pomo6u ove naredbe
mozemo podesavati relativnu veli6inu dokumenta na ekranu U odnosu na normalni prlkaz. Na primjer, 200% oznacava dvostruko veti prikaz ad narmalnog prikaza. Prj tome, lzbor veliCine prikaza na ekranu porno6u ove apcije ni na kakav na6in ne utjece na veli6inu dokumenta prilikom stampanja. Nacini prikaza Normal, Online Layout, Page Layout i Outline mogu se birati i klikom na dugmad za izbor nacina prikaza, u danjem !ijevom uglu prozora programa Microsoft Word. Meni Insert sadrzi naredbe koje omogucavaju ubacivanje nekih po.sebnih elernenata u tekst na rnjesto gdje se nalazi kurzor. Neke od najvaznijih naredbi u rneniju Insert su sijedece:
'Break - Ubacuje prekid straniee, koione-ili cjeline na mjesto kurzora. Aktivlranjem ave opcije dobijamo dija!og sa grupom radio dugmadi. Naj6esce se karisti dugme Page Breakza ubacivanje prijevremenog prekida stranlce na mjestu kurzora. Za prijevremeni prelazak u sljede6u ko!onu teksta {prilikom pisanja teksta u vise kalona, sto se postiie upotrebom naredbe Columns u meniju FormaD koris!i se dugme Column Break. Grupa radio dugmadi Section Break koristi se za razdvajanje pojedinlh cjelina (eng I. section) u dokumentu, i uglavnom je namijenjena iskusnijlm korisnicima. Smis80 evenlualnog razbijanja dokumenta u vise cjelina sastoji se u cinjenici da svaka cjelina moze imati svoje zasebne pastavke, poput skine margina, brojeva stranica, ltd. Page numbers - Ubaeuje brojeve stranica u dokument. Izborom ove opeije dobijamo dfjalog kojim mozema birati da Ii ce se brojevi straniea ubaGiU u zaglavlje iii podnotje, kao i jos neke deta!je vezane za prikaz brojeva stranjea, na kojima se ne6emo zadrtavati.

Text Box - Omogu6ava unos teksta na proizvoljnom mjestu. Nakon izbora ave opGije, nudi nam se mogu6nost da kreiramo pravougaono podrucje bilo gdje unutar dokumenta (pa 6ak i npr. preko neke slike) unutar kOjeg mozemo pisati tekst 0 ovoj opGiji cemo detaljnije govoriti nesto kasnije.
Fife - Ubacuje sadrtaj drugog dokumenta unutar trenutna aktivnog dokumenta. Ova opcija je sli6na opGiji Open iz menija File, osim sto se novi dokument ne otvara kao zaseban dokumenl, nego se ubacuje unutar postojeceg dokumenta na mjesto kurzora.

Object - Ubaeuje razne vrste netekstualnih objekata u dokument. Mogu se ubacivati razni grafikoni, formule, jednaCine, zvu6ni zapisi, itd. 0 ovoj opciji 6emo detaljnije govoriti nesto kasnije.

Meni Format sadrii naredbe za ob!ikovanje (formatiranje) teksta. Sve naredbe iz ovog menija odnose se na aznaceni dio teksta iii, U slu6aju da ni jedan dio teksta nije oznacen, na tekst ko)i 6e S8 unositi neposredno nakon izbora naredbe. Neke od najvaznijih naredbi u meniju Format su sljedece:
Font- Podesava ablik, veli6inu, stil j boju slova (odnos~ no znakova). Izborom ove opeije pojavljuje se poved dijalog sa vise kartica, u kojem moiemo odabrati vrstu slova (font) pomo6u spiska ozna6enog sa Font, zatim stil ispisa slova pomo6u spiska Font style, veliCinu slova pomo6u spiska Size (ve!iCina se maze unijeti i kao bro] u tstoimeno polje za unos), boju pomocu padaju6e liste .Color, natin 'podvla6enja pomo6u padajuee lisle Vnderline, kao I mnostvo specijalnih efekata, eiil bi opis . _oduz.eo previse- prostera. Pod stilom ispisa se podrazu'mijeva da Ii ,su slava nakosena (eng!. Ralic), podebljana (engl.,:tiOIi!.)-rtd.. SUka sa strane prikazuje moguci izgled .. Jjjj~log~ .~:.naredbu Font.
. -

Date and time- Ubacuje teku6i datum iii vrijeme u dokument. Nakon izbora ove opGije, prikazuje se spisak pomo6u kajeg mazema izabrati format u kojem ielimo da se prikaie datum iii vrijeme.
SymboJ- Ubacuje simbole iii specijalne znakove u dokument. Izbor ove opeije otvara dijalog sa dvije kartice: Symbols i Special Characters. , Kartfea Symbols omogu6ava umetanje raznih simbola, poput gr6kih sJova, matematickih simbola, streliea ltd. iz raznih skupina znakova, koje se mogu mijenjatl pomocu padaju6e liste Font. Kartica Special Characters omogucava umetanje raznih vrsta specijalnih znakova sa specificnirn zna6enjem. Medu ovim znakovima najvainiji su nepre,kidivi razmak (eng!. nonbreaking space) i
126

poravnanje dijela teksta u ..'.";i':'. odnos-ujla.ostaiak teksta. Ova opcija odnosi se na 6itav . o.dj$ljaK_ U kojem se trenutno nalazl kurzor, iii na grupu ~. a.zna6enlh -odjeljaka. Izborom ave opeije pojavljuje se dijalog sa dvlje kartice indents and -- Spacing.! i..Ine-and Page Breaks, pri cemu je za prosjeenog korisnika bitna uglavnom sarno prva, k_artica. Pomocu nje se, na primjer, moze podesavati koliko ce oznaceni odjefjak bili uvueen
127

P!i'agraph.~~ P.9de~ava

~.~'~~:'",,= =;;c;~;:;=:::;:::;;;;:__~.J I

ltD! "

U odnosu na margine (za tu syrhu sluzi grupa elemena ta oznacenih sa Indentation), zatim koliko ce odjeljei i redoyi unutar njih biti razmaknuti medusobno (grupa elemenata Spacing), kao i kako ce S8 ravnati odjeljak u odnosu na margine (padajuca lista Alignment). Padajuca Hsta Alignm.ent nUdi izbor cetiri opeije: Left (ravnanje uz lijevu marginu), Right (ravnanje uz desnu marginu), Centered (eentrlranje, odnosno ravnanje na sredinu izmedu dvije margine) i Justified (istovremeno ravnanje uz lijevu i desnu marginu). Slika sa strane prikazuje maguci' izgled dijaloga za izvrsavanje ave naredbe.
H

" Bullets and Numbering - Omogueava oznaeavanje niza stavki znacima ili rednim brojevima. Izbor Dye opeije otvara dijalog sa karticama BulJeted, Numbered i

Outline Numbered. Kartiea Bul/eted otl)ogucava obiljezavanje aznacene grupe redova teksta (stavki) specijalnim simbolima, tzv. meeirna (engl. pullets), prj cemu je moguce birati izgled "metaka". N_a primjer, stavke u kojima se opisuju opcije, U ovom dijelu udzbenika, Qznacene su upravo "mecima" u obliku kruZica. Kartiea Numberedomogucava obiljezavanje stavki brojevima, odnosno slovima. U aba slucaja, klikom na dugme Customize dobija sa moguenost bogatijeg izbora. Kartica Outline Numbered sluzi za komplikovanija oznacavanja u kojaj se kombiniraju razne vrste oznacavanja, i ana je namijenjena iskusnijim korisnicima. Na sljedeeoj sllei prikazan je magu6i izg'ied kartica Bulleted i Numberedkoje pripadaju dijalogu za izvrsavanje ove naredbe.

Columns - Omogucava prijelom oznaeenog teksta u dvije iii vise kolona, sHeno prijelomu kakav sa moze vidjeti u dnevnoj stampi. Pomoeu dijaloga koji se javlja na ekranu mazemo izabrati zeljeni bra] kalona, kao i njihove sirine. Prijelom u vise kolona vidljiv je sarno u Page Layout naCinu prikaza. Tabs Omogueava definiranje raznih tipava tabulatora. Tabulatori odreduju kolone unutar dokumenta na koje se kurzar pazicionira svaki put kada pritisnemo Tab tipku'(to je tipka koja se na veeini tastatura nalazi iznad Caps Lock tipke). Moguce je postaviti da tabulatori iza sebe ostavljaju "trag" u vidu tackica, ertiea, ltd. sto je ponekad veama korisna (npr. kada pisemo sadrzaj knjige).

Drop Cap - Omogucava specijalno isticanje prvog slava adjeljka. Pomocu ove naredbe moguce je specijalno stilizirati znatno uvecano potetno slavo odjeljka, sto se cesto susrece u djecijim slikovnicama i knjlgama bajk1.
Change Case - Omogueava zamjenu malih slava velikim i obrnuto. Ova naredba otvara dijalog sa grupom radio dugmadi pomoeu kojih mozema precizirati kakvu zamjenu zelimo. AutoFormat -

Omogueava automatsko oblikovanje dokumenta. Primjenom ove opdje, Microsoft Word pokusava da automatski uoblici dokument u skladu sa nekim unaprijed utvrdenim standardima.

Style- Omogucava definiranje i podesavanje stilova. 0 stilovima cemo detaljnije govoriti nesto
kasnije.
Background - Omogueava definlranje boje i izgleda pozadine po kojoj se pise dokument. Pozadina je vid\jiva samo Li Online Layout nacinu prikaza. Postavljanje pozadine automatski ukljucuje ovaj naCin prikaza.

Meni Tools sadrzi razne naredbe koje mogu biti ad pom9ei prilikom rada sa slozenijim doku mentima. Neke od najvatnijih naredbi u meniju Tools su sljedece:
Borders._siJd-Shading - ,Omogucava uakvirivanje Ui sjencenje teksta. Kada pokrenemo ovu opciju, <lobijam9'.dijalog, sa kartical}la Borders, Page Border j, Shading. Kfutica Borders' omagugava nam-da,pbdE?sima izgled okvira aka oznacenog drje!a teksta. Kartica Page Border veama j~.stl9n_a_:kat1ic::i Borders, sama amogucava da podesimo izgled okvira oka Citave stra"

Spelling and Grammar- Omogucava.provj.eru ispravnosti pravopisa i gramatike u dokumen~ tu. 0 ovoj opciji cemo deta!jnije govoriti nestoKa~nije. Language - Omogueava definiranje'j~Zika u k~eJ1l,je'."pisan dokument. 0 ovoj opciji cemo detaljnije govoriti nesto kasnije:"-Word Count - Broji koliko znakova, {ije-ci,
Auto Correct -

nice._Kan,lea-Shadfrig..omogu6ava da osjencimo oznaceni dio teksta raznim bojama j dezenima. Na s!jedec9i '~!iciJ~!*aza!1 Ie moguef jzgled kartica Borders i Shading dijaloga za izvrsenje ave naredbe.

9dielja~a)ttt-.~aqrti dokurnent.

Omogucava automat$Ku'ispravRIi",nekih tipicnih pravopisnih i stamparskih ,gresaka, kao i automatsko oblik~vanJe-' rt.eklh !=lijemiJa do.kumenta. 0 ovoj opeiji cemo deta!jnije govoriti nesto kasnije. , .___
Track Changes- omogucav~

prace~je izmje~~ u-dokumentu. Ova naredba ima tri podnaredbe.


129

12B

Podnaredba Highlight Changes ukljucuje specijalni retim rada u kojem se svaka izmjena koju vrSimo u dokumentu posebno obiljezava, tako da je lako uo6ljiva. Podnaredbom Accept or Reject Changes mozema prihvatiti iii odbaeiti uCinjene izmjene. Podnaredba Compare Documents omogucava pronalazenje i obiljeiavanje razlika izmedu tekuceg dokumenta i nekog drugog doku" menta, kojt izabiramo na isti na6in kao kod naredbe Open u meniju File.
Protect Documents - Omogucava zastitu dokument,a od neovlastenog pristupa. Moguce je odrediti sta ce onome ko pregleda dokument biti dozvoljeno, kao i lozinka koju je neophodno unijeti da bi se zastita mogla ukinuti kasnijim zadavanjem naredbe Unprotect Documents, koja S9 u slucaju vee zasticenih dokumenata javlja umjesto ove naredbe. Mail Merge - Omogucava automatizirano pisanje eirku!arnih pisama, Cirkularna pisma pred
w

od gubitka dokumenta usljed nestanka struje. Pomocu kartiee View!TI0guce je upravljati detaljima prikaza dokumenta na ekranu, tako da ukoliko yam se dokument prikazuje na neki neobiean naCin, probajte malo eksperimentiratl sa opeijama na ovol kattiei. Slika sa strane prikazuje upra" va izgled kartice View u dijalogu za izvrsavanje naredbe Options, Ne zaboravite da nakon eksperimentlranja obavezno vratite sve opeiie u prvobitno stanje, jer se ueinjene izmjene pamte i nakon zavrsetka rada sa Wordom, tako da postoji mogucnost da Word kasnije nece raditi ispravno. Naroelto je opasno mijenjati opclje na kattieama File Locations i Compatibility. 0 jos nekim opcijama U ovom dijalogu govoricemo nesto kasnije. Meni Table sadrzi naredbe koje omogucavaju umetanje tablica u dokument, kao i detaljno oblikovanje ovih tablica. 0 radu sa tablieama detaljnije cemo govoriti nesto kasnije, pa cemo tom prilikom i objasniti komande kOje se javljaju u ovom meniju. Meni Window sadrzi naredbe koje omogucavaju istovremeni rad sa vise prozora dokumenata. Neke od najvaznijih naredbi u meniju Window su sljedece:
New Window - Otvara duplikat dokumenta u drugom prozoru. Ova opeija je korisna ukoliko ze!imo da u isto vrijeme posmatramo dva razlicita dijela dokumenta, iii da kopiramo odnosno prepisujemo (eventualno, uz neke izmjene) neke dijelove teksta iz jednog u drugi dio dokumenta. Arrange All ekranu.

stavljaju skupinu pisama koja su gotovo identi6na medusobno, ali se razlikuju u nekoliko sltnih detalja, poput imena primaoca, adrese primaoca, itd. Ova naredba omogucava automatizirano stampanje ovakvih pisama, pri cemu se na posebno obiljeiena mjesta u dokumentu automat~ ski umecu neophodni podaei jz ranije pripremljene baze podataka. Mada je ova mogucnost veoma korisna prilikom poslovnih komunikacija, koristenje ove naredbe je prilicno komplicirano i zahtijeva provodenje Citavog niza koraka, koje u ovom udzbeniku necemo objasnjavatl.
Envelopes and Labe/s-Omogucava stampanje kaverti i naljepniea. Ova naredba otvara dija~ log sa dvlje kartice: Envelopes (za stampanje kovertl) i Labels (za stampanje naljepnica).

Potrebno je popuniti odgovaraju6e informacije u formular koji se nalazi na ovim karticama, nakon 6ega mozemo stampati kovertu iii naljepnicu klikom na dugme Print, odnosno umetnuti sablon za stampanje odgovarajuce koverte iii naljepniee u trenutno aktivni dokument.
Letter Wizard- Olaksava pisanje pisama. Izborom ove naredbe, olvara se dijalog sa nekoliko

Rasporeduje sve otvorene prozore dokumenata da budu istovremeno vidljivi na

kartiea u kojem treba popuniti podatke u formularima, nakon cega 6e Word sam generirati sablon kako bi trebala da izgleda forma pisma u skladu sa zadanim specifikacijama. Nazalost, ova opcija je prilagodena iskljuCivo engleskom govornom podrueju (osim ako koristimo hrvatsku verziju Worda).
Macro- Omogucava kreiranje novih naredbi i alalki. Podnaredbom Record New Macro mazema da zapamtimo niz karakteristi6nih radnji, kaje kasnije mazemo pretvoriti u novu naredbu. Detaljan opis koristenja ove izuzetno mocne naredbe izlaz! izvan akvira ovog udzbenika< Customize - Omogucava dodavanje naredbi i a!atki, kao i njihovo brisanje iz menija odnosno

Spiit- Dl]eli prozor dokumenta na dva dijela. Nakon lzbora ave opcije, pomocu misa mazema adrediti mjesta na kojem cemo podijeliti prozor dokumenta na dva dijela, sa kojlma se maze neovisno manipulirati. Podjela se uklanja pomocu opcije Remove Split koja se pojavljuje u meniju Window umjesto opeiie Split nakon sto se podjela aktivira.

Pored pomenutih opelja, meni Window sadri.! i popis svih otvorenih prozora dokumenata, pomocu kojeg lake mozenio prelaziti iz jednog u drugi prozor (npr. iz jednog u drugi dokument, ukoliko istovremeno radimo sa vise dokumenata). Meni Help sadrii naredbe koje sluze za pruianje pomoCi j neophodnih informacija korisniku pri" likom rada sa programom Microsoft Word. Neke od najvaznijih opelja u meniju Help su sljedece:
Microsoft Word Help - Nudi pomoc u radu sa programolTI Microsoft Word. Izborom ove naredbe aktivira se mali pomocni program, nazvan Office Assistant, u kojem mali animirani lik igra ulogu pomocnika koj! je u stanju da u ogranicenoj mjeri odgovara na pitanja kOja mu postavl~ jate, i da nudi odgovore na naj6esce postavljana pitanja, Naravno, za koristenje ove usluge, potrebno je sa!idna poznavanje engleskog jezika (asim ako koristimo hrvatsku verziju Warda).

traka sa alatima. Ovo je veoma mocna naredba koja omogucava korisniku da kreira vlastiti sadrzaj menija i traka sa alatima, kao i nove menije j trake sa alatima. Ova naredba omogucava i p(eimenovanje postojecih menija i naredbi u njima, taka da je npr. mogu6e sve naredbe pre" vesti na nel<i drugi jezik (poput bosanskog). Izmjene koje se nap rave pomocu ave naredbe su trajne, tako da se korisnicima koji nisu posve sigurni sta tacno rade ne preporucuje upotreba ove naredbe. Omogucava podesavanje naCina rada progra ma Microsoft Word. Pokretanje ove opelje otvara veJiki dlja" log sa desetai< kartiea, pomocu kojeg se moze detatjno podesiti nacin rada programa. Podesavanja koja se naprave pomocu ove naredbe su trajna (u smlslu da ostaju pal< i nakon izlaska iz programa i traju sve do sljedece promjene podesavanja), takoda se neiskusnim korisnicima ne preporucuje upotreba ove naredbe. Ipak, neke od opci~ ja ove naredbe mogu biti od koristi i pocetnicima. Na primjer, kartiea Save sadrzi niz opeija koje upravljaju procesom snimanja dokumenta. Pomocu nje je moguce obavijestiti Word da zelimo automatsko snimanje dokumenta u pravilnim vremenskim intervalima, 6ime se mazemo obezbijediti
Options w

=-----..

"1i.?li "'::;:~::

il
Ii

Contents and Index - Nudi pregled tema 0 kojima moiete traziti pomoc. Nakan izbora ave opcije, prika:;.;uje se spisak svih tema 0 Kojima mozete traziti pomoc, sotiiran po kategorijama (na karticf-Conte!lt~) odnosno po abeeedi (na kartici Index),

- -What's-~Th'is_-......., Ntidi i~nformacije 0 zna6enju pojedinih naredbi odnosno a!atki. Nakon p.okretan-

II

ja-ove ve6ma:korisne naredbe, pokazivac misa se pretvara u upitnik sa strelicom. Ukoliko takav . pokazi\i'a,Llov!demo. na neku naredbu u menijima iii na neku alatku i kliknemo, pojavice se ':kratko-abJ~snjenje eemu -doticna riaredba iii alatka sluzi. Upitnikom mozemo kliknutl i na dio -- dols.u-mehfai_,6irri~(tobijamo'.sve informacije 0 izvrsenim ob!ikovanjima tog dijela dokumenta.
" AhC?i1_t ';;iidrqs~ft Word - Nudi osnovne informacije 0 samom programu Microsoft Word.

- --"oNak~n- to- SIYlo_dali kratak preg!ed osnovnih naredbi u menijima, podsjetimo se i funkcija naj" vaznijih ajatkr na trakama sa alatima "Standard" i "Formatting". Na sljede60j slici prikazana je !'Standard~'traka sa a!atima, zajedno sa imenima najvaznijih alatki (Iako se moze desiti da vasa traka
131

130

ne sadrzi neke od prikazanih alatki, s obzirom da se sadrtaj- i raspored alatki moze prilagodavati pomocu naredbe Customize iz r:nenija Tools):
Tables

"D

J J t .t t t G;i; r;;J ~ [9.:)' ~ '" I!l1 <1 t r r t t Open Print Spelling Copy Format
and Grammar

New

Print Save Prewirw Cut

and

Paste

Undo

Borders

Columns

n,

Painter

Redo

+ L1G1 ... t {(i Q Ii if$' . rn


Insert
table

ShowlHide

iQJl[

Office Assistant

100%

(i)

Document Zoom map

tabulatora, ltd. koji S9 ne vide, ali koji su programu jako vazni za ispravno ob!ikovanje dokumenta. Pomocu -ove alatke mozemo ovakve znakove uciniti vidljivim. Tako se, na primjer, svaki uneseni razmak pretvara u malu ta6kicu, znak za oznaku kraja paragrafa iii novi red u znak 'Il, itd. Ook je ova alatka aktivna, ona se na ekranu prikazuje osv/jetijeno, i malo uvuceno, sto oznacava njenu aktivnost. Ponovni izbor iste a!atke vraea norma!ni prikaz dokumenta. Ova a!at~ ka je korisna ukoliko zeJimo da utvrdimo gdje smo tacno unljeli razmake, odnosno gdje nam se zavrsavaju pojedini paragrafi. Zoom - Djeluje veoma slleno kao naredba' Zoom iz menija View. Klikom na streiicu sa desne strane otvara se padajuca lista kojom biramo zeljeno uveeanje (odnosno umanjenje) prikaza na ekranu. Office Assistant - Skraeenica za naredbu Microsoft Word Help iz menija _Help. Sljedeea slika prikazuje "Formatting" traku sa alatlma, zajedno sa imenlma najvaznijih alatkl (i ovdje je sasvim mogu6e da vaSa postavka Warda ne sadrzi sve prikazans alatke):

Znatenje prikazanih alatki je sljede6e:


New- Djeluje poput naredbe New iz menija File, ali ne nudi izbor sablona korisniku, vee odmah

podrazumijeva osnovni sablon Blank Document Open - Skracenica za naredbu Open iz menija File.

Save - Skracenica za naredbu Save iz menija File.


Print- Djeluje poput naredbe Print iz menija File, ali ne prikazuje nikakav dijalog korisniku, vee odmah zapoeinje stampanje jedne kopije 6itavog dokumenta. Print Preview - Skracenica za naredbu Print Preview iz menija File. Spelling and Grammar- Skracenica za naredbu Spelling and Grammariz menija Tools.

:i Norma!

~r
Font

Fon! Size

,.

.'

10 Y,! Il

J..

Italic

{ l! g :~ ~ ~,;~

Ali~n Le t

Alil),n Rigt

.Numbering
i=

Borders

Font Color
,

Bold Underline

+ f

Center Just(fy Rullets

t, . + t~ i~ .+

t ~.~ ,.6.
Highlight

Cut - Skraeenica za naredbu Cut iz menija Edit.


Copy - Skraeenica za naredbu Copy iz menija Edit. Paste - Skracenica za naredbu Paste iz menija Edit. Format Painter - Omogu6ava prenosenje obllkovanja sa jednog dijela teksta na drugi. Kada je neki dio teksta oznacen, izbor ove alatke pamti oblikovanje tog dijela teksta, a pokazivae misa dobija obUk cetke. Kada tom cetkom kliknemo na naki drugi dio teksta, upam6eno oblikovanje se prenosi na njega, nakon 6ega se pokazivac misa vra6a u prvobitni oblik. Ukollko zelimo 'da oblikovanje' prenesemo na vise razlicitih dijelova teksta.. treba dVostruko kliknuti na alatku Format Painter. U tom slueaju, pokazivac misa zadrzava oblik cetke sve dok ne pritisnemo tipku Esc na tastaturi. Ponistava posljednju izvrsenu naredbu, poput kombinacije tipki Ctrl + Z Uzastopnim izborom ove aiatke moguce je ponistiti vise posljednjih naredbi. Klik na malu strelicu desno od ove alatke otvara spisak svih obavljenih naredbi od trenutka posljednjeg snimanja dokumenta, tako da je pomoeu ovog spiska moguce precizno odabrati koju grupu naredbi felimo da ponistlmo.
Undo -

VeGina ovih a!atki odnose se na oznaceni dio teksta iii, u slucaju da ni jedan dio teksta nije oznacen, na tekst koji 6e se unoslti neposredno nakon izpora aiatke. Njihovo znacenje js sljedeee:
Style - Omogudava izbor stilova (0 kojima demo govoriti kasnijs) pomoeu padaju6e Iiste.

Font - Omogucava izbor vrste slova (tonta) pomoeu padajuee liste. Font size - Omogucava izbor velleins slova pomoeu padaju6e liste.
Bold - Uk!jucuje odnosno iskljucuje podebJjani prikaz teksta. Korisno js znati da se Isti efekat maze posUei pomoeu tastature kombinacijom tipki Ctrl + B. Italic- Ukljucuje odnosno iskljucuje nakoseni prikaz teksta. 1st! efekat se moze postiei pomocu kombinacije tipki Gtrl + 'Underline - Ukljucuje odnosno iskljucuje podvuceni pomocu kombinacije tipki elrl + U.
Q~ikaz

tekstg,. lsti efekat se moze postiei

Align Left - Ukljucuje ravnanje teksta uz Ijjevu marginu. Samo jedna od alatki Align Left, Center, Align Right i Justify moie biti ukljucena_ u jednom-trenutku, tako da se, logicki posmatrano, ove 6etirl a!atke ponasaju kao grupa ra?io dugmadi.

Redo"""'Ponistava dejstvo Undo alatke. Ova alatka djeluje na sli6nom principu kao alatka Undo.
Tables ~and :J3o-rd?r$,-'Uklju6uje odnosno isk!jucuje dodatnu traku sa alatima (nazvanu upra~ vo "Taoles and_-Bord~rs") kOja sadrzi grupu alatki namijenjenih za oblikovanje tablica j postav~ !janje, raznih vrSia.9kvira. 0 ovoj traci sa alatima cemo detaljnije govoriti kasnije.

Center- Uklju6uje ravnanje teksta na-sredinu izme~u !ljeve i desne margine (centriranje teksta), 8to js korisno kod pisanja naslova. .
Align Rlght- Ukljucuje ra,{nanje teksta_ui"de~f)l1 marginiJ.
Justify- Ukljucuje dvostrano ravnanje,~. istQ0j.~ti1~horaynanje- tei<sta-uz obje margine. Citav avaj udzbenik (aka zanemarimo naslov~) $lic~e jzuzetke} :raden ie sa d\(ostranim ravnanjem.
Numbering - Vrsi automatsko obilje2"a.vanje 0:zna6enih' stavKi rednim brojevima, koristenjem stifa numeracije koji je izabran prilikom po~lje.dnj~g.-KoristenJa naredb~ Buffets and Numbering iz menija Format. Bullets - Vrsi automatsko' obiljezf:lvi;!.nj'e oznacmih stavki specijalnim znacima (mecima), koristenjem stila obiljezavanja koji je izabran prilikom pos!jednjeg. koristenja naredbe Bullets and Numbering iz me~,ija Format. 133

inserLTiilJjle.~ Ompgu~va u.nos tablice u tekst. 0


izbora. ---

ovoj alatki eemo govoriti nesto kasnije.

Cofu~ns':- Dj~Juje'PQPut.naredb~.eOIUmns iz menija Format, ali nUdi znaino manju mogucnost

jj~c~~ent'MlJP'~ Skracenica za naredbu Document Map iz menija View.


.. Show/Hide 11':::'" prikaziije oanosno sakriva "nevidljive" znakove u dokumentu. Svaki dokument

sa kojlm radi~o u Wordu prepun je raznih znakova poput razmaka, oznaka za kraj paragrafa,
132

Borders - Omogu6uje alternativni nacin za crtanje okvira oko oznacenog dijela teksta, s!icno naredbi Borders and Shading iz menija Format. Ova a!atka zapravo iza sebe krije grupu od desetak slicnih alatki, kOje se prikazuju klikom na strelicu desno ad a!atke, a "Formatting" traka sa alatima sama za sebe prikazuje samo onu od ovih alatki kOja je posljednja koristena. Highlight - Vrsi bojenje podloge obiljeienog teksta pos!jednjom koristenom bojom. Boja se maze birati iz padaju6e liste koja se pojavljuje nakan klika na strelicu desna ad ove alatke. Color - Vrsi bojenje oblljeienog teksta posljednjom koristenam bojom. Boja se moze birati iz padajuc.e I1ste kOja se pajavljuje nakon klika na strelicu desno ad ave alatke.

mreze sa jednakom sirinom svih kalona. Po potrebi je naknadno moguce dodavati redove i kalone, kao i oblikovati,izg!ed tablice po .lelji. Ukoliko ne .lelimo da se mucima sa rucnim oblikovanjem tablice, klik na dugme AutoFormat unutar dijaloga za izvrsenje naredbe fnseft Tabfe omogu6ava izbor neko!iko desetina unaprijed pripremljenih oblika tabfica. Umjesto naredbe Insert Table, moze se karistlti i istoimena alatka na "Standard" traci sa alatima, pri cemu se prilikom upotrebe ove alatke broj redova i kolona zadaje vizualno, pomjeranjem misa preko mreze kvadrata kOja se pri tom prikaze na ekranu. Nakan Mo smo ubacili tablicu u tekst, neophodno je da popunimo njen sadrtaj. Kroz tablicu se

motemo kretaii mlsem, kao i pomo6u tipke Tab Gedno polje naprijed), odnosno kombinacije
Ovim smo se podsjetili svih naredbi i a!atki sa kojima ste se susretali u nastavi informatike u osnovnoj skoli, i eventualno nautili jos nekoliko novih. Shift + Tab Uedno polje nazad). Krefrana tablica na pocetku se nalazl uvijek tlk uz lijevi rub doku~ menta. Ukoliko zelimo da promijenimo sirinu neke od kolona, dovedemo pokazivac misa tacno na liniju koja razdvaja kolone. U trenutku kada se pokazivac misa pretvori u znak oblika II, pritisnema tipku misa i, dr.le6i ie, pomjerimo liniju kOja razdvaja kolone na zeljenu stranu. Na Istl nacin je moguce pomjeriti mjesto na kOjem tablica potinje. Visine pojedinih redova tablice mijenjaju se na slican natin. Prilikom mijenjanja sirine kolona i visine redova treba paziti da neka defija iii grupa 6e/ij8 ne budu prethodno oznaceni, inace ce se promjena sirine ko!ona i visine redova odnositi sarno na oznacene 6elije. Ukoliko ielimo samo da pomjerimo 6itavu kolonu, bet utjecaja na sirinu kolona koje slijede iza nje, najbolje je da misem pomjerimo kVadratic u horizontalnom linijaru koji se na!azi iznad dokumenta na mjestu gdje pocinje kalona koju ielimo da pomjerimo (ukoliko se !inijar ne vidi, uklju6ite ga naredbom Rufer u meniju View). Pojedina polja (6elije) u tablici moiemo oznatiti (markirati) kao i svaki drug! dio dokumenta. Ukoliko je potrebno da oznacimo cijeli red tablice, dovoljno je da kliknemo misem lijevo ad pa6etka zeJjenog reda. Ukoliko zelimo oznaciti citavu kolonu, dovedemo pakazivac misa na sam vrh ieljene I<o!one, i kliknemo u trenutku kada pokazivae misa dobije oblik kratke debele strelice usmjerene nadolje (t). Alternativno, red odnosno kolonu u kojoj se nalazi kurzor mozemo oznaciti izborom naredbi Select Row, odnosno Seiect Column iz menija Tab/e. Naredba Select Table 1z istog meni~ ja oznacava citavu tablicu. Ukoliko .lelimo da dodamo novu kolonu u tab!ici, prvo oznacimo kolonu ispred kOje zellmo da umetnemo novu kolonu, a zatim izaberemo naredbu Insert Columns iz menija Table (verzija Microsoft Word 20000magucava izbor da Ii zelimo dodavanje ispred iii iza oznaeene kolone). Ukoliko oznaeimo vise kolona, naredba Insert Columns ubaci6e onoliko dodatnih kolona koliko smo kolona oznaCiU. Ukoliko zelimo da dodamo navu kolonu na kraj tab!ice, prethodno oznacimo "nevidljlvu" kotonu koja se nalazi iza kraja svake tabllce. Na sHean nacin se ubacuju i novi redovi, samo se koristi naredba Insert Rows. Ukoliko iz oznacenog dijela tablice nije posve jasno sta zelite da umetnete, umjesto naredbi Insert Rows i Insert Columns javlja se naredba Insert Cells, koja kqrisniku postav~ Ija nekoliko dopunskih pitanja vezanih za detalje sta zaista treba uraditi. Mnoge naredbe iz Table menija mogu se'ubrzano dobiti ukoliko desnom tipkom misa kliknemo na ozn,aceni dio _tab,lice: Ukoliko iejimo da izbrisemo neki red iii kolonu u tablici, oznacimo' red' od.nosho ko!onu .kojtl brisemo, nakan eega izaberemo naredbu Delete Rows, odnosno Detete C9Iumn:~ l:i::- fable menija. Moguce je istovremeno izbrisati vise redova iii kolona, pa cak i citavu tab!icu. Ukolikb:i~ aznac~)1og dljeta tablice nije posve jasno sta treba izbrisati, umjesto naredbi Delete Rows i Delete .coluriJ11s jav~ Ija se naredba Delete Cells, kOja korisniku postavlja nekoliko dopunskih pltanj<Lvezan:ih-!.a d.etaljs sta zaista treba uraditl, slicno kao kod naredbe Inseft-Cells. - .' Ukoliko tellmo da nekoliko polja u tablici spojimo u jedno vece pOlle; cizDac.i~o polj~ ko]? ~elrmo Cia spoj'imo,] izaberemo naredbu Merge Cells (naravno, iz TabMn'Jenija).~'lJkoliko-~elimo da razb]jemo jedno ve6e polje na'vise manjih, koristimo naredbu Split Celis, pri cemu- seJavfla dija!dg koji nas pita na koliko dljelova treba izvrsiti razbijanje. Ukoliko smo prethodno 'oznaeili vise celija, moze
135

. 2.1.3 Ubacivanje !ablica u tekslualne dokumente


Vazno svojstvo kaje danasnje tekst procesore poput Warda razlikuje od nekadasnjih tekst proce~ sora je mogucnost unosa raznih netekstuafnih elemenata, poput tablica, crteia, sHka, formula, grafikona ltd. u tekst, sto je prije bilo svajstveno samo specijaliziranim programima za sta/no izdavastvo. Dok je sve do nedavno bilo nezamislivo pripremiti ikakvu oZbi!jnu knjigu samo pomoGu tekst procesora, danas je veliki broj knjiga pripremljen sarno pamoGu Microsoft Warda, bez ikakvih dodatnih progra~ rna, taka da se granica izmedu tekst procesara i programa za sto!no izdavastvo sve vise smanjuje. Na prvom mjestu, objasnicemo unos tablica u tekstualne dokumente. Vecina naredbl za rad sa tablicama nalazi se u meniju Table. Za razliku od ostalih menija, ovaj meni intenzivno dinami6ki mijenja svoj sadrtaj tokom rada, tako da pajedine naredbe sadriane u njemu nestaju iii se ponovo pajavljuju zavisno ad toga sta u tom trenutku radimo. Unos tablice

maiemo izvrsiti na nekpliko naCina. Najkreativniji naCin je izbor naredbe Draw

Table iz Table menija. Nakan izbora ove naredbe, pokazivac misa dabija oblik ofovke, pomocu koje

mazema da iscrtama taean izgled tablice kolika god da je ana siotena, slieno kao u nekom programu za crtanje. Ovaj nacin jako je praktitan za unos tablica eija se polia (ceUje) znacajno razlikuju po svojim dimenzijama i organizaciji, poput sljedece (prazne) tablice:

I
lz retima slobodnog crtanja tabllce izla?imQ pritis~orn_ na tipku Esc na tastaturi. Medutim, za unos tablica pravilnijeg obUka, slobodno crtanje- maze' bitLdo$ta naporno. Tada je prakticnije izabrati naredbu Insert Table iz Tabfe menija, koja be narilprjkazati_ gijalog u kojem mozemo zadati broj reaova i kolona,. kab-. r sirinu .kolona .. Ukoliko sirinu kolona posfavftrio:'.riaA~to:. Word ce sam prilagoditi sirine svih ~ ~-,o,-'~~I, "kolona tako~~1(f iablica zauzrne svu raspolo.livu sirinu Number of rows; f~ " Cancel I~. str1.nrce(salLlel~ uk6!iko nemate-dovoJjno prostora po sirini IAwtl, 7i.'L !iutoftlrmat. .. za.cifav,u tabHcu,-u,kljuCite poprecni prikaz stranice pomo6u , miredbe p'?-ge BEiti!p_u meniju File). Dijalog za izvrsenje r"bleform"" (nor>e) naredbe-jnsert Table prikazan je na slid sa lijeve strane. .__._,_.. _____._ . Ubacena."-tablica -ce imati oblik najprostije pravougaone
LI

134

mo prije razbijanja sve ceHle prvo stopiti u jednu aktiviranjem opeije Merge cells before split koja S8 javlja u dija!ogu za izvrsenje naredbe Split Gelfs. Ukoliko je potrebno da Citavu tabelu rasijecemo po vertikaH na dVije tabHee (na mjestu gdje se nalazi kurzor), koristimo naredbu Split Table. Da bismo tabeH dali zeljeni izgled, npr. podebljali Hnije u tabliei, iii osjenCili zaglavlje tablice, mozemo koristiti vecinu naredbi iz menija Format {npr. Borders and Shading} iii odgovarajuce alatke na "Formatting" traci sa alatima. Dodatna naredba koja se javlja u meniJu Format prilikom rada sa tabelama je Text Direction pomocu kOje mozemo tekst u pojedinlm poljima tabele ispisivati ver" tikalno umje5to horizontal no. Naredbom Table Autoformat iz Table menija mozemo na tablicu priM mljentti jedan od/"nekoliko desetina unaprijed pripremljenih oblika. Naredbe V;stribute Rows Evenly i Distribute Columns Evenly sluze da izjednace sirine svih oznacenih redova odnosno kolona, dok naredba Cell HeIght and Width prikazuje dosta slozen dijalog koji omogucava precizno podesava~ nje dimenzija poJedinih dijelava tabele, kao i razmaka izmedu pojedinih dijelava tabele. Naredba Hide Gridlines amagucava da se sakriju sve linije u tabeli asim linija kaje su eksplicitna nacrtane. Dejstvo ave naredbe ponistava se naredbom Show Gridfines. Sa kreiranim tabelama mogu6e )e vrsiti i neke elementarne transformacije. Tako, na primjer, naredba Sort u meniju Table omogucava da sortiramo oznaceni dio tabele (iii crtavu tabelu) prema odredenom kriteriju. Ova naredba otvara dijalog u kojem pomocu padajuce liste Sort by biramo kolonu po kojoj vrsimo sortiranje. Sortiranje mazema vrsiti u rastucem poretku (opelia Ascending) iIi opadajucem poretku (opeija Descending). Ukolika zelimo istovremeno sortiranje po vise kriterija (najvise tri), dopunske kriterije mazema zadati pomocu pada]uC1h listi Then by. Pomocu naredbe Formula u istom meniju moguce je cak i obavljati ]zvjesne radnje kaje spadaju u domen programa za tabelarne proracune, 0 kojima cerna govoritl u s!jedecem poglavlju. Veoma korisna naredba u memj'u Table je i naredba Convert Text to Table, koja omogucava da sa oznaceni dio teksta koji nije u formi tabliee pretvori u tab!ieu. Ova naredba otvara dljalog slican dija" logu za naredbu Insert Table, u kajem se kao dodatno pitanje javlja grupa radio dugmadi Separate text at pomacu kOje se odreduje kriterij sta se smatrati granieom izmedu dva podatka koja ce se razvrstati u dvije razlleite celije. To moze biti oznaka novog reda (opelja Paragraphs), tabulator (opci" ja Tabs), znak tacka-zarez (opcija Semicoions), iii neki proizvoljno izabrani znak (opelja Other).

misa se pretvara u gumieu, koju treba pr~vu6j preko kampletne linije koju zellmo izbrisati. U normalni rezim rada vra6amo se pritiskom na tipku Esc na tastaturi.
Line Style -

Omogucava itbor vrste linija koje 'ce se korlstiti u tabllei pomocu padaju6e liste.

Line Weight- Omogucava izbor debljine linl]a koje 6e se koristiti u tabliei pomo6u padajuce liste. Borders C%r- Omogucava izbor bOje linija koje 6e se koristiti u tabliei. Upotreba ave aiatke otvara popis mogu6ih boja. Borders - Ova alatka je duplikat istoimene alatke koju smo vec upoznali na "Formatting" traci sa alatima. Shading Color- Vrsi sjencenje oznaeenih polja u tabeli posljednjom izabranom bojom I stilam sjencenja. Boja i stil mogu se promijeniti pomocu padajuce liste koja se otvara klikom na strelieu desno od ove alatke. '
Merge Cells

Skra6enica za naredbu Merge Cells Ii: menija Table.

Split Cells - Skraceniea za naredbu Split Cells iz manija Tab!e. Align Top - Poravnava sadrzaj oznacenih polja uz gornju ivicu polja.

Center Verticalfy - Poravnava sadrzaj oznacenih polja na sredinu izmedu gornje i donje iviee polja.
Alfgn Bottom - Poravnava sadrzaj oznacenih polja uz donju ivicu polja.

Distribute Rows Evenly - Skracenica za naredbu Distribute Rows Evenly lz menija Table.
Distribute Columns Evenfy- Skracenica za naredbu Distribute Columns Evenlyiz menija Table.

Table AutoFormat - Skracenica za naredbu Table AutoFormat iz menija Table.


Change Text Direction - Mijenja smjer ispisa teksta u oznacenim poljima.
Sort Ascend;ng - Sortira oznacene dljelove tabele u rastuC! poredak, koriste6i kao krlterij 50r"

",0

tiranja onu kolonu u kojo] se trenutno nalazi kurzor.


Sort Descending - Sortira oznacene dijelove tabele u opadajuci poredak) koriste6i kao kriter" Ij sortiranja onu kolanu u kojoj se trenutno nalazi kurzor.

Za rad sa tablicama veoma se korisno maze upotrijebiti traka sa alatima "Tables and Borders" koja ]e prikazana na sl]edeco] slici, a koja se moze ukljuciti odnosna isklju6iti pomocu istoimene alatke na "Standard" traGi sa alatima, iii pomacu naredbe Toolbars u meniju View.
Border Color
1h '"

Avto$lIm - Ubacuje u polje u kojem se nalazi kurzor formlJlu koja racuna sumu sadrzaja svih polja kOja se nalaze iznad, iii lijevo ad polja u kojem se nalazi kurzor. Ova alatka spada u domen tabelarnlh proracuna a kojima cemo govoriti u sljedecem poglavlju.

Neke od avih alatki mogu se koristiti i neovisno od rada sa tablieama, kao alternatlva naredbi Borders and Shading iz manija Format.

Line style

,J;.

2.1.4 Ubacivanje oslallh netekstualnlh eiemenata u tekstualne dokumente


Dragacjena osobina programa Microsoft Word je mogucnost ubaeivanja lIustracija u tekstualne dokumente. Najneposredniji nacin ubacivanja iI,lJ,$traelja u dokument je da u nekom od programa za crtanje iii slikanje (npr, u Microsoft Paintu) obiljezimo citavu. ilustraeiju (iii sarno njen dio) i kopiramo je u meduspremnik pomo6u naredbe Gopy (u Edit meniju programa za ertanje iii slikanje). Nakan toga, ilustraeija se maze ubaeiti u Word koristenjem naredb'e Paste iz Worqovog menija Edit. Drugi naCin za ubacivanje ilus1raeija u dokument je kbristenje naredbe Picture iz menija Insert. Ova naredba ima nekoliko podnaredbi. Podnaredba Clip Art koristi se za ubaeivanje slika Iz unaprijed priprem!jene galerlje sllka kOja dolazj u paketu zajedno sa programom Microsoft Word (pri cemu je naknadno moguce instalirati dadatne slike). Na primjer, slika magarea sa !ljeve strane uzeta je upravo iz ave galerije. Podnaredba From File koristi se za unos Hustraeija koje su pravljene u nek?m
137

Line Weight

Vecina ovih alatki odnose S8 na oznacena polja, iii na polje u kojem se nalazi kurzor (uko!t~o-niJe~~ polle nije oznaceno). Znacenje prikazanih alatki je sljedece: Draw Table - Skracenica za naredbu Draw Table iz menija Table.

Eraser 136

Omogucava brisanje pojedinih linija u tabllci. Nakon izbora ove a!atke, pokazivac

od programa za crtanje iii slikanje i pohranjene na disk kao graficka datoteka, Izbor slike, koja se unosi, vrsi se na slican naGin kao pri upotrebi naredbe Open iz menija Fife, a padrzani su formati zapisa slika gotovo svih poznatijih programa za crta" nje iii sllkanje. Ukoliko izaberemo opciju Link to file koja se javlja u dijalogu za izvrsenje ave naredbe, slika nece postati fizieki dio tekstua!nog dokumenta (mada ce se prikazivati unutar njega), nego ce se cuvati kao posebna datoteka. Na taj nacin tekstualni dokument postaje krati, jer nema potrebe za posebnim memoriranjem ub!'J,ceile slike. Medutim, tada brisanje datoteke kOja sadrzi sliku takoder dovodi i do gubitka slike prikazane u tekstualnom dokumentu. Podnaredba AutoShapes otvara dodatnu traku sa alatima za umetanje specijalnih geometrijskih oblika u ~... ..,.-..if ... tekst, 0 eamu eemo kasnije pasebno govoriti, dok (~ rr.i~~~~ podnaredba WordArt omogueava unosenje ukrasnog ~U..l0'wjltd0.riJLL\lliiEl~ teksta (poput teksta prikazanQg sa strane) na veoma jed" nostavan nacin, ko]i zapravo niie nista drugo nego jedna vrsta slike, Podnaredba From Scanner omogueava ubacivanje sHka direktno sa skenera, dok podnaredba Chart omogucava unosenje grafikona u tekst (0 cemu neeemo detaljnije govoriti, jer se mnogo kvaiitetniji grafikoni mogu pravlti pomoeu programa za tabelarne proraeune). Kada sma umetnuli sliku u tekstualni dokument, mozemo nad njom vrsiti raz!icite manipulacije, Sllku mozemo pomjerat! kroz dokument tako sto dovedemo pokazivac misa na sliku i pritlsnemo lijevu tipku misa, a zatim, ne pustaju6i je, odvedemo pokazivac misa na novo mjesto (nakon cega pustimo tipku misa), Ukoliko kliknemo misem na sliku, na rubovima slike prikazuju se kvadraticl, cijim je pom" jeranjem mogute mijenjati veliclnu sllke. Pri tome, poveeanje nekih vrsta sllka dovodi do degradacije njihovog kvaliteta, dok neke slike zadrzavaju lsti kvalltet neovisno od njihova veliCine. 0 razlozima za ovakvo ponasanje govoricemo u poglavlju 0 racunarskoj grafici. Uko!iko dvostruko kliknemo lijevom tipkom misa na sliku, bice nam u veein! slucajeva omogueeno uredivanje sm,e na isti naein kao u aplikaciji kOja je koristena za izradu slike. Kako se vrsi povratak u normalni retim rada, zavis! od aplikacije (u veelni slucajeva dovoljno je kliknuti misem negdje izvan !ttt;.W+ ... Ixl slike, ili na dugme Close Picture). Napredna inferCoiO"~"dlili~d' ';;~:<l'P'~";'~~ :'~i??i3tl'p:'tur;1 .' >1 maticka tehnologija koja omogucava uredivanje objekata unutar neke aplikacije pomocu neke druge aplikacije naziva se OLE (Qbject Linking and Embedding) tehnoiogija, Sliku lako brisemo pri-. tiskom na tipku Delete u trenutku kada je slika oznacena (klikom misa na nju). K!ikom desnom tipkom misa na sliku-qobjja~se' iskocni meni sa nekim veoma znacajhim- 'koman> dama (koje se, pod uvjetom da je' sllka prethodno., obiljezena, mogu naei i u drugim menijim~ peput menija FormaO. Na prvom mjestu tu je --komantla - ~cc-~'-~-c-'''-'--'---'-'--'---'''-_J Format Picture (iii Format WorgArt UKoliko se radi <.. _~.~~~~'----~~-'-o ukrasnom tekstu). Ova komand~ otv<:tr1!l.qijalo.9 ~,f :T___ . _ nekoliko kartica, KarUca Colors and L:ines'oniogucava izbor bojEl pozadine, kao i boju i vrstu okvira aka sllke. Ukollko ne zelimo pozadinu m okvir, iZabererriQ opGije. No. Fill odnosno No Line u dvije padajuce liste nazvane Color, od kojih se prva odnosi na'boj~ pazadine (skupina opcija FiJ~, dok se druga adnosi na boju okvira (skupina opcija Line). Kartiea Siz~omogU6'ava precizno podesavanje dimenzija slike,
138

dok 1<artica Position omogueava precizno pozieioniranje slike unutar teksta. Kartica Wrapping (koja je prikazana na slief sa desne strane) je veoma znacajna, jer omogueava podesavanje nacina na koji se okolni tekst "omotava" oko sllke (upravo kao sto se tekst kojl u ovom trenutku Citate omotava aka slike desno od njega). Konacno, kartica Pictureomogueava da prikazemo samo isjeeak sllke, da posvijetllmo iii potamnimo sliku, kao i da poveeamo odnosno umanjimo kontrast slike (razliku izmedu tamnih i svijetlih dijelova slike), Ukoliko izaberemo naredbu Show Picture Too/bar (iii Show WordArt Too/bar) kOja se nalazi u iskocnom meniju ko]i se javlja nakori klika desnom tipkom misa na sliku (Hi ukrasni tekst), pojavljuju S0 dodatne trake sa alatima koje omogueavaju mnostvo dodatnih opcija za uredivanje slike iH ukrasnog teksta. Ove trake se mogu ukloniti pomoeu naredbi Hide Picture Too/bar (odnosno Hide WordArt Too/batj. Program Microsoft Word sadrzi cak i alatke koje omogueavaju neposredno crtanje unutar Warda. Mada ertanje pomo6u ovih alatkl nile tako elegantno kao u namjenskim programima za ertanje, iskusniji korisnik moze pomocu njih nacrtati cak i jako slozene slike. Upoznaeemo se detaijnije sa ovim alatkama, jer njihova razumijevanje kasnije olaksava rad sa namjenskim programima za crtanje, koji se uglavnom zasnivaju na koristenju alatki kOje su sHene opisanim alatkama. Alatke za crtanje nalaze se u traei sa alatima "Drawing", koja se, ukollko nije prisutna na ekranu, maze ukljuCiti pomocu naredbe Too/bars u meniju View. Na sljedeeoj sUel prlkazana je ova traka sa alatima, zajedno sa imenima pripadnih alatki:

Draw

Free Rotate

Line

Text Rectangle Box

Fill Color

Color

Font

Dash
Style

Shadow

t
D[<':IW
0:,-

";;,,

/j.,

Ayto5hape5- ""

Select Objects

Auto Shapes

t t ClO~41 t t t t ...t Ii! ." " t t t t t t f t


.;leA
........

-.

M'

Arrow Rectangle

Insert Word Art

Une Color

Line Style

Arrow Style

3D

Mnoge od Dvih alatkl mogu se primijeniti ne samo za crtanje, nego i kao alternativa za razne opelje koje se dobijaju pomoeu naredbi Format Picture iii Format WordArl. Znaeenje ovih alatki je sljedece:

Draw- Otvara meni sa veHkim brojem grafickih naredbi i podnaredbi, kOje se uglavnom odnose na manipulaciju sa vee nacrtanim grafickim objektima, i Ciji bi detaljan Op'IS oduzeo previse pros" tora. Neke od najvaznljih naredbi biee ukratko spomenute u nastavku teksta. Mnoge od na{edbi iz ovog menija mogu se direktno dobiti klikom desnom upkom misa na nacrtani objekat.
Select Object- Omogucava da lstovremeno oznacimo (markiramo) veei braj grafickih objekata tako 810 prosto misem nacrtamo pravougaonik oko njih. Vise graficklh objekata mozemo obit~ jez!ti istovremeno i taka sto cemo driedi pritisnutu tipku Shift kliknuti .nfFsvakt oQ, objekata koje hoeemo da oznaCimo. . - .
Free Rotate- Omogucava da rotiramo jedan Hi vise obiljezenih graficRih objekata:Nekj-06jekti se ne mogu rotiratL . '--. . - -.

AutoShapes- Otvara men! koji omogucava jednostavno crtanje nekog ofsl.otinjill<-Ve6 (mapri~ jed dizajniranih grafickih objekata, koji su rasporedeni u nekoliko .kategorija;.lfltert?santno je, da kategorlja Lines sadrti a!atku Curves koja omogucava elegantno crtarjje zakrivljeilih linija, kao i alatku Scribble, koja omogueava crtanje linija slobodnom mkom, -pomc;>c.v,-virt,ualne olovke (sl1eno kao u programu Microsoft Paint). .
139

Une - Omogucava crtanje linija. Ukoliko telimo da uzastopno nacrtamo vise linija, potrebno je ovu alatku izabrati dvostrukim klikom misa. Slicno vrljedi j za veCinu ostalih alatki za crtanje. Ukoliko zelite da linija bude savrseno prava, drZite tipku Shift pritisnutu za vrijeme crtanja.
Arrow- Omogucava crtanje strelica. Rectangle - Omogucava crtanje pravougaonika. Ukoliko zelite da nacrtate pravilan kvadrat, drzite tipku Shift pritisnutu za vrijeme crtanja. Oval"- Omogucava crtanje elipsi. UkoHko zalite da naertate pravilan krug, drzite tipku Shift prjtisnutu za vrijeme ertanja.
TextBox - Skracenica za naredbu TextBox iz menija Insert. Ova naredba omogucava da formiramo pravougaono podrucje u kaje mozema upisati tekst na bilo kojem mjestu u dakumentu. Okvir kaji se javlja ako ovog podrucja mazema ukloniti pomocu alatke Line C%r i izborom opeije No Line iz padajuce liste, ill pomo6u naredbe Format TextBox kOja se dobija klikom desnom tipkom misa na okvir, a kOja otvara dijalag koji je organiziran Isto kao dijalog za izvrsavanje naredbe Format Picture. Skraceno se ovaj dijalog moze dobiti dvostrukim klikom lijevom tipkom misa na akvir.

romo naredbu Group. Ova naredba moze se dobiti i klikom desnom tipkom misa na ozna6ene objekte,

Za rastavljanje slozenih objekata na sastavne dije!ove koristi se naredba Ungroup, kOja se nalazi na
istom mjastu. Primjenom ove naredbe mozemo rastaviti sllke koje smo umetnuli IZ galerije sllka Clip Art na njillove sastavne dijelove. Pojedini sastavni dije!ovi se mogu i dalje rastavljat! na prostije dijelove, sve do najelemenarnijih objekata. Medutim, rastavljati se mogu samo one slike kOje su crtane iz dijelova (a takva je vecina slika iz Clip Arlgalerije). Ukoliko smo rastavljenoj slid izmijenili neki od dijelova, i zelimo da ponova sastavimo sve dijelove u ejelinu, koristimo naredbu Regroup iz istog menija. Svaki objekat koji crtamo u Wordu rasporeduje se u poseban sloj (eng!. layetj, ei]i je poredak mogu6e podesavatL Na primjer, na prikazanoj slid, ~ crvena linija prolazi ispred plave elipse, koja se nalazi u udaljenjjem sloju. ~ S druge strana, zelena linija prolazi iza zute elipse, kOja S9 nalazi u bfizem slo]u. Poretkom slojeva moguce je upravljati pomo6u raznih podnaredbi naredbe Order, koja se moze dobiti IZ menija Draw iii ,klikom desnom tipkom misa na objekat. Podnaredba Bring to Front dovodi oznacene objekte u sloj koji se nalazi ispred svih ostalih objekata, dok podnaredba Send to Back dovadi oznacene objekte u sloj koji se nalazi iza svih ostalih objekata. Za preciznije kretanje naprijed/nazad slo) po slo) koriste se podnaredbe BrIng Forward i Send Backward. Ukoliko yam se pri radu sa ilustracijama i grafickim ,objektima crtezi uopce ne prikazuju na ekranu, provjerite prvo da Ii se nalazite u Page Layoutnacinu rada (meni View). Zatim provjerite karHcu View dijaloga za izvrsenje naredbe Options u men!ju Tools. Opcija Drawings trebala bi bit! uk!jucena, jer u suprotnom Word nece prikazivati nikakve crtane objekte. Takoaer, opcija Picture Placeholders trebala bi biti iskljucena, jer ce, u suprotnom, Word umjesto slika samo prikazivati prostor gdje bi se trebala nalaziti slika, ali ne i samu s!iku. Inace, ove opcije namijenjene su ubrzavanju rada na sporijim racunarima, na kOjima prikaz slika oduzima isuvise vremena. Pored slika, ponekad je u tekstualne dokumente potrebno ubaciti j neke druge I (reate New Create from E~~ netekstualne objekte. NajveCl izbor mogucnosti za ubaolvanje netekstualnih objekata dobija se pomocu naredbe Object u meniju Insert. Ova naredba otvara dijalog ,lEi ~v~ , E~('e' chart pomocu kojeg motemo jzabrati objekat koji 'I~i"o"oft Microrolt [xCtl 'Porl<sheel r,; Float ()yer text '.""fOSDft Grbph 97 Chart zelimo -da ubacimo. Kojl su objekti na raspo- . !,'ic'"cdtMap .::l r (Jo$p1ilY as icon 1 !aganju, zavisi prete2no od toga koji su program! instalirani na racunaru. Na primjer, ... In,ert. a new Ml(rosoft EQu(:I:fOfi 3.8 obie~t cesto se javlja potreba da u tekst unesemo \,t, ~ ",to YD\lt document. ' neku matematicku formu!u kOja sadrzi razlomke, korijene i slicne elemente koji nisu obicni tekst. Za tu svrhu potrebno je da pomocu naredbe Object iz - menija Insert ubacite objekat nazvan M;crosoft Equation, kao 5tO je prikazano na sliol desno. Ukoliko objekta sa_tim imenom nema, to znac! da na raeunaru na kojem radite nije instaliran program za podrsku radu sa matemati6kim formulama. Moze se desit! da vasa postavka Warda vee ima na traei sa alatima alatku kojom se-odmah ubaeuje Microsoft Equation objekat u tekst (ta alatka se zove Equation Editor, na njoj je nacrtan korijen lz grckog s!ova alfa, a motete je vjd~ jeti na erte2u "Standard" trake sa alatima koju smo ranije prikazali u ovom udzbeniku). Nakon obavljenog umetanja objekta, pojavljuje se traka sa alatima Equation koja izgleda kao na sljedecoj sliol:

Inserl WordArt - Skraceniea za padnaredbu WordArt riaredbe Picture iz menija Insert.


Fill Color - Postavlja baju ispune oznacenog naertanog objekta (npr. elipse) na posljednju izabranu boju. Baja se bira klikom na streHeu desno od alatke. Izaberite No Fill ukoliko ne zelite ispunu. Line Color - Podesava bOju aznacene I1nije, ill ruba ako aznaeenog nacrtanog objelcta, na posljednju izabranu boju. Boja se bira klikom na strelicu desno ad alatke, Izaberite No Line ukolike ne zelite rub oko naertanog objekta. Font Color Line Style Dash Style -

Ova alatka je duplikat istoimene alatke sa "Formatting" trake sa alatima. Podesava stil i debljinu oznacene linije, iii ruba oko oznacenog nacrtanog objekta, Omogucava da se oznacena linija iii rub oka oznacenog nacrtanog objekta iser-

1: ,,,

ta isprekidano.
Arrow Style - Podesava stil prikaza prethodno oznacene strelice.
Shadow - Omogucava prikaz "sjene" koju iza sebe ostavlja oznaceni objekat. Izborom opolje Shadow Settings prikazuje se nova traka sa alatima koja sadrz! alatke za preolzno podesava-

nje nacina sjencenja.


3~D - Pretvara nacrtani dvodimenzionalni objekat u neki od srodnih trodimenzionalnih abjekatao Na prlmjer, eUpsu je moguce pretvoriti u valjak iii kupu. Izborom opolje 3~D Settings pfikazuje se nova traka sa alatima koja sadrti veoma interesantne alatke za precizno podesavanje izgleda dobijenog trodimenzalnog objekta.

~.

Preciznije podesavanje svojstava nacrtanih grafickih objekata maze se ostvariti pomocu dijaloga koji dobija dvostrukim klikbm lijevom -tipkom misa na objekat, iii naredbam Format Object~koja.se mote dobitLklikom desnom tipkom misa na objekat (iii iz Format menija). Objekte brlsemo pritisk6m na tipku Delete na tastaturl, pri cemu prethodno oznaeimo jedan iii vise .objekata- koje .!:>-ri$erno: Oznaeene objekte mozema pomjerati i mijenjati 1m velieinu na slican nacin kao prilikomIada-s.a~svin:r drugim ilustracijama ubacenim u tekst Ukoliko se prHikom pomjeranja ,grafickih obj{fkatadi2:(pritis~ nuta tipka Gtrl na tastaturi, kreira se njihov duplikat na novom mjestu, pri 6-emu origfnalrif pbjEikti. ostaju na svom mjestu. Ovo je jako korisno u slueaju kada treba nacrtati vise iden~i_cni~_ -obie~:ata ..
S8

Vise nacrtanih objekata mazema objediniti u jedan sloteni objekat (koji -se ponasa k';lO' neraskidiva cjelina) tako sto prvo oznaeimo sve objekte kOje zelimo da objedinimo (pom02:u alatke SelecfObject iil" pomocu misa i tipke Shift), a zatlm iz menija Draw (ko]i se nalazi na traci sa alatima "Drawing") izabe~
140

5;:;;::;;:

,,-y-. wit
rr v,.
~:

'0

-;~+

.',\;'3

one ooo Aw8


-=;
~

AO~

[j

2:'"

f f

(r Q '" if:i
141

Svako dugme na ovoj traci sa alatima otvara meni sa mnostvom alatki koje iscrtavaju sablone za unos odgovaraju6eg elementa formule (razlomka, korijena, itd.). Rad sa ovim alatima je vaoma tesKo opisati rijecima, medutim sam rad je toliko intul!ivno jasan da js ,i apsolutnim potetnicima dovoljno nekoli~o minuta prakticne vjetbe da savladaju postupak unosenja eak i najzamrsenijih for~ mula. Kroz formulu se motema kretati kao i kroz obieni tekst. Obiljezene dijelove formule mozema pomjerati u sva eetiri pravca pomo6u tipki sa strelicama, pri eamu istovremeno drzimo pritisnutu tipku Ctrl. Zavfsetak rada sa formulom postizemo klikom miSem bila gdje izvan podrucja formule. Prilikom uredivanja formula na ekranu su prisutni drugaeiji meniji nego prilikom normalnog fada sa tekstom, a eije bi opisivanje zauzelo previse prostara (zapravo, rad -sa formulama obavlja poseban program, a ne Microsoft Word, koji je sa Wordom povezan pomoeu Vee opisane OLEtehnologije). Word formule tuva kao neku vrstu crtanih slika, tako da mnoge stvari vezane za crtane slike (pomjeranje, mijenjanje velleine, itd.) vrljede i za formule. Ukoliko telimo da vee unesenu formulu panovo uredujema, potrebno je dvostruka kliknuti lijevom tipkom misa na formulu.

vanom Suggestions pisati neki od prijedloga kako bi ispravno rijet trebala da se pise (tj. spisak ispravno napisanih rijeei koje lice na pogresno'napisanu rijet), iii prijedlog kaka bi trebala da iZ9leda gramatieki ispravna receniea. Treba voditi raeuna da pronadena pravopisna greska ne mora zaista da bude greska, To je prosto rljet koja se ne nalazi u rjecniku, koja ne mOfa nuzno da bude neispravna (npr. neelja ime iii prezime vjerovatno neee biti nadeno u rjeeniku). Nakon pronalaska eventualne pravopisne iii gramaticke greske, korisniku se nudi nekollko mogucnosti. Klik na dugme Ignore ignorira uoeenu gresku j nastavlja pretragu, dok Ignore All ignarira sve dalje_pojave iste rijeel u tekstu (ovo je korisno u slueajevlma kada je detektirana laina greska). Klikom na dugme Add mozema uoeenu djec dodati u rje6nik, elme se omogucava da ratullar "nauei" novu rijee i da ie vise ne prikazuje kao pogresnu. Klik na dugme Change ispravlja uof':enu gresku (tj, mijenja pogresnu rijee sa izabranom rijeei lz spiska Suggestions) i nastavlja pretragu, dok klik na dugme Change All odmah ispravlja sve pojave pogresne rijeei u (:itavom dokumentu (sto je korisno ukoliko ustanovimo da smo neku gresku ponavljali kroz cijel! dokument). Ukoliko je opeija Check grammar isklju6ena, tada Ward nece provjeravati gramatiku, nego samo pravopis. Nakan obav!jene analize eitavog dokumenta, Word 6e ispisati kratak izvjestaj 0 procjeni Citljivosti i razumljivosti napisanog teksta. Provjera pravopisa i gramatike moze S8 obavljati i u pozadini, uporedo dok pisete'tekst. Pozadinsl<a provjera gramatike i pravopisa aktivira se pomodu kartice Spelling & Grammar dijaloga za izvrsavanje naredbe Options menija Toofs. Ukoliko zelite pozadinsku provjeru pravopisa, uldjuciie opciju Check spelling as you type, a ukoliko zelite pozadinsku provjeru gramatike, ukljucite opciju Check grammar as you type. Kada je ukljutena pozadinska provjera, Word ee svaku pravopisnu gresku podvlaciti 9J.y.s(Q9"rDy)j!J~ygro.JJ.QJlQ[Jl' a svaku gramaticku gresku ?,t9,!@H9llJ viiug?Y~J\1.I!r)i,iOt:rL Ukoliko vam Word nezeljeno podvJaci sav tekst koji kucate crvenin-i iIf zeleiilm"l,rJjuiiaviiirlinijama, to je staga 5to je ukljucena pozadinska provjera pravopisa i gra~ matike za engleski jezik, a Vi kucate tekst na bosanskom jeziku, tako da Je 5vaka rijea pravopisno nekorektna. U tom slucaju prosto iskljucite opcije za pozadinsku provjeru pravopisa i gramatike. Kartica Spelfing & Grammar sadrti jOs neke opcije koje omogucavaju preciznije podesavanje provjere pravopisa i gramatike. PrHikom koristenja automatske pr9vjere pravopisa i gramatike, korisnik mora -biti svjestan gdje su granice u pO,drsci tekst procesora automatskoj provjeri pravopisa i gramatike. Provjera pravopisa je onoliko dobra kolika je dobar rjetrl'ik za odgovarajuCi jezik, i ona uglavnom radi sasvim zadovoIjavajuee. Medutim, opisati gramatiku nekog govornog jezika na formalan naein koji bi bio razumljiv racunaru, ~, t ' 1 1 ' 1 veoma je tetak problem. 8toga je gramatieka provjera b'Jt'YCorroc' j_:\::;~~'O;;\~'~:~":";YPC j'~'"'01",~t 1 ~""'Fo""",l kOja je ugradena u program Word prilitno primitivna, tako da veliki broi gramatickih gresaka ostaje neotkriven. 8toga se na provjeru gramatike pomocu programa'Microsoft Word ne treba previse oslonitl (to ne ~ z~a~f da fie pastoje specijalizirani programl koji ovaj ,p.0s.ao_ obavljaju ,znatno temeljitije).

2.1.5 Provjera pravopisa i gramalike, i aulomaisko ispravljanje gresaka


Savremeni tekst procesori poput Microsoft Warda, pa cak i mnogi editor[ teksta, omogueavaju automatsku provjeru pravopisa i gramatlke pisanog teksta. Provjera pravopisa za ratunar je prilitno jednostavan zadatak, koji se uglavnom svodi na uporedivanje riied iz teksta sa ispravnim rijetima iz unaprijed pripremljenih rjecnika, dok je provjera gramatlke neuporedivo sloteniji zadatak. Pored toga, provjera pravoplsa podrtana je za gotovo sve jezike, dok je provjera gramatike podrzana samo za relativno mali broj jezika (npr. za engleski jezik). Taka je, na primjer, provjera pravopisa, pored engleskog jezika, sluzbeno podrzana i za hrvatski jezik. Sluzbene podrske za bosanski jezik nema (u nedostatku, mote dobro posluziti i podrska za hrvatski jezik, s obzirom na izrazito veliki broj zajednickih rijed), mada to ne znael da neki od bosanskih entuzijasta nisu eventualno pripremili i podrsku za bosanski jezik. Natalost, provjera gramatike nije do trenutka pisanja ovog udtbenika podrzana ni za jedan od juznoslovenskih jezika. Opcenito se pokazalo da je gramatika svih jezika iz slovenske grupe jezika sa svojim obiljem padeza i izuzetaka prilicno "tvrd arah" za danasnje racunare. Da bismo mogli vrsiti provjeru pravopisa i gramatike u nekom dOkumentu,- prvo je pomocu naredbe Language iz menija Tools i njene podnaredbe Set Language potrebno definirati jezik u kojem je pisan dokument, sto je moguce uraditl jedino ukoliko je softverska podrska za taj jezik (rjetnici i drugo) prethodno instalirana na raGunar. U nastavku cemo pretpostavljati da je izabrani jezik engleski, jer je podrska.za taj jezik installrana praktiekl na svakom raGunaru. Nakon sto smo podesHi jezik dokumenta, provjeru pravopisa i gramatike zapoeinjemo izborom naredbe Spelling and Grammar iz Tools menija, iii izborom istoimene alatke sa "Standard" trake sa alatima (iii, jos brie, pritiskom na tipku Fl). Pretpostavimo, na primjer, da nas tZ :-4 ;1,,,- '~Tii:w%ttHttt:ti"tet\ '7"j'}J,)(} dokument sadrii recenieu "We should go throgh forest." u kojoj je ,rijec "throgh" napisana pogresno (treba "through"). Nakon sto pakrenemo provjeru pravopisa i gramatike, Word ce, nakon prvog nailas\,a na mogucu pravopisnu iii gramaticku gresku, prikazati dijalog popul dijaloga prikazanog na slid desno. Pravopisna greska biee oznacena crvenom bojom (gramatitke greske oznacavaju se cC'--,J,'i' ny/ t'), dok ee u prozoru naz
H

_, _Jos' jedna 00 intere?antnih mogucnosti ugradenih


'q -.prngr~m Microt?oft Word je automatska ispravka .tfp!crii/J gresaka u kucanju. Da bismo prilagodili ovu

, ," moguenost vi"asfitim- potrebama, potrebno je pokrenuti -naredbu AutoCorrect iz menija Toofs. Pokretanjem ova naredbe otvara se dijalog Sa vise kartica, eija je " Jiiartica AutoCorrect prikazana na slici. Opcija Correct TWo' INitial CApitals omogucava automatsku
143

142

ispravku gresaka u kOjima su prva dva slova unutar rijeci velika, umjesto sarno prvog slova (ova greska obicno nastaje usljed prekasnog otpustanja tipke Shif~. Opeija Capitalize t;rst letter of sen~ fences omogucava automatsku prepravku prvog slova recenice u veliko slovo. Kako Word smatra da je prvo slovo iza svake tacke pocetak recenice (8to ne mora biti uvijek tacno, jer se tacka moze nalazitl i unutar neke skracenice), ova opeija ponekad maze da smeta, staga ju je cesto potrebno isklju6iti. OpGija Capitalize names of days omogucava automatsku zamjenu pocetnih slova naziva dana velikim slovima, sto se zahtijeva npr. u engleskom pravopisu. OpGiia Correct accidental usage of cAPS LOCK key omogucava automatske ispravke gresaka koje nastaju kada korisnlk zaboravi da iskljuci tipku Cap:;; Lock. Klikom na dugme Exception moguce je definirati izuzetke, u kOjima Word nece praviti automatske ispravke. Najmocnija opeija koju posjeduje Word za automatsku korekciju gresaka je opeija Replace text as you type. Ova opcija omogucava automatsku zamjenu jedne rljed iii fraze prilikom kucanja drugam. Korisnik maze definirati vlastita pravila zamjene, taka sto ee ukueati izvomu rijet u polje za unos Replace, a zamjensku fijet (iii frazu) u polje za unos With, a nakon toga kliknuti na dugme Add. Program Microsoft Word vee dolaz] sa pripremljenim spiskom od nekoliko stotina tipicnih gresaka u kueanju koje se javljaju prj kucanju engleskih tekstova. Ova pravila mozete i sami pregledati u prozoru koji se prikazuje unutar dijaloga (pogledajte sliku). Medutim, medu unesenim pravilima postojl jedno pravllo koje je u direktnoj suprotnosti sa nasim jezikom, a to je pravilo koje kaze da se svako malo slovo "i" treba pretvoriti u veliko SIOVD "I" (ovo pravilo sHjedi iz engleskog pravopisa, po kojem se li6na zamjeniea ~ja" uvijek pise iskljuCivo kao veliko slavD "I"). 8recam, nezeIjena pravila je laka izbrisati klikorn na dugme Delete (prethodno prvo trebamo oznaCiti pravilo koje zelimo obrisati). 8toga, ukolfko Yam Word neprestano mljenja malo slovo "i" u velika SIOVD "I", ;zbrisite ovo pravilo ill iskfjucite potpuno opciju "Repface text as you type".
j

Pllanja i zadaci
Opisile kako je tekao razvoj sistema za obradu tekst~ za PC racunare. Koji su karakter!stitni elementi prozora programa Microsoft Wore!? Sta je oblikovanje, (formatir-anje) teksta? Gemu sluze trake sa alatima u programu Microsoft Word? Koj! meniji postoje u programu Microsoft Word? Navedite nekoliko najvainijih naredbi u svakom od menija. 6: Cemu sluti oznacavanje teksta i kako se vrsi? 7. Cemu sluze linijari j sta u6initi ukoliko oni nisu vidljivi na ekranu? 8. Zbog 6ega je neophodno snimiti dokument na disk? 9. Kako se mozemo zastititi od gubitka dokumenta u slucaju nestanka elektricne energije? 10. Sta cete uciniti ukoliko nehotiee uradite neku radnju koJom ste upropastlli dio dokumenta iii 6itav dokument? 11. Za8to ne treba pritiskati tipku ENTER svaki put kada zelimo prelazak u novi red? 12. Sta treba uCinitl ukoliko se neophodne trake sa alaUma ne vide na ekranu? 13. Slucajno ste kliknuli na alatku New i otvorili novi dokument. Kako cete se vratiti u star! doku~ ment? 14. Kako biste najbrze zamijenili svaku pojavu rije61 "vazduh" u dokumentu u rije6 "zrak"? 15. Napravite dokument u kojem cete napisati spisak od 10 vasih omlljenih pjevaca, pjeva6iea iii grupa kOje cete obiljezitt rednim brojevima. U dokument ubacite naslov, kojl 6ete podebljati i eentriratL Vrstu i veliclnu slova izaberite po volji. Po zavrsetku rada, snimite dokument na hard disk 1disketu. 16. Napravite po vlastitom izboru dokument kojl sadrii neku slozeniju tablieu, koji 6ete oblikovati po sopstvenoj volji. Snimlte dokument po zavrsetku rada. 17. Napravite samostalno nekoliko dokumenata u Kojima 6ete demonstrirati umetanje slika u tek~ stualne dokumente. 8nimite sve dokumente po zavrsetku rada. 18. Napravite nekoliko crteza koriste6i iskljucivo Wordove alate za ertanje. Posluzite se alatkom Zoom da povecate preciznost crtanja. 19. Napravlte dokument koji opisuje jednu lekciju iz matematike, u kojaj cete morati da upotrijebite umetanje matematltkih formula u-dokument. ' 20. Napravite samostalno nekoliko dokumenata u kojlma cete demonstrirati 8tO je god mogu6e vise elemenata koje ste nau6ili vezanih za rad sa programom Microsoft Word. 21. Sta je OLE lehnologija? 22. Gemu sluti grupiranje grafi6kih objekata i kako se postize? 23. Kako se vrsi automatska provjE;lra pravopisa i gramatike? 24. Napisite kratak tekst na engteskom jeziku i pU;3tite Word da pronatie pravopisne greske u napisanom tekstu. 25. U kojoj'mjeri se mozemo oSI~r1-iti-n-a~ pto\!Ieru praVopisa.1_gramatlke pomoeu programa Microsoft Word? 1. 2. 3. 4. 5. 26. Sta treba u6initi ukoHko narii _~Grd_s.t~no podvfaCi tekst koji kucamo crvenim iii zelenim v[ju~ gavim linljama? '.' 27. Kako se upravlja automatskom isprq~k-0nl::greSaKa u kl,lcanju u programu Microsoft Word? 28. Sta treba utiniti ukoliko ham-Woi!istalno mijenja. malo slovo "F' u veliko slovo "I"? 29. Sta treba uciniti UkQliko'na~_:'W~rd obfikuje tekst.prilikom kueanja na nacin koji nije u skladu sa nasim zeljama? " . . 30. Sta su stilovi i cemu slute?
145

Microsoft Word omogucava ( automatsko oblikovanje teksta za vrijeme kucanja. Na prlmjer, nekada Word uspije automatski da prepozna da ste unijeli naslov teksta i da izvrsi njegovo oblikovanja. Ovim mogucnostima upravlja se pomoeu kartica AutoFormat As You Type i AutoFormat u istom dijalogu. Automatsko oblikovanje moze biti korisno, ali maze i da nervira, pogotovo ukoliko ustanovimo da nam Wordvrsi zamjene koje su u suprotnosti sa onim sto zaista zellmo. 8toga, kada god primijetimo da Word izvrsava automatsko oblikovanje teksta koje nije u skladu sa nasim ze!ja~ ma, najsigumije je da isklju6imo sve opGije na ovim karticama, time iskljucujemo sve automatske intervencije koje Word obavlja mimo nase volje i znanja. Na kraju izlaganja 0 Microsoft Wordu, reGimo i nekoliko riie6i 0 stifovim8. Stilovi omogu6avaju da grupu informacija 0 obtikovanju teksta, poput vrste i veliCine s!ova, naCina ravnanja, itd. sa6uvamo kao jednu cjelinu pod jedinstvenim imenom. Na primjer, ukoliko smo definirali nacin oblikovanja jednog naslova u dokumentu, mozema sacuvati informacije 0 oblikavanju kao stll "Naslov". Kada kasnije primijenimo stil "Naslov" na neki drugi dio teksta, sve informacije 0 obliko~ vanju bi_ce autamatskl primijenjene na taj dio teksta. Uko!iko kasnije promijenimo neke od informadja pohranjenih u stilu "Naslov", te izmjene ce automatski biti primijenjene na sve dijelove teksta na . kqfi je~primijenien-stil "Naslov", sto izuzetno olakSava naknadne izmjene oblikovanja dokumenata. 8tllbvLse definiraju pomocu naredbe Style u meniju Format, a biraju pomoeu istoimene padajuce lists nil- i'Form-atting" traci -sa alatima. Posto rad sa stilovima spada u naprednije teme, 0 deta!jima qefinir"aryf"! i l.!potfebe s!ilova nec~mo govoriti u ovom udzbeniku. -

2.2 SISTEMI ZA TABELARNE PRORACUNE


2.2.1 Razvoj sistema za tabeJarne proracune na PC racl.lnarima
U prvom dijelu ovog udtbenika upoznali sma se sa pojmom programs za labeiarne proracune, kojl se jos nazivaju i programi za unakrsna izracunav8nja iii spredsit (engl. spreadshee~ progra~ mi. Njihov osnovni zadatak je omogucavanje kreiranja takvih tabela u Kojima vrijednosti pojedinih polja mogu zavisiti od vrijednosti nekih druglh polja, taka da se vrijednostl svih takvlh polja automat~ ski mijenjaju kad god se promijeni sadrzaj nekog od polja 'od kojil1 takva polja zavise (biiD direktno iii indirektno). Slicno kao i kod sistema za obradu teksta, prvi programi za tabelarne proracune mnogo su se razlikovali od danasnjih. Vee smo spomenuli da je sve pocele kasnih sedamdesetih godina sa programom VisiCaic. Prvi programi za tabelarne proracune bili su orijentirani iskljuCivo na tab!icna izra6unavanja, taka da su amogu6avali iskljuCivo rad sa tablicama, i ni sa eim drugim. Tablice se nisu magle mijesati sa propratnim tekstom, tako da same za sebe nisu predstavljale dokument koji bi se mogao odstampati i prezentirati. Obieno su se tadasnji programi za tabelarne proraeune koristili isklju(;ivo za obavljanje samih proracuna, nakon eega su se proraeunate tabllce morale "uvozlti" u neki ad tekst procesara Hi pro~rama za stolno izdavastvo u cilju dobijanja finalnog dokumenta. Programeri su ubrzo shvatili da js opisani rad sa programima za tabelarne proraeune isuviSe zamoran, pa su ovakvim programima poceli dodavati izvjesne elemente, koji su, pored eistih izracunavanja, omogucavali i oblikovanje tablica, kao i njihovu prezentaciju u formi samostalnog dokumenta. Jedan od ptvih programa za tabe!arne prora6une koji je omogucavao ovakvu prezentaciju bio je program Lotus 1~2~3. Prve verzije Lolusa bile su namijenjene za MSDOS oper~ ativni sistem, dok su novije verzije prilagodene Windows operativnim sistemima. Lotus 12-3 je i danas jedan ad najpopularnijih programa za tabe!arne proracune za PC racunare (razumije se da su danasnje verzije Lotusa neuporedivo naprednije od prvih verzija, s obzirom da se rad! 0 programu koji se razvija preko dvadeset godina). Vjerovatno najpopularniji program za tabelarne prora6une za PC racunare je I}/Iicrosoft Excel, koji cemo skra6eno zvati samo Excel (eita se ikse~. Ovaj program presto zadivljuje svojim mogucnostima. Excel u sebi, pored osobina svojstvenih iskljuCivo programima za tabelarne proraeune, sadrzi integrirane gotovo sve elemente sistema za obradu teksta. Stoga je, teoretski gledano, pomo6u Excela mogu6e pripremiti i oblikovati cak i bilo koji tekstualni dokument ko]i bi se mogao uraditi pomocu Microsoft Warda. Naravno, ovakav rad oe bi bio praktican, jer ce se pomo6u namjenskih programa za obradu teksta ista stvar uraditi znatno jednostavnije. Mectutim, ovdje sma samo zeljeli da istaknemo abuhvatnost programa Excel. Pored vee pomenutag Excela i Lotusa, u ~irQj upotrebi je i program za tabelarne proraeune Quattro Pro. __ "'_ . :-Goto:Vo svi danasnji programi za tabelarne proraeune omogu6avaju i prikaz posJovne grafike, .'.odnosrTo prikaz.tabelarnih podatka u vidu raznovrsnih dijagrama. U posljednje vrijeme, programi za "~ab_eJarne proracune integriraju i neka svojstva geografskih informacionih sistema, poput ::~gU?nbstl pri~aza digitaliziranih geografskih karata, Programi za tabelarne proracune veorna su pogodni za razne ekonomske analize, kalkulacije i druge..racunske operacije, za koje su, prije izuma programa za -tabelarne proracune, mnogi uredski siuzberilci znali potrositi i Wav radni dan. Obicno su u pitanju proracuni u kojima se susrece gomila podcHaka, za Giji se obracun koriste iste metode i formule, ali nad razli6ltim podacima, i sa razliGiiirn
146 147

koeficijentima (npr. razlicitim j'edinicnim cijenama). Takoder, najcesce S9 radi 0 proracunima koje je potrebno vrsiti periodicno (dnevno, sedmicno, mjesecno, kvartalno Hi godisnje). Programi za iabelarne proracune omogucavaju da jednom potrosite nesto vise vremena da predzno izdefinlrate problem, da biste kasnije ostvarili velike ustede u vremenu, jer ce yam program sve proracune obavljati sam" Pri tome je najcesce dovoljno da za samo jedan objekat (npr. neki proizvod) ispisete univerzalne formule za njegov proracun, kOje se kasnije mogu presto kopirati na ostale objekte. Kao i u slucaju sistema za obradu teksta, da bismo se detaljno upoznali sa naCinom rada sa sistemima za tabelarne proracune, moramo se odluciti za neki konkretan program. Ovdje, izbor, bez sumnje, pada na Microsoft Excel kao najpopularniji program ove vrsta za PC racunare. Treba napomenuti da ogroman broj korisnika ne upotrebljava Exce! na pray! nain, vee ga koristi samo kao sredstvo za brzo i lako oblikovanje tablica koje lijepo izgledaju. Medutim, puko pravIjenje tablica nije osnovni cH) programa Excel - lstu stvar bez problema mozema uraditi i u Wordu. Oa bismo Excel koristili na ispravan nacin, moramo kreirati tablice koje obavljaju neke prora6une (pa makar i posve elementarne), sto zapravo i jeste osnovni cilj svih programa za tahelarne proratune. Mnogi korisnici misle da je dosta tesko nau61tl ispravno raditi sa pragramima za tabelarne proracune, tako da S9 mnogi I ne trude da savladaju ave programe kako treba, Medutim, to je velika steta, jer se rad! a zaista izuzetno korisnim programima. Trud koji je potrebno uloziti za njihova savladavanje kasnije ce se visestruko lsplatltL U. prvom dijelu udzbenika naveden je interesantan primjer primjene programa za tabelarne prora6une za potrebe automatskog vodenja statistike a uspjehu utenika u razredu. Nazalost, jOs uvijek veliki broj nastavnika, ne sarno kod nas nego cak i u svijetu, ima prl1itan otpor prema ucenju efikasnog koriStenja programa za tabelame proracune,

Naslovna Glavni Dugmad za


traka
meni

uredivanj

"Standard"

Traka sa alatima

"Formatting"

Traka sa a{atima

Oznake
kolona

formula

TroJa

Polie za ureail'al1jt
formula

Oznaka

aklivne
celije Radna

Vc/1ika(na
{mlw za parnak

stanica

2.2.2 Organizacija dokumenata u programu Microsoft Excel


poput programa Microsoft Word za Windows operatlvne sisteme, Microsoft Exceltakoder je pri1agoden i drugim vrstama racunara i operativnih sistema, U nastavku teksta podrazumijevacemo da radimo sa engleskim izdanjem verzije Microsoft Excel 97 ill Microsoft Excel 2000 (izmedu ove dvije verzije nema sustinskih razlika), mada ce se sve opisane stvar! gotovo sigurno moCi primijenlti na ma koju verziju Microsoft Excela koja ucenicima bude na raspolaganju prilikom koristenja ovog udzbenika.
Microsoft Excel je znatno kompleksniji program od Microsoft Worda. Oak smo u prethodnom paglavlju kroz brzi pregled uspjeli da pokrijemo aka 30% mogucnosti Worda, necemo pretjerati uko1iko kazemo da cemo u ovom udzbeniku upoznati svega oko 5% mogucnosti programa Excel. Zaista se radi 0 izuzetno mocnom pregramu koji, nazalost, rijetko ko zna iskoristiti u patpunosfi. Kroz nastavu, informatike u osnovnoj skoli vjerovatno sfe se vee susreli sa programom Microsoft Excel, a.1i najvjerovatnije iskljuCivo kao sredstvom za pravljenje lijepo oblikovanih tablica. Na ovorn mjestu' cemo, se ~ise posvetiti proracunskim tablicama i poslovnom grafikom, sto i jeste osnovna svrha' ovog programa. Nakon pokretanja programa Microsoft Excel, na ekranu se ,poja~IJOje prozor karakteristicnog oblika. Izg\ed ovog prozora, kao i njegovi osriovni elementi, prlkaz'ani S~.[l.B.:-slj~de60j slid:

Dugmad za Omake mdnih izhor rarlnih stanita


stmnion

Trnka sa a!(lfinw "Drawing"

Statusl1tJ trnka

Horiz(mfall1f1

za pml10k

lraka

Poput Microsoft Warda, Microsoft Exceltakader podrzava pristup orijentiran ka dokumentu, taka da se gornja slika javlja prilikom pokretanja Excela na prazno. Moze se primijetiti priH6na slicnost sa pro~ zorom koji se javlja nakon pokretanja Microsoft Worda. Kao i u slucaju Worda, rnoguce je da neki od elemenata nisu prisutni na ekranu. Ukoliko ne vldlte prikazane trake sa alatima, mazete ih ukljuCiti naredbom Too/bars u meniju View, slibna kao u Wordu, Traku formula (koja sadrzi palje sa nazivom celije, dugmad za uredivanje, i polje,za uredivanje formula) mozete ukljuciti (iii fsk\jucfti) pomocu naredbe Formula Bar, a statusnu traku pomocu naredbe Status Bar. Obje ove naredbe takoder se nalaze u meniju View. U nastavku cemo podrazumiJevati da su na ekranu prisutni svi navedeni elementi. Bez obzira na slicnosti, mote se prlmijetiti jedna velika razlika u odnosu na Microsoft Word. Umjesto praznog "lista papka",- Excel u 'radnom dije!u ekrana prikazuje praznu mreiastu strukturu (tabelu). Dokumenti radenl u E;xcefu na~jvaju se -radnfJ knjige (engl. workbooks), Pocetno ime dokumenta u Excelu je Book1, kOje",Ostate {!.kvo:sve do prvog snimanja dakumenta na disk, kada cemo morati unijeti i zelje'no !!l1e dDRument~.:D(Mumenti/adeni u Excelu automatski dobijaju nastavak na Imenu (ekstenziju) .XL$.
'''T. " ,

Svaka radna knjiga podij~ljeD~i j'-n~~~;dr~~eOi_ broj ril.dilih stranica (engL worksheets), U jednom trenutku na ekranu se prlkazuje'sa'r.-'jedna radna'stranica.' Sa jedne na drugu stranicu mazema prelaziti klikom lijevom tip~bm mf~ana oznake.radnih stranica koje' se nalaze na dnu prozora, U sJutaju da imamo,mnoga ra'dnih stranica., tako da se sve njihove oznake ne vide istovremeno na ekranu, za izbor radnili stranka motemo.korisfiti dugmf!d za izbor radnih stranica, kOja se takoder na!aze n.a dnu prozora,
149

Radne stranice na pocetku rada imaju imena Sheet1, Sheet2 itd. lmena radnih stranica mazerna pramijenitj tako da dvostruko kliknemo na oznaku radne strane j da utipkamo novo ime. 1st! efekat mozemo postiei i pomocu naredbe Rename koja se,nalaz; 'u iskocnom meniju koji se javlja nakon klika des nom tipkom misa na oznaku radne strane. Da bismo izbrisali radnu stranicu, koristimo naredbu Delete iz istog menija; iii naredbu Delete Sheet iz menija Edit. Novu radnu stranicu mozemo umetnuti pom06u naredbe Insert (takoder iz menija Edit); pri 6emu se nova stranica umeGe uvijek ispred trenutno aktivne radne stranice. Alternativno, mozemo izabrati i naredbu Insert iz iskocnog menija. U tom slueaj bice nam ponuden dijalog u kojem mazemo izabrati neki od sablona unaprijed pripremljenih izgleda radne stranice. Ukoliko telimo da promijenimo redoslijed radnih stranica, iii da kopiramo jednu radnu stranieu na-vise mjesta u radnoj knjizi, mozemo koristitl naredbu Move or Copy Sheet iz menlja Edit, iii naredbll Move or Copy iz iskocnog menija. U oba slu6aja dobijamo dijalog koji nas pita da Ii zelimo premjestanje iii kopiranje, kao i na koju lokaciju treba premjestiti iii kopirati stranicu. Svaka radna ,stranica podijeljena je pamacu mreze linija na vefiki brej redova i kalona (65536 redova i 256 kolona u verziji Microsoft Excel 97). Kalone su abi!jezene slovima ad A do Z, nakon toga od AA do AZ, zatim ad SA do BZ, itd. Redovi su obiljezeni brojevlma. Oznake kalona vidljive su na vrhu radne strane, a oznake redova sa lijeve strane. Naravno, u jednom trenutku na ekranu je vidljiv samo mall dio radne stranice. Kroz radnu stranicu matemo se kretatl pom06u tipki sa strelicama i tipki Page Up, Page Down, Horrie i End, iii pomocu misa, koriste6i trake za pomak. Kako je radna stranica agromna, lako nam se moze desiti da strelicama "odlutamo" na neki prazan dio radne slranice, 5tO 6e nam stvoriti iluziju da smo "izgubili" podatke sa ekrana (oni se zapravo nalaze na nekom drugom dijelu radne stranice, koji trenutno nije vidljiv na ekranu). Medutim, ne treba da se brinemo: oznake redova i kolona uvijek ce nam pomoci da se orijentiramo na kojem se dijelu radne stranice trenutno nalazimo. U presjeku redova i kalona nalaze se polja koja se nazivaju celije. U svakom trenutku jedna je telija aktivna: to js teJija aka kole postoji podebfjani crni okvir, koj! cemo zvati oznaka aktivne 6elije. Oznaku aktivne cellje mozemo pomjerali pomocu tipki sa strelicama, kao i neposrednim klikom misa na celiju koju zelimo da proglasimo za aktivnu cellju: Mozemo primijetiti da su oznake odgovarajuceg reda i kolone kajima pripada aktivna ceUja prikazane istaknuto. Svaka celija dobija ime na osnovu oznake kolone i reda u kojem se ona nalazi. Na primjer, cellja koja se nalazi u presjeku kolone "C" i reda "5" dabija naziv "C5". Ime trenutno aktivne celije uvijek se prikazuje u polju sa nazivomcelije (engl. Name Box). Pored ovih podrazumijevanih imena (koja jos nazivamo i genericka imena ill adrese), ce!ijama mazemo davati i vlastita (korisnicka) imena, tako sto cemo kllknuti u polje sa nazivom celije i tame upisati novo ime. Na primjer, ukaliko znamo da ce ce!ija "C5" sadrzavati podatke 0 prihodu, mozemo ovu ce!iju imenovati imenom "PRIHOD", sto je lakse zapamtiti za potrebe kasnijeg obavljanja proraeuna od nesugestivnog imena "C5". Korisnieka ir:nena ceUja moraju se sastojali 09 sarno jedne rijeei (bez razmaka), j smlju sadrzavati sarno slova engleske abecede i citre (prj ~emu prvi i posljednji znak imena mora bit! slovo). Bltno je naglasiti da je mre:za. UniJ~ koja razdvaja pojadine redove i kolone samo fiktivna mreia koja se tipicno ne"iscrtava' ria p~piru prllikom ,s!ampanja-dokumenta (mada posebnom opdjom mozemo zahtijevati i njano stampanje). Na-paR\ru S? t!picno prikazuju samo one linije koje eksplicitno nac;" lamoprilikom postupka obli~Qya~ja" q,Q~menta:, :Fiktivna mreta same olaksava baratanje sa cinjen]" com da je svaka radna stn:tnic,a organiziF{i~? tao skupina neovisnih celija. Nekada je poteljno is/(fjuciti prikaz ove mrete. Za tu svrhu treba pokr.e,~uH naredb,u Qptions iz menija T00/5, izabrati karticu View, i iskljuciti opciju Griclline{3. Na OVo] kartlci nalazi se jos nekoliko opcija za upravljanje izgledom radne stranice na. ekranu, pa 'ukaiiKo primijettte CIa vam neki elementi radns slranice nedostaju (poput ozna" ka redava 1kolon'!-), eksperimentir~i:le. s~ opcijama.na ovoj karUci dok ne podesite zeljeni izgled.

2.2.3 Unos podataka u radne stranice


Na prvom mjestu, moramo naglaslti da postoji mogucnost da objasnjenja koja slijede U ovom odjeljku u vasaj postavci Excela mazda nece radit] tacno kako je, ovdje opisano, zbog cinjeniee da je Excel visoko prilagodljiv program u kojem korisnik mote podesavati detalje vezane za nacin unosa podataka. Ukoliko imate problema prilikom unosa podataka (u smislu da yam se javljaju velike raz!ike u odnosu na objasnjenja koja ee bit! opisana u nastavku teksta), pokrenite naredbu Options iz menija Toofs, i eksperimentirajte sa opcijama na kartici Editdok ne podesite program da radi u skladu sa vasim ocekivanjima (iii, jOs bolje, zamolite profesora da izvrs] potrebna prilagodenja). Vee smo vidjeli da su podaei u radnim stranicama organizirani iskljucivo kao skupina eelija. Podatke u celije mazemo uplsivati na raz1icite nacine. Najjednostavniji natin je da prvo obiljezimo celiju u koju zelimo unosit] podatke, a da nakon toga neposredno zapocnemo unos sa tastature. U tom slucaju se podaci koje unosimo preplsuju preko eventualnog ranijeg sadrzaja iste cellje. Ukoliko zelimo samo da izmijenimo neke detaije u celiji koja vee sadrzi unesene podatke, dvostruko kliknemo na ce1iju, eime dobijamo mogucnost da uredujemo podatke ko]i su vee bili uneseni u 6el1]u. Alternativno, sadrtaj aktivne cellje mozemo uredivati i unutar polja za uredivanje formula (neovisno da Ii se radi 0 fermuli iii nekom drugom sadrzaju) u traGi formula. Prilikom lInosa podataka u 6eliju, iii uredivanja njenog sadrzaja, u traGi sa formulama javljaju se i dva dugmeta na Kojima je naertan crveni kriii6 (X) i zelena kva6ica (F'). Klik na kritic atkazuje unos iii izrnjenu podataka, dok klik na kvacicu prihvaca unos iii izmjenu. isti efekat pastizemo pritiskom na tipke Esc odnosno ENTER na tastaturi. Mada ce u veHkom broju slucajeva unos iii izmjena bit] prihvaceni Gim promijenimo aktivnu celiju (npr. klikom misa na novu celiju, mkoristenjem tipki sa strelicama), trebate se navikavati da unos padataka lIvijek zavrsavate pritiskom na tipku ENTER (iii klikom na dugme sa zelenom kvaeicom), lnaee tete imati-velikih problema prilikom unosa formula, U celi]e se mogu ,unositi sljedeei elementi: tekstualni podaci, brojcani podaci, datumski podaci, vremenski podaci" i formule. Tekstualni podaci predstavljaju podatke sa kojima se ne mogu vrsiti nikakve racunske operaci]e. To su, na primjer, imena i prezimena, brojevi telefona i, opcenito, bilo kakvi podaci ko]i sadrze proizvoljan tekst Za razliku od njih, sa brojCanim podacima se mogu vrsiti racunske 'operacije. Primijeticete da Excel automatski poravnava unesene tekstualne podatke uz lijevu ivicu celije, a brojcane podatke uz desnu ivicu celije (kasnije je ova ravnanja moguce promijeniti u postupku oblikovanja tab!ica). Ukaliko telimo da unesemo neki podatak koji izgleda poput brojeanog podatka, a zapravo je tekstualni podatak, jer se sa njim ne mogu vrsiti racunske operacije (npr. postanski broj nekog grada), lInos treba zapoeet] sa znakom apostrof ( ,), koji govori Excelu da slijedi tekstualni podalak, bez obzira na njegov izgled. Tako, npr. po:tanski broj Sarajeva (71000) treba unijeti kao '71000 da bi 9a Excel ispravno shvatio kao lekstualni podatak (ovaj apostrof se ne prikazuj~ kao sadrzaj cellje). Prilikom unosa brojcanih podataka treba paziti na nekoliko specificnosti. Zavisno pd regionalne postavke racunara na kojem radite (koja se u Windows operaihmirTlsistefnitna mote birati pomocu pomocnag programa Regional Settings, koji mozerno pozvati prvo:duplirri klikom na ikonu My

computer, a zatim na ikonu Control Panen, za razdvajal1je eije/orr od "de.clmal(log:ljij?la broja koristi se znak zarez (,) iii tatka (.). Na primjer, u slucaju hrvatske p!:l$ta~~_e ~O!h3t~ s~ zare~_(npr. 3,15), -a U slucaju engleske iii ameri6ke postavke znak tacka (3.15):Mo-rate proi,tjrirtH'k91a $e varija'Qta koristi ria vasoj postavci. Na primjar, probajte unijeti broj 3,15 sa zarezom:Ukqfil>-ga Excel prihvaH i poravna uz desni rub celije, zapamtite da vasa postavka koristi'zaiez; U-s'uprotnbm, zarazdvajanje deeimala koristite tacku. Nagativne brojeve mozemo unositi sa -inakom niirJus ispred iii, alternativno, kao broj u zagradi (npr. broj (25) je isto sto i broj -25), Brojcani podacnnogu S8 zavrsavati i znakom "%", npr. 12% (sto ie zapravo sinonim z~ broj 0,12).
151

150

Datumski i vremenski podaci se takoder unose i prikazuju na nacin koji izrazito zavisi od region" alnih posiavki vaseg ra6unara. Kako se manipulacije sa oyim podacima susrecu uglavnom u naprednijim primjenama pragrama Excel, na njima se necema dodatno zadrzavati. 0 unosu formu" /a i njihovaj primjeni govoricemo nesto kasnije. Prilikom unosa dugackih tekstova u celije, maze se desiti de, se tekst produzi dalje od desnog ruba ceUje. Mada vizualno izgleda kao da je u tom slucaju tekst zauzea vise od jedne celije, on zapravo logicki pripada sarno onol celiji u kOjoj je zapoeeo. Ukoliko zelimo da predemo u novi red unutar iste celije, umjesto_pritiska na tipku ENTER (kaja zavrsava urias celiie) treba pritiskuti kom" binaciju tipki Aft + ENTER. Kasnije Cerna vidjeti da je moguce podesiti Excel da automatski vrsi prelamanje dugaekih tekstova u- posebne redove unutar cellja. UkolikO se uneseni brejcani podatak pretvori u niz znakova "#", to znaCi da je odgovarajuca celija premala da prikaze odgovarajuci podatak. U tom slu6ajLi, treba prosiriti velicinu cellje, 0 eemu cemo gavoriti u narednom odjeljku.

meniju Insert. Ove naredbe djeluju na isti nacin kao naredbe Insert Rows, Insert Columns i Insert Cells u Table meniju programa Microsoft Word. Umetanje redova odnosno kolona mozemo obaviti i pomocu naredbe Insertkoja se javlja u iskoenom meniju koji dobijamo klikom desnom tipkom misa na oznake redova iii kolona. Ukoliko zelimo da iztmsemo red, kolonu iii grupu celija, mazemo koristiti naredbu Delete iz meni" ja Edit, koja se, u zavisnosti od toga sta je trenutno oznaeeno, ponasa poput naredbi Delete Rows, Delete Columns i Delete Cells u Table meniju programa Microsoft Word. Brisanje redava odnosno kalona mozemo obaviti i POtTlocu naredbe Delete kOja se jav!ja u iskocnom meniju koji dobijamo klikom desnom tipkom misa na ozna.ke redova iIi kolona. Pritisak na tipku Delete na tastaturi za vrijeme dok je grupa celija oznacena, brise njan sadrzaj, bez utjeeaja na ostatak tabele, kao i na informacije tome kako su bili oblikovani podad unutar celija (tako da ce novouneseni podaci zadrtat! IstO ablikovanje).

2.2.4 Uredivanje i oblikovanje radnih slranica


Prillkom unosa podataka u tabele, eesto se desava 'da podrazumijevane sirine kolona i visine redova ne zadovoljavaju potrebe korisnika, 8toga je omogucena promjena sirina kolona i visina redova. Sirine kolona mozemo podesavati tako sto dovedemo pokazivae misa u traku sa oznakama kOlona,' tacno na I1nlju koja oznacava granieu izmedu dvije kolone, U trenutku kada pokazivae misa poprimi oblik crnog kriza sa dvostranom strelieom lijevo-desno, pritisnemo tipku misa i, drzec! je pri" tisnutu, pomjerimo liniju koja razdvaja kolone na zeljenu stranu. Na sliean nacin mijenjamo i visine redova. Slrinu neke kolone, odnosno visinu nekog reda, moguce je smanjiti i na nulu, tako da se taj red iii kalona ne vide na ekranu. Za takav red iii kolonu kazemo da su skr;venL Skrivenu kolonu mozemo otkriti tako sto u trad sa oznakama kolona pokazivac misa dovedema ne tacno na liniju koja razdvaja kolone, nego otprilike jedan milimetar desno od mjesta gdje se nalazila skrivena kolona. Pokazivac misa tada poprima oblik II. U tom trenutku je povlacenjem misa (uz pritisnutu lije" vu tlpku) moguce otkriti skrivenu kolonu. Slican postupak se koristi za otkrivanje skrivenog reda. Skrivanje kalone odnosno reda, kao i njihovo ponovno otkrivanje, moguce je ostvariti i kllkom desnom tipkom misa na oznaku reda odnosno kolone, a zatim izborom naredbi Hide odnosno Unhfde iz iskocnog menija koji se tom prillkom ukazuje na ekranu. Za obavljanje raznih operaeija nad sadrzajem 6elija cesto je neophodno prethodno ozna6iti jednu iii vise celija. Oznaeavanje mozemo obaviti, sHcno kao uWordu, koristenjem tipke Shiftzajed" no sa tipkama sa strelicama, ili pritiskom na lijevu tipku misa, a zatim prevlaeenjem pokazivaca misa preko grupe celija koju zelimo oblljeziti, bez pustanja tipke misa. Na ovaj.nacin cemo uvijek obiljeziti samo pravougaoni blok celija. Pri tome, jedna cellja uvijek izgleda kaD_da nije-qbiljetena, ali to je samo iluzija: Excelna taj nacin oznacava aktivnu celiju u obiljezen0t11 bloku. Exq.el dozvoljava.1 obiljezavanje grupe cellja kOje ne tine pravougaoni blok. Za tu svrhlJ potrebflo jee; drzeti-pritisnutu tipku etrl na tastaturi, kliknuti lijevom tipkom misa na svaku celiju koju zellm.o"da Dbilje1imo:_ DB:, bismo 01)11jezili citav red, dovoljno je kl1knoti na oznaku reda. SUeno vrijedi j-za obUjezavanJ8itave kql{Jne. Vise redova odnosno kalona mozemo obiljeziti prevlacenjem pokazivaea miSa" preKo "ezj1aka- redoya"ili kolona (uz pritisnutu lijevu tipku mlsa). Ukoliko zelimo obi!jeziti citavu --iaQefu,: kJ(kMmo 'l1JlSem na. polie kOje se nalazi u gornjem lijevom uglu, u presjeku trake sa oznakamtf;redova i koloAa. Obiljezavanje ponistavamo k!ikom misa bilo gdje unutar radne- stranic~: . '" Ukoliko smo, nakon unosenja podataka u tabelu, primije~iIJ da rri~ramo :u~etn~ti Hove redo~re, kolone, iii samo pojedinaene celije, to mozemo ~raditi pomocu nar~~bi Ro~, Columns i Cells u
152

Da bismo premjes!i!! iii kopirali oznacenu grupu celija sa jednog na drugo mjesto, mozema se korlstiti naredbama Cut, Copy i Paste lz Edit menija, iii istoimenim alatkama na "Standard" traei sa alatima. A!ternativno, za premjestanje oznac~me grupe cellja sa jednog na drugo mjesto, mozemo dovesti pokazivac misa na rub oznaeenog dijela celija. U trenutku kada pokazivac misa poprim'i oblik bije!e strelice, pritisnemo lijevu tipku misa, i ne pustajuci je, odvueemo pokazivac misa na mjesto gdje zelimo da prebacimo celije, nakon eega mozemo otpustiti tipku misa. Na slican naCin se moze izvesti i kopiranje, samo prl tome treba drzati pritisnutu tipku elrl na tastaturi. Ukoliko je potrebno da -sadrzaj neke celije Impiramo u nekoliko susjednih celija, potrebno je pokazivac mlsa dovest! u donji desn! ugao celije koju kopiramo. U trenutku kada pokazivac misa poprimi oblik velikog crnog znaka plus (+), pritisnemo lijevu tipku misa i, ne pustajuci je, prevueemo pokazivac misa preko cellja u koje zelimo da kopiramo vrijednost, nakon cega otpustlmo tipku misa. Vidjecemo kasnije da je ovaj postupak od velike koristl prilikom rada sa formulama. Ukollko ist! postupak primijenimo na grupu oznacenih celija koje sadrze razlieite vrijednosti (npc 1, 2, 3), Exeel6e umjesto prostog kopiranja vrijednosti u nove cellje, pokusatl da nastavi zapoeet! niz vrijednosti u nove celije (npr. 4, 5, 6, 7, itd.), Ova osobina naziva se samopopunjavanje (engL autofil~. Isti efekat mozemo postici i pomocu naredbe Fill u meniju Edit, preciznije pomocu njenih podnaredbi Down, Right, Up i Left (koje preeiziraju smjer u kojem se vrsi popuna u odnosu na trenutno oznacene cellje). Pomocu podnaredbe Series moguce je podesavati kriterije na osnovu kojih Exee! vrsi samopopunjavanje (u detalje se na ovom mjestu ne mozemo upustati). Motemo primijetiti da Microsoft Excel sadrzi iste menije kao i Microsoft Word, osim Sto je men! Table u Excelu zamijenjen menijem Data. Takoder, veCfna naredbi u ovim menijima su iste ili slicne odgovarajucim naredbama Warda. 8toga cemo na ovom mjestu istaGi sarno vaznije razlike. Meni File u Exce!u uglavnom sadri! iste naredbe kao i u Wordu. Naredbe New, Open, Close,
Save, Save As, Print i Exit imaju u Excelu identicno znacenje kao j u Wordu. Ipak, pojadine naredbe lz File menija u Excelu ne pastaje u Wordu, iii se ponasaju drugaeije nego u Wordu: Print Area -

Oefinira dio radne stranice koji 6e se stampati. Kako Exeelove ratine stranice mogu biti ogromne, a obieno sarno mali njihov dio sadrzi korisne podatke, Excel na poeetku rada podrazumijeva da se stampa sarno onaj dio radne stranice koji sadri! cellje koje nisu prazne. Podnaredbom Set Print Area mozema za die koji se treba stampati proglasiti prethod~ no oznacenu grupu celija. Podnaredba Clear Print Area vraca podrazumijevane pretpostavke o povrsini koja ce se stampatL Wordu, ona se u Excelu prilicno razlikuje. lzbor ave naredbe otvara dijalog sa 4 kartice: Page,
Margins, Header/Footer i Sheet. Kartica Page ima slicnu ulogu kao kartica Paper Size u dijalC!9u

Page Setup - Omogucava precizno podesavanje izgleda stranice. Mada ova naredba postoji i y ,

za istoimenu naredbu u Wordu, dok je kattica Margins sliena istoimenoj kattie! u Wordu. Kartica
153

Header/Footer omogucava ubacivanje zagJavJja i podnozja u Excel dokumente, koje se obavlja drugacije nego u Wordu (0 camu cemo govoriti kasnije), dok kartica Sheet omogu6ava da odredimo detalje 0 tome sta 6e tacno biti odstampano na papiru, kao i kako 6e se radna stranica raspodijeliti na vise listova papira u slueaju da je sadrtaj radne stranice takav da ga je nemoguce odstampati na jed nom listu papira. Slika sa desne strane prikazuje upravo izgled kartice Sheet dijaloga za izvrsenje naredbe Page Setup.
Meni Edit u Exeelu takoder je veoma slican Wordovom Edit meniju. Naredbe Undo, Redo, Repeat, Cut, Copy, Paste, Find i- Replace_ imaju isto znacenje kao i u Wordu, dok sma naredbe Fill, Delete, Delete Sheet- i Move or Copy Sheet ve6 objasnili. Od preostalih naredbi iz Edit menija nutno je objasniti jos samo jednu naredbu: Clear - Brise oznacenu grupu celija. Ova naredba sadrzi nekoliko podnaredbi. Podnaredba Contents brise samo sadrtaj 6elija, ali ne i informacije 0 tome kako je sadrzaj cel!ja bio oblikovan (pritisak na tipku De/ete ekvivalentan je upravo ovoj podnaredbi). Podnaredba Formats brise samo informacije 0 oblikovanju, dok podnaredba All brise kako sadrtaj, tako i intormacije o oblikovanju< Meni Viewu Exeelu slromasniji je od istoimenog menija u Wardu. Naredbe Too/bars, Fufl Screen i Zoom imaju Isto znacenje kao u Wardu, dok smo naredbe Formula Bar i Status Bar vee objasnilL Od ostalih naredbi u View meniju programa Excel, neophodno je spomenuti sljedece:
Normal- Prikazuje radnu stranicu u uobi6ajenom obliku.
Page Break Preview - Prikazuje radnu stranicu u preglednom naeinu rada. U ovom naCinu rada mozemo (u umanjenom mjerilu) da vidimo kako 6e radna stranica prilikom stampanja biti raspodijeljena na I1stove papira u slueaju da je sadrtaj radne stranice takav da 9a je nemoguce odstampati na jed nom listu paplra. Pri tome takoder mozemo i da pomoc';u misa vizualno podesavamo ovu raspodjelu pomicanjem linija koje dijele radnu stranicu na dijelove, a kOje se prikazuju na ekranu u ovom nacinu rada.

dijelu zaglavlja iii podnozja (polja Left section, Center section i Right section). Slicno kao u Wardu, i u Excelu je, pomocu odgovarajuCih ikana, moguce u zaglavlje iii podnozje umetnuti specija!ne elemente kao 5to su broj stranice, tekuGi datum, ltd. Ne treba da vas zbuni to sto ce Excel, za razliku od Worda, na mjesta umetnutih specljalnih elemenata upisati izvjesne sifrovane oznake poput "&[Page]", "&[Date]" itd. Ove ce oznake, prilikom stampanja dokumenta, biti zamijenjeme njihovim pravim znacenjem. lVleni Insert u Exce/u sadrzi naredbe Cefls, Rows, Columns i Worksheet kOje smo vec objasnili, kao i naredbe Picture i Object kOje obavljaju istu funkciju kao u Wordu. Od ostaHh naredbi iz meni* ja Insert vrijedi spomenuti sljedece naredbe:

Chart- Ubacuje gratikon u radnu knjigu. 0 ovoj naredbi detaljnije cemo govoriti kasnije.
Page Break - Ubacuje prekid stranice tacno na mjestu iznad trenutno aktivne celije, Prekid stranice se kasnije maze ukloniti pomaGu naredbe Remove Page Break,

Function - Ubacuje funkcije u tabelu. 0 funkcijama cemo detaljnije govoriti kasnije.


Map - Ubacuje digitaliziranu geografsku kartu u radnu knjigu. 0 ovoj mogucnosti bi se mogla napisati Citava posebna knjiga, taka da 0 njoj ne6emo govoriti detaljnije. Men] Format u Excelu omogucava oblikovanje (tormatiranje) radnih stranica. Ovaj meni je orga" niziran drugacije nego istoimeni men! u Wordu, taka da cemo mu posvetlti malo vise patnje. Sve naredbe iz ovog, menija odnose se na aktivnu celiju, odnosno na oznacenu grupu celija. Neke od najvaznijih naredbi u meniju Format su s!jedece:
Cells _ Omogu6ava obllkovanje obiljezene grupe celija. Dijalog za izvrsavanje ove naredbe veoma je bogat i sastojl se od nekoliko kartica. Kartica Numberomogu6ava podesavanje naCina na koji 6e se prikazivatl brojcani podaci. Na primjer, moguce je podesavati broj decimala u prikazu, kao 1nacin prikaza negativnih brojeva. Dalje je mogu6e podesavati da Ii treba ispisivati oznaku valute uz brej (ime valute ovisi od regionalnih postavki racunara), da Ii ce se brojevi koji nisu cijeH ispisivati kao razlomci iii kao decimalni brojevi, da Ii ce se brojevi ispisivati sa znakom postotka (%), il:d. Kartica Alignment odreduje kako 6e podaci biti poravnati unutar telija. Moguce je podesavati kako ravnanje po horizontali, tako i ravnanje po vertikali. Takoder je moguc';e podesavati smjer u kojem se tekst ispisuje unutar celija (podrtano je cak i koso ispisi" vanje). Ukoliko uklju6imo opciju Wrap Text, dugacki tekstovi unutar oznacenih ceHja automat" ski ce se prelamati u posebne redove unutar celija. Ukoliko ukljueimo opciju Merge Cells, sve oznacene ce!ije ce se stopiti u jednu veliku 6ellju, bez utjecaja na iig!ed ostatka tabele. Kartica Font omogucava podesavanje oblika, velitine, stila i boje znakova koji se ispisuju u celijama, poput naredbe Font u meniju Format programa Microsoft Word. Kartice Border i Patterns omogucavaju crtanje okvira oko obiljezene grupe 6elija, kao i njihova bojenje i sjentenje, na slican nacin kao pomocu naredbe Borders and Shading u Wordovom meniju Format.

Header and Footer - Omogu6ava unosenje zaglavlja i podnotja dokumenta, Isti etekat postite se izborom kartice HeaderlFooternakon pokretanja naredbe Page Setup u File meniju. Nakon izbora ove naredbe, iz padaju6!h lisH Header i Footer mozemo izabrati oblik zaglavlja iii podnotja lz spiska unaptijed pripremljenih oblika zaglavlja i podnotja. Klikom na dugme Custom Header adnosno Custom Footer, Jl}ozemo sami definlrati svoje zaglavlje i podnotje (sto obicno treba radi" , -ti, jer su unaprijed pripremljena zaglavlja i podnozja uglavnom 11 M , neprik!adna za nase potrebe), To "~,,,i aWf)" _ . dau" t""', i""""",., Qr lob.w"e. _po~"on ,~.-;'!'""J,o PofOt Nakon izbora komandi Custom '" tho edit 09), !;he:' ohw:" {he ~r9,,'Ial:o b,ullOn, Header odnosno Custom Footer, dobijamo novi dijalog (prikazan na slici lijevo), koji omogucava da posebno odredimo dije!ove zaglav~ Ija iii podnozja koji ce se prikazivati u lijevom, sredisnjem iii desnom
154

Row - Omogucava podesavanje vislne redova. Ova naredba sadrz.i podnaredbu Height koja omogucuje korisnlku da unese precizno teljenu visinu redova, zatim podnaredbu AutoFit koja namjesta visinu svakog oznacenog reda da bude tacno onolik"a koUko je- potrebno za prikaz podataka koji su uneseni u odgovarajuce celije,- te p0dnared~_ Hide koja sakriva oznacene redave i Unhide koja otkriva redove koji su posljednji put bili sakr1veni. Column - Omogucava podesavanje sirine ko!~na. Qva naredb8, -sadrii- podnaredbe Width, AutoFit Selection, Hide i Unhide, eije je znaeenje analogn-o po~~n~redbarna naredbe Row,

Sheet - Omogucava podesavanje opcih svojs~ava. nlthie .sminice.- Ova naredba sadrii podnaredbe Rename za promjenu imena stranice, Hide'j tJnhide_ za skrivanje odnosno otkri~ vanje citave stranice, i Background za izbor slike k:oja de bi!!. koriStena kao pozadina radne stranice. 155

AutoFormat - Omogucava automatsko oblikovanje oznacenog dijela radne stranice u skladu sa nekim od nekoliko desetina unaprijed pripremljenih obnka, Djeluje na ist! naein kao naredba Table Autoformat iz Table menija programa Microsoft Word.

Sa gotovo svim ovim alatkama upoznali smo se kroz program Microsoft Word, Stoga cemo niti sarno alatke koje ne postoje u Wordu:

objas~

'

Conditional Fonpatling - OmoguC'ava da neka 6elija automatski promljeni izgled onog trenutka kada se odredeni uvjet ispuni. Na prlmjer, pomocu ove naredbe je moguce postaviti da se sadrzaj cellje aboj! u crveno onog trenutka kada vrijednost upisana u celiju postane manja od reclmo 15,
Men! Tools u Excelu sadrii naredbe Spelling, AutoCorrect, Track Changes, Macro, Customize i Options kOje djeluju identicno iii veoma sli~no kao istoimene naredbe u meniju Tools programa Microsoft Word. Od specificnih naredbi avag menija kOje ne pastoje u Wordu, spamenucemo sljedece naredbe:
Protect - Omogucava zastitu eitave radne knjige iii sarno pajedinih radnih stranica od neovlastenog mijenjanja, Goal Seek - Pronalazi k6ju je vrijednost potrebno upisati -u neku celiju, da bi'neka druga celija kOja zavisi od nje dobila neku ieljenu vrijednost 0 avome cemo detaljnije govoriti kada budemo govorili 0 formulama, Solver- Omogucava odredlvanje koje vrijednosti treba upisati u grupu oznaeenih celija da bi sadltaj neke druge eeHje koja zavisi ad oznacenih celija poprimio maksimalnu iii minimalnu vrijednost.

Paste Function - Skracenica za naredbu Function iz menija Insert, Chart Wizard - Skraceniea za naredbu Chart iz menija Insert, Map - Skraceniea za naredbu Map iz menija Insert
Drawing Uk!jucuje, odnosllo iskljucuje traku sa alatima "Drawing", koja je inace po1puno identicna, kako po izgledu, tako i po mogucnostlma sa istoimenom trakomsa alatima u Wordu.

Traka sa alatima "Formatting" u ExceJu takoder lma dosta zajednickih elemenata sa alatkama kOje se javijaju u programu Microsoft Word

Font
11 Arial

10

Font
Size

t. , t ,t t t !l:j'
l.1l I

Merge and Pacm! JncrC(l,\'(' Bold Undafinc Center Center Style Decima!

Font
Borders

!!

Italic

f t f t f
Align

(W %

<-;0

.M

~.IJ

.00 "-'- -'t~ t~

Meni Data ne postoji u Wordu, i daie programu Microsoft Excel nake mogucnosti kOje nalikuju mogucnostima programa za rad sa bazama podataka, Naredbe ovog menija, mada izuzetno korisne, veCinom su prHicno s!ozene, i cesto zahtijevaju da tabele budu organizirane na tacno utvrden nacin, taka da nam prostor ne dozvoljava da ih obradujemo u ovom udzQeniku. Pored naredbe Sort, kOja je zapravo identicna naredbi Sort 1z Wordovog menija Table, informativno cemo spomenuti i sljedece naredbe: Filter- Omogucava prikaz samo onih podataka u tabeli ko]i zadovoljavaju odredene kriterije. Na prlmjer, moguce je zahtijevati prikaz podataka sarno a ucenicima ko]i imaju odliean uspjeh. Omogucava unos podataka u tablicu putem formulara umjesto direktnim popunjavanjem celija u tablicL
Form -

uft

Align Currency Comma Decrease 1)('("111101 Right

' ,- '<,,;<Ii.

Color

t.

Fill Color

SHena kao u Wordu, sve ove naredbe odnose se na aktivnu celiju, iii na grupu oznacenih celija. Objasnimo znacenje a!atki sa ove trake kOje ne postoje u Wordu:

Merge and Center- Spaja sve oznacene celije u jednu vecu 66liju, i poravnava njen sadrzaj na sredinu. Dejstvo ove aiatke moze se ponistiti pomo6u naredbe Cells u meniju Format, iskljucenjem opclje Merge cells na kartiei Alignment,
Currency - Prikazuje sadrzal celija kOje sadrze brojeve na nacin uobicajen u bankarstvu, sa pripadnom oznakom va!ute. Percent Style -

Prikazu]e sadrzaj celija kOje sadrze brajeve kao procentualne vrijednosti.

Validation - Omogu6ava zabranu unosa u odredene ceHje onih podataka ko]i ne ispunjavaju postavljene uvjete. Na primjer, moguce je zabraniti da se u ceUje kOje sadrze podatke 0 oejenama unese bilo kakav podatak koji nije eijeli bra] od 1 do 5, Ova izuzetno mocna naredba je prakticki neophodna za kreiranje proracunskih tablica koje ee se profesionalno koristitL

Comma Style -

Prikazuje sadrzaj ceUja koje sadrze brojeve na nacin uobicajen u bankarstvu, bez oznake va!ute.
Increase Decimal -

Povecava bro] decimal nih mjesta u prlkazu sadrzaja celija kOje sadrze

brojeve.

o menijima Window i Help u Excefu uglavnom se nema nista vise reci nego 8to je vee receno a istoimenim menijima u Wordu.
Na sljedecoj slle,i prikazan je uobieajeni izgled "Standard" trake sa alatima u programu Microsoft Excet:
New Print

to

Decrease Decimal--Smanjuje bra] decimalnih mjesta u prikazu sadltaja celija koje sadrie brojeve,

Dejstvo posljednjih pet navedenih alatki moze se ponistiti pomocu naredbe Cells u meniju Format.

Save Preview

Dii;Q
Open

t t t t t
&[9.~

Cut

Paste

Undo
I."}~

2.2.5 Obavljanje proracuna u rac!nim stranicama


Osnovnu snagu programima za tabelarna izracunavanja daju formuJe. Formule definlraju nacin _ na koji sadrZaj nake od celija zavisi od sadrzaja drugih celija. Formule u programu MicrosQft Excel obavezno pocinju znakom ";;;:" iza kojeg mora slijedltUzraz, Izrazi predstav!jaju pravila koja govor~ kako se racuna sadrzaj cellje u koju]e formula upisana. Izrazi mogu sadrzavati brojeve, imena 6efija (bilo genericka, bilo korisnicki definirana imena), oznake osnovnih matemati6kih operacija- P9put: . sabiranja (+), oduzlmanja (-), mnotenja (*) i dljeljenja (I), zatim zagrade za definiranje prioriteta " operacija (s obzirom da mnozenje 1dijeljenje imaju visi prioritet u odnosu na sabiranje i oduzima: " nje), kao i funkcije, sa kojima cemo sa uskorb upoznati. Bitno je naglasitl da se u izrazima -uvijek
157

db

~~<J

f t t f t

Print Spelling Copy Format

Painter

Redo

Pa.I'te" --Paste __ -Sort -Zoom juncti(J:l junction D~.I'cendif!g

156

koriste iskljucivo male zagrade, bez 'obzira na njihov broj i mjesto u izrazu. Pretpostavimo, na prim~ jer, da smo u celiju C7 unijeli formulu koja glasi =1+ (B2*3+Bl-S) 12. Ova formula sadrZi Izmz 1 + (B2 *3+Bl-'5) 12 koj] govori da sadrzaj celije C7 treba da bude jednak zbiru broja 1 i polovine vrijednosti izraza B2*3+Bl-5 (tj. polovine vrijednosti proitvoda sadrzaja ceHje 82 sa brojem 3, uvecanog za sadrtaj celije 81 i l)manjenog za 5). Prilikom unosa formula u cellje treba voditi raeuna 0 nekoliko Cinjenica. Prvo, formula ne smlj'e sadriavati nikakve razmake, inace neee biti shvacena kao formula, Hi ce Exce/odbiti da je prihvati (korisnici cesto prave gresku taka sto nesvjesno upisu razmak ispred znaka jednakosti). Drugo, prllikom unosa formule direktno u celiju, svaki klik rnisem na neku od celija ne djeluje na uobicajeni nacin, vee dopisuje u formulu ime trenutno obiljezene ceHje. 'Isto vrijedi i za upotrebu tipki sa strelieama. Ova osobina moze ponekad bit! jal<o korisna, medutim poeetnike u veCini slucajeva samo zbunjuje. Stoga, ukoliko zelimo uredivati formulu unutar ceUje pomo6u tipki sa strellcama, moramo se koristiti iskljueivo po/jem za uredivanje formula u trad formula (avo polje aktiviramo klikom misa unutar njega). Oa bismo zapoeeli unos formule u polje za uredivanje formula, dovoljno je I<liknuti misem na dugme oznaceno znakom "::::" u traei formula. Takoder, unos formule uvJjektreba zavrsiti iskljucivo prltiskom na tipku ENTER iii klikom na dugme_ sa zelenom kvacicom (/). Rad sa formulama objasnicemo na jednom konkretnom primjeru. Pretpostavimo da je potrebno da vodimo evidendju 0 ostvarenom prihodu (u hiljadama KM) po mjesedma u tol<u polugodisnjeg perio~ da (Januar - Junl) za tri preduzeca: "Kristalinvest", "Drvopromef' i "Masinotehna". Pored toga, potrebni su nam podad 0 ukupnom prihodu za sva trl preduzeca u toku polugodisnjeg perioda, zatim ukupni prihod svih preduzeca (total), I<ao i prosjecni ostvareni prihodi po mjesecima. Pretpostavimo,da smo unijeli podatke a mjesecnim prihodima u radnu stranicu, i oblikovali tabelu kao na sljede60j slld:

lu pravilno unijeli, pokrenite naredbu Options iz menija Tools, a zatim provjerite da Ii je ukljueena oReija Formulas na karUci View (ukoliko jeste, Iskljucite je). Na sliean nacin mozemo unljeti formule kOje 6e racunati ukupan prihod za ostala dva preduzeca. Tako, u celiju 14 treba unijeti formulu "'C4+D4+E4+F4+G4+H4, dok u celiju 15 treba unijeti formulu "'C5+DS+ES+F5+GS+H5 (kasnije cerno vidjeti kako se ovaj postupak moze ubrzati, ali za pocetak malo vjezbanja rU6nog unosenja formula nece skoditi). Total je, naravno, jednak zbiru sadrzaja celija 13, 14 j 15, tako da u celiju 18 treba upisati formulu =13+14+ IS (napomenimo da formulu uvijek treba zapoceti u novoj caliji, a ne niposto kao produzetak teksta u nel<oj ad cellja koje sadrze tekst). Ostaje jos da izracunamo prosjecne pr!ho'de po mjeseclma. Prosjek cemo dobiti ukoliko saberemo prihode za sva iri preduzeca i podijelimo zbir sa ukupnim brojem preduzeca (tj,'sa 3). Stoga, formule koje treba upisati u cellje C6, 06, E6, F6, G6 i H6 treba redom da glase '" (C3+C4+C5) /3, =(D3+D4+D5) 13, = (E3+E4+E5) /3, = (F3+F4+F5) /3, :; ; (G3+G4+G5) /3 i = (H3+H4+H5) /3. U celiju 16, koja bi trebala da sadrzi prosjecni prihad za citav polugodisnji period, mozemo upisatl formulu :::C6+D6+E6+F6+G6+H6, formulu ::::(I3+I4+I5}/3, iii formulu =18/3 (sve tri formule daju istl rezultat - razmislite zasto). Napomenimo da nije potrebno siriti kolone da bismo upisali dugacku formulu, jer ee prikaz formule 10nako biti zamijenjen prikazom odgovarajuceg rezultata. Kako ce prosjecne vrijednosti cesto biti brojevi koji nisu cJjeli, pomocu alatki Increase Decimal i Decrease Decima! na "Formatting" traGi sa alatima mozema oblikovati ceHje C6, 06, E6, F6, G6, H6 i 16 da prikazuju sadrzaj uvijek na dvije decimale. Nakon sto smo obavili cjelokupni opisanl postupak, radna stranica bi trebala da izgleda ovako:
A

B
Januar Kristalinvest Drvopromet Masinotellna Prosjek Februar Mart April Maj Juni Ukupno

B
Januar Kristalinvest Drvopromet Masinotehna Februar Mart April

1 2
3 4

3
Ma)
170 160 140
Juni Ukupno

160 160 200


180,00

140 210 170 173,33

210 230 230


223,33

130 150 130 136,67

170 160 140 156,67

150 140 160 150,00

980
1050 1030 1020,00

4
5
6 7

180 160 200

140 210 170

210 230 230

130 150 130

150 140 160

5 6
7

8 9
"-

Total:

3060

8
9

Naravno, ukupne prihode: total,.kao Lprosje6ne prlhode, mozemo bez problema lzracunati i rucno. Medutlm, zasto rie ptistlti _Exce/--_da o~ayi ovaj posao za nas? Mada postupak ko]] je neopllodno obaviti za tu svrhu na 'prvi pogf~d- jzgle9a .malo slozenjji, korist od takvog postupka je visestruka. 8toga, krenimo na pos~o~ LJ.k~p.n(~rihod za "K:ristalinvesr', koji treba cia se upise u celiju !3, raeun~ se kao zbir prihoda ovo~rprediJ;teG~ za_ svih 6 mjeseei, kojl su upisani u cellje C3, 03, E3, F3, G3 I H3. Upisimo stoga ce1iju~3 torrn,uJu -=C3+D3+~3+F3+G3+H3 (kasnije cemo vidjetj kako se ova formula moze zaplsatl. krac-ef Ukollka sm-o (o_rmulu unljeli kako treba, nakon pritiska na tlpku ENTER formula nestaje sa- ekrana,- i i.Jmfesto nje pojavljuje se odgovarajuci rezultat (ko]i u navedenom primjeru lznosi 980), Pri tom-e, form~u!u j datje mo~emo da vidimo u polju za uredivanje formula kad god je odgovarajuca celija aktivr\a. _ Takoder, dvostruki klik na celiju prikazuje upisanu formulu, i omogucava njeno naknadno wedivanje. Ul<ollko se nije pojavio rezultat, a sigurni ste da ste formu-

Sve ova izgleda lijepo, medutim do istog rezultata smo mogli doci brie uz pomoc obicnog dzepnog kalku!atora. Da bismo vidje!i pravu svrhu formula, pretpostavimo da iz nekog razloga treba da promijenimo vrijednost nekog od mjeseenih prihoda. Promijenimo, reeima, iznos prihoda preduzeca "Kristallnvest" za mjesec april (celija F3) sa 130 na'-1~O i pogledajmo'sta se desava. Istog trenutka kada izvrsite Qvu-promjenu, primijeticete da se automatskLpr6rriijenio- i sadrzaj nekih drugih celija. 8adrtaj celiie F6 promijenio se sa 136,67 na_153,33, sadrzaI"ceUie: 13- promijenio se sa 980 na '1030, sadrzaj cellje 16 promijenio se sa 1020,00 na-l036;67,.dok sejadr,zaj:celije I? promijenio sa 3060 na 3110. Ukoliko se ove promjene nisu dogodile, p.I)Kre'1lte naredbu Options]z menija Tools, i provjerite da Ii je aktivno radio dugme Automatic na kartici Calcl.il~tion(uko!iko nije, aktivirajte gal. Sta se zapravo desava? CeUje !3 i F6 zavise od sadrzaja ceJije- F,{Fpreko-fonnula 'upisanih u njih, deHja 18 zavisi od cellje 13, dok celija 16 zavisi od ceIUa'F6: 13-ili"-IS ,(zavisno koju ste formulu koristili), tako da je promjena sadrzaja ceHje F3 pokrenula "Iaoci':lnu i'eakcfju'! koja je dovela do izmjene sadrzaja svih ovih cellja. Da smo rucno racunali i upisivaH vrijedn-bsti-, nak6n svake promjene morali bismo vrSiti ponovna preracunavanja, pri eemu bismo prethodnombrali provjeriti sta od cega zavisi
159

156

(uz veliku vjerovatnocu da cemo neMo previdjeti). Ovako smo se jed nom pomueili da napravimo "pametnu" tabelu, koju kasnije mazema koristitl, j po potrebi sarno mijenlati neovisne podatke. ?~a automatizacija naroeito dolazi do izrazaja kada radimo sa veoma velikim tabelama sa brojnlm meduzavisnostima, 8to je u poslovnoj praksi izuzetno cest slueaj. U slueaju da iz bilo kojeg razloga formula ne maze da izraeuna vrijednost (npr. ukoliko upisemo formulu ::oAl +Bl a celije Ai iii B1 ne sadrze brojeve nego tekst, ilj ukoliko upisemo formulu =Al/B1 a cell]a 81 sadrzi nulu), umjesto rezultata pojavice se informacija 0 gresci, koja uvijek poCinje znakom "#", npr. #VALUE 1 iii _#DIV 101 (podsjetimo se da pojava velikog broja znakova "#-" u celiji ukazuje daje sirina odgovarajuce_kolone neadekvatna za prikaz 6dgovarajueeg pOd~tka i r~~ulta~a). Tako~er, trebamo paziti da ne napravimo niz formula kOje se "vrte u krug" ($to se moze desltl ukollko, na ~.nmw jer, u ceHje Ai, 81 i C1 up'isemo redom formule =B1+1, ",C1+1 i =Al'1:1). Ovakve g.re.ske su pn!l~no eeste i nazivaju se kruine reference (engl. circular references). Desl Ii se da sluca]no napravlmo kruznu referencu, Excel ee nas na to odmah upozoriti. Kruzna referenca moze nastati i u slueaju da u neku celiju upisemo formulu u kojoj se spominje upravo ta celija (npr. ukoliko u ceUju D5 upisemo formulu =D4+D5+D6). Ovakve formule Excel jednostavno neee prihvatiti. Napomenimo jos i to da se u mnogim formulama prazne ceHje tretlraju kao da imaju sadrzaj jednak null. Unosenje vellkog broja formula koje su medusobno sHene moze bitl jako zamorno. Pogledajmo, na primjer, ceHje 13, 14, 15 i 16, u koje smo upisali veoma sHene formule =C3+D3+E.3+F:~G3+H3, o::C4+D4+E4+F4+G4+H4, ""C5+D5+E5+F5+G5+H5 i ;:;C6+D6+E6+F6+G6+H6. Zamlshmo sta bismo morali uraditi da sma, umjesto tri, lmali npr. 300 preduzeca! Srecom, Excelomogucava da se isti posao obavi mnogo lakse. Dovoljno je unijeti formulu samo u celiju 13, a zatim sadrzaj te ceUje kopirati u celije 14, 15 i 16, pomocu naredbi Copy i Paste, iii jos bolje, pomocu crnog znaka plus (+) koji se javlja kada pokazivac misa dovedemo u donj] desni ugao celije (na nacin kOji.sm? ~ec o?~a~ nili kada smo govorili a samopopunjavanju). Excelce tada, umjesto bukvalnog koplranja !dentlcnrh formula, obaviti automatsko prilagodavanje formula celijama u koje se formula kopira. Tako 6e se: na prrmjer, formula ;:; (C3+C4+C5) /3, prilikom kopiranja iz cellje C6 u celiju 06, automatskl pretvoriti u formulu '" (D3+D4+D5) 13. Ova osobina naziva se intelfgentno kopiranje ill kopiranje sa samoprUagodavanjem. Postoje situaclje u kojima inteligentno kopiranje moze da smeta. Pretpostavimo da ze!imo da u ovu tablicu dodamo i kolonu "J" u koju cemo,upisati iznose poreza koji treba platiti (u cellje J3, J4 i J5), i pretpostavimo da je procentualni iznos poreske stope upisan u eeliju CB. Tada formule za racunanje poreza koje treba upisati u celije J3, J4 i J5 redom glase =I3*c8/10Q, =I4*C8/l00, i =I5*C8/100. Medutim, ukoliko upisemo sarno prvu formulu u celiju J3, i izvrsimo "inteligentno" kopiranje u celije J4 j J5, primijetlcemo da je Excel pretvorio plVU formulu redom u formule ::::I4 *C9/100 i =I5*C10/lOO, 5tO nije korektno! -Nairne, Excel nije smio da mijenja adresu ceHje CS. Excel, medutim, nije mo~ao ovo da zna. Da bismo rijesi!! ovaj problem, u ceHju J3 treba upisati formulu "=13 * $C$8/10Q, nakon caga ce inteligentno kopiranje rad!t! kako treba. Oznaka dolar ($) ispred oznake reda ill ~olone govori Excefu da oznaku tog reda odnosno kolone ne treba mijenjati prilikom kopiranja. Adrese"_celija- poput :'C8", koje se mijenjaju prilikom koplranja formula u druge celije, naziv':lju s~ relatil(ne--adr~se, -dok se adrese ce.lij~ poput "$C$S", koje ostaju nepromijenjene rna gdje se kopiraJe, naziva~u Bp'$Qfutne, adrese. Postoje I mjesovite adrese, poput "$CS i "C$S", all se one koriste znatno rjede. _ -~-.
-

slicne funkci]e je funkclja AVERAGE, kOja sluzi za raeunanje prosjeene vrijednosti. Na primjer, AVERAGE(D3:D8) je skraceni zapis za izraz (D3+D4+D5+D6+D7+D8) 16, odnosno SUM (D3 : D8) 16: Narocita korist ad funkcije AVERAGE je (;lnjenica da ne moramo brojati podatke, kao i da ne moramo prepravlj'ati formulu svaki put kada dodamo odnosno obrisemo neki podatak. Druga vrsta funkcija sluzi za obavljanje neklh radnji koje se lnaee ne bi mogle izvesti bez njih, Na primjer, funkcija SQRT raeuna kvadratni korijen svog argumenta, sto se ne mote uraditi bez nje. Funkcije mogu biti sastavni dio s!oienijih izraza koj] cine formulu, t.ako da fe formula o::l+AVERAGE (D3 :D8) I (SQR'f{A2-1) +1) sasvlm legalna formula. Razll6ite funkcije prihvataju razlieite vrste argumenata. VeGina funkcija kao argumente prihvata ju iZraze. Pojedine funkcije (poput SUM i AVERAGE) prihvataju specijalne vrste argumenata naz vane opsezi (engl. range) i liste (engl. lis~. Opsez; predstavljaju imena dv!je celije razdvojene znakom dvotacka (:) i predstavljaju sve cellje u pravougaonom podrueju ciji uglovi lei.e na nazna6enim celijama. Na primjer, opseg B2: B6 predstavlja ceHje B2, 83, 84, 85 j 86, opseg C2 ,F2 predstavlja celije C2, 02, E2 i F2, dok opseg B2, C5 predstavlja celije 82, B3, 84, 85, C2, C3, C4 j C5. Uste predstavljaju skupine izraza j opsega ko]i su medusobno razdvojeni znakom tacka~zarez(i). Na primjer, A2 :A5 i 5*B4+1 i C3 :C6 i 2 je primjer liste. Sam opseg iii izraz takoder se smatraju specijalnim slueajem listi.
w
w

Excel posjeduje izuzetno vejiki broj funkcija (oko 250 u verziji Microsoft Excel 97), od kojih rnnoge obavljaju veoma slozene matematicke, statisticke iii inzinjerske proraeune. Srecom,. vee je poznavanje svega desetak funkcija dovolJno za izradu veoma mocnlh proracunskih tablica. U funkci je kOje svakako treba poznavati spadaju funkcije opisane u sljedecoj tabe\i:
w

SUM (lista)

Daje 1<80 rezultat sumu svih elemenata u list! lista. Na primjer, je isto sto i A3+B5+L Usta obicno sadrii barem jedan opseg celija. Na primjer, SUM(C2:C6) je skraceni zapis za lzraz C2+C3+C4+C5+C6, dok je .sUM-(Al;B2 :C4il) skraceni zapis za izraz Al+B2+B3+B4+C2+C3+C4+1.
SUM(A3iB5;1)

COUNT (!ista)

Daje kao rezultat bra] cellja kOje sadrZe brojeve u listi (ista, koja se obieno sastoji od jednog iii vise opsega celija. Na primjer, COUNT(C2:C6) daje kao rezultat braj ceUja u opsegu od C2 do C6 koje sadrze brojeve. Djeluje slicno poput funkcije COUNT, ali broji sve ceHje koje nisu prazne, tj. koje sadrze barem neki podatak. Djeluje sHeno poput funkcije COUNT, ali broji sve eelije koje su prazne, tj. koje ne sadrze niti jedan podatak. Daje kao rezultat aritmeticku sredinu svih elemenata u list! lista (tj.sumu svih elemenata podijeljenu sa brojem e!emenata). AVERAGE ([isfa) ne predstav!ja nista drugo nego skraceni zapis za izraz ,sUM (lista) ICOUNT(lista).
~

COUNTA ((ista)

COUNTBLANK (lisla)

AVERAGE (lista)

Vee smo rekli da formule mogu sadrzavati i funkcije. Postojl Vii'?:!'vrst{f,unk~iJ':!: Jedna-vrsta funkcija predstavlja sarno skraceni naein zapisivanja nekih drugih izra~a. "Naprimjer, SUM (El3 : D8) predstavlja skraceni zapis za izraz D3+D4+DS+D6+D7 +08, dok .-spM(BS-: vredstavlja skraceni zapis za lzraz B5+C5+DS+ES. !za imena funkcije (SUM u nayei;lenim primje:rirna), uvijek u paru zagrada slijede informacije koje govore na sta se konkretno funkcija. rfdnosi (D3 : D8 odnosno B5 :E5 U navedenim primjerlma). Ove informacije zovu-se argumenti-furikcija.-Jos jedan primjer
160

MAX (lista)

Daje kao rezultat najveci ad svih brojcanih elemenata u list! lista:-Na- I "primjer, tvIAX (C3 : G3) daje kao rezultat najveci od svih brojeva"-" upisanih u celije u opsegu ad C3 do G3.
~

161

MIN (lista)
..

Daje kao rezultat najmanji od svih brojcanih elemenata u listi lista.


"'IF(COUNTIF(C3: G3 il)=0;ROUND(AVERAGE(C3:G3);O);1)

SQR'r (izraz) .

Daje kao rezultat kvadratni korijen vrijednosti izraza izraz. Daje kao rezultat apsolutnu vrijednost (modul) lzraza

ABS (izraz) ROUND {izraz; brded

izraz.

Daje kao rezultat vrijednost izraza izrdz zaokruzenu na broi decimala odreden izrazom brdec. Na primjer, ROUND (A3 ; 2) daje kao rezultat vrijednost cellje A3 zaokruzenu na dvi]e decimale. Vkoliko je vrijednost izraza brdec nula, lzraz izraz zaokruzuje se na najblizl cijeli broj. Daje kao rezultat bra] 6eUja u opsegu opseg koje ispunjava]u krlterij kriter(j. Krlterij moze biti proizvoljan bro] iii izraz. U tom slucaju broje se cellje Cija je vrljednost jednaka vrijednosti navedenog broja ili izraza. Na, primjer, COUNTIF (B2 : BiD is) dale kao rezultat broj ceJija u opsegu od 82 do 810 eiji je sadrzaj 5. Ukoliko zelimo da brojimo celije koje sadrze nekl tekst, kao kriterij zadajemo zeljeni tekst uokviren znacima navoda, npr, COUN'rIF(C4:F4;"Senad"}. Kao kriteriji se mogu upotrijebiti [ konslrukcije poput ">broj" i "<bro./". Na pr!mjer, COUNTIF(B2:Bl0; ">5") daje kao rezultat broj celija u opsegu od 82 do BiD eiji je sadrzaj veei od 5. Testira uvjet uvjet, i aka je uvjet tatan, daje kao rezultat vrijednost izraza ako_.da, a u suprotnom, daje kao rezultat vrijednost izraza ako_ne. Uvjet je zapravo izraz, koj! pored uobicajenih operacija sadrzi i barem jednu od relacija manje ), vece),jednako (:::), manje ifijednako =), vece iii jednako (>:::) Hi raz/idto Uvjet mora biti taean iii netaean. Na primjer, B3>A5+2 je uvjet koji je latan ukoliko je sadrtaj celije 83 veti od sadrzaja celije A5 uvecanog za 2, a u suprotnom je netatan. Izrazi alwja i ako_ne mogu predstavljati i neki tekst uokviren znakovima navoda.

COUNTIF (opseg i kriterij)

Ova formula na prvi pogled djeluje potpuno nerazumljivo. Medutim, ukoliko se ona paz!jivo rasClani, vidjecemo da u njoj nema nis{a posebno neobiCno. Izraz se sastoji od funkcije IF, u kojoj se kao uvjat javlja izraz COUNTIF (C3 : G3; 1) =0, koji ponovo sadrzi funkeiju COUNTIF (C3 : G3 ; 1) koja broji jedinlce u opsegu celija ad C3: G3 (tj. broji slabe oejene). 8toga je uvjet COUNTIF (C3 : G3 i 1) ",,0 taean ako je bra] jediniea jednak nuli, tj. ukoliko ucenlk nema slabih oejena. Ukoliko je uvjet ispunjen, funkdja IF kao rezultat daje vrijednost izraza ROUND (AVERAGE (C3 :G3) ;0), a ukoliko uvjet nije ispunjen, funkcija IF kao rezultat daje jedinieu (treci argument funkdje IF), tako da je uspjeh jednak jedinici ukoliko je makar jedna oejena jednaka jediniei. Ostaje jOs da detaljnije razmotrimo izraz ROUND(AVERAGE (C3 : G3) ; 0) eija se vrijednost dobija kao krajnji rezultat ukoliko ucenik nema jedini~ ca. Funkcija ROUND zaokruzuje svoj prvi argument AVERAGE (C3: G3) na najblizl djeli broj, jer je njen drugi argument O. Druglm rijecima, ova funkcija zaokruzuje srednju ocjenu ucenika na najblizi djelJ broi, a upravo tako se raeuna uspjeh ueenika. Na ovom mjestu moramo istaCi jednu bltnu einjenicu. Nairne, ukoJiko su regionalne postavke racunara podesene tako da se za razdvajanje decima/nag ad cijeJog dije/a broja koristi tacka umjesto zareza, fada 5e za razdvajanje argumenata u funkeijams i za razdvajanje stavki u /iSM tama kOf/sti obicni zarez, a ne tacka~zarez! U tom slueaju bismo g!omazriu formulu lz prethodnog primjera trebali zapisati ovako:
=IF(COlMTIF{C3:G3,l)=O,ROUND(AVERAGE(C3:G3) ,0) ,1)

IF' (uvjetiako_daiako_ne)

Stoga, ukoliko imate problema sa prihvatanjem formula koje sadrze znak tacka-zarez, probajte ga zarnijeniti zarezom, i vjerovatno ce sve biti u redu. Mozda sve ova 5to smo do sada rekli 0 forrnulama i funkcljama djeluje pomalo komplicirano, ali tek kada u potpunosti shvatite sve 0 eemu se ovdje govori, motete reCi da ste savladali tehniku kreiranja proracunskih tabliea. Inaee, kada savladate gore opisane funkcije, sted 6ete dovoljno znanja da mOi:ete u potpunosti krelratl proracunsku tab!1eu za vodenje osnovne statistike 0 uspjehu ucenika nekog razreda koju smo opisivali u prvom dijelu udtbenika. Najbolje je da jednu takvu tablieu napravite kao praktlcnu vjezbu, eventua!no uz pomoc nastavnika.

Neke od ovih funkcija djeluju na prvi pogled dosta komplicirano. Stoga cemo njihovu upotrebu objasniti na konkrelnim primjerlma. Pretpostavimo, na primjer, da su u celije od C3 do G3 upisane ocjene nekog ueenika (pri eemu prostor za neke od oejena moze da bude i prazan). Formula :::MAX (C3 : G3) izracunat 6e najbolju ocjenu tog utenika. Formula =COUNTIF (C3 : G3 i 1) izracunat de koliko ucenik ima slabih ocjena, formula =COUNTIF (C3 : G3 i "> 1 " ) izra6unat ce, koliko ucenik ima pro!aznih ocjena, dok (:e formula ",COUNT (C3 :G3) -COUN'l'IF (C3 :G3-; 3) izracunati koliko ueenik ima ocjena koje nisu troj"e. U slucaju da js u celiji H3 upisan broj sfabih ocje~ na nekog ucenika, a u ceUju .13 srednja vnjednost svih oejena (ukljucuju6i i slabe Dejene),_ tada c~ formula "'IF (H3=0; 13 i 1) dati kao rezultat prosjek oejena ucenika iii jedinicu, zavisno od toga daIi ueenik {rna slabih ocjena iii ne. Ukoliko j8 ova formula upisana u celiju J3, tada C8 formula :::ROUND (J3 i 0) dati kao rezultat uspjeh ucenika (tj. prosjek oejena zaokruzen na najbliii cijeli broh iii jedinieu). Formula "'IF (H3""O; "Prosao" i "Pao") upisace u pripadnu celiju tekst "Prosao';' iii "Pao" ovisno od toga da Ii ucenik ima slabih oejena iii ne. Nema nikakvog raz!oga da se kao argument neke od funkcija oe upotrijebi izraz koji"takoder' sadrzi neku funkciju. Na primjer, ukoliko panovo pretpostavimo da cellje od C3 do G3 sadrze ocjene nekog ucenika, moguce je odmah napisati jedinstvenu formulu koja ce odrediti uspjeh ueenika. Takva formula glasi: '
162

Excel posjeduje jos jednu interesantnu mogucnost mn:::!~t:::~::,;~ IIIlI IIIlI IIIlI['IJ.l3J!l! za unos funkcija, koja je posebno korisna ukoliko nismo ;",-":u~,~o("~",, fuo",onq."'''' taeno sigurni kako se funkcija pise. Pokretanjem "" :J:.:~~_~~iil ..el'_.OIiIi.fi.,:.l': naredbe Function iz menija Insert iii alatke Paste f.:~~";~IIl). ~~r Function sa "Standard" trake sa alatima, otvara se dija- 1>1ath&Tt/(j w.): log (prikazan na slid desno) kOji omogucava izbor ze!w :~~~~'~\\t.f"'.r"o ;1~;~~:AiI" jene funkcije iz spiska. Sve funkdje su, radi lakseg ~;~b~$e :'I~~%:ll~; snaiaienja, razvrstane u nekoliko kategorija. Kategorija .::J. Most Recently Used sadrii popis posljednjih nekoliko MiJ<A(it(""mb~n;nu",loe,i...) i ko.ristenih funkcija. Ukoliko zelimo popis svih funkeija, trebamo izabrati kategoriju All. Nakon sto smo izabrall _S!J , c I_!,cwc -zeljenu' funkeiju, pojavljuje se novi dijalog, Giji taean izgled ovisi od izabrane funkcije (na sliei sa strane "prl~azan je dijalog za funkciju IF). Ova] dijalog sadrii polja za unos, u-koje treba upisati argumente funkeije. Ukoliko zeijeni argument predstavlja ime eelije iii opseg 6elija, umjesto unosa pomocu tastature moguce je misem kliknuti na zeljenu ceJiju iii oznaciti zeljeni opseg. Ukoliko zelimo da oznacimo argumenf misem, a smeta nam prisustvo dijaloga na ekranu, klikom na dugme sa nacrtanom crven. om strelicom u krajojem desnom dijelu odgovarajuceg polja za unos (vldljivo na pri~azanoj slid) moguce je privremeno minimlzirati ovaj dijalog na velicinu trake, i ponovo ga klikom na lsto dugme

'j

II

163

vratiti na prvobitnu ve!icinu. Ukoliko se kao argL!ment funkcije javlja ponovo neka

druga funkcija, nju je moguce izabrati 1z padaju6e liste koja S8 pojavljuje na mjestu
petja sa imenom celije u traGi funkcija. Ovakav nacin unasa funkcija zahtijeva

dosta prakse, ali bitno ubrzava rad nakon

l"1lk;}Ue~t,<; any v"l~,; 0,; ;'xrr:_;'ici~ \h,,,"~ bi, '~~af""i~M6W,U[ .~, FALSi
Fo"nuIMe$lJit ~

Prvi dijalog u ovom carobnjaku, prikazan na sliei desno, omogucava izbor vrste j podvrste grafikona. Za opce namjene najcesce se koriste StUPC8Sti dija grami(engl. coiumn charts). koji se jOs nazivaju i histogrami, zatim stapicasti dijagrami (eng!. bar charts) i Iinij5k! dijagrami (englo line charts). Neki
w

Ht"g>t\'!.i~!-,:)ittlU.ll~ti".

't"r,"'ihY"c';:1 C";~~;,;,;~~;,,(
,~ -~:
~h~'i(y"""" 'i:i;~;;:""''''h~'''

sto' S9 korisnik malo izvjezba (u k,ral'njem. 11-;;-; 1111 ~ slucaju, ukoliko varn je tesko ovako unositi

funkcije, uvijek ih motete llkucavati rutno). Dodatna prednost ovakvog naCina unosenja leti u cinjenici da S9 ne morate brinuti da Ii vajanje argumenata koristi zarez iii tacka-zarez (Excel 0 tome vodi brigu sam).

S9

za razd-

Kao 5tO je vee reeeno, Excel omogucava analize tipa "sta je potrebno uraditr da bi se postigao zadani cili". Na primjer, ukoliko nas zanlma na koju vrijednost bi se trebao povecati prihod firme "Kristalinvest" u toku aprila (celija F3) da bi se prosjecni polugodisnji prlhod (ceHja 16) povecao sa 1020 na 1050, u Toolsmeniju treba izabrati naredbu Goal Seek, a zatim u polja za unos nazvana Set cell, To value [ By changing cell upisati redom 16, 1050 i .f3. Excelce obaviti analizu, i zak!juCiti da se aprilski prihod firme "Kristalinvest" mora povecati sa 130 na 220. Analiza pomocu naredbe Goal Seekmoze se koris1iti sarno za ispitivanje utjecaja jedne6elije na neku drugu celiju. Za ~etaljnije analize ireba koristiti naredbu Solveriz Tools menija (koja je takoder i znatno slozenija za upotrebu).

so kada ie potrebno vizualno prikazati kakav ie rela- '" ,"".e, - n;jl tivni odnos pojedlnih podataka prema ukupnoj kOlieini :: ::(~e .:L' l_1jfJW ', ': "> svih podataka (cjelini), dok S8 XY rastrkani dijagra~ mi Jengl. XY scatter chaJts) koriste kada grafieki treba prikazati ovisnost nekih redova iii kolona u tablici od nekog drugog reda iii kolone u istoj tablici, kao sto je npr. ovisnost visine pojedinih osaba od njihove starosti, ovisnost duzine neke metalne sipke od tem- ~ perature, itd, (za tu svrhu, u tabeli moramo imati oznacena barem dva reda iii dvije kolone, pri cemu se crtaju dijagrami zavisnosti svih redova osim prvog od pNOg reda, iii svih kalona osim prve od prve kolone). Bitno je napornenuti da bez obzira koliko redova ill kolona oznacill, kruzni dijagrami mogu prikazivati podatke samo za jedan red iii kolonu. U slucaju da zelimo uporedno prikazivati podatke za vise redova iii kolona na istom grafikonu, umjesto kruznih mazema koristiti prstimaste dijagrame (engl. doughnut charts).

~i~a~~:~r~o~~~;n~~!;~;~~;~(~~g~:;~~f~~:Jt~)~~:i~~~ ~'~:::~"

~:~:(Sijft.teJ)

j
I
i ..

. " ..

Jii)ff8n I rI[fIfJ .

l~rndiT~-'

~~-IBil !,I~~I _ ,',uLI

").'

2.2.6 Kreiranje gralikona


Microsoft Excel omogueava da podatke upisane u tablice prikazemo u vidu grafikona odnosno dijagrama, Sto je veoma praktieno ukoliko zelimo da izvrsimo vizualno uporeC!ivanje razJicitih podataka iz tablice. Veoma je vazno istaei da su grafikoni kreirani u Excelu uvijek dinamfcki povezani sa tablicom iz koje su krelrani, sto znaCi da ee se svaka izmjena podataka u tablie! istog trenutka odraziti na izgled svih grafikona kreiranih na osnovu te tablice. Excet posjeduje obilje moguenosti za rad sa grafikonima, taka da postoje citave knjige (velike koliko i ova] kompletan udzbenik) koje su posvecene sarno krefranju grafikona u Excelu. Stoga je jasno da se na ovom mjestu mozemo upoznati samq sa osnovnim idejama vezanim za kreiranje grafikona u programu Microsoft Excel.

Svaki tip dijagrama Ima razlicite podtipove odnosno podvarijante, koj] S8 biraju pomocu istag dijaloga. Tako, na primjer, skora svaki dijagram ima dvodimenzionalne j trodimenzionafne vari~ jante. Treba voditi raeuna da nije svaka podvarijanta podjednako dobra za svaku namjenu. Taka, na primjer, postoje podvarijan1e koje su pogodne za uporedivanje podataka po apsofutnom izno~ SIl, dok su druge podvarijante pogodne za uporedlvanje podataka po refativnom iznosu, tj. po njlhovom udjelu u odnosu na cjelinu. Potrebna je izvjesna vjestina i ,iskustvo da naucimo odabrati koji tip grafikona najbolje odgovara za neku konkretnu primienu. Korae! koji slijede mogu neznatno vari rati u ovisnosti od toga koji smo tip j podtip dijagrama izabralL U nastavku teksta podrazumijevacemo,da ,smo izabra!1 prv) podtip stupcastog dijagrama. Nakon sto smo izabrall tip i podtip dljagrama, kliknemo na dugme Next, eime prelazimo na sljedeCi dlja log carobnjaka za izradu grafikona (usput, svi earobnjaci podrzavaju povratak na prethodni dljalog, u bilo kojem trenutku, pomoeu klika na dugme Back, tako da se uvijek mozemo vratiti nazad ukoliko smo nesto zaboravili). Na ovom dijalogu vee se prikazuje preliminarni izgled ze Ijenog grafikona. Od ovog trenutka nadalje, postupkom kreiranja grafikona je veoma jedn09tavno upravljat1, jer je efekat svake izmjene, koju ucinimo u dijalozima, istog trenutka vidljiv unutar samog dijaloga. Pomoeu radio dug-madi Rows i Columns mozemo birati da Ii zel1mo da -medusobno uporedujemo podatke razvrstane po redovi~ rna (npr. grupirane podatke za tri preduzeca za svaki od scst mjeseci) iii po kolonama (npr. grupirane podatke za -svaki ad sest mjeseei za svako ad tri preduzeda). Pored toga, ukqliko utvrdimo da zelimo de ukljuelmo jos neke podatke u gr-a:flkon, JILoaprotiv da iskljucimo neke podatke iz grafikona, neophodne komande za takve manipulacije- (A~dd r Remove) mozemo pronaCi na kartici Series istog dijaloga.
165

Postupak kreiranja grafikona u Excetu odvija se kroz niz etapa. Pretpostavimo, na primjer, da zelimo grafi6ki da predstavimo podatke 0 poslovanju tri preduzeea koja smo vee razmatrali u toku polugodisnjeg perloda. PNO sto moramo uraditi je da oznacimo dio tabele kojl sadrzi podatke koje zelimo da prikazemo. Na primjer, mozemo se odlueiti da prikazujemo podatke Samo za jedno preduzete, Hi sarno za jedan mjesec. Mi cemo se odluClti da prikazujemo podatke za sva preduzeea u toku svih 6 mjeseci istovremeno na istom grafikonu. Stoga, oznacimo dio tabele u opsegu eelija od _ B2 do H5. Primijetimo da je potrebno da obuhvatimo ne sarno broj6ane podatke, vee i zaglavlje tabete koje opisuje znaeenje pojedinih redova i kolona. Zna6enja upisana u zaglavlju Excelee kasnije iskoristltl da ob!Jjezi smislenlm nazlvima pojedine elemente grafikona (ukoliko smo zaboravili da "Glznaeimo i zaglavlje tabele, Exce/ce koristiti stereotipna ime'na poput Series 1, Series 2 ltd. za obilie~avanie grafikona), Nakon sto sma oznacili feljen! dio tabe!e, potrebno je izabrati naredbu Chart iz menija Insert, iii alatku" Chart Wizard sa "8tandard~' trake sa alatima. Pokretanje ove naredbe" otvara sistem spreg hutih dijaloga koji se u zargonu nazivaju carobnjaci (engl. wizard), a 6iji je cilj olaksavanje izvjesnih slozenijih operacija. Dakle, pokretanje ave naredbe otvara carobnjaka za kreiranje grafikona (ehgl._chart wizard).

164

Treci dijalog sadrii nekalika kartica kOje su uglavnom vezane za estetsko dotjerivanje grafik6na. Sadrtaj al/itl kartica neznatno varira ad vrste i padvrste izabranog' grafikona. U nasem prlmjaru, u kartici Titles mozama zadati ime gratikona, kao i nazive X f Y osa gratfkona. U kartici Axes mazema birati kako 6e se i da Ii ce se uopce prikazivati koardinatne ase. Pamo(;u kartice GridHnes mazema podesavati da Ii telimo prikaz mrete linija u pazadini g'rafikona, kao i njena sirojstva (ukoliko je zelimo). Pomoeu kartice Legend odre9'ujemo da If tetimo da se na grafikonu prikazuje {egenda (tj. objasnjenje sta predstavljaju pojedini elementi grafikona). Ukoliko zelima prikaz legende, mazema birati u kojem dijelu gmtikona ce se prikazivati legenda. Kartica Data Labels omogucava podesavanje da Ii terimo da kraj odredenih efemenata graffkona budu prikazane i odgovarajuce brojeane vrijednosti iii teksfuafne oznake (i ako ielimo, na kojf na6in), dok kartica Data Table omogucava izbor da Ii telimo da se unutar gralikona pdkaze i tabefa sa odgovarajuCim podacima.

oznatiti ma koji 'dio grafikona (ime oznacenog dljela uvijek vidite u traei formula). Nakan sto ste oznaCi!i zeljeni dia, mazete preci na njegovo oblikovanje. Za tu svrhu, aktivirajte meni Format. Njegova prva naredba uvijek 6e se odnositi na oblikovanje oznacenog dijela grafikona (zavisno od oznacenog dijela, mogu se podesavati razlicita svojstva). Alternatlvno, motete dvostruko kliknuti lijevom tipkom misa na oznaceni dia, iii kliknuti desnom tipkom misa na oznaceni dio j izabrati neku od naredbi za oblikovanje iz iskocnog menija koji se pojavljuje tom prilikom. Na sljedecoj slid prikazani su neki od grafikona izvedenih iz tablice koju sma razmatrali, nakon abavljenih dodatnih oblikovanja pojedinih dijelova grafikona:

I
i

1 I
i

.in :"i: f:l ' !tlM,;;~,,,,h,,'1 , I IH . \:! " " " I ~


,

; i

" ,,, I
Prifl(ldi

Krist<lllmrost

: "O"~I"~Ml
" .
i

""'

1 .. , ..

..
:

: I

Cetvrti, a ujedno i pasljednji dijalog za kreiranje grafikona, je najjednostavniji: on nam sarno nudi izbor da Ii zeJimo grafikon kreirati na istoj radnoj stranici (opcija As object in) iii na novoj radnoj straniei (opelja As new sheet). Nakon klika na dugme Finish, trazeni grafikon se pojavljuje na rad~ no] stranici (dug me Finish se maze pritisnuti unutar bilo kojeg od spregnutih dijalaga, a ne nuz.no unutar posljednjeg). Ukoliko smo sve obavili kako treba, na radnoj stranici pojavice se histogram koji prikazuje raspodjelu prihoda po mjeseeima za tri razmatrana preduzeca.
Na prvi pogled, moglo bi se reci da je ovim proces kreiranja grafikona zavrsen. Medutim, blLze je istini da ovim proces kreiranja grafikona tek poCinje. Nairne, ubaceni grafikon je moguce naknadno oblikovati na mnostvo naCina. Prva sto motets prirnijetiti je einjenica da je upravo ubaceni grafikon oznacen, sto se vidi po ernom okviru koji grafikon ima aka sebe sa 8 crnih kvadratiCa (hvataljki) u ug!ovirna i na sredinf svake strane okvira. Kao sto smo vee nautili prilikom rada sa Microsoft Wordom, ove hvataljke sluze za promjenu veliCineobjekta, i pojavljuju se samo kada je abjekat oznacen. K!iknete Ii bilo gdje van okvlra grafikona, okvir sa hvata!jkama nestaje, eime grafikon vise nije oznaten. Panovno obiljez.avanje vrsimo prostim klikom na grafikon. Dok je graflkon oznacen, u glavnom meniju sa umjesto menija Data javlja meni Chart. Ovaj meni sadrii naredbe za naknadno oblikovanje grafikona. Prve ceUri naredbe u ovom meniju, Chart Type, Source Data, Chart Options i Location, otvaraju jedan od tetiri dijaloga sa kojima smo se susreli prilikom upotrebe carobnjaka za kreiranje grafikona. Taka, na prlmjer, ukoliko zelite naknad~ no da dopisete nas!ov grafikona, upotrijebite naredbu Chart Options, dok naredbom Chart Type mozete naknadno promijeniti tip i podtip grafikona. Veoma interesantna naredba iz Chart menija je naredba 3~D View, koja se koristi sarno kod trodimenzionalnih gralikona, i pomocu koje mozema podesavati natin, pravac j ugao posmatranja trodimenzionaJnih grafikona, Ukoliko zelite da i2brisete: grafikon, prosto pritisnite tipku Delete na tastaturi u trenutku dok je grafikon aznaten. . Pored toga sto mozema oznaciti eitav grafikon, mogu se oznacavati i pojedinacni dijelovr gratikona, sto omogueava da se svaki dio graflkona zasebno oblikuje. Na primjer, ukaliko kliknemo na naslov grafikona dok je graflkon oinaeen, ako naslova ce se pojaviti okvir sa osam hvataljki, eime zakljucujemo da je upravo on oznacen. Naziv oznacenog dijela grafikona pojavljuje se u palju 138nazlvom celije u lijevom dijelu trake formula. Potrebno je izvjesno iskustvo da uvjetbate gdje i ka~ tatno treba kliknuti da bi se oznacio tacna odrecleni dio grafikona. Na srecu, postoji i dru.gi natin: nakon sto ste oznaci!i bilo koji dio gratikona, pamacu tipki sa strelicama na tastaturi motete redom
166

Pored grafikona, u Excelove radne stranice moguce je ubacivat! i sve druge vrste slika, kao i crtati vlastite crteze pomocu alatki iz "Drawing" trake sa alatima, na potpuno isH natin kao u pro" gramu Microsoft Word.

,..<,

167

Pitanja i zadaci
1. Cemu slute programi za tabelarne proracune i kako je tekao njihov razvoi? 2. Definirajte sta su radne knjige, radne stranice, redovi, kalone i celije u programu Microsoft Excel. 3. Koje vrste podataka mazema upisivati u celije? 4. Cemu SIUll samopopunjavanje i kako se postiie? 5. Kakve su razlike u menijima i trakama sa alatima izmedu programa Microsoft Word i Microsoft Excen 6. Sta su formule i cemu slu.ze? Sta formule mogu sadrzavati.?
7. Napisite formulu "" (C2+C3+C4+C5+C6+C7) /6 na kraci nacin.

8.

Napisite formulu =SUM (D2 ; A4) bez koristenjafunkcija.

9. Koje funkcije poznajete koje se mogu koristiti u formulama u Excelu? 10. Sta mislite zbog cega je funkcija IF od presudnog znacaja u iole slozenijim proracunskim tabli~ cama? 11. Na Sliei je prikazan isjecak iz tabele koja prikazuje poslovanje farmaeeutske industrije za prvu cetvrtinu godine:

Unesite ave podatke u Microsoft Excel i popunlte kolonu "PROSJECNO VRIJEME" sa odgovarajucim forrnulama koje racunaJu prosjecno vrijeme sve tri trke za sve takmicare, a kolonu "BROJ BODOVA" popunite sa odgovaraju6im formulama koje racunaju broj osvojenih badova za sve takmicare. Broj bodova se ratuna na s!jedeci nacin: aka je prosjecno vrijeme vece od 160 sekundi, braj bodova je jednak nuli, au suprotnom brai bodova je 160 minus prasjecno vriw jeme. Zatim, u celije 08, D9, DiD j 011 upsite redom formule koje racunaju ukupan broj bodova koje su ostvarili sv! takmicari, najveci bro] bodova ko]! je ostvario neko od takmicara, najmanje postlgnuto vrijeme u ma koja] od trka, i bra] diskvalificiranih takmicara (tj. onih sa nula bodova). 13. Realizirarje pl"Oracunsku tabHcu za vodenje statistike 0 uspjehu ucenika u razredu koju smo apisivaJi u prvam dijelu udzbenika kada sma gavorHi 0 programima za tabelarne proracune. 14. Neki lijek je 'testiran na 1000 pacijenata. Kod 500 padjenata zdravlje se paboljsalo, kod 300 pogorsalo, a kod 200 je stanje ostalo !sto. Predstaviti ove podatke kruznim dijagramom uz pbmoc programa Microsoft Excel. 15. Podatke u tabllci iz zadatka 12 predstavite raznim vrstama dijagrama pomoGu Micr(Jsoft Exce/a. 16. Prikupite podatke 0 kretanju klimatsklh priHka tokom deset'uzastopnih dana, Potrebna je upisatl temperature u 7 i 13 sati. Prikupljene podatke predstavite linijskim dijagramom.

1 2 3
4

MJESEC Januar Februar Mart Ukupno:

PRIHOD 10000 7000 16300 3000 2200 4600

ZARADA

17. Sta je kruzna referenca i u l<ojim se slucajevima javlja? 18. Sta znaei aka kao rezultat- racunanja umjesto vriJednosti dobijemo ispis #VAJ~UE!? 19. St~ treba uCiniti ukoliko kao rezultat racunanja umjesto vrijednosti dobijemo ispis ##.JI:##'##? 20. Kakva je raz!ika izmedu apsolutnih i relativnih adresa celija? Kad treba koristiti jedne a kad druge?

Dapunite avu tabelu odgovaraju61m formulama koje nedostaju da bi tabela bila funkcionalna. 12. U s!jedecoj tabe!! upisani su rezultati kOje su takmicari postigli na trkama na -1000_ metara. Odrzane su 3 trke, a upisani rezultati predstavljaju vrijeme u sekundama kOje su postigli takmi6ari.

E
TRKA 1 TAKA 2 TAKA 3 PROSJECNO VRIJEME BROJ BODOVA 160 180 130 150 160 140 150 150 170 160 150 160 150 170 150

1 TAKMICAR 2 Paja Patak 3 Macak Tom

4 Mornar Popai
5 Miki Maus
6 Fred Kremenko 7

8 Ukupan broj bodova svih takmicara: 9 NajveCi ostvareni braj bodova:

to Najmanje ostvareno vrijeme:


11 Broj diskvalifieiranih takmicara:

168

169

2.3 RACUNARSKA GRAFIKA I GRAFICKI PAKETI


2.3.1 Uvod u racunarsku grafiku
Dugi niz godina racunari su bili u stanju da prikazuju informacije sarno u tekstualnoj formi. Pojavom prvih uredaja za crtanje (plotera), zapadele su prve graficke primjene racunara. Ispocetka se uglavnom ractilo a jednostavnim crtezima koji su predstavljaii rezultate nekih proracuna u vidu krivulja iii prostijih grafikona. Ti ertez] radeni su pomo6u programa koji su prvenstveno bili namijenjeni za numeri6ku obradu podataka, pri cernu su dobijeni erteti bili vise propratni efekat obavljenih prora6una nego cltet! sami za sebe. Kasnijim ubrzanim razvojem racunarskog hardvera, poput kvalitetnih monitora koji su u stanju prikaza1i visokokvalitetnu sliku na ekranu, zatim kvalitetnih grafickih adaptera (kartica) kojl su u stanju generirati odgovarajuce signale monitoru neophodne za prikaz visokokvalitetne slike, kao i visokokvalitetnih stampaea koji su gotovo u potpunosti istisnuli plotere lz upotrebe, raeunarska grafika dozivjela je nevjerovatan razvoj i procvat. Danas se gotovo sve, sto se moze prikazati grafickl, prikazuje graficki, cak i u slueaju kada bi tekstualna prezentacija blla podjednako pogodna.
Pod grafikom opcenito podrazumijevamo prezentaciju informacija pomocu slika, u Kojima su osnovni nosioci informacija obJici i boje. Racunarska grafika je takav vid graflke u kojoj se za generiranje i prezentaciju slikovnih informaeija koristi racunar. Racunarska grafika js multidiscipJinama oblast, cije temeljito proucavanje, pored informatlke, trazi poznavanje izvjesnih grana matematike (naroCito geometrije i algebre), fizike (narocito optike), tikovne umjetnosti, pa cak i psihologije. Treba istaCi jednu bitnu razliku izmedu racunarske grafike i neracunarskih grafika (npr. umjet~ nickih slika, klasitnih fotografija, itd.). Racunarska grafika je, u sustini, diskretna grafika, dok su neratunarske grafike kontinuirane grafike. Nairne, sve realne stike su, po svojoj elementarnoj prirodi, informacije analognog tipa, 8to znaei da ne postojs strogo odredeni elementi slike, i strogo odredene granice izmedu jednog i drugog elementa slike, vee su prelazi sa jednog na drugi element , slike izvedeni postupno i kontinuirano, 1j. bez naglih skokova (podsjetite se na pojmove analog nih i digitalnih velicina koje smo obradivali u prvom dijelu ovog udzbenika). 8 druge strane, kako je racunar po svojoj elementarnoj prirodi digitalni uredaj (ovdje mislimo na digitalni ra6unary, on sliku maze posmatrati iskljueivo kao konacan broj jasno definiranih elemenata, izmec1u kojih postoje jasne i ostre grantee. Za takvu grafiku kazemo da je diskretna grafika. Srecom, ukoliko su elementi slike dovoljno mali i dovotjno gusto postavijeni, Ijudsko oko ih ne primjecuje kao zasebne elemente, vee pojedinacne elemente vete u kontinuiranu sliku. Ova osobina Ijudskog oka naziva se prostorna integracija (eng1. spatial integration), i ima veliki znacaj za grafiku opeenito (ne samo za racunarsku graliku), s obzirom da-su cak i mnogi graficki medij] poput fotografije i fifmske trake koje tipicno smatramo analognim i kontinuiranim, u svojoj prirodi diskretni (npr. ako pogledamo neku fotografiju kroz jako povecalo;,j'asno cemo vidjeti diskretna zma od kojih je fotografija naprav!jena).
Raeunars~u. gr-afiku mozemQpoClijeliti na vise nacina. Na prvom mjestu, mozemo navesti podjelu na Interakfivnu i !i~interaktivnu grafiku. Pod interaktivnom grafikom podrazumijevamo grafiku u kojoj'se koxisti dinamiMri naCio-'prikaza sllke na izlaznom uredaju koji to omogucava (npr. monitoru. iii multime{./Jjalnom'/J[ojekfo_r{l), IU kojol covjek (dizajner) aktivno ucestvuje u stvaranju i izmjeni sllke, pri C~niU 'su re'zultafLodmah vidljivi.-Neinteraktivna grafika je grafika u kojoj se slike generiraju i prezentiraju .l14 n-aGHr'kojl~ne ispuojaVa prethodne uvjete (npr. grafika u kojoj se informacije prezentiraju; y 'Vip(J sUk~:.~tampanjh na stampatu).

vih Hnija kao i otvorenih i zatvorenih, ispunjenih i neispunjenih geometrijskfh likova (pravougaonika, elipsi, itd.) koji mogu da se prek!apaju, prekrivaju iii uklapaju i na taj nacin tvore sliku. U ovakvoj vrsti grafike, raspored svakog od objekata, kao i njihov obllk j veliCina, -moze se neovisno mijenjati, a da pri tome poloiaj i karakteristike ostaHh objekata na slid ostanu neizmijenjenL Za isertavanje ovakvih sllka, ra6unari koriste matematske formule vektorske atgebre (odakle i poti6e naziv vektorska grafika) koje opisuju nacin i redoslijed iscrtavanja objekata. Vektorsku grafiku koristimo u svim situacijama u kOjima je sastavljanje sllke ad objekata prirodan naCin kreiranja slike (npr. razni tehnicki crtezi, skiee, naerti, plakati, ltd.). S druge strane, za prikaz sllka kOje se sastoje od jako mnogo detalja izmedu kojih je veama tesko uspostavitl neku jasnu matematicku vezu (npr. za prikaz fotografija iii umjeiniekih slika), vektorska grafika je potpuno nepodesna. U tim slucajevlma se koristi bitmapirana (rasterska) grafika. Ovaj vid grafike kao osnovni (a zapravo i jedini) gradivni element slike koristi takozvani pikseJ, sto je kovaniea od engleskih djeCi picture i element. Rijec plkse/kod nas se obicno prevodi kao latka, mada se zapravo radi 0 sasvim malom kvadraticu iii pravougaoniku. Svaki piksel ima jedinstvenu boju iii intenzitet osvijetljenosti. Rasterska sJika je, zapravo, skupina piksela razliCitih nivoa osvijetljenosti iii razlieitih boja. U prvom slueaju radi se a monohromatskim iii crnoMbijeJim slikama, dok se u drugam slutaju radi 0 sJikama u bojiill kolor sJikama. Treba napomenuti da Je terminologija "crno-bijela slil<a" donekle nejasna: nekada se ovim terminom oznacavaju slike u KOjima S8 javlja iskij'uCivo ema ili!i bijela baja, dok se nekada dopusta da ave slike mogu sadrzavati i razne nijanse sive boje. U engleskoj literaturi ave dvije situacije se strogo razdvajaju i nazivaju bJack&white i grayscaJed. Jasno je da je kvalitet rasterske slike tim bolji sto su pikseli sitniji, tj. sto je slika podijeljena u vise piksela. 0 vektorskoj i rasterskoj grafid biee vise govora u nastavku teksta.
U vezi sa podJelama racunarske grafike, mozemo spomenuti i podjelu na dvodimenzionafnu (20) i trodimenzionainu (3D) gratiku. 8trogo reeeno, prava trodimenzionaina grafika ntje ostvariva nit! na ekrallima, niti na paplru, jer su oni u principu dvodimenzionalni mediii, nego jedino hoiografskim postupcima u prostoru, uz pomoe lasera. Ipak, vee se u dVlje dimenzije pomocu odgovarajueeg izbora oblika, nijansi bOja i nivoa osvjetljenja i sjenki moze docarati izgled trodimenzionalnih objekata. Na primjer, vjerovatno 6e svaki posmatrat reci da slika prikazana sa desne strane predstavlja valjak (koji je tlpieni trodimenzionalni objekat), mada je posve jasno da je rijee 0 obienoj slici u dvije dimenzije. Isto tako, fotografije pri!icno vjerno prikazuju trodimenzionalne objekte u dvije dimenzije. Medutim, ne mozemo reCi da fotografija predstavlja trodimenzionalnu grafiku, jer ona predstavlja zapis trodimenzionalnog svijeta snimljen samo iz jednog pravca posmatranja. Na takvoj sHe( ne mazemo pogledati svijet i2 drugog ugla (na primjer, odrediti sta se nalazi sa druge strane nekog objekta koji je vid!jiv na slici). Trodimenzionalna grafika podrazumijeva da je cjelokupna informacija 0 trodimenzionalnim objektlma pohranjena u memoriji racunara, tako da se objekti po potrebi mogu posmatrati iz bilo kojeg pravca posmatranja. U tom slucaju, slika koju eemo zaista vidjeti, zavisi od prostornog odnosa lzmedu pojedinacnih objekata, kao i od ug!a posmatranja, koji se mogu podesavati. 8toga, u trodimenzionalnoj grafid umjesto pojma slike kor!stimo pojam svijet (engl. wor/d), dok je slika samo jedna manife$tacija svijeta, pri tacno utvrctenom aspektu posmatranja. Prilikom rada sa trodimenzionalnom grafikom ,dalazi -u ob?lr.iskljuC!vo vektorsl<i pristup zapisu slike.

2.3.2 Sirukiura "graflcklhsislema"


Da bismo mogli koristiti raeunarsku grafiku,neoph5ana namje odgovarajuca hardverska i soft~ verska podrska. 8toga, svaki graficki sistem~mora. posjedovati odgovarajueu hardversku i softver~ sku strukturu. Hardverska struktura grajic.kih sistema .onio'gueava unos gfafickih informaclja u memoriju racunara kao i njihovu prezenlaciju, dok-softverska struktura odreduje n8cin zapisa stike u ra6unarskoj memorijZ kao i postupke za. manipufiranje elementima stike.
171

Druga tiplena pqdjela racunarske grafike je podjela na vektorsku iii objektnu grafilw i bitmapi~ ranu 'ili rastersku' graflku. pva podjela je izvrsena na osnovu osnovnih e!emenata od kojih je gractena: stika, Kod vektorske grafike, osnovni elementi koji grade sliku su objekti, poput pravih i kri170

Neophodna hardverska podrska sastoji se pretezno od odgovarajudh ulaznih i izlaznih uredaja. Mada postoji veliki broj razlieitih ulaznih uredaja, za potrebe racunarske grafike koriste se uglavnom razni pokazivacki ulazni uredaji iii lokatori (npr. mis, pamicna kugla, grafieke table, table iii ekrani osjelljivi na dodir, itd.) i skeneri, koji sliku sa papira direktno prenase u memoriju racunara. Oak se pokazivadki ulazni uredaji mogu koristiti kako za kreiranje vektorske, taka i za kreiranje rasterske grafike, upotreba skenera je ogranicena iskljuCivo na rastersku grafiku. Izlazni uredaji koji se koriste u racunarskoj grafiei mogu se podijeliti na koplrne uredaje (engl. hardcopy devices), u koje spadaju npr. stampaci i crlaei (platen) i displeje (npr. ekran monitora). Izlazne uredaje mozemo podijelitj i prema nadnu iscrtavanja sllke na raster-scan uredaje, koji prvo podijele sliku na veliki broj uskih horizontalnih traka, nakon cega isertavaju sliku traku po traku (veGina stampaca radi taka), j na random~scan urec1aje ko)i iscttavaju sliku objekat po objekat (takv] SU, na primjer, mnogi plateri). Pokazivacke ulazne uredaje mozemo podijeliti na uredaje koji registriraju apsolutni poloiaj pokazivaca U ogranicenom prostoru (poput grafiCke table in ekrana osjetljivog na dodir) i uredaje ko]i registriraju relativno kretanje pokazivaca u o,dnosu na trenutnu poziciju (npr. mit; ill pomicna kug/a). Skenere mazema podijeliti na skenere koje daju sliku u nijansama sive boje ("grayscaJed" skener~ i skenere koji daju sltku u baji (kolor skener~. Pored navedenih ulaznih uredaja, vecina danasnjih standardnih video kamera se uz odgovarajucu hardversko*softversku pOdrsku moze koristiti i za neposredan unos video sadrtaja u racunar. OSim standardnih, danas se na trzistu mogu naCi i specijalizirane kamere namijenjene iskljuCivo za povezivanje sa racunarom. Oblcno su veoma malih dimenzija, dok kvalitet video izlaza koji daju varira. Najvise se koriste za komuniciranje udaljenih korisnika putem ra6unara uz prenos slike uzivo (tzv. videokonferencije). Za unos staticnih slika u ra6unar, sve populamiji postaju i digitalnl fotoaparati, koji omogueavaju direktno pohranjivanje fatografija u digitalnom obllku (iskljuCivo u f~rmi rasterske grafike). Kvalitet ovih uredaja varira, tako da postoje jeftini digitalni fotoaparati koji farmiraju rastersku sliku od svega 320 x 200 piksela, dok postoje i profesionalni aparati koji daiu sliku formata 3000 x 3000 piksela, pa i vise. Digitalni fotoaparati su napravili revoluciju u digi1alnoj obradi fotografija, jer omogucavaju da se presko6i dugotrajni i skupi proces koji se sastoj] od razvijanja tUma, izrade fotografija j njihovog prenosenja u racunar putem skenera (skeniranja). 8to S8 tice izlaznih uredaja, danas je gotovo nemogu6e jasno razgraniCiti stampace i crta6e. Veeina danasnjih stampaca je u stanju da ravnopravno stampa i tekst i vi"sokokvalitetne graflcke sadrtaje (slike, crteze ltd.), Sa druge strane, modemi crtac:i zasnavani reeimo na elektrostatskoj tehnologiji, mogu da rade i kaa klasicni stampa6i. Sa dosta rezelve, mozema reci da su stampaci ureda]i koji su namijenjeni za stampanje pretezno teksta i ponekih grafickih, sadrzaja, koji za stampanje koriste papir formata najvise A2 (obicno A4), dok su ploteri namijenjeni prvenstveno ispisu grafjckih sadrzaja, i to obicno na velike formate papira (A 1, AO i vise). 0 displej uredajima, poput raznih vrsta monitora, vee je dosta receno u ptvom dijelu ovog udzbenika, kao i u nastavi informatike u osnovnoj skoli. Podsjetimo se same da se izmedu monitora i sabirnice ra6unara kao posrednik mora nalaziti ureaaj nazvan graficki adapter (kartica) koja digitalne podatke iz racunarske memorije pretvara u upravljacke signale koje razumije , monitor, Grafi6ka kattiea je prillcno slozen uredaj u eije pri~eipe rada ne motemo ulaziti.

nje trodimenziona!ne graflke zahtijeva poznavanje nesto slozenijeg matematskog aparata. Kao sto je poznato, Dekartove koordinate neke tacke predstavljaju par brojeva (x, y), pri cemu x p~edstavlja udaljenost po horizontali, a y udaljenost po vertii<ali od neke referentne tacke nazvane centar koor" dfnatnog Sistema, Ovdje treba upozoriti da je u mnogim sistemima racunarske grafike uobicajeno da y koordinata raste u smjeru prema dolje, a ne prema gore, I,ako je uobicajeno u matematici. Kod vektorskih grafickih Sistema, racunar sliku pamti kao niz objekata, pri demu se za svaki objekat pamte njegove osnovne karakteristike. Na primjer, prava linija (duz) je u nacelu u potpunosti odredena koordinatama poCetne i krajnje tacke, krug je odreden koordinatom centra i dutinom po{uprecnika (radijusa), dok je poligon odreden .koordinatama svojih ljemena (vrflova). Pored ovih osnovnifl svojstava moguee je pamtlti i dopunska svojstva objekata. Tako je, na primjer, za liniju moguce pamtiti njenu deb/jinu i boju, za krug je moguce pamtiti boju i debljinu njegovog ruba, kao i boju ispune nJegove unutrasnjosti, itd. Tipican primjer vektorske grafike je grafika koju kreirate tiZ pomoc alata za crtanje sa."Drawing" trake sa ala~ tima u programima Microsoft Word i Microsoft Excel. Dugo vremena, osnovni problem pri forrnira~ nju vektorskih grafi6kih sistema bio je kako predstaviti objekle nepravifnog izgleda, npr. raznorazne krivulje, kao i !ikove nepravilnog oblika. Ovaj problem rijesili su matematicarl uvodeci razne matematske modele krivih linija i likova, medu kojima su najpoznatiji kubn! splajnovi (engl. cubic splines) i Bezierove, krive (engl. Bezier cu/Ves). ~ba modela su, matematski gledano, relativno jednostavni, a njihova osnovna ideja je da se pamte koordinate karakteristicnih tacaka u !lnlji Hi liku, i eventualno, neke dopunske informacije 0 stepenu zakrivljenosti linije iii ruba lika izmedu karakteristicnih tacak8. Tako le, na primjer, prilicno nepravilan Ilk prikazan na slici desno, metodom kubnih splajno* va zapamcen svega pomocu 12 parova koordinata, i nikakvih dopunskih inforrnacija, osim informaeije 0 boji (interesantno je napomenuti da je Bezierove krive otkrio franeuski inzinjer Pierre Bezier za potrebe dizajniranja automobila u 6uvenoj automobilskoj industriji Renauf~. Ukoliko zelite da eksperimentirate sa kubnim sp!ajnovima, isprobajte alatku Curve koju u Wordu Hi Excelu mozete dobiti pomocu naredbe Une koja se nalazi u meniju AutoShapes na "Drawing" traei sa alatima. Za eksperimentiranje sa Bezierovim krivim, mozete se posluziti alatkom Curve iz prograrna Microsoft Paint iii, jos bolje, neldm od naprednijih programa za crtanje poput Core! Drawa, koji Bezierove krive intenzivno koristi pi"iHkom rada. Kao sto sma vee rekli, veklorska grafika se pamti u racunaru kao niz informacija 0 pojedinacnim elementarnim objektima koji Cine sliku. Ovaj niz informacija obicno formira datoteku nazvanu meta-datoteka (engl. metafile). Na primjer, na sljedeeoj slici je prikazano kako bi principijelno mogla izgledati jedna meta-datoteka, kao i slika koja odgovara tOj meta-datoteci:
Cemar=( 12,35) Rariijlls:;:;8 Ruh=Crni /splmn:;:;Zuta Ccntar:;;;;:(9,36) Radijus=2 Ruh=Cmi IspuniJo;;;Svijrt/{!pla1'{! Centar=(9,36) Rarlijus=OS Rllh:::::Cmi ]spuna=Cma Centar=( 15,36) Rfulijus=2 Rub=Crni /.IPWIG=Sl"ijct/op/(I\'G Krug: Centar=( 15,3()) Nadlju,<,'=O.8 Ruh=Crni lspull(/""Crna Krug: Krug: Krug: Krug:

Veoma je bitno istaCi da od kvaliteta graficke kartice.bitno. zavisi kvalitet clje/og grafiCkog sistema. Nista nam ne vrijedi ukoliko imamo monitor ,koji -moze prikazaH)B:st~'r od '3000 3000 piksela, ako graficka kartica koju posjedujemo "ne zna" da generira upravlja~Ke sigriale ko]i ce dovesti do prikaza takve slike na monitoru. Takoder, ukoliko graficka kartica sporo ger1E~'rJraJjp:rivlja6k~ signale za moni tor, ne mozemo oeekivati da cemo na monitoru moci vidjetfbrz..e:pr,ornjenesi,ike, Sto jeprllikom rada sa animiranim slikama od presudnog znacaja. Zapravo, "Svaki lanac'j?.o"tjofiko jak koliko.je jaka njegova najslablja karika, a nerijetko je upravo graficka kartjc,~ n~j.slaQ,U~'''kcirlk~'' nekog grafickog sistema.
Nakon sto smo objasnili hardversku strukturu grajiekih sistema; matemo precl I oa objasnjenje njihove softverske strukture. Kljucni koncept za citavu raGuna-rsku, grafiku je koncept Dekartov;h koordinata. U nastavku cemo se. ograniciti iskljucivona dvodimenzionalnu grafiku, jer razumijeva-

LinUa: Po(etak=(lO,30) Kraj=(14,30) Bojo=Crvena Deb(jina=2 Linija: Po(elak=(12,27) Kraj=(12,13) Bc~;a=Smcd{1 De/JIjina=4 Liluja: Pocelak=( 12,24) Kraj=(2,17) Bojo=Srnnia Debljina:::::2 Unija: POfetak=(12,24) Kraj=(22,17) Boja=Smer!a Deb/jina=2 Linija: Pocetak=( 12,13) Kraj=(2,2) Boja=Smeda Dehljina=3
Linija: Pocctak=(12, 13) Kroj=(22.2) Boja:::::Smedil Dcbljina=3
173

172

Stvarne meta"datoteke rijetko izgledaju ovako, jer S8 informacije 0 grafiekim objektima u racunaru obicno.ne pamte kao tekst, nego sifrovano, kao niz binarnih brojeva. Medutim, prikazana izmisljena meta"datoteka dobro ee posluziti da se shvati osnovna ideja vektorske grafike. Windows operativni sistemi poznaju nekol1ko formata zapisa meta"datoteka, od kojih se najvise koriste WMF (Windows Metafile) i EMF C!;.nhanced ,MetaFile) format. Microsoft Word i Microsoft Excel koriste upravo ove formate za euvanje informacija 0 crtezima koje nacrtate u njima pomocu alatki za crtanje, a i veGina slika u galerUi Clip Art takoder su pohranjene u jednom od ova dva for" mata. Grafieke datoteke na disku, koje su pohranjene U ovim formatima, imaju na imenu nastavak . WMF odnosno . EMF. Mnogi od programa koji koriste vektorsku grafiku, poput Corel Drawa j AutoCada imaju svoj vlastiti format zapisa, ali generalni princip ostaje isti (Corel Drawovzapis koristi nastavak . CDR, sto ie ocigledno akronim od imena pragrama, dok AutoCadovzapis koristi nastavak . DWG, sto je skraeenica od engl. drawing). Rasterski grafieki sistemi organizirani su na potpuno drugaeiji na6in. Rastersku sliku mazemo zamisllti kao veoma gustu pravougaonu mrezu kvadratica (piksela), pri cemu svaki kvadrati6 moze imati svoju boju. Racunar tada prosto memorira informaciju 0 boji svakog piksela pojedinacno. Pam6enje koordinata svakog piksela izbjegnuto je na taj nacin sto se podaci 0 pikselima pohranju" ju u unaprijed utvrdenom poretku, obicno red po red, slijeva nadesno i odozgo nadolje. Prj tome je neophodno poznavati braj piksela u svakom redu, kao i broi redova piksela. Ovi podaCi, napisani u form! produkta (npr. 800 x 600) tvore apsoJutnu rezoJuciju stike. Medutim, apsolutna rezolucija ne govori nam nista 0 finael slike. Finoea slike izrazava se brojem piksela po jedinlci duzfne, obicno po incu (1 inc"" 2,54 em). Ovaj broj naziva se reiatlvna rezolucija, iii prosto rezolucija (u upatrebi je i izraz razlucivost iii tinaea). Jedinica kojom se izraiava relativna rezolucija najcesee se obiljezava skraeenicom dpi (od engl. Qots E.er Inch). Rasterske slike se, osim po rezoluciji, razHkuju i po broju bfta koje racunar koristi za pamcenje informacija 0 svakom pikselu. Ovaj braj direktna odreduje koliko 6e razlicitih boja mod biti prikazano na slici. VeCi braj bita omogucava vise boja, q!i se time povecavaju mernorijski zahtjevi za pamcenje sllke, kao i zahtjevi za brzinorn racunara koji treba da obraduje takve sUke. Danas su u upotrebi standardi koji za pameenje inforrnacija 0 svakom pikselu koriste 1,4,8, 16 iii 24 bita, 810 redom odgo" vara moguenosti razlikovanja 2, 16, 256, 65536 i 16777216 razHCitih boja. Mozda nekome moguenost razlikovanja preko 16 miliona bOja djeluje kao pretjerivanje, ali Ijudsko oko zaista moze razlikovati bJizu 10 miliona boja (ovdje se, naravno, podrazumijevaju 1razlieite nijanse istih boja)! Taka je, na primjer, u slikama uradenim sa 256 boja primjetna "grubost" i prisustvo "kontura" oko objekata koje ne postoje u stvarnosti, zbog nemogucnosti prikaza "finih" prelaza izmedu dvije razliCite boje. Inaee, uobicajeno je da se standardi u kojlma se koristi 16 ill 24 bita po pikselu, nazi~ vaju redom High Color i True Color. Za neke potrebe koriste se i 32, pa cak i 64 bita po pikselu, ali cHj ovakvog zapisivanja nije povecanje broja mogu6ih bOja (16 miliona boja je sasvim dovoljno), nego olaksavanje ma~ipuliranja sa bojama prilikom obrade slika. OCigledno jeccla,rasterske slike-zauzimaju znatno vise memorije od vektorskih slika. Zaista, pret~ postavimo da:'treba ~~pamtitLsliku form-ata 800 x 600 piksela, pri 6emu se koriste 24 bita po pikselu. Za pamee'nje ove -slfke_ potreb~Q-je 800 . 600 . 24 bita, sto iznosi negdje oko 1,37 megabajta, bez obzi" ra da Ii slika_pnds!avycLsloietJ(pejzai; iii potpuno prazan list papira! Da bi se ovi problemi prevazisli, raZvijenLsu"raznnnefod1..kompresi!e rasterskih slika (0 opeem prlncipu kompresije podataka gavorill smo u- Prvorii'd~elujJdzb~hika, kada smo govorili 0 prenoslJ 'padataka). Na primjer, jedna jedno" stavng idej?"za 'kompr9siju sltka-;:J3stoji S8 u tome da u slueaju kada imamo grupu susjednih piksela iSie boje, fl_e pamtimo posebno informaciju 0 svakom pikselu, nego informaciju 0 boji samo jednog piksefa j ihforma:bijuk<2liko susjednih piksela Ima {stu baju. Ovakav nacin kompresije slika naziva se RLE(Bun LengthI;ncoding). Mnogo slozenlji (i bol]i) metodl kompresije izvedeni su u specijalnim fOf" matirria 'zapisa rasterskih sJika_poznatim pod nazivima GIF- (Qraphic Interchange format) j TIFF
174

(Tagged Image Eormat). GIFformat je specija!no razvijen za potrebe prenosa slika kroz ra6unarske mreze (odakle mu i patiee ime), gdje je pozeljno da slika zauzima 5to manje memorije (da bi se brze prenijela). Bitan nedostatak ovog formata je mogu6nost razlikovanja svega 256 razliCitih boja. Jos bol]i stepen kompresije postignut je u metodu ko]i se koristi u formatu zapisa rasterskih slika koji je poznat pod imenom JPEG (Joint Ehotographic Experts group). Za razliku od ostalih metoda, ovaj metod ne pamti nikakve informacije 0 boji izvjesnih piksela na sliet, vee pokusava da pretpostavi njihovu boju na osnovu boje susjednih piksela, cime se postize dodatna memorijska usteda. Pored toga, umjesta informacije 0 samim bojama, 6uvaju se informacije 0 svjetlini pojedinih piksela i odno" su boja pikse!a sa susjednim pikselima (tj. kontrastu). Medutim, iz samog postupka je o6igledno da ovaj metod nije pogoaan za slike kod kojih postoje nagli prefazi fz jedne u drugu baju, jer ee lnaee doci do primjetne degradacije kvaliteta slike (npr. slike kod koJih postoje nagli prelazi sa crne na bijelu boju dobiee vidljivu sivu sjenu na mjestu prelaza). Zbog toga JPEG metod spada u tzv. metode kompresije s gubicima (eng\. !oosy compression). S druge strane, JPEG metod je idealan za fotografije, kod kojih nikad ne postoje nagli prelazi (lna6e, ovaj metod razvi!a je grupa udruzenih strucnjaka za fotografiju, odakle i potice njegovo ime). Kod ovog metoda je moguce birati odnos izmedu zeljenog stepena kompresije (memorijske ustede) i stepena degradacije kvaliteta silks. Zavisno od sadrzaja sllke i dopustene degradacije sllke, stepen kompresije kod JPEG metoda maze iznoslti i vise stotina, tako da se slika koja inaee zauzima nekoliko megabajta mote svesti na svega desetak kilobajta! Formate zapisa rasterskih grafickih datoteka mozema prepoznati po nastavcima na njihovim imenima. Obicne rasterske (bitmapirane) slike, kOje nisu kompresovane ni na kakav nacin, na svom imenu obicno imaju nastavak .BMP. Nastavci . RLE, .GIF, . TIF (iii . TIFF) i .,}PG (iii . JPEG) ukazuju na rasterske slike kOje su kompresovane jednim od gore spomenutih metoda. Treba napomenuti da postojl jos bitavo mnostvo raznih zapisa rasterskih slika. Gotovo svaki graficki program, pored ovih standardnih zapisa, koristi i neki sv6j vlastiti zapis, za koji autori programa smatraju da je iz nekih razloga bolji od standardnih zapisa. Ipak, ovoliko obilje grafiCkih formata magla bi dovesti do kon" fuzije prllikom grafickih komunikacija (tj. prilikom prenosa slika na daljinu). Stoga, graficki standardi za izradu Web stranica na Internetu uglavnom ogranicavaju format zapisa rasterskih slika na formate GIF, JPEG i PNG (Eor1able Network ,Graphics) ko]i je blizak srodnik GIF formata, dok su zapisi vek~ torskih slika ogranieeni uglavnom na SVG (Scalable ,Y:ector graphics) format. Razmotrimo sada kako se euvaju informacije 0 boji pojedinih piksela. Za tu svrhu moramo se prvo upoznati sa nekim cinjenicama iz optike. Poznato je da se gotovo svaka nijansa svake bole moze dobiti mijesanjem tri izabrane osnovne boje. Pri tome izbor osnovnlh boja nije jednoznacan, a Simp bOja i nijansi koje se magu dobiti mljesanjem izabranih bOja naziva sa gamut boja (ni jedan gamut boja ne pokriva sve bOje i nijanse koje vidi Ijudsko oko, ali mnogi gamut! pokrivaju preko 90% vidljivih .bola i nijansi). Postoje dva naCina mijesanja bOja. Ukolika se boje mijesaju kombinacijom trf razlidta izvora obojene svjetlosti razlicitih ,intenzite-ta (npr.. iz .iri obojena Aditivno rnUdiJllje {;oja reflektora), tada govorimo 0 aditivnom miJeSanju_ boja. U ,tom" slucaju, kao osnovne boje tlpicno se koriste -crvena;-zelenfi-p{qv(;f baja. Ovakav model osnovnih boja zove se RGB (Beq, ,Green'-alue) mQcjel. Aditivno mijesanje ove tr1 osnovne bOje jeQnaklh intenzi~ta-dajQ bijelulfoju. S druge strane, ukoliko se bOje mijesaju nanosenjem trf raificite_Q,bojene materije na neku bl/elu podlogu u razlicitim omjerima (npr. 'kada -radfmo sa--lemperama iii uljanim bolama u slikarstvu), tada -govorimo:o, subs.tniktivncim mijesanju baja. U toni slu6aju, kao osno"vne -bOle tipicno -se koriste zelenkasto~plal<'a (cijan), plav{casto-crvemt (fTlagenta) . i tut/:? Ovakav 11!ij'CStIIJjc model osnovnih boja naziva se CMY (Qyan Magenfa Y:~lIow) model (u SubstraktivflO boja

175

klasicnom sl1karstvu cesce se susreee izbor plave, crvene i tute kao osnovnih baja, ali model CMY pokriv~ znatno vise boja i nijansi). 8ubstraktlvno mijesanje ove trl osnovne boje u jednakom omjeru trebaio bi dati ernu boju, ali to je u praksi tesko postiei, taka da se CMY modelu najcesce kao eetvr ta boja dodaje ems baja, cime dobijamo CMYK (Qyan Magenta yellow Blacis) model boja. Treba napomenuti da je gamut substraktivnog CMYK modela nesto man]i ad gamuta aditivnog RGB modela, tako da se nei<e nijanse koje se mogu prikazati RGB modek)m ne mogu prikazati pomo6u CMYK modela. U visokoprofesionalnim primjenama koriste se mode,li i sa vise osnovnih boja (npr. aditivni i substraktivni RGBCMYK madeli), eime je mogu6e formirati gam ute koji pokrivaju prakticno sve vidljive boje i nijanse. RGB model boje prirodniji je kod uredaja i medija koji emituju svjetJost, poput monitora i projektora, dok se CMY iii CMYK modeli boje koriste kod uredaja koji nanose slojeve boje na medij, poput stampaca, plotera, ltd. U oba modela, svaka boja_ moze se opisatl sa 3 broja, koji predstavljaju inten~ zitete ucesca svake od osnovnih boja u t.eljenoj boji. Medutim, nedostatak oba modela sastoji se u tinjenid da su oni posve heprilagodeni 6ovjeku. Na primjer, Govjeku nije lako odrediti koliki je udio crvene, zelene ifi pfa've sljetfosti u nekoj ad posmatranlh boja. Ono sto Govjek zapravo opaza ked boje su njena svjetlina (eng!. lumination), zas;cenje (eng!. saturatfon) i ton (engl. hue). Pojam svjetflne je sam po sebi jasan, zasicenje je parametar koji odreduje Cist06u boje fjako zasi6ena boja je znatno izrazajna, dok je slabo zasicena boja neizrazajna i pepeljasta), dok je ton tesko opisiv parametar koji u sustini odreduje da Ii mi boju dotivljavamo kao nijansu CNene, zelene, smede, ljubicaste, narandzaste, iii neke druge boje. Na osnovu ova tri parametra razvijen je i model u kojem se boje takoder opisuju sa 3 broja, ali koji je znatno prilagodeniji covjeku. Ovaj model obicno se naziva HSL (tiue ,Saturation bumination) model, ali se susrecu r nazivi NSB (.!:jue ,Saturation Brigthness), HSV (Hue gaturation 'y',alue) iii NSf (!:tue .saturation Intensity), jer se za iz\'az svjetfina u engleskom jeziku koriste razliciti termini. Prednost HSL modela je u tome sto ako zelimo, na primjer, da pove6amo osvijetijenost slike, u ovom modelu dovoijno je mijenjatl samo jedan parametar (svjetlinu), dok je u RGB i CMY modelima neophodno mijenjatl intenzitete ucesca svih boja. Ukoliko zalite prakticno da eksperimentirate sa RGB i HSL modelima boja, za tu svrhu lijepo se motete posluziti dobro poznatim programom Microsoft Paint. Dvostruko kliknlte lijevom tipkom misa na paletu boja kOja je u ovom programu vidljiva na ekranu, a zatim kliknite na dug me Define Custom Colors. Na ekranu 6e se pojaviti dijalog u kojem motete eksperlmentirati sa parametrima RGB i HSL modela, j posmatrati kako oni utjecu na izgled bOje. Kod formata zapisa sllka u Kojima se za pamcenje informacija 0 jednom pikselu koristi veel braj bita (npr. 24), svaka grupa bita tipicno pamti po jedan od tr1 parametra nekog ad modela boje (obicno RGB modela). Taka se, na primjer, u True Coforstandardu koristi po 8 bita za pam6enje informaci~ je 0 svakoj od tri komponente boje (koje se u racunarskoj grafiei cesto nazivaju kana/i). U CMYK modelu koriste se 32 bita po pikselu (po 8 bita za svaku ad tetirl komponente). Kod formata zapisa u kojima se koristi manji broj bita po pikselu (4 iii 8, koji redom omogu~avaju 16 odnosno 256 boja), obicno se zajedno sa samom slikom euva informacija j 0 tzv. paleti boja. Paleta boja je tablica koja cuva informacije 0 tacnim parametrima upotrijebljenih bOja (16_-m 256), po nekom ad modela boja {RGB, CMYK iii HSL), a informacije 0 pojedlniiTl R.ikseILm~: Rredstav!jaju samo redne brojeve (lndekse) odgovarajudh podataka u paleti boja. Kod-c!no-bijelih,slika, situacija je znatno jednostavnija: tu se jednostavno po svakom pikselu pamti jedan broj]<Qji oz~ae?va svjetlinu odgovaraju6e s!ve nijanse, pri cemu se obicno koristi 8 bita po-piksel~~ (stod~i.e.28 ~-256 mogucih nivoa sive boje). Naravno, kod slika ked kojih postoji iskljucivo crna. iliii bije'!aboja;'.9_o~6!jan je-jedan bit po pikselu. Jedna od potesko6a prilikom stampanja slika sastoji s,!3-Li qf~j~icf da veClnagrafiCkih uredaja za stampanje (stampad, crtaei, ltd.), za razliku- od diSpJeja, 'ne, posjeduju moguenost bojenja pil(sela razliCitim intenzitetem. Pikse! moze da bude jedino ,obojen iIi- neobDjen '(npr. ern iii bijel, ali ne i siv). Da bi se docarale nijanse baja, koriste se.- tehnike nazv-ine pofutonske aproksimacije (eng\. halftone approximations), kod k,ojih se svaki pikseJ prilikom stampe dijeli u veliki broj mnogo sitnijih
176

piksela, ko]i obrazuju takozvani klaster ill svezanj (engl. elustery, a zatim se rasporedom obojenih i neobojenih piksela unutar jednog klastera docarava zeljena nijansa. Ova tehnika karikirano je prikazana na sljede60j sliei. Inaee, sve tehnike docaravanja neke bOje Hi tona pomocu razlicito obojenih iii toniranih dovoljno bliskih i sitnih elemenata, nazivaju se dithering (ovaj engleski izraz nije mogu6e adekvatno prevesti). Tako, na primjer, mreza sitnih crvenih i zutih elemenata moze dotarati narandzaslu bOju, sto je takoder prikazano na s!jedecoj slici (na kojo] se, zapravo, javljaju samo crveni i zuti pikseli). Postoje mnoge podvrste ovih tehnika, u tije detalje ne6emo u!aziti.

Osnovu softverske podrske svakog grafickog sistema cini jezgro grafickog sistema. 8licno jezgru operativnog sistema, jezgro grafitkog sistema predstavlja skup potprograma koji su zaduzeni za izvrsavanje e/ementarnih- grafickih operacija, kao sto su isct1avanje etementarnih grafi6kih objekata (piksela, linija, elipsi, ltd.), odnosno manfpuliranje grafickim objektima (pomjeranje, promjena velicine, oblika i boje, rotacija, razni vidovi deformaeija, itd.). Ove e!ementarne operacije nazi varno grafickim primWvama. Svi graficki aplikativni programi cjelokupan rad sa gratikom ostvaru ju iskljucivo kombiniranjem grafickih primltiva. U modernim operativnim sistemima, jezgro grafiekog sistema je sastavni dio samog jezgra operativnog sistema.

2.3.3 Manlpuliranje elementima slike


Za bilo kakvu primjenu ra6unarske grafike ,u ct1anju i projektiranju, nije dovoljno imati samo mogucnost prikaza elemenata sllke, nego je sa njima potrebno i manipufirati. Razliciti graficki program! bitno se razlikuju i po sposobnostima manipuliranja elementima slike. Isto tako, neke vrste manipulacija primjenjuju se sarno na vektorske slike, dok su druge vrste manipulacija prilagodene iskljucivo za potrebe rada sa b1tmapiranim, odnosno rasterskim slikama. U osnovne operacije sa grafickim objektima spadaju trans/selja, rotacija, skafiranJe i smicanje (engl. skewing). Ove operacije ilustrirane su na slici sa strane (osim translacije, koja predstavlja samo paralelno pomjeranje u zadanom smjeru). U vektorskoj grafiei, sve ove operacije svode se samo na proste matematske trans~ formacije nad informacijama pomocu kojih je oplsan objekat rotacija objekat. 8toga se one u vektorskoj graflcl izvode krajnje jednostavno i glatko, i nikada ne dovode do degradacije izgleda sllke. 8 druge strane, u rasterskoj grafid situacija je znatno slozenija. Rastersl<e sllke ne sadrze nikakve informacije 0 geometrijskoj strukturi stike, taka da prosta transformaeija geometrijskih svojstava sllke nije moguca. 8toga'se manipulacije sa rasterskim slikama skoliranje sm.icdnje ne primjenjuju na individualne objekte slike (strogo receno, rasterske sllke se uopce ne sastoje od objekata, vee iskljucivo od piksela), nego se manipulacije obavljaju nad prethodno oznacenim dijelovima sllke, kojl mogu biti pravilnog ili nepravilnog ob!il~a. _ Db_~: translacija (paralelno pomjeranje) proizvoljnih dijelova rasterskih slika odvija bezjJot~~koa; njih<?va, fotacija je mnogo problematicnija, s obzirom da pikseli imaju tacno utvrdenu orijent.B.ciju,: koja se ratacijom narusava. Poseban problem kod rasterskih slika je skaliranje. Dok sa skaliranje ked.vek: torskih slika svodi samo na prostu izmjenu koordinata, jedino sto je kod rasterskih sHka mogu'ce ura-

o
~

DO

177

dlti je zamjena jednog piksela grupom od vise piksela iste boje u sluca]u kada zelimo povecati e!ement slike Uer ne postoje nikakve informacije 0 tome u kakvom se medusobnotn odnosu nalaze pOJe~ dini pikseti niti kakvu strukfuru tvore), odnosno ispustanje odredenih piksela u slucaju kada zelimo smanjiti element sllke Uer na velitinu piksela ne mozemo utjecati, pa ih ne motemo ni smanjiti). Stoga, svaki pokusaj skaliranja rasterskih slika neminovno dovodi do degradacije njihovog kvaliteta, I<ao sto je vidljivo na sljedecoj slid:

-skalinmjc

E/ekaf 'Treda i ugalj"

Efekat "GmJitlla olol'ka"

PIckat "Mozaik"

VeklOrsw

Vecina ovih operacija moze se posebno primjenjivati na pajedine kanale boje, tako da je npr. mogu6e filtrirati plavu komponentu sJike, a izostriti crvenu komponentu, itd.

2,3.4 Graficki paketi


Postoji veliki broj grafickih paketa, odnosno programa za rad sa racunarskom grafikom, kojl se medusobno veoma razlil<uju, kako po namjeni, tako i po mogucnostlma. Osnovnu grupu grafickih programa cine programi ko]i su namijenjeni za kreiranje slika. Kako smo vee napomenuli u prvom dijelu ovog udzbenika, programi za kreiranje vektorskil1 slika obicno se nazivaju programi za ertanje (eng\. drawing), dok se programi za kreiranje bitmapiranih stika obi(:no nazivaju programi za slikanje (engl. painting). Programi za crtanje mogu se dalje podijeliti na programe za dvodimenzionafno i trodimen~ zionaino crtanje, kao i na programe za crtanje opee namjene i specijaJizirane namjene. Programi za dvodimenzionalno crtanje omogucavaju crtanje objekata sarno iz jednog pravca posmatranja, dok programi za trodimenzionalno crtanje omogucavaju definiranje cjelokupnog prostornog izgleda objekata, tako da se rotacijom objekata u prostoru ma ko]i objekat mote vidjeti iz ma kOjeg pravca posmatranja. Programi za crtanje opee namjene nisu posebno prilagodeni crtanju nekih specificnih kategorija crteta, dok, s druge strane, programi za crtanje speclja/izirane namjene posjeduju veliki broj alata specijalno dizajniranih za crtanje sasvim specificnill crteza (npc elektrienih serna, masinskih elemenata, nota, ltd.). Programi za crtanje specijalizirane namjene najcesce su sastavni dijelovi CAD (Computer Aided Jdesign) programa, tj. programa za dizajniranje uz pomoc ra6unara. Od programa za dvodimenzionalno crtanje opce namjene najvise je u upotrebi 'program Corel Draw. Ovo je veoma mocan program za crtanje, ali, nazalost, ne i sasvim jednostavan za upotrebu, barem dok se ne savladaju njegovi osnovni konceptL Na ovom mjestu, prostor nam zaista ne dozvoljava opisivanje nacina upotrebe ovog programa, jer se neophodni koncepti ne mogu izloziti na malom prostoru i bez mnogo ilustracija. Ovaj program se mnogo bolje upoznaje kroz praktican rad. Stoga bi bilo dobro da , se, uko!iko nastavne mogucnosti to dozvoljavaju, uz pomoc vaseg nastavnika upoznate makar sa e!ementarnim nacinom upotrebe ovog programa (za uvjezbavanje profesionalne upotrebe ovog programa potrebni su mjeseci rada). Ukoliko ne postoje mogucnosti za takav vid nastave, za savladavanje osnovnih
-""-,-~-----,,

!?wiltefS!:.O

shdirdlljc

lzvorna slika

Smicanje rasterskih sllka je nesto jednostavnlje od skaliranja, pogotovo za male uglove 8m icanja, ali takoder moze da dovede do primjetne degradacije sHke. Flored pomenutih operacija za manipulaciju sa elementima sllke, kOje se susrecu u prakticno svim programima za racunarsku grafiku, 6esto se susrece i prevrtanje slike po horizontali iii ver~ tikali (eime se dobija slika koja izgleda poput odraza sllke u ogledalu), zatim izmjena svjetline slike, izmjena kontrasta (tj. razlike u nivou osvijetljenosti izmeclu svijetlih i tamnih dljelova sllke), izmjene baja, pretvaranje kaJot, slika u cmoobijele slike (bHo pomocu razliCitih nijansi sive boje, bilo pomocu polutonskih aproksimacija) itd. Ove operacije izvode se podjednako dobra, kako u vektorskoj, tako j u rasterskoj grafici. inace, U ve61ni programa za rad sa racunarskom grafikom,_ opisane operacije za manipuliranje elementima s!ik8 mogu sa naCi u meniju nazvanom {mage. Postoje izvjesne operadje nad eiamantima sllke, koje su posebno prilagodene radu sa rasterskirn slikama, a narocito sa fotografijama. U tu VfstU operacija prvenstveno spadaju razne vrste filtriranja, eijl je cilj da uklone "neeistoce" sa slike, te izostravanja, cijf je cilj da probaju da otkriju i istaknu granice izmedu pojedinih dijelova slike koji, sa Ijudskog aspekta posmatranja, predstavljaju odvojene cjeline slike. U ovu grupu operacija takoder spadaju i razni specija/ni efekti, 6iii je ellj da na sliku primijene takve transformacije koje ce kao krajnji rezultat stvoriti iluzlju da je slika kreirana nekom ad slikarskih tehnika, npr. pomocu krede i drvenog uglja, akvarela (vodenih bojiea), uljanih boja, njem komadi6a slakla (mozaika), itd. Ove opcije u veCini grafiekih programa sa u m,m;;;mA nazvanim Fifter i Effects. Na sljedecoj slid prikazana je izvorna rasterska sllka jeno nekoliko oval<vih manipulacija (koje su izvedene uz pomoc programa M;',ci"so,ft IDh"to

l:z,vorna slika
178

lzo.~lrena

slika

Tek.l'-turizirmw slikiJ
179

koncepata vektorske grafike mote kao dobra vjetba poslutiti vjetbanje crtanja slozenijih sllka pomoQu alata za vektorsko crtanje u Wordu i Excelu (sto je svakako dobra predvjezba i u slucaju da zelite da uC:ite rad sa Corel Drawom). Slika sa strane prikazuje primjer primjene programa Corel Draw za crtanje jedne geometrijske konstrukcije u matematici.
~'"~-',-; L:(:.?w~T.:":b'
~"JJ1~F~'
-.-~-.",

unosenje u racunar putem skenera. Primjer sasvim jednostavnog programa za ovu namjenu je Microsoft Photo Editor, koji dolazi u paketu programa zajedno sa Wordom 1 Excelom. Druga vrsta programa za rad sa rasterskom grafikom su vee pomenuti programi za s/ika'nje, koji omogucavaju i samostalno crtanje (bolje reG! slikanje) rasterskih slika pomocu raznih alatki za crtanje. Primjer sasvim jednostavnog programa za slikanje skromnih mogucnosti je Microsoft Paint, ko]! yam je sigurno dobra poznat. Njegove mogucnos1i manipuJiranja sa eJementima , slike svode S8 samo na transliranje, skaliranje i smicanje, dok je rotacija ogranicena iskljueivo na umnoske uglova od 90. Mnogo napredniji progra!J'li ;za slikanje su Adobe Photo$hop (prikazan na slici des no) i Corel PhotoPaint. ~ba pamenuta progra" rna, pored mogucnosti sllkanja, sadrze i vecinu mogucnostl koje posjeduju namjenskl programi za obradu rasterskih slika. Neki od specijalnih efekata ugradenih u ove programe (ko)i S0 mogu dobiti pomocu menija Filter odnosno Effects) mogu zaista biti impresivni. Potrebno je jos napomenuti da lako je Corel Draw program namijenjen prvenstveno za rad sa vektors/(im s/ikama, on takoder posjeduje i neke elementarne mogucnosti za rad sa rasterskim s/i/(ama, kao i za kombiniranje vektorskih i rasterskih slika u jednu cjelinu. Ne treba da zbunjuje cinjenica da programi za rad sa rasterskom grafikom takoder imaju alatke za crtanje linija, krugova i drugih objekata ko]i su svojstveni progl'8.mima za rad sa vektorskom graflkom. Medutim, neophodno je imati u vidu da svi programi za rad sa rasterskom grafikom linlje, krugove i slicne objekte uvijek posmatraju i pohranjuju iskljucivo kao skupinu pi/ese/a, a ne I<ao jedinstven objekat. Drugim rijecima. prava Ilnija (dut) se ne pamti kao par koordinata, vee kao skupina -piksela koji tvore Ilniju (i to sarno pribllzno). Stoga, bez obzira sto je pomoeu programa za slil<anje mogu6e nacrtati savrsenu geometrijsku sliku, nikakva lnformacija 0 geometrijskoj strukturi slil<e neoe biti pohranjena u slid, tako da naknadne manipulaciJe sa individualnim geometrijskim objektima koji tvore sliku nisu mogu6e niti u jednom programu za slikanje (nm, opcenito, u rasterskoj grafici). Programi za prikaz poslovne grafike, odnosno za grafiCku prezentaciju podataka, takoder spadaju u kategoriju grafickih paketa. Nekada su 50 programi za prikaz poslovne grafike iskljucivo pravili kao zasebni programi. Tako se, na primjer, za graficku prezentaciju podataka dobivenih pamocu programi3. VisiCalc koristio program Vis{Plot. Mada se jos uvijek mogu naci neovisni programi za poslpvnu grafiku kao sto je npr, Corel Chart, u danasnje vrijeme programi za poslovnu grafiku obicno su !ntE!grirani u programe za tabe!arne proracune, kao sto su Microsoft Excel i Lotus 1_~2-3,:U .progrl'ime za poslovnu grafiku mazemo svrstati i programe za I<reiranje raznih vrsta organizacjon!~Aija-gr~ma ili dijagr_ama toka, eiji je tipfcnf predslavnik Microsoft Organization Chart . _, 1?laga.nj!3" 0 gr~fickfm paketima zavrsi6emo prikazom jedne grupe programa kOj!, strogo uzevsi, nisu grafickiTf(ogrami, a11 su sa njima u bliskom srodstvu. To su programi za kreiranje prezentaci~ ja, -eijl je tipic)an predstavnjk Microsoft PowerPoint. Ovi programi omogueavaju korisniku da kreira prezentadJu u vict"u niza slajdova, Imj! ce biti prikazani na nekom od medija ko]i omogucavaju prikaz vidijiv: sirof publici. (najcesce na zidu iii p!atnu, uz pomoc muJtimedijskog projektora povezanog sa -racun;;:trpm). Svaki s!ajd moze sadrzavatl proizvoljne isjecke teksta, crteta i sJika koji'se mogu raz~ mjesta'ti i _organlzirati po telji korisnika. Slika sa desne strane prikazuje primjenu Powerpointa za
181

"y ~flfil?l~.JQr <iif;';)~"Ir;liIQif' ------

__.__- '-__

I
I
L_
_ ._ _ r

.,,~_._.

__

Program! za trodimenzionalno crtanje su, naravnb, mnogo slozenij! od programa za .~. ~~l' -"''".J dvodimenzionalno crtanje. Stoga cemo se sa njima upoznati sarno informativno. Jedan od jednostavnijih programa za trodimenzionalno crtanje je program Corel Dream 3d (primjer rada sa ovim programom prikazan je na slici lijevo). Ovaj program pogodan je za prostije crteze, j moze dobro posluz.iti korisnicima koji vet poznaju rad sa programam Corel Draw. Naime, primje1na je sli6nost u nacinu koristenja II ova dva programa, s obzirom da oba poti6u od ~,-:_~-:-,_.-J'" " " iste' firme (kao sto je primjetna s!i6nost u ~~ nacinu koristenja svih Microsoftovih progra-

.d:1~!

. . . . :'. I I

mal
Za profesionalne potrebe, Corel Dream 3d ne moze zadovoljiti, te se za tu svrhu koriste mocniji pro:;Jrami. Jedan od vjerovatno najboljih programa ove vrste je Discreet 3ds Max (primjer rada Sa ovim programom prlkazan je na slici desno). Mogucnosti ovog programa su zaista ogromne, ukljucujuci i mogucnost prikaza animiranih objekata u tri dimenzije. Kako se ovaj program mnago koristi i za profe~ slonalnl dizajn, mozemo ga takoder ubrajat! j u kategoriju programa za dizajnlranje uz pomoc racunara. Rad sa ovim programom nlje nimalo jednostavan, tako da bi za kvalitetan opis upotrebe ovog programa bila neophodna knjiga velika otprilike kollko i ovaj udtbenik. Ukol!ko nemate rriogucnostl da se upoznate nl sa kakvim specijaliziranim programima za trod!menzionalno crtanje, za sticanje elementarnog uvida u najosnovnije operacije u trodimenzionalnoj grafic! mozete se pos!uziti cak i Wordom iii Excelom. Nacrtajte u Wordu neki Ilk, i doda]te mu trecu dimenziju pomocu alatke 3-D na "Drawing" traci sa alaJima, a zatim pomoeu apcije 3-D Settings otvorite dodatnu traku sa alatima na kojoj cete dobiti nekoliko alatki za najelementarnije manipulacije sa trodimenzionalnim objektima. U Excefu je najbolje da nacrtate neki trodimenzionalni grafikon, ko)i u 'suStini takoder predstavlja pray! trodimenzionalni objekat-sa kojim sa moze manipulirati u prostoru, npr. rotirati ga u prostoru, posmatrati iz proizvoy'nog pravca, itd. Za rad sa rasterskom grafikom postoji zaista ograman bra) raz!icitih programa. Postoje izvjesni programi, nazvani program; za obradu rasterskih slika (a ponekad i programi za obradu iotograftJa, jer se uglavnom koriste za manipuliranje sa fotografijama) koji nisu namijenjeni za crtanje rasterskih sllka, nego sarno za manipuliranje sa gotovim slikama iii, eventualno, njihovo
180

organizaciju prezentacije koja se sastoji ad niza slajdova koj! prikazuju niz zanimljivih pejzaza i prirodnih fenomena. Kod programa za kreiranje prezentacija, korisnik maze aktivno upravljati nacinom i redoslijedom pojavljivanja svakog slajda, a takoder moze napraviti i automatiziranu prezentaciju u kojoj se slajdovi automatski smjenjuju u unaprijed odredenim vremenskim intervali rna. Ta:koder, za vrijeme dok je slajd prikazan na mediju, korisnik maze uz pomo6 virtualne olovke dopisivati nove detalje na slajd i taka ga dinamieki mijenjati u toku prezentacije. Preporueljivo bi bilo da se u toku nas- (J~~ii-'" ~"",,,,",-,~_~~~"""",,,,,,o~~_::_,_, _"_~: tave informatike upoznate sa programom Microsoft Powerpoinl i da samostalno kreirate jednu prezentaciju (npr. prezentaciju vase skole). To ne bi trebao da bude prevelik problem, jer se radi 0 programu koji je prilicno jednostavan za upotrebu. Rad sa ovim programom ima mnogo zajedniekih elemenata sa radom u programima Microsoft Word i Microsoft Excel, taka da ukoliko ste sav!adali rad sa ova dva programa, bez ikakvih problema cete veoma brzo sav!adati i rad sa PowerPointom, eak i bez ieije pomoci (pogotovo ukoliko soUdno vladate engleskim jezikom).

posebne slike neposredno ispred lijevog i desnog oka korisnika, koje se u mozgu stapaju u jednu trodimenzionalnl) sliku. Pored toga, savremene kacige su u stanju i da defektiraju pofotaj glave korisnika, tako da se slika koju korisnik vidi automatski mijenja kako korisnik pomjera i okre6e glavu, sto se desava i u stvarnosti. Savremeni sistemi za prividnu stvarnost posjeduju i uredaje za docara~ vanje cuJa mirisa, koji se zasnivaju na hemijskoj sintezi odgovarajucih mirisnih materija. Postoji nekoliko razloga za razvoj i primjenu sistema virtualne stvarnostL Na prvom mjestu, avakvi sistemi omogu6avaju otklanjanje opasnosti za Ijude i materijalna dobra. Tako, na primjer, pilofi se prije obu(;avanja uprav!janja pravim avionom prvo uce upravljati prividnim (simufiranim) avionom. Slican koncept mogao bi se primijenitl i na obuku vozaea automobila, prije nego sto se zaista ukljuee u stvarni sistem saobracaja. Drugo, sisteml virtualne stvarnosti omogucavaju smanjenje troskova projektiranja. Na primjer, znatna je jeftinije simulirati prividnu zgradu i pokazati je potencijalnom kupcu, ne90 izgraditi stvarnu gradevinu. Konacno, sistemi virtualne stvarnosti omogucavaju simulaciju nemoguceg okolisa, tj. stvaranje takvog okolisa koii nije mogu6 u stvarnom svijetu. Taka, primjenom sistema virtualne stvarnosti, covjek maze "boraviti" u svijetu maste, sto se obilato koristi kod razlicitih racunarskih igara, koje, u sustini, predstavljaju prlmitivne sisteme virtualne stvarnosH. Pojednos1avljeni sistemi vlrtualne stvarnosti najeeS6e se koriste u raznim uredajima za zabavu. Tako su u sirokoj upotrebi razni automati za zabavu koji oponasaju voznju avionom iii nekim drugim vozilom, borbu sa prividnlm protivnikom, oponasaju prizore bitke i pucnjave, itd. Za razliku od ozbiljnih prlmjena virtualne stvarnosti, u ovom slu6aju je cesto rijee 0 simulacijama necega sto je u stvarnom svijetu nemogu6e dozivjeti. Da bi se uvela jednoobraznost u modele virtualne stvarnosti i omoguCio njihov jednostavniji razvoj, i 994. godine je formiran specijalan programski jezik za opis ovakvih modela, nazvan VRML ('I{irtual Beality Modeling 1anguage). Virtualna stvarnost je jedna ad oblasti informatike i racunarstva kOja se posljednjih godina intenzivno razvija i tesko je nas!utiti sta ad ove oblasti mozemo otekivati u buducnosti. Mada cemo se, vjerovatno, prilieno nacekati dok se ne pojave sistemi virtualne stvarnosti kao sto je HoloDeck iz naucno-fantastiene sarije Zvjezdane staze, neki su skloni miSljenju da sistemi slicni ovame nisu ni toliko daleka buducnost koliko na prvi pogled moze da izgleda.

_'___ '

2.3.5 Virtualna stvarnosl


Virtualna (prividna) stvamost (engL virtual reality) predstavlja jedno od najnovijlh dostignuca na polju racunarske grafike i racunarstva uopce. Pod virtual nom stvarnoscu obienQ podrazumijevarna tehnologlju koja ukljucuje raeunare, programe I visoko sofisticirane ulazne i izlazne uredaje, i kOja ljudima amogucava vizuafizaciju, manipulaciju i interakciju sa raeunarom na naein koji treba da oponasa stvarnost, tj. stanoviti (;ovjekov okolis. To oponasanje treba da bude sto je god mogu6e vjernije, te stoga mora ukljueivati i culne doiivljaje (u pos!jednje vrijeme ne sarno vid i stuh, nego i njuh i opip). Pored toga, mora biti omogu6eno i djelovanje eovjeka na takav prividni okolis.

Objekti virtualne stvarnosti trebaju imati svojstva stD je god moguce slicnija svojstvima iz stvarnog svijeta (oblik, boju, dojam prostornosti, ltd.). Sistemi virtualne stvarnosti nuzno moraju biti interaktivni. Drugim rijeeima, ne samo da korisniku mora biti omoguceno da prima informacije iz virtualne stvarnosti, nego korisnik rnora [mat! utjecaj na simulirane dogadaje u okruzenju virtualne stvarnosti. To znaei da korisnik ne samo da moze da vidi npr. predmete u riekoj simuliranoj prostoriji, nego on mora da bude u mogu6nosti da te predmete j pomice. Sistem virtualne stvarnosti omogucava korisniku dozivljaje sHene anima ko]e bi imao da se npr. nalazi unutar .neke gradevine, na b;odu, u automobilu, avianu, ltd. " Da bi sistemi virtualne stvarnosti bili sto js god mogu6e realni]i, razvijaju se,! posebnf 'utaznt ',' .' odnosno izlazni uredaji kaji omogucavaju bolje eulne dozivljaje. Taka se kaa ulazfli-1.Jredaji' korlste' specijalne rukavice koje su u stanju da detektiraju pokrete prstiju korisnika i da informa~dJe (jR:ok-te~' tima prenesu u raeuriar, pa cak i kompletna odijeJa za virlualnu stvarnost koja su.opr~na: . gomilom senzors koji detektiraju pokrete gotovo svih dijelova ljudskog tijela,.a mogll .da do.Qaraju i izvjesne efekte vezane za dazivljaj 6ula apipa. Kao izlazni uredaji najcesce se koris.te uredaji kOji.na neki naCin uspijevaju docarati punu prostomost, tj. stvarnu prostornu (trodim~nziO!lainu).slfktT. Jedarf od takvih uredaja je specijaJizirana kaciga,_.koja se stavlja na glavu korisnik~. Kacige prikazuju
182 183

Pilanja i zadaci
1, Sta je racunarska grafika? 2, Na koji nacin mazema podijeliti ratunarsku grafiku?
3. Koje su osnovne karakteristike trodimenziona!ne grafike?

2.4 MODEll I BA;i:E PODATAKA I SISTEMI ZA UPRAVLJANJE SAZAMA PODATAKA


2.4.1 Osnovn; pojmovi 0 bazama podala"a
U prvom dijelu udzbenika upozna!i smo se sa najosnovnijim definicijama vezanim za pojam baze podataka. Vidjeli sma da pod bazom podataka podrazumijevamo skupinu datoteka u nekom racunarskom sistemu koje su medusobno povezane na osnovu njihovih zajednickih elemenata. Manje baze podataka mogu se nalaziti na sarno jednom racunaru i biti dostupne iskljuCivo na samo jednom racunaru. U tom slucaju govorimo 0 lokafnim bazama podataka. Oval<ve baze podataka korisnici mogu kreirati i upravljati njihovim sadrzajem pomoc:u relativno jednostavnih programa kao 5to su Microsoft Access, Borland Paradox i FoxPro. S druge strane, baze podataka mogu bit! dos" tupne velikom broju korisnika povezanih u racunarsku mrezu. U tom slutaju govorimo 0 umreienim bazama podataka, koje mogu obuhvatati podatke razbacane na vise stotil1a, pa tak i hiljada racunara, Umrezene baze podataka mogu biti dostupne sirokom krugu korisnika preko nekog od mreznih servisa na koje se korisnik prikljucuje putem li6nog racunara i modema, a mogu biti kreirane ! za internu upotrebu, npr. u nekoj velik:oj radnoj organizaciji. Za kreiranje i odrzavanje ovakvih baza podataka potreban je znatno moeni)i softver, kao sto je Oracle DBMS, Microsoft SOL Server, itd. Sistemima za upravljanje bazama podataka prethodill su sistemi za upravljanje datotekama, tija je osnovna karakteristika mogucnost upravljanja samo jednom datotekom u jednom trenutku, sto ih bitno razlikuje ad sistema za uprav!janje bazama podataka, iako su im funkcije koje se obavljaju nad pohranjenim podacima sHene (kreiranje, brisanje, dodavanje, kopiranje, pretraga, azuriranje, stampanje, itd.). Na primjer, sistem za upravljanje datotekama maze odrzavati datoteku ucenika u nekom razredu, datoteku Clanova dramsi<e sekcije i datoteku Clanova skolske biblioteke, medutim izmedu ovih datoteka ne postoje nikakve veze. Ukoliko ucenlk promijeni adresu stanovanja, taj podatak se mora posebno izmijeniti u sve trt datoteke. Ova je oClg!edno velika mana sistema za upravljanje datotekama. Pored toga, prisutni su i drugi nedostaci. Na prvom mjestu, u sistemima za upravljanje datotekama javlja se problem umnotavanja suviSnih podat'8ka (engL data redudancy), ko]1 se odrazava u Ginje-nlei da se veoma cesto Isti podaci (npr. podaei 0 u6en,iku koji je istovremeno clan jednog razreda, dramske sekcije j skolske biblioteke) cuvaju u vise razliCitih datoteka, sto je oCigledno rasipanje ~memorije. Pored toga,. sistemi za upravljanje datotekama ne obezbjeduju fntegrifet podataka, 8tO znaCi da podaci u razlicitim datotekama mogu da budu medusobno nesaglasnL Na primjer, ukoliko ucenik promijeni adresu stanavanja, a osaba koja adrtava bazu podataka zaboravi da promijeni tal podatak u sve tri datoteke, imacemo nesaglasnost informacija u bazi podataka. Sve dok su domlnantni mediji za pohranu velikih k:oliCina podataka bile magnetne trake, koje su omogu6avale pristup podacima samo po redu (sekvencijalno), sistemi za upravljanje datotekama bill su jedinL moguCi sisterni za manipulaciju sa velikim koliCinama podataka, Medutim, pojavom prvih magrrell1(h -di$kova; koj! su omogucavali neposredan pristup podacima u profzvoljnom redoslijedu, -pocell s0 se lntenzivno razvijati i sistemi za upravljanje bazama podataka, jer je postalo oCig\ed-no da slstemi z.a tmi-ayljanje datotekama ne mogu da zadovolje potrebe slozenije abrade podataka. jJ ovim-:sfstemima, slogo\ll u pojedinim datotekama su medusobno !ogi6ki povezani, taka da se -- pOQa'Cirria' moze .prjstupati -na jednostavan i jedinstven nacin, bez obzira sto ani mogu bit! fizicki razbacanfu'raznim datotekama. Taka, na primjer, ukollko posmatramo situaciju iz prethodnog prim.- Jera-;,infOJmacija 0 jectnom uteniku (:uva se na jednom mjestu, bez obzira da Ii se taj ucenik posma.:_tra kao~ clan fazreda, clan dramske sekcije iii clan sko/ske bibl1oteke. Na ovaj nacin je oeito izbJegnu10 umnozavallje-suvisnih podataka i ostvaren njihov integritet.

4. Kada se koristi vektorska a kada rasterska grafika? 5. Ko)! je hardver neophodan za upotrebu racunarske grafike? 6. Kako su organizirane vektorske a kako rasterske slike u racunarskoJ memoriji?
7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Koje graficke formate poznajete i koja su im osnovna svojstva? Sta mozete reci 0 raziicitim modelima opisivanja boja? Sita su polutonske aproksimacije? Koje su osnovne manipulacije sa elementima slike? Zasto je tesko skalirati rasterske slike? Koje S8 vrste transformacija slike primjenjuju na rasterske slike? Koje programe za rad sa vektorskim i rasterskim slikama poznajete i koje su im osnovne karakteristike? Upoznajte se sa nekim od programa za rad sa vektorskom i rasterskom-grafikom i kreirajte samostalno nekoliko slika. Sta su programi za-kreiranje prezentacija? Kreirajte samostalno nekoliko prezentacija pomoeu programa Microsoft PowerPoint. 8ta je virtualna stvarnost i koja se specijalna oprema koristi u sistemima virtualne stvarnost!?

184

185

Bez obzira na ocigledne prednosti sistema za upravljanje bazama podataka nad sistemima za upravljanje datotekama, postoje i neki problemi. Na prvom mjestu, kreiranje, inslaliranje i odrzavanje vellkih baza podataka moze biti jako skupo, narocito u velikim organizacijama (u cijenu treba ukljuciti i troskove obuke personala za ispravno koristenje baze podataka). Dalje, mada se baze podataka magu organizirati taka da znatno otezaju prislup neautoriziranih korisnika osjetljivim podacima, uvijek je mogu'ce da ipak dode do provale u sistem. Ook je u slucaju provale u sistem za upravljanje datotekama napadac bio u mogucnosti da promijeni podatke samo u napadnutoj datoteci, on sada ima mogucnost napada na cjelokupan sistem podataka. Na kraju, treba spomenuti i moguce zloupotrebe baza podataka po pltanju povrede prava na privatnost, jer baze podataka nerijetko sadrze i podatke ko]i ne bi smjeli cia se upotrijebe za druge svrhe osim one la kOje su namijenjent, sto je dosta tesko kontrolirati. Baze podataka cesto sadrze dvije vrste datoteka: glavne (mastef) datoteke, i transakcione datoteke. Gfavne datoteke sadrze skupinu slogova ko]! su manje iii vise trajnog sadrzaja, i koji se azuriraju samo povremeno. S druge strane, transakcione datoteke su datoteke privremenog sadrza~ ja koje opisuju sve izmjene kOje su vrsene nad glavnom datotekom, poput dodavanja j brisanja slogova, iii izmjene njihovog sadrtaja. S vremena na vrijeme (npr. jedanput mjesecno), sistem za, upravljanje bazam podataka analizira sadrtaj transakcianih datoteka, i na osnovu njihovog sadrzaja azurira sadrzaj glavnih datoteka. Na ovaj nacin se postize veea sigurnost, jer se smanjuje braj intervencija u datotekama kaje zaista sadrze karisne podatke. lnformacije u velikim bazama podataka SU, veoma cesto, zila kucavica i najranjivlja tacka svih vellkih radnih organizacija. 8toga je jasno da mora postojati neka osoba koja je zaduzena da uprav Ija svim aktivnostima vezanim za bazu podataka. Ta osoba naziva se administrator baze podatB kll. Zadaci administratora baze podataka su visestruki. Na samom poceti<u, administrator pomaze u specifikaciji organlzac1je baze podataka, a nakon toga, odreduje koliko ce prosl0ra na eksternoj memoriji biti rezervlrano za potrebe baze podataka, kako ce se podaci dodavati odnosno brisati, i na ko]i nacin ce se evidentirati uCinjene izmjene. Dalje, administrator baze podataka mora odreditl prava pris" lupa odrecienim podac1ma za svakog korisnika pojedinacno, uspostaviti sisteme zastite od neautoriziranog pristupa podac1ma, i uspostaviti pravila za upotrebu baze podataka. Prilikoin koristenja baze podataka, administrator treba da nadgleda sistem u cilju provjere da Ii sve funkcionira kako treba i sprecavanja pokusaja neautoriziranog pristupa podacima, kao i da intervenira u slueaju bilo kakvih problema. Konacno, kako gubitak podataka ill krah sistema za upravljanje bazom podataka moze da ima kobne posljedice po radnu organizaciju, administrator baze podataka mora brinuti 0 strategiji pravljenja rezervnih kopija (eng1. backup)' vaznih podataka, kao i 0 strategiji obnavljanja podataka (engl. data recovery) iz rezervnih kopija u slucaju da dode do gubitka podataka u bazi podataka.

tribuirane baze podataka. Bitna prednost distribuiranih baza podataka je u znatno smanjenom protoku informacija kroz komunikacione kanale racunarske mreze, cime se smanjuje mogucnost zagusenja u mreti. Umrezene baze podataka obicno ,se realiziraju pomocu tehnologije nazvane klijentlserver (odnosno korisnikiposluiiteIJ). Sustinu ove tehnologije demonstriracemo na jednom primjeru. Zamislimo da koristimo centraliziranu umrezenu bazu podataka, koja nije realizirana pomocu klijentlserver tehnologije. U tom slucaju, kada neki lokalni racunar zeli pristupiti podacima 1z baze podataka, on prvo mora putem mreze pokrenuti program za obradu baze podataka koji se nalazi na centralnom racunaru. Taj program se putem mreze prenosi u radnu memoriju lokalnog racunara, nakon Gega zapocinje njegovo izvrsavanje. Program tada pristupapodacirna na centralnom racunaru, a zatim ih dotiavlja i obraciuje na lokalnom racunaru, gdje se i vrsi prezentacija obradenih podataka korisniku. Bitno je uociti da se na centrainom racunaru nalazi kako baza podataka, tako i cjelokupan program za obradu, tako da ]e potreban opsezan prenos kroz komunii<acioni kanal pri bilo kakvoj upotrebi programa, S druge strane, tehnologija klijenVserver dijeli obradu podataka izmedu racunara klijenta, odnosno racunara koji zahtijeva uslugu, i racunara servera, odnosno racunara koji pruta uslugu. U navedenom primjeru, to znaei da se npr. dio programa sa korisnickim interfejsom nalazi na korisni6kom racunaru, dok se dio programa za obradu baze podataka (npr. za pretrazivanje i sortiranje baze podataka) natazi na central nom racunaru. Za razliku od prvog slucaja, ovdje mrezom ne putuje cjetokupan program, nego s,amo zahtjev za podacima i rezultat obrade podataka. Bitno svojstvo tehnologije klijentlserver je podjela i specijalizadja programa izmetiu dvije strane. Program na racunaru klijentu obl6no je zaduten za komunikaclj"u sa korisnikom (korisnicki intetiejs), slanje zahljeva za podacima, kao i za prijem obradenih podataka. Program na racunaru serveru ima zadatak da prima zahljeve od klijenata, da obraduje podatke iz baze u skladu sa zahtjevima, i da salje obradene podatke klijentima. Na taj natin je bitno smanjena kolicina podataka koji putuju kanalima veze u ra6unarskoj mrezi, tako da se bitno smanjuje opasnosi od zagusenja, Program na racunaru klijentu (klijentski program) tipjcno je znatno manj!, jednostavniji i zahtijeva manje memorije od programa na racunaru serveru (serve,'Ski program). Opisanom podjelom moguce je pri~ lagoditi racunare u mrezi zadacima koji im najbo!je odgovaraju.

2.4.3 Organizacija baza podataka


U prvom dijelu ovog udzbenika, naveli smo nekoliko elementarnih informacija 0 strukturnoj organizadji baza podataka. Rekli smo da se najmanji element svake baze podataka naziva polje. Skupina meciusobno povezanih polja naziva se slog, skupina medusobno povezanih slogova naziva se datoteka, dok se bazom podataka naziva skupina medusobno povezanih datoteka, Ovdje se prvenstveno misli na logi6ku organizaciju podataka, jer postoje programi za upravljanje bazama podataka, poput Microsoft Accessa, koji titavu bazu podataka fizi6ki cuvaju u jednoj jedinoj datoteci (sa nastavkom .MDB), mada, log\cki gledano, ona.predstaVlja 6ita,,:u ~kupinu datoteka "nalijepljenih" jedna na drugu. Danas je uobicajena -podjela: baza podataka po organizaciji na hijerarhijske, mreine, rela~ j objektnoworijentirane baze podataka {napomenimo da pojam' mreznih baza podataka nema nikakve veze sa mretama raGunara):.-Hijeiar~ijske i mrezn~ baze podataka su historijski najstarife i danas su u veliko] m]eri:prevazid~ne f,.zamijenjene [elacionim i objektno"orijentiranim bazama podataka u svim moderriijim sistemil1l{l.."::fpak, baze podataka koncipirane na ~ijerarhijskom iii mreznorn principu i danas su fTI.nogo'J,.I.iJpotrebi-(radi se-uglavnom 0 davno dizajniranim bazama podataka koje dobro ob8vfjaju" Syoj.P9sao, tako ,da l1ema potrebe za promjenom dizajna).
eione

2.4.2 Ceniralizirane ; disl,;buirane baze podalaka


. U01reie,ne 'baze podataka mazemo podijeliti na centralizirane i distribuirane bazt: podataka. Ked centraJizln3.ni,h baza podalaka, sVi podaci se nalaze na jednom (centralnom) racunmu, mada im svi-korlSillC[mogupristupati sa bilo kojeg od uvezanih racunara. S druge strane, kod distribuiranih -Q~a Rod~aka," podac! su razbacani na vise racunara, koji mogu biti geografski prllicno udaljeni 'jedan. bd,drugo.g: Na primjer, posmatrajmo neku bazu podataka namijenjenu vodenju evidencije 0 artiklima lLnekom tanc.u prodavnlca. Ukoliko se evidencija 0 svim artiklima u svim prodavnicama _.cuv'a, na feonorn racunaru, radl se 0 centraliziranoj bazi podataka. S druge strane, znatno je prlrod- -nije da 'Sl;J-podacLo'artiklima u jednoj prodavnici cuvaju na raGunaru ko]i se fizicki nalazi u toj pro- davnicC~,U aha slucaj03:, trgovci iz ma koje od prodavnica trebaju imati mogucnost prisiupa podacima o artiklJma~u ma kojo] prodavnici. Krajnji korisnik ne zna (niti treba da zna) sa kojeg racunara mu stizu Rodaci! t<:iko da se sa aspekta korisnika uopee ne vidi razlika izmeciu centralizirane i dis186

U hijerarhijskim tJazama podataka.;,poljaj slogovi brganizirani su kao povezana skupina koja po strukturi podsjeea na porodi6no stablo:_Na sljedeeoj slici predstavljena je moguca struktura jednog 187

isjecka iz hijerarhijske baze podataka koja se koristi u sistemima za rezetvaciju karata u aviosaobracaJu:

2.4.4 Relacione baze podataka


Relacione baze podataka najlakse je objasniti ukoliko datoteke posmatramo kao tabe'e u Kojima svak! red odgovara jednom slogu, dok celije tabe!e odgovaraju poljima baze podataka. Dok se kod hijerarhijskih i mretnih baza podataka unaprijed moralo znati koja su polja odnosno slogovi povezani, kod relacionih baza podataka se smatra da su povezani oni slogovi u dvije iii vise tabe!a kod kojih polja u izvjesnim unaprijed odredenim kolonama imaju jednake vrijednostr. Kako su svi podacl unutar neke kOlone u tabeli obicno podaci istog znacenja koji opisuju odredena svojstva pripadnih slogova u tabeli (npr. jedna kolona tabele moze sadriavati imena i prezimena neke skupine osoba, druga kolona njihove adrese, itd.), u relaclonim modelima kolone tabela obicno nazivamo atributima (a ponekad i poljima, sto moze stvorlti zabunu s obzirom na Cinjenicu da se elementi u presjeku redova i kolona takoder nazivaju polja). Redovi tabela, koji predstavljaju slogove, u relacionim modelima ob!cno Se nazlvaju entiteti, dok same tabele u relacionim modeJima nazivamo relacije. Potrebu za relacionim bazarna podataka i nacin njihovog funkcioniranja objasnicemo na jednom jednostavnom primjeru. Zamislimo da]e potrebno voditi evidenciju 0 korisnicima neke biblioteke, knjlgama koje biblioteka posjeduje i zaduienjima (t]. intormacijama 0 tome keji korisnici su zadUiili koju knjigu), Pretpostavimo da svaki korisnik moze zaduziti u jednorn trenutku ko!ika god hace knjiga, U slucaju hijerarhijske baze podataka, sve veze izmedu slogova morale bi biti unaprijed definirane, taka da bi se moralo predvidjeU koliko tacno knjiga svaki ad korisnika moze zaduziti (8to je, U mnogim primjenama, neprihvatljivo ogranicenje), U slucaju relacione baze podataka, dovoljno je voditi dvije odvojene tabele, tabelu korlsnika biblioteke i tabelu knjiga, koje su medusobno povezane preko zajednickog atributa koji cemo nazvati "Sifra korisnika". Nacin na koji se ostvaruje ovo povezivanie, najbolje ilustrira sljede6a sllka:

PodaCl 0
'Jlcdr f IIll1(J

8vako polje (iii slog) koje se nalazi na visem nivou hijerarhije (nazovimo ga roditelj) moze biti povezano Sa vise polja 111 slogova na nizem nivou hijerarhije (nazovimo ih djeca), ali svako polje iii slog na nftem nivou hijerarhije moze biti povezano samo sa jednim poljem iii slogom na visem nivou Ilijerarhije. Na primjer, u strukturi sa gornje slike, zna se da letove za ZiJrich pokrivaju aviokompanije Swiss Air, Air Bosna i Lufthansa. Dalie se zna da Air Bosna ima letove za ZOrich 15, aprila, 30. maja i 15. jula, a da su u letu kompanije Air Bosna za ZOrich dana 15. jula slobodna sjedista A-1, 8-1, C-1, itd, Ocigledno je kod hijerarhijskih baza podataka pozicija svakog sloga u datoteci, odnosno svakog polja u datoteci, od presudnog znacaja. Hijerarhijske baze podataka imaju iZlfjesne prednosti nad modernlm bazama podataka. Na primjer, pristup i azuriranje podacima u ovakvim bazama obavljaju se jako brzo, zbog toga SIO su sve veze izmedu polja i slogova unaprijed gefinirane. Medutim, upravo cinjenica da struktura veza izmedu pojedinih elernenata baze podataka mora biti unaprijed poznata, cini ovakve baze podataka izuzetno krutim i nefleksibilnim Takoder, og~anlcenje da svako dijete mora imati tacno jednog roditelja, kao i cinjenica da izmedu elemenata na istam hijerarhijskom nivou nisu uspostavljeni nikakvi odnosi, znatno ogranicava mogucnosti ovih baza podataka. Konacno, dodavanje novih palja unutar slogova hijerarhijske baze podataka zahtijeva potpunu reorganizaciju cjelokupne baze podataka. Mretne baze podataka (engl. network-databases) su slicne hijerarhijskim bazama podataka, ali u njima svako dijete moze imati viSe roditelja. 8toga se svakom elementu djetetu, koje se u terminologiji mreznih baza podataka naziva c!an (~ngL l}1~mbel), moze pristupiti preko vise elemenata roditelja na visem hijerarhijskom nivou" koji se 118zivaju, niegovi vlasn;ci (eng!. ownet). Mada su mretne baze podataka znatno flel<sibilnije od hijerarhijsklh ~aza podataka (s obzirom da se mogu uspostavljati visestruke veze izmedu razlicitlh skupiri;t ,podMaka), Qve baze Rodataka i dalje zahtijevaju da struktura veza izmedu 'pojedinih.'elem'ena1a.6aze' p6dataka bwde definirana unaprijed. Pored toga, postoji i ogranicenje na broj veta koje'se ,mo;g"~cuspostaviti izmedu pojedinih elemenaia, Moderne baze podataka orgartiiirane su'ao.refacione baze podataka, iii keo njihova nadgradnja u vidu objektno-orljentiranih baza poitataka. Zbog vellkog znacaja relacionih modela u danasnjim sistemima za upravljanje bazama podataka, nJilf'6emo razmotriti u posebnom odjeljku.
188

TABELA KORISNlKA BIBLIOTEKE:


,_.,-

Sifra Korisnika
1-" 2 3

prezime
Moho Mehle Pero'Perie

Ime i

TelefrJn8
311-123 666-211 512-115

Broj

boravka Zenica

Mjesto

Knjige

Sifra

TABELA KNJlGA: --Sifra Pisac Naslov Korisnika


Mesa Selimovic i-7 ..!4eScrSe !movit... 5 a . IvrfAnaric '" 1
DeNis Susie Branko .Gmlit-

Sa'r'aJevo . I

-1 2

Tvrdava Qerv[s i smrt

Iva Ivie Mostar 4 Suljo Suljic 999999 5 ..... --V(:l~O vasic 136-1DJ_ 4l1liiJa Luka 6 PetaLfutmvt --:131-231 Tuz@ 444-000 Mostar 7~ f+JttSoiiusiG Ibra Ibric 8 156-356 Ballja Luka

--

3 4 5

Tr

Uhode
Orlovi ranD lete

,~

Mak Dizdar

U tabeli korisnika biblioteke, svaki korisnik ima jedinstvenu Sifru. S druge strane, u tabeH knjiga, sifra korisnika identificira 'korlsnika kojl je zaduzio odredenu knjigu. Tako,. na,primjer, vidimo dE! je "Tvrdavu" zaduzio korisnik sa sifrom 7, odnosno korisnik "Huso Husic",(sto vidimoJz'tqbele korlsnika). Istl korlsnik zaduzio je i knjigu "Orlovi ranG lete", Polja u koloni ':Sifra korisnika:~za knjige "Uhode" i "Kameni spavat" su prazna, 8tO oznacava da te knjlge nisu zaduzene,. Tr!?nufno, post?ie,6.e v.eze izmedu slogova u ove dvije tabele prikazane su na slici strelicama u boji:,'~ Vazno je uoCiti da su kod hijerarhijskih i mreznih baza podataka uspostavljen~ fiksne veze izmedu elemenata u vise datoteka koji se nalaze na fiksnim pozicijama.:8:: drug~e sfcane; u relac10nirn bazama podataka, veze se uspostavljaju na osnovu sadrtaja odgovarajl!Cih 'polja, pri'(:emll se pozicije tih veza mogu dinamicki mijenjati u toku rada. Na primjer" ncr prikaza'nol sHci; p,efi slog po redu u tabeli korisnika povezan je sa drugim slogom p~ redu u tabell knEga (plava"_strelica na slici), S
189

druge strane, ukoliko korisnik ,"Vasa Vasi6" razduzi knjigu "Dervis i smrt" i zaduzi knjigu "Kameni spavac", tada 6e pet! po redu slog u tabeli korisnika bit! povezan sa sestim po redu slogom u tabeli knjiga: Upravo zbog ovakvog dinamickog naCina povezivanja, stvarni redoslijed slogova u relacionim bazama podataka ne igra apsa/utna nikakvu ulogu (za razliku od hijerarhijskih i mretnih baza podataka, kod kojih je poredak slogova od kljucne vaznosti). Tip povezivanja koji je demonstriran u gornjem primjeru izmedu tabele korisnika biblioteke i tabele knjiga nazivamo povezivanje tipa "jedan prema vise" (engl. one to many), zbog toga sto jedan slog IZ prve tabele (nazovimo -je primarna tabela) u jed nom trenutku moze biti povezan sa vise slogova iz druge tabela_ (nazovimo je sekundarna tabela), ali jedan slog iz druge tabele moze biti povezan sa najvise jednim slogom IZ prve tabele. Zaista, jedan korisnik mote zaduziti vise knjiga, ali jedna knjiga moze (u jednom trenutku) biti zaduzena od strane najvise jednog korisnika. Da bismo uspostavili povezivanje tipa "jedan prema vise", neophodno je da primarna tabela posjeduje barem jedan atribut (kolonu) takav da ne postoje dva sloga u tabeli koji imaju isti sadrzaj polja unutar odgovarajuce kolone. Kada takav atribut ne bi postojao, ne bi postojao nikakav nacin da jednoznacno identificiramo slog u primarnoj tabeli koji je povezan sa nekim slogom u sekundarnoj tabeli. Atribut sa ovakvim svojstvima naziva se primarni kljuc (engl. primary key), dok odgovaraju6a polja koja pripadaju tom atributu nazivamo kljucna polja. Dakle, kljucno polje je polje eiji je sadrzaj izabran tako da na jedinstven naCin odreduje slog kojem pripada. Povezivanje tipa jedan prema vise ostvaruje se na taj naCin sto se proglasl veza izmedu primarnog kljuea primarne tabele i nekog od atributa sekundarne tabele. Taj atribut u sekundarnoj tabeli naziva se strani kljuc (engl. foreign key). 8trani kljuc moze, ali ne mora da ima isto ime kao primarni vkljuc primarne tabele. Tako smo, na primjer, strani kljue "Sifra korisnika" u tabeli knjiga mogli nazvati "Sifra ylasnika". Bltno je samo da se zna da je tal atribut strani kljuc koji je povezan sa primarnim kljucem "Sifra korisnika" u tabeli korisnika biblioteke. Pored povezivanja tlpa "jedan prema vise", u relacionirn bazama podataka cesto Se susre6e potreba i za povezivanjima tipa "vise prema vise' (eng!. many to manji) u kojima oeki slog u jedno] tabeli u nekom trenutku moze biti povezan sa vise slogova u drugoj tabeli, dok u istom trenutku !leki slog u drugoj tabell moze biti povezan sa vise slog ova u prvaj tabeli. Na primjer, pretpostavimo da imamo tabelu kupaca i tabelu artikala (poput brasna, secera, itd.). Jasno je da jedan kupac moze kupiti vise artikala, ali isto taka jedan artikl (npr, secer) maze biti kupljen od strane vise kupaca. Ovakvo povezivanje nijs posve jednostavno izvesti. Ukoliko u tabelu kupaca uvedemo kao sekundarni kljue afribut koji predstav!ja primarni k!jut u tabeli artikala, tada cemo oeigledno dod u situaciju da jedan kupac maze kupiti sarno jedan artikl. Ukoliko izvrsimo obrnuto povezivanje, doci cemo u situaciju da jedan artikl moze biti kupljen ad strane samo jednog kupca. Izlaz lz ove situacije nalazi se u uvodenju trece tabeJe, tzv. posrednicke tabele, u kojaj se javljaju dva strana kljuGa, od kojih je prvi povszan sa primarnlm kljucem pNe tabele, a drugi saprimarnim kljucem druge tabele. Posrednicka tabela u navedenom primjeru zapravo sadrzi popis svih obavljenih kupovlna, tj. spisak koji je kupac kupio koji proizvod. Drugim rijecima, povezivanje tipa "vise prema vise" izmedu dvije tabele ostvaruje se indirektno, uvodenjem . posrednicke tabele, sa kojom su prve dvije tabele povezane vezom tipa "jedan prema vise".

Obicno se kao kljucno polje uzima polje kaje sadrz! neki jedinstveni identifikacioni broj, poput broja uc-enika u dnevniku, jedinstvenog maticnog broja gradanina (JMBG), itd. Nije pogodno kao kljueno polje uzimati polje koje sadrzi ime i prezime neke osobe, jer se cesto desava da dvije razlieite osobe posjeduju isto ime i prezime. Moderne relacione baze podataka dopustaju da se kao prlrnarni kljuc definira i skupina atributa, Na primjer, ukoilko imamo atribute "I me i prezime" i "Broj telefol1a" j ukoliko smo sigurni da ne postoje dvije osobe istog imena i prezimena, koje pored toga imaju i isti broj telefona, tada je par ova dva atrlbuta mogu6e proglasiti primarnim kljucem. U svakom slueaju, radi potrebe za postojanjem primarnog kljuca, mozemo tvrditi da u reJacionim bazama podataka unutar jedne tabele nikada ne mogu postojati dva identicna sloga (ani ce se razlikovati barem po sadrzaju kl]uenih polja), sto u hijerarhijskim i mreznim bazama podataka ne mora biti sluca]. Relacione baze podataka moraju voditi racuna 0 referencijalnom integritetu podataka izmectu tabela. 'Referencijalni integritet predstavlja skup pravila koja garantiraju da se u sekundarnoj tabeli kao vrijednost stranog kljuca nikada neee pojaviti vrijednost koja ne postoji medu kljucnim poJjima u primarnoj tabeli. U nasem primjeru vodenja evidencije 0 korisnicima biblioteke i knjigama, to zapravo znad da se ne smije deslti da tabela knjiga ukazu]e da je neka od knjiga zaduzena od strane nepostojeceg korisnika. 8toga, slstem za upravljanje bazama podataka ne smije cia dozvoff unos sloga u sekundarnu tabelu eiia vdjednost stranog_ kljuca ne posto]i kao kljucno polje u prlmarnoj tabe!!. Referencijalni integriiet maze se narusiti u slucaju da se mijenja sadrtaj klju6nog polja u pri~ marnoj tabelL Na primjer, Likoliko u tabe!i korisnika promijenimo sifru korisnika "Meho Mehie" sa 1 na recimo 9, gubimo referencijalni integritet, jer 6e u bazi podataka pisati da je knjiga "Travnicka hronika" zaduzena kod korisnika sa sifrom 1, koji vise ne postojL Opisani problem rjesava se na dva nacina. Prvi nacin je zabrana izmjene kljucnog polja u slogu koji je u tom trenutku vezan sa nekim slogom u sekundarnoj tabelL Drugi nacin je automatsko aturiranje odgovarajucih polja u svim slo~ govima sekundarne tabeJe, koji su vezani za posmatrani slog primarne tabele, svaki put kada se promijeni sadrzaj kljucnog polja u prlmarnoj tabelL Ova] nacin naziv8: se i l<askadno aiuriranje (eng!. cascade updating). Jos jedna operacija koja moze narusitl referencijalni integritet ]e brisanje sloga iz primarne tabe\e sa kojim]e vezano neko polje u sekundarnoj tabeli (npr. brisanje korisnika "Meho Mehic" iz primarne labele dovesce do istog problema kao i u prethodnom slucaju). I ova] problem takoder se rjesava zabranom brisanja slogova primarne tabsle koji su vezani sa nekim slogom u sekundarnoj tabeli, iii automatskim brisanjem svih slogova sekundarne tabele vezanih za slog pri~ marne tabele ko]i zelimo da izbrisemo, sto nazivamo kaskadno brisanje (eng I, cascade deleting). U relacionim bazama podataka, trebali bisrno po svaku cijenu izb]egavati postojanje medusobno zavisnih atributa. Pretpostavlmo, na primjer, da u tabeli korisnika biblioteke treba da vodimo evidenciju 0 kantonu iz kojeg dolazi korisnik, kao i postanskom broju grada. Na prvi pogled, dovoljna bi bilo dodati dva nova atributa, "Kanton" I "Postan3ki broi" u tabelu korisnika biblioteke. Medutim, ovakvo rjesenje Ima niz nedostataka. Uocimo da ime grada jednoznaeno odreduje kako kanton, tako i postanski broj. Na primjer, Mostar pripada Hercegovaeko~neretvanskom kantonu i ima postanski broj 88000. Stoga, u slucaju da se zaista adlucimo da vodimo "Kanton" i "Postanski bro]" kao nove atribute u tabeli korisnika, tada bismo i.a -svakog korisnika iz istog grada morali prepisivati iste podatke 0 kantonu i postanskom, brojl). To ne sam9 da trosi memoriju, nego i omogucava nesaglasnost podatakal. jer se lako:rnoze d~siti -da pogrijesimo, pa da za dva Ista grada u razliCitim slogovima upisemo razHcite pO,datke o_kahtOnu :ilili postanskom broju. Mnogo bolje rjesenje ie da formiramo posebnu tabelu Q(adova u kojo(cemo ~uv:a:tl p.odatke 0 kantonlma i postanskirn brojevima za svakj od gradova, a koju cemO vezom'_ ttpa "jedan. prema vise" povezati sa tabelom korisnika koristeci, recimo, lme grada kao prima'rnl- kljuC' u' t!3be!i gradova (prirnarni kljuc moze biti i postanski broj, ali nazlv kantona ne moze, jer.visEf:gradova moze-priPadati istom kanlonu), koj! je povezan sa atributom "Mjesto boravka".u:tabel! kojfsnika, koF:lgra ul09U stranog kljuca. OVakav nacin povezi~ vanja lIustriran je na sljede~Qj.sliCi:

.:.

..l.J .slucajLi da se ia strani kljuc u sekundarnoj tabeli izabere atrlbut koji je u toj tabel} ujedno i prirnarni,f<!juc.,)a<;la jedan -slog primarne tabele moze bit! povezan samo sa jednim slogom u sekundarnoHabeli' {j~r !ada ne mogu postojati dva polja u sekundarnoj tabeli sa istom vrijednoseu stranog .~. kij!Jt~) .. Kf1ko :'jetlan slog sekundarne tabele ionako ne moze blti povezan sa vise od jednog sloga u primarnon(ill?Ii,-~ tom slucaju imamo povezivanje tipa "jedan premajedan'-' (eng!. one to one). Ovaj t!Ppov~~vanja~se'u pra~si~eoma rijetko susrece, jer za njim nema velike praktiene polrebe (um}esto . _~a: pO\1ezujemo dya sloga iz dvije tabele vezom tipa "jedan prema ledan", mnago je prirodnlje napravltl jedan slog koji objedinjuje polja iz ta dva 310ga). "it: lzrotenih koncepata, vidljivo ]e da je za uspostavljanje veza Izmedu tabela u relacionim bazama 'podataka?d presudne vaznosti postojanje primarnog kljuca, odnosno postojanje kljucnih polja.
190

191

TABELA KORISNIKA BIBLIOTEKE:

Korisnika

Silra

Ime i prezims
Meho Mehie

Telefona
321-123 666-212 512-125 999-999 136-631 131-131 444-000 156-356

Broj

Mjesto
boravka Zenica Sarajevo ----~

TABELA GRADOVA: Kanton iii Grad , entitet

Pos.
brDj

baze podataka i krajnjeg korisnika uvijek nalazi aplikacija baze podataka (eng!. database app/fcation), odnosno program Ko)l korisniku omogucava manipu!aciju podacima kao i prezentaciju podataka u njemu prihvatljivoj f~rmi, bez obzira na internu organizaciju baze podataka. Ukoliko je aplikadja baze podataka dobro kreirana, sarna upotreba baze podataka obieno je veoma jednostavna. [Vledutim, proces kreiranja baza podataka kao i kreiranja apfikacija baze podata ka moze biti jako s!ozen. Zbog toga, savremeni programi za rad sa bazama podataka moraju da olaksaju kako kreiranje i odrzavanje baza podataka, tako j jednostavnu izradu aplikacija baze podataka koje su podesne za krajnje kOrisnike baza podataka, Danas je ova] posao znatno oiaksan pojavom vizualnih alata za razvoj aplikacija baze podataka. To su program! koji omogucavaju kreiranje baza podataka i odgovarajuCih aplikacija vezanih uz baze podataka crtanjem odgovarajucih simbola i objekata' na ekranu i njihovim povezivanjem, popunjavanjem formu!ara iii odgovaranjem na pltanja i slicnim postupcima, uz sasvirfl malo iii oak nimalo I<1asi6nog programiranja. Na taj naCin je i korisnicirna koji ne vladaju programersklm vjestinama omoguceno razvijanje jednostavnijih baza podataka i pripadnih aplikacija (slozene baze podataka se ipak ne mogu formirati bez znanja programiranja).
w

1 2 3 4 5 6 7 8

Pem Perie
Iva IviC Suljo Suljir. Vasa Vasic Petar Petrovic Huso Husie Ibro Ibric

Zeoica Sarajevo

Mostar
Sarajevo

Banja Luka

1-/

~::,- Mostar Ie; Banjo Luka (", Tuzla

Zenicko- Dobojski 72000 Sarajevo 71000 Hercegovacko-neretvansKi 88000 Republika Srpska Tuzlanski

51000 75000

Tuzla " Mostar


Ba0~

~~?

Pri tome, sistem za uprav!janje bazorn podataka mora da omoguci korisniku da ove dvije povezane
tabele vidi kao jednu tabelu sa vecim brojem atributa,. iaka su posmatrani podaci zapravo logiCki

organizirani u vise povezanih tabeJa. Skup tehnika, poput opisane tehnike, koje se preduzimaju sa ciljem da se smanji dupliranje informacija u bazi podataka i obezbijedi sigurna konzistentnost svih pohranjenih podataka, zajedni6kim imenom se nazlvaju normalfzaclja baze podataka, U dosadasnjem izlaganju upoznali sma se sa osnovnim konceptima vezanim za relacione baze podataka. Ocigledna prednost ovakvih baza podataka nad hijerarhijskim i mreznim bazama podataka sastoji se u cinjenici da se korisnik ne mora pridti8vati nikakve unaprijed propisane "s1rukture" koja ga ogranicava, 8tO omogucava jednostavno dodavanje, brisanje i modificiranje pojedinih elemenata u bazi podataka. S druge strane, pretrazivanje i aZuriranje re!acionih baza podataka moze biti znaino sporlje nego u-slucaju hijerarhijskih i mreznih baza podataka, sto im S6 maze uzeti kao nedostatak. Nairne, zbog nepostojanja fiksnih i evrstih veza izmedu pojedinih elemenata baze podataka, testa nije unaprijed jasno na ko)i nacin pristupitl trazenim podadma dok se ne obavi de1aijnija analiza (korisnik nije svjestan ove analiza, jer nju obavlja sistem za upravljanje bazom podataka). Bez obzira na eventualne nedostatke, relacioni model baza podataka danas ubjedljivo dominira u svim primjenama baza podataka. Prirodnu nadgradnju relacionih baza podataka predstavljaju objektno-orijentirane baze podataka, koje se od klasicnih relacionih baza podataka razlikuju sarno po cinjenici da polja U ovakvim bazama podataka mogu saCinjavati i razni objekti netekstualne_i nenumericke prirode, poput cneta, slika, muzike, animiranih video sekvenci, i drugih objekata koje te8ko mozema zam/sliti i{ao polja neke tabele u klasitnom smislu. Polja objektno-orijentiranih baza podataka sastoje se od struktura nazvanih objekti, koji u sebi sadrze ne sarno gale podatke, nego i skupinu uputa (postupaka) kako sa tim podacima treba postupati da bi se oni prezentirali na zeljeni na6in.

Jedan ad najpopularnijih vizualnih alata za upravljanje bazama podataka i razvo] prateCih_aplikacija vjerovatno je Microsoft Access. Kod ovog programa, kao i kod ve6ine slicnih programa, svaka baza podataka, zajedno sa pripadnom aplikacijom, sastoji se od sest tipova objekata nazvanih tabefe (eng!. tables), upiti (engl. queries), obrasci (engl. forms), izvjestaj; (engl. reports), makroi (engl. macros) i moduli (engl. modules). Tabele, koje su osnovni gradivni elementi svake relacione baze podataka, vee sma deta!jno razmotri!i. Upftf su objekti koji vrse odredene manipulacije nad sadrzajem tabela iii drugih upita, i pripremaju rezultate obavljenih manipulacija za prezen1aciju. Na primjer, upit moze pronaCi popis svih korisnika biblioteke jz Zenicko-dobojskog kantona koji nemaju zaduzenu nit! jednu knjigu, pri cemu se pronadeni popis po potrebi moze prezentirati takoder u formi tabele. Obrasc{ su objekti koji omogu6avaju unosenje podataka u tabele oa elegantniji nacin popunjavanjem formu!ara, a ne direktnim unosenjem u tabelu. Izvjestaji su objekli koji preuzimaju podatke iz tabela iii upita i prezentiraju ih u vidu uredenih dokumenata. Makroi su objekti koji omogueavaju automatlzaciju izvjesnih uobicajenih radnji kao i uvezivanje preostalih objekata u sistemu u funkcionalnu cjelinu, dok moduli omogucavaju da S8 isprogramiraju funkcionalnosti koje nisu podriane ostalim objektima.

Microsoft Access je prilicl10 slozen program (minimalni kursevi za potrebe upoznavanja osnovnih principa rada sa Accessom obicno traju bar 20 easova), i u ovom udzbeniku se ne mozemo upustati u detalje njegovog korisienja. Stoga cemo dati sarno nekoliko osnovnih napomena. U verziji Microsoft Access 970snovni radni prozor ovog programa (nazovimo ga prozor baze podata~ ka) posjeduje sest kartica, nazvanih upravo Tables, Queries, Forms, Reports, Macros i Modules, dok su u verziji Microsoft Access 2000 kartice zamijenjene grupom dugmadl sa lijeve strane (uko~ liko zanemarimo estetske razlike, princip rada je prakticno isti u obe verzije). Izgled prozora baze podataka u obje verzije prikazan je na narednoj slid.

2.4.5 ApUkacije baz8 podataka


Krajnjeg korisnika obicno ne zanima kakoIe: o'rganizirana baza podataka, od kojih se tabela sas toji baza, kako su one medusobno pov~zane,~_ ~d. Qnn'"sto krajnjeg korisnika zanima je jedino koriStenje baze podataka. Korisnik ne:-teli:~a llno.si podatke direktno u'tabele, pogotovo u slucaju kada su, zbog lzvrsene normalizadje, podaci kofe Xons.nik ocekuje u jednoj tabeli razbacani u vise tabela. Umjesto toga, korisniku treba pon~diti ~crgovarajuGi korisni6ki interfejs u kojem ce on moGi unositi podatke pomocu raznih obrazata--na ekra'nu;i koji ce od njega sakriti detalje vezane za internu organizaciju podataka. Takoder, ~orjsriikne ze!Jda \tidi podatke iz baze podataka sarno kao puku tabelu, vee ocekuje prikaz d~taljnog izvjestaja .-0 traienim pqdacima iz baze podataka, u vidu uredenog dokumenta koji se mt?z~ prezentlrati- i stampati. Stoga se kao posrednik izmedu same
w

Microsofi h;c", 97
193

192

Novi objekti kreiraju se Idikom na dugme New. VeGina objekata moze se posmatrati sa aspekta dizajna, i sa aspekta upotrebe, sto se mOle podesavati pomo6u odgovarajuCih naredbi u meniju View, iii odgovarajuGih alatki na'traGi sa alatima. Treba napomenuti da su meniji'i trake sa alatima u Microsoft Accessu izrazito dinamicne prirode, odnosno mijenjaju svoju strukturu u ovisnosti od toga sta ,u tom trenutku radimo, zbog caga bi za objasnjenje rada sa ovim programom trebalo znat~ no vise prostora nego za objasnjenje Microsoft Worda iii Microsoft Exce/a. Tabele i upite kreiramo u Acces$utako sto nakon kHka na dugme Newizaberemo apciju Design View (u verziji Microsoft Access 2000 mazema i dvastruko kllknuti na ikanu _Create table/query in design view) i popunimo odgovaraju6e obrasce na ekranu neophodnim informacijama, u cije detalje ne mozemo ulaziti (nesto vise detalja biee navedeno u posljednjem odjeljku ovog poglavlja). Sadrzaj tabela kasnije mozema popunjavati na slican na6!n kao u Excelu, s tim da je prethodno potrebno tabelu otvoriti za prikaz klikom na dugme Open iii dvostrukim klikom na odgovarajueu ikonu. Formulare i izvjeStaje najlakse je kreirati pomoeu carobnjaka koje dobijama taka sto nakon klika na dugme New na odgovaraju6oj kartici izaberemo opcije Form Wizard, odnosno Report Wizard (u verziji Microsoft Access 2000 Istl efekat mozema postle] dvostrukim klikom na ikonu Create form/report by using wizard). Za uspostavljanje veza izmedu kreiranih tabela, u Microsoft Accessu koristi se alatka nazvana
Relationship koju mozemo pronaei na traci sa alatima, iii istoimena naredba koju mozemo dobiti iz

Neki sistemi za upravljanje bazama podataka, kao sto je Symantec Q&A, cak omogucavaju postavljanje upita u prirodnom govornom jeziku (konkretnije, engleskom). Medutlm, mogucnost ovakvih sistema da razumiju govorni jezik prilicno su ograniceni, tako da su ovi sistemi za sada namijenjeni vise eksperimentalnim istrazivanjima, nego profesionalnoj upotrebi. Za profesionaine primjene, mozemo re6i da se danas gotovo iskljutivo koristi upravo SOL Prva verzija SQL~a nastaje davne 1970. godine u IBM istrazivatkom laboratoriju. Ipak, prvu komercijalnu verzlju sistema za upravljanje relacionlm bazama podataka (skraeeno RDBMS, od engl. 'Belation Qataase Management System) baziranog na SOL~u (koj! cerna, u nastavku kraee nazivati prosto SOL sistem) na trziste ne lzbacuje IBM, vee firma Oracle. IBM svoje komercijalne izvedbe SOL sistema izbacuje na trziste pocetkom osamdesetih godina. Ubrzo na seenu lzlaze SYSBASE, INGRES i mnogi drugi, taka da vee pocetkom devedesetih godina na trzistu Ima preko stotinu SOL sistema koji su bazirani na nekom dijalektu SOL-a. Da bi se uvelo reda u to sarenilo dijalekata, vee 1986. godine izlazl prvi ANSI SQL standard. 1987. godine je isti standard prihva6en i kao ISO SOL standard (/SO, ad engl.lnternationalStandardlzation Qrganization,_predstavlja medunarodnu organizaciju koja se bavi pitanjlma uspostavljanja standarda). PIVO prosirenje standarda, IEF (lntegrity Enhancement Eeature), S8 javlja vee 1989. godine. Paralelno se ustanovljavaju i drugi SOL standar~ di, poput X/Open standarda (za UNIX operativne sisteme), SAA standarda (za IBM sisteme), FIPS (Eederallnformation Eroce.s.sing) standarda (za potrebe americke savezne vlade), ltd. Godine 1992. [zasao je novi standard poznat pod skraeenim nazivom SQU92 (puni naziv je "Intemational Standard ISO/IEG 9075:1992 - Database Language Sal"). Konacno, krajem devedesetih godina pocinje izlaziti najnoviji SOL standard SQug9. Zasto kalemo pocinje?! Za raziiku od dotadasnjih SOL standarda, posljednji SOL standard izlazi "u dijelovima". Do trenutka pisanja ovog udzbenika Uanuar 2003. godine), iza810 je osam dijelova, a planira S8 jos nekoliko. Ovaj standard je zaista ogroman. Njegov "glavni" dio pod nazlvom ISO/lEe SOL Fundation ima ako 1120 strana teksta, d_ok preostali do sada objavljeni dijelovi imaju oko 1800 strana teksta (radi usporedbe, SQU89 standard imao je oko 120 strana teksta, a kompletan standard programskog jezika Pasca/lmji Cemo obradivati u tre6em dijelu ovog udzbenika Ima oko 80 strana u klasicnoj verziji, a aka 215 strana u prosirenoj verzijl). Problem sa slozenoscu SOL s1andarda odratava se u cinjenici da su ti standardi rljetko u potpunosti padrzani u kornercijalnim produktirna. Razlike izmedu dijalekata SOL-a izvedenih u razlicitim konkretnim produktima kao sto su Oracle DBMS, Microsoft SOL Serveri IBM DB2 u odnosu na zvanicni stan~ dard otezava prenos aplikacija sa jednog na drugi racunarski sistem, kao i obuku korisnika za rad sa SQLom (bez obzira sto razlike izmedu pojedinlh dijalekada SOL-a nisu velike). Popularni program za rad sa bazama podataka Microsoft Access takoder podrzava neku verziju SQL-a kOja se jOs vise razlikuje od standarda, Medutim, kako veeina korisnika svoj prvi susret sa SOL-om ostvari upravo preko programa Microsoft Access, njegove specificnosti ee biti posebno obradene u nastavku teksta. Jedan od rijetkih SOL sistema koji gotovo u potpunosti prati zvanicni SOL standard (doduse, stariji standard SQU92) je sistem Ocelot SOL DBMS. Dodatna pogodnost ovog sistema je u tinjenici da se radi 0 potpuno besplatnom softveru koji se maze "skinuti" putem intemeta sa -adrese www.oc-elot.ca. tako da ga bez ikakvih problema mogu nabaviti 'kako skole, tako i ucenici za potrebe uvjeibavanja rada sa SOL-om.

iskocnog menija koji se javlja ako desnom tipkom misa kliknemo na prozor baze podataka. Pokretanje ave alatke ill naredbe otvara novi prozor u kojem mozema prikazati sve iii rieke od kreiranih tabela, zajedno sa popisom njihovih atributa. Uspostavljanje veze ostvarujemo tako sto pomoeu misa primarni kljuc primarne tabele "advucemo" na atribut sekundarne tabele koji treba da postane odgovarajuCi slrani kljuc, U dijaJogu koji se tom prilikom javlja mozemo izabrati da Ii zelimo automatsko ostvarivanje referencijalnog integrlteta. Pri tome, mozemo izabrati koji naCin rjesavanja problema narusavanja integriteta zelimo prHikom miJenjanja primarnog kljuca !Ii brisanja sloga iz primarne tabsle (zabranu postupka, iii kaskadno aiuriranje odnasno brisanje). Uspostav!jene veze kasnije sluie Accessu za automatlzaciju generiranja odgovarajuCih upita, obrazaca i izvjeStaja priHkom upotrebe vizualnih alata.

2.4.6 Jezici za manipulaciju relacionim bazama podalaka


Upiti predstavljaju sri: svih postupaka za manipulaciju relacionim bazama podataka. Mada se jednostavniji upiti u programima kao sto je Microsoft Access mogu realizirati vizualnim postupcima, za kreiranje iole slozenijih upita potrebno je koristiti jezike za postavljanje upita (engl. query languages) koji se jos nazivaju i jezici za manipuJaciju podacima iii DML (Q;3.ta Manipulation J",anguage) 1ezi~ ci. To je vrsta programsklh jezika jednostavnih za upotrebu (ne i za racunar), koji spadaju u kategoriju tzv. neprocedura/nih programskih jezika (0 programskim jezicima detaljnije ,cemo govoriti u trecem dijelu ovog udzbenika). Ovi jezici se sastoje ad fraza koje podsje,6aju na recenice engleskog jezika, u kojima se pojavljuju osnovne djeti kao sto su "select" (izaberi),:"delete", (izbrisi) i ",modify" (izmijeni). Mada postoje razne vrste jezika ovog tipa, najvise je' u upotr~bi jezH~'poznatpod imenor)1 SOL (S.tructured Query .Language), koji danas predstavlja zaKonski"C'de jure"rUaktieki_Cde facto") standard u radu s relacionim bazama podataka. SOL spada u progmmskejezikB, -i fipicnl fe predstavnik tzv. neproceduralnih programskih jezfka. Neproceduralnost ovog je2ika'se".9gleda u t6me da se njegova glavna naredba SELECT sastoji iz opisa !ita se treba uraditi.:sa ba?:Q!D podataka, ali n"8: i detalja kako ee se taj postupak uraditi. Na primjer,naredba 0vug,jezlka.k0ja bl prikazala ime i prez:" ime kao i broj telefona svih korisnika bibliateke koju sma razmatrali jednorh -od' ranijih primjera, a koji zive u Mostaru, glasila bi: ., --

2.4.7 Kra!ak uvoa u Sal


Osnovna funkcija SQL8 je da definira strukturu podataka, manipulira sa podacima i kontrolira podatke u relacionoj bazi podataka. SOL je skupovno orijentiran jezik i za ozbiljniji rad s 'njim je potrebno poznavati teonju skupova, relacioni {aeun i relacionu a/gebru. Vee sma rekH da su rela-195

SELEC'l' ImeIPrezime, BrojTelefona FROM Biblioteka WHERE MjestQBoravka';' , Hostar '

194

cione baze podataka organizlrane kao kolekcija fabela. Svaka tabela (relacija) je ureClena kolekcija jedne JIi vise kolona i neuredena kolekcija redova, koja moze da ne sadrii niti jedan red. Drugim rijeCima, poredak kolona je bitan, dok poredak redova nije bitan. U presjeku svakog reda i svaka kolona nalazi se najvise jedan podatak, a svi podaci unutar jadne kolone moraju biti {stog tipa.
Bitno je napomenuti da se SOL razlikuje od veGine klasicnih programskih jezika po tome sto nije moguce napraviti samostalan izvrsni program koristeCi iskljucivo SQL 8toga postoji mogucnost da se, na razne naeine, naredbe SOL~a mijesaju sa naredbama drugih programskih jezika, odnosno da se, na izvjestan nacin, SOL naredbe ugraduju u druge programske jezike. Ovo je tzv. ugraden; (engl. embedded) naein rada. U slueajevima kada naredbe SQL~a zadajemo interaktivno, koristimo direktni naCin rada. Sarna sintaksa SOL naredbi ista je u svirri naC1nima rada, ali se neke SOL naredbe mogu koristiti samo u odredenim naeinima rada. Rad sa SOL-om odvija se u tzv. transakcijama. Transakcija je grupa SOL operacija, odnosno naredbi, kod kojih vrijedi pravilo tipa "sve iii nista". To znaei da ee iii sve promjene biti I fizieki zapisane u bazu podataka, iii se neee zapisatl niti jedna promjena. Sta de se od toga desiti, odredeno je posljednjom naredbom u transakciji. Ukoliko se kao posljednja naredba u transakciji zada naredba COMMIT, sve izmjene ee biti zapisane u bazu, a ako se kao posljednja naredba u transakciji zada naredba ROLLBACK, niti jadna izmjena neee biti zapisana u bazu, Bez obzira na to, sve izmjene su ipak vidljive za transakGiju sve do njenog zavrsetka. Analogiju mazemo napraviti sa radom u Wordu: prilikom zavrsatka rada sa dakumentom, mi na pitanje da Ii zelimo sacuvati izmjene u dokumentu mozemo odgovori1i sa "No", eime izmjene nece biti pohranjene u datoteku, mada su sve izmjene u dokumentu bile vidljive u toku rada (prije nego sto smo se odlueili da ih prosto ignorlramo). Mnogi SOL sistemi imaju mogucnost ukljucenja neke opGije koja omogueava automatska upisivanje svih izvrsenih izmjena u bazu podataka, bez potrebe za zadavanjem naredbe COMMIT. Prvi korak u radu sa SOL-om je kreiranje same baze podataka. U standardnom SOL-u za tu svrhu se koristi naredba CREATE SCHEMA. Mnog! speclfieni SOL sistemi koriste neki drugi naein za istu svrhu. Na primjer, Microsoft Access automatski kreira bazu podataka (naravno; praznu) na pocetku rada, a za kreiranje nove baze podataka mozemo koristiti naredbu New Database iz Fife menija. Posto jedan SOL sistem obicno omogucava rad s vise baza podataka, prije rada s odredenom bazom podataka u standardnom SOL-u moramo uspostaviti vezu taeno s tom bazom pomoeu naredbe CONNECT. Microsoft SOL server za istu svrhu koristl naredbu USE, dok u Microsoft Accessu mozemo korlstiti naredbu Open Database iz menija Fi/e. Nakon sto je kreirana sama baza podataka, sljedeci korak je definiranje tabela koje ce vati podatke koje cemo drzati u bazl. To se posfize naredbom koja ima sljedeei oblik:
CREATE TABI"E
sadrta~

mogu sadrzavati i neke dopunske opeije, od kojih su najvaznije sljedece:


NOT' NULL znaei da polja unutar pripadne kolone ne smiju nikad biti prazna, tj. da se u svakom po!ju te kolone uvijek mora nalaziti neka vrijednost; DEFAUI.,T znaei da 6e SOL sistem kod dodavanja novih redova (slogova) sam uzeti vrijednast navedenu iza DEFAULT za vrijednost odgovarajueeg polja u koloni uk'oliko se eksplicitno ne navede neka druga vrijednost; PRIMARY KEY oznacava da pripadna kolona predstavlja primarni kljuc. Kako kljucna polja ne smiju biti prazna, opGija PRIMARY KEY U sebe ukljueuje i opciju NO'l' NUI,L.

Vazno je naglasiti da se kod upotrebe tipa CHARACTER (n), za svako ,polje tog tipa rezervira mem~ orljski prostor za tacno n znakova, bez obzira sto stvami podatak moze biti i kraCi. Zbog toga moramo paziti da ne postavimo preveliko n, jar cemo u suprotnom bespotrebno imati veliki gubitak memorijskog prostora. Kao primjer, sljedeea naredba kreira tabelu nazvanu "Kredit", sa 6 kolona nazvanih "Broj", "lmePrezime", "Iznos", "lzdan", "Period" i "Dug" koje ee redom euvati podatke 0 broju kredita, imenu i prezimenu korisnika, iznosu kredita, datumu izdavanja, periodu otplate (u mjesecima), i iznosu trenutnog dugovanja:
CREATE TABLE Kredit(
B:mj Imeprezime
INTEGER PRHfARY KEY,
CHAR(3S} NO'l' NULL,

Iznos Izdan
Period

Dug
),

Nl)MERIC(7,2) , DA'l'E, SMALLINT DEFAULT 12, Nm:1GH1C(7,2)

Primijetlmo da smo kolonu "Bro]" proglasili za primarni kljue, polja u koloni "lmePrezime" ne smiju biti prazna, dok je podrazumijevani period otplate (ukoliko S8 ne zada drugaCije) postavljen na 12 mjeseci. U slueaju kada je naredba duga, ana se obicno pise u vise redova, kao sto je i uCinjeno u prikazanom primjeru. U veeini SOL sistema kraj SOL naredbe oznaeava znak taeka-zarez (;). SOL ne pravi razliku izmedu malih i velikih slova, taka da ne moramo vodit! raeuna da Ii naredbe pisemo mallm iii velikim slovima. Tai<ocier, broj i redoslijed razmaka nije bitan. U svim navedenim primjerima kljuene rijeei jezika SOL pisacemo velikim slovima da bi ih razlikovali od rijeci koje zadaje korisnik.
UkolikD pr'lmarni kljuc obuhvata vise kolona, onda se opcija PRIMARY KEY navodi kao zaseb~ na naredba sa spiskom kolona koje Cine primarni kljue. Na primjer, ukoliko primarni klju6 saCinjavaju kolone "Broi" i "lmePrezime", takav primarni kljue definiramo naredbom PRIl1ARY KEY (Broj, ImePrezimej;

ImeTabele (ListaKolonn)

Ovdje je ImeTabele keljeni naziv tabele, dok je ListaKoliina popis stavki kOje opisuju kolona (atribute) tabele, medusobno razdvojenih zarezima. Svaka stavlm sadrzi barem dva podatka: ime kolone, i tip kolone, odnosno tip podataka koji se mogu smjestati u tu kolonu. Vazniji tipovi podataka u SQL-u su: CHARACTER (n) iii, alternativno, CHAR (n) - tekstualnf p'odatak,maksima!ne duzine n znakova; NUMERIC (p, q) decimalni broj s predznakom sa ukupno p cifara ad kojih je q decimala; INTEGER ijj, alternativno, INT cijeli broj; FLOAT iii, alternativno, REAL realni braj; DATE datum, Tip podataka SMALl,INT je podskup lipa INTEGER, koji omogucava pamcenje manjeg opsega brojeva, ali zauzlma manje memorije u bazi podataka. Uz ime i tip kolone, stavke koje opisujukolone
196

_Tabe-Ia. se- maze ponistiti odnosno izbrisati naredbom


,DROP TABLE ImeTabcle;

'-: 1;3risahjem .tabe1e se" tiepovratno gube svi podad koji su bili zapisanl u njoj. Izmjena opisa vee . kreirar)e tabele bez gubitka u njoj zaplsanih podataka maze se izvrsiti pomo6u naredbe ALTER -_. ~'ABLE koju-ne6emo detaljnije opisivati. . Dozvoljena imena tabela i atrlbuta sastoje se od slova, cifri i znaka za podvlaeenje (~), pri eemu poeetni znak mora biti slovo. ImEina ne smiju sadrtavati razmake (Microsoft Access dozvoljava razm~ke ukolik6 ime uokvirimo uglastim zagradama, npr. [Broj Kredita]). Mada standard dozvo197

Ijava koriStenje slova i iz nekih drugih jezika, preporucuje se upotreba iskljuCivo slova engleskog alfabeta. Dvije tabele u is10j bazi ne smiju imati isto Ime, kao ni dvije kolone unutar iste tabele, dok dvije raztieite tabele mogu imati ista imena kalona.

INSERT IN'ro Kredit VALUES (1. 'Suljo Suljic', 5000, DATE '2002-04-01',24.,3500);

Ana!ogno mozemo unijeti jos slogova u tabelu, kao u sljedecem primjeru:


INSERT INSERT TNSER'l' rnSERT INSERT INSERT INSERT INSERT TN'l'O INTO INTO INTO INTO INTO INTO Yuedit Kredit Kredit Kredit KIedit Kredit Kredit Kredl.t VAWES(2,'Pe:ro Peric',7000,DATE '2002"~04-15',6,O); VAr,uES (3, ' Marko ~fdrkovic', 7000, DA'l'B . 2002-05-15' , 6, 0) ; VALUES (4, 'Mujo Muji (:' ,4000, DATE '2002-06-20', DEFAULT, 1950) ; VALUES(5,'Mujo Hujic',5000,DATE '200:>06-25',24,2500),' VALlJES(6,'Ivo Ivic',8500,DATE '2002'-07~02',,36,7001.53); VALUES(7,'Suljo Suljic',7000,DP,TE '2002-07-02',3,0); VALUES (8, 'Mujo Mujic' ,12000,DA'I'E '2002",,07~12' ,12,6000); VAums (9, 'Pero Perie", 8000, DATE' '200>09-16', DEFAUW, 5570) i

Microsoft Access ne poznaje naredbe CREATE, DROP i ALTER, jer se u ovom programu kreira~ nje, brisanje i modifikaGija tabela obavljaju vizuafno. Da bismo pomocu Access8 kreirali tabelu kola nam je 'neophodna za kasnije postavljanje upita, na kartici Table u prozoru baze podataka kliknemo na dugme New, a zatim na opGiju Design View. U formularu koji se tada polavi na ekranu, u kolonu Field Nametreba upisati zeljena imena kolona.("Broj", "lmePrezime:', "Iznos", "Izdan", "Period" i "Dug" u nasem primjeru), dok u kolonu Data Type treba upisatl odgovarajuce tipove kolona (umjesto rucnog upisivanja, zeljeni tipovi se mogu birati iz padajuce liste). U Microsoft Accessu se tipovi podataka zovu drugacije nega u standardnom SOL-u, taka da se umjesto tipa CHARACTER koristi tip Text, umjesto tipova INTEGER iii FI,OAT koristi se tip Number, umjesto lipa NUMERIC koristi se tip Currency, dok se umjesto tipa DA'rE koristi tip Date/Time. U nasem primjeru, tipovi kalona trebaju redom da glase "Number", "Text", "Currency", "DateiTime", "Number" i "Currency".
Da bismo u Accessu zadali dodatne apGije paput duzine tekstualnog polja, broja decimala, kao i opeija poput NOT NULL ill DEFAUI,T, koristimo se kartieom General koja S8 nalazi u donjem dijelu forlllulara za kreiranje tabele, a koja se uvijek odnosi na ime atributa koji je trenutno oznacen. Polje za unos Field Size u slueaju tekstualnih, podataka odrec1uje duzinu polja, dok u slucaju brojcanih podataka istoimena padajuca lista odreauje da Ii je u pilanju Gijeli braj umjerenog opsega vrijednosti (opcija integer), mali cljeli broj (opcija Byte), cijeH broj prosirenag opsega moguCih vrijednosti (opelja Long Integer), realan bro) male preciznosti (opGija Sing/e) iii realan broj velike preciznosti (opGija Double). Opciia DEFAULT postavlja se pomocu polla za unos Default Value, dok Be opGija NOT NULL postavlja pomocu padajuce liste Required (treba izabraU Yes ukoliko zelimo NOT NULL opciju). Brai declmala podesava se pomocu padajuce liste Decimal Places, dok se primarni kljue postavlja pomocu alatke Primary Key iii istoimene naredbe u Editmeniju. Sada imate dovoljno inforrnaGija da mozete u Accessu kreirati Istu tabelu kakvu bi kreirala naredba CREATE 'rABLE iz gore navedenog primjera. 8toga, kreirajte takvu tabelu i snimite je pod imenom "Kredit" kako biste mogJi nastaviti rad (ne zaboravite definirati polje "8ro)" kao primarni kljuc). Nakon s10 ste kreirali tabele, u njih je potrebno unijeti vry'ednosti. Osnovna naredba u SQL~u kojom se unose vrijednosti u tabelu ima oblik
INSERT INTO ImeTabele (Li.I'lalmenaKowu(I) VALUES (U~tClVrije(blO.\'ti)

TmD

Ukoliko neke podatke unutar sloga ne zelimo da unesemo, u sklopu INSERT naredbe navodimo samo imena kolona cije vr1jednostl se unose. Na primjer,
INBF.R'l' IN1'O Kredit (Broj, ImePrezime, Iznos I Perj ad) VAl,UES (10, 'Huso Husi.c", 7000, 15) ; INSER'r INTO Kredit~(13roj,ImePrezime,Iznos) VALUES(ll,'Marko Marlwvic',8000);

Mada Microsoft Access poznaje INSERT naredbu, koja je neophodna da bi se dodavanje novih podataka moglo obavljati pod kontrolom programa, u Accessu je mnogo praktienije rueni unos podataka obavljati vizualno u tabelu prikazanu na ekranu, sUeno kao prj unosu podataka u tabele u Excelu (za ovu svrhu, kreiranu tabelu je nakon snimanja potrebno otvoriti za prikaz klikom na dugrne Open iii dvostrukim klikom na odgovarajucu ikonu). Ukoliko radite sa Accessom, prije nego sto nastavite dalje, unesite sve podatke koji odgovaraju podacima unesenim pomocu prikazanog niza INSER,T naredbL Mnogi SOL sistemi posjeduju svoje specifiene komande poput IMPORT, LOAD, ltd. koje ne pripadaju SOL standardu, a koje sluze za prihvat vece kolicine podataka iz tekstualnih datoteka. U Microsoft Accessu se ovi podaGi mogu prvo unijeti u Excel, a zatim, koristeci meduspremnik i naredbe Copy i Paste iz Edit menija, prosto koplrati iz xceJo\fih tabela u Accessove tabele. Ubjedljivo najeesce koristena naredba u SQL-u je SELECT. Ona sluzi da se dobave podaci iz ,baze (tabela), tako da je cest sinonim za nju i SQL upit (engJ. SOL Ouery). Najprostija forma naredbe SELECT ima sljedeci oblik:
SELECT Listalzraza FROM ListaTabela

Na primjer, ukoliko pod rednim brojem 1 treba unijeti podatak da je korisnik "Suljo Suljie" zadutio iznos od 5000 KM dana 4. aprila 2002. godine na rok ad 24 mjeseca, pri cemu trenutni dug iznos! 3500 KM, takav unos mazemo obaviti 5ljedecom' naredbom:
INSER'!' INTO Kredit (Broj, ImePrezime, Iznos, Izdan, Peri,od, Dug) " VALUES (1, ' Suljo Sulj ie' I 5000 I DA'rE '2002-04 :;"04 '., 24., 35VO-) :;.

Iza stavke FROM navode se imena svih tabe!a kojima ce Se prislupiti, a iza stavke SELECT izrazi koji ce se ispisati. Ti izraz1 se, slicno izrazima u Excelu, mogu sastojati od brojeva, imena atributa onih tabela koje su navedene u listi ListaTabela, osnovnih aritmeti6kih operacija (+, ~, *, I), zagrada i izvjesnih funkc/ja (koje imaju dosta slicnosti sa Excelovim funkcijama). Na primjer, da bismo ispisali spisak svih podataka lz tabeie "Kredit", motemo koristiti sljedeci SOL upit
SELECT Broj, IrnePrezime, Iznos, Izaan, Period, DI19 FROM Krediti

"

Primijetimo da se'tekstualni podaci pisu amedeni sa dva znaka apostrofa (;');,'.dok se: -:pat_umski podaei po SOL standardu pisu u obliku DATE 'gggg-mm-dd', Microsofj:-AcOess-ne -postuje standard i u njemu 5e datums!<i podaci pisu kao -Ilmm/dd/gggg# (npr. #04/ 04/2002#'j. G4jB.,bi'sE.'l-t<;:leno ova. naredba trebala ukucati ukoliko radima u Accessu, objasnicemo nesto kas!l.iie. - " Ukoliko se naredbom INSERT unose vrijednosti za sve. kolol)e-,u "tabe-li. 'tada ListalmenaKolona moze izostaviti, tako da sma istu naredbu mogli pisa1i i ovaKo: .
198

Rezultat izvrsavanja ove naredbe (upita) je ispis poput s!jedeceg:

se argument
199

~-.

Brei
1 2 3 4 5 6 7 8 9 10

ImePrezime Suljo Suljic Pero Perie Marko Markovic

Mujo Mujle Mujo Mujle Ivo Ivie Suljo Suljie Mujo Mujle
Pera Perit

.-

L-

Huso Husie Marko M-arkovic

Iznos 5000,00 7000,00 7000,00 4000,00 5000,00 8500,00 7000,00 12000,00 8000,00 7000,00 8000,00

Izdan

2002-04-04 2002-04-15 2002-05-15 2002-06-20 2002-06-25 2002-07-02 2002-07-02 2002-07-12 2002-09-16

Period 24 6 6 12 24

Dug

Rezultat izvrsavanja ovog upita prikazan je na slid ispod, sa lijeve strane.


~~ezime

36
3 12 12 15 12

3500,00 0,00 0,00 1950,00 2500,00 7001,53 0,00 -SOOO,OO 5570,00

sura sunc Pero Perit ~!l-rkO Markovic Mujo Mujic I-_Mujo M~jic Ivo Ivic Sullo Suljic
~ujoMujic

U ispisu pomoeu prethodnog upita 6e S8 korisnik (klijent) koji koristi vise kredita pojaviti onoliko puta koUka kredita koristl. Ako zelimo da se svaki klijent pojavi u ispisu samo jednom, iza naredbe SELECT treba dodati apciju DISTINCf._ Na primjer:
SELECT DISTllJCT ImePrezime FROM Kredi t i

_..

ImePrezime
Suljo Suljie

Pero Perie ._Huso Husj(~ Marko Markovic

_-

Rezultat izvrsavanja ovag upita prikazan je na slid sa desne strane.

Pera Peric Marko MarkoviC ~~MUji6 Iva Ivic Huso Husie

Vazno je napomenuti da se SOL upiti mogu napisati na vise naeina, a da se dobije isH rezultat Najbolji primjer za to je clanak C. J. Date u kojem je isti rezultat dobijen pomocu 54 razli6ita SOL
upita!

Ukoliko koristimo neki specijalizirani SOL sistem, SOL naredbe se zadaju putem kornandne linw
ije. Medutim, ukoliko koristimo neki vizualni alat poput Microsoft Accessa, pocetniku moze bit]

Ukoliko zelimo da ispis bude sortiran, na kraj SEljE~T upita dodajemo opdju ORDER BY, iza koje slijedi ime kalone iii broj kolone po kojoj zetima da bUde sarti ran ispis. Sortiranje S8 vrsi u rastucem poretku. Ukollko zelimo da se sortiranje abavi u opadajucem poretku, iza imena iii broja kolone aodajemo i opciju DEse. Na primjer, ukoliko izvrsimo sljedeci upit:
SELECT DISTINC'l' ImePrezime FROM Kredi t ORDER BY ImePrezime DImC;

prilicno nejasno gdje uopce treba ukucati SOL upi~ U Accessu, SOL upit mazema zadati na sljedeci nacin. U prozoru baze podataka izaberemo karticu Query, nakon (:ega kliknema na dugme New i izaberemo opciju Design View. Ovim se otvara akruzenje kaje omogueava vizuafno kreiranje jednostavnijih upita. Pasta mi ne telimo vizualno kreiranje nego direktno zadavanje SOL upita, potrebno je zatvoriti prozor Show Table kojf S8 pojavia na ekranu, i iz menija View odabrati naredbu SOL View (postaji j istaimena alatka na traci sa alatima, koja se dobija iz padajuce' liste na krajnjem lijevom kraju trake sa ala1ima). Nakon pokretanja ove naredbe, na ekranu ce se prikazati editor teksta u,koji mozema unijeti zeljeni SOL upit (npr. upit IZ prethodnog primjera). Da bisma izvrsili uplt, kHknemo na alatku Run (na njoj je nacrtan veliki crveni uzvienik), iii izaberemo istoimenu naredbu iz menija Query. Ukoliko smo sve uradili kako treba, na ekranu ee S8 prikazati rezultat izvrsavanja upita. Da bismo zadali novi upn, nije potrebno djelu proceduru ponavljati, vee je dovaljna samo pamac:u a!atke iii naredbe SOL View panovo prikazati editor za unosenje naredbi. Bltna je napomenuti da tacan izgled ispisa datuma i valuta (tipa "Currency") u Accessu zavisi od regional nih postavki racunara (s!ieno kao u Excelu), taka da se nemojte iznenaditi ukoliko ispis bude stilski odstupao ad ispisa prikazanog u ovom udzbeniku.
Umjesto pojedinaenog navodenja imena svih ko!ona, u naredbi SELECT maze se koristiti i znak zvjezdica (*) koj! zamjenjuje spisak svih kalona, taka da bi isti rezullat proizvea i s!jedeci upit:
SELEC'f -/.- FROM Kredi t ;

kao rezultat cemo dobit! prikaz na slid ispod. U slucaju kada iz.a stavke FROM navedemo vise tabela, maze doci do dvosmislice ukoliko vise tabela imaju ista imena kolona. Da bi se predziralo kojoj tabeli koja kalona pripada, karisti se znak tacka (.) U obliku Pero P.erie -hneTahrde.lmeJ(olone. Na primjer, ukoliko zelimo da naglasimo da misMujo Mujic Marko Markovic _ _ limo na kolonu ImePre'zime koja pripada upravo tabeli Kredit, a ne eventualno nekoj drugoj tabeli koja je navedena u stavki FROM, Ivo Ivle Huso Husie -------..: pisacemo Kredi t. ImePrezime. --~Uplace""ilTiZn"Os

SUIiD Sune

Treba abratiti paznju da aka naknadno izvrsima izmjenu u tabeli "Kredit", npr. dodamo novu kolonu, prvi upit u kojem sma eksplidtno naveli imena kalona nece vidjeti tu novu kolonu, ali je upit sa znakom zvjezdiea vidi. Ako zelimo ispisati samo spisak imena korisnika kred,ita, zadacemo s!jedeCl upit
SE:LBC'l' ImcPrezime FROM Kredit;

Ukollko se U SELECT naredbi umjesto imena BrojKredita kalona upotrijebe neki izrazi, sistem ce prilikom prikaza 1 sam od sebe imenovati nekim generickim imenima (poput Expr01 ltd.) one kolone tabele u kojima ce se 3 prikazati vrijednosti navedenih izraza. Ukoliko zelimo da ime prikazanih kalona bude smislenije, koristi se opelja 4 AS. Na primjer, s!jedeei upit ee ispisati brojeve kredita 5 .imEmovane imenom "BrojKredita" -(koje je smislenije od 6 prostog jmena "8roj"), kao i upla6eni iznos po svakom 7 kreditu, koji mozemo izracu-nati oduzimanjem ukupnog .. 8 '-lznosa kredita .od trenutnog dugovanja: 1-9

r--_2

1500,00 7000,00 _____ 7000,~~ 2050,00 2500,00 1498,47 7000~00 6000,00 2430,00

SELECT Broj AS BrojKredita,

(Iznos-Dug)

AS UplaceniIznos FROM Krediti

t---

10'-11
.

. Rezultat izvrsavanja ovog upita je ispis ko]i izgleda kao sto je prikazano na slid sa desne strane.

200

201

Sliono kaa u Excelu, u SQL-u takader postaji eijeli niz funkeija kaje se magu koristiti u izrazima. Medu najbitnije funkeije spadaju tzv. grupirajuce funkcije (engl. aggregate functions). To su funkcije kOje po nacinu rada podsjecaju na funkcije poput SUM, AVERAGE i COUNT U Excefu. Grupiraju6e funkcije se odnose na skup vrijednosti iz neke kolone iz odredene grupe redova. Ukoliko se pomaeu apeije GROUP BY (0 kajaj ne6emo detaljnije govoriti) ne navede uvjel po kajem se grupiraju redovi, fada se grupirajuca funkcija odnosi na sve redove iz tabele. U tom .slueaju, nije dozvoljeno u sklopu iste SELECT naredbe navesti ime neke kolone izvan argumenta grupirajuce funkcije. Standardni S(JL posj~duje pet grupirajucih funkcija: Count, Sum, Avg, Min i Max. Grupirajuca funkcija Count koristi se u obliku Count UmeKolone). SHena kao istoimena funkcija u Excelu, ana braji koliko u navedenoj koloni ima polja koja nisu prazna (Ii. koja sadrze neku vrijednost). Ova funkcija maze se primijeniti na svaki tip podataka. Na primjer, sljedeci SOL upit
SELECT Count(Broj) AS UkupnoKredita FROM Kredit;

kao rezultat ce dati braj 78500, 5to je suma svih polja u kolonl "Iznos". Posmatrajmo sada malo s!ozeniji primjer. r;.Jeka je potrebno odrediti koliko su svi klijenti zajedno uplatili novea izrazeno u euri~ ma. Ukoliko je odnos izmedu aura i marke 1.95 (takav je bio u trenutku pisanja ovog udzbenika), trazeni odgovor daje jedan ad sljede6a dva SOL upita:
SELECT Sum(Iz,nos-Dug)/l.95 FROM Krediti SELECT Surn( (Iznos-Dug) 11.95) FROM Kredit;

Ova dva upita ce kao rezultat dati redom brojeve 18963.31 i 18963.29. Mala razlika na drugoj decimali posljedica je raz!icitih mjesta na kojima se vrsl zaokruzivanje na dvije decimale. Naime, ptvi upit ptva sabira sve uplate, zatim zbir dijeli sa 1.95, i tek tada zaokru2:uje rezultat. S druge strane, drugi upit svaku uplatu prvo dlje!! sa 1.95, zatim zaokruzuje rezultat, i kona6no sabira sve takve zaokruzene rezu!tate. Bano je napomenuti da ukollko se u bilo kojem izrazu pojav! makar jedno prazno polje, tj. polje koje ne sadrii vrijednost (NULL polje), rezultat se takodertretira kao prazan (NULL). Stoga, prethodni upit nece u obzlr uzeti stanje kredlta sa brojem 10 i 11 (a upravo to nam i odgovara). Funkcija Avg koristi se na isti naCin kao i funkcija Sum, ali umjesto zbira racuna prosjecnu vrijednost (arilmeticku sredinu) izraza. Na prlmjer, aka zelimo izracunati prosje6nu vrijednost lzdatih kredita, zadacemo sljedeCi upit (kao rezultat trt3bamo dobiti 7136.36):
SELEc'.r Avg(IzllQS) FROM Kredit;

kao rezultat daje sljedeCi ispis:


UkupnoKredita

11
S druge strane, sljedeei upit
SELECT Count (Dug) AS UkupnoKredita FROM Kredit;

kao rezultat daje ispis


UkupnoKredita 9

Funkcije Max i Mi.n odreduju najve6u, odnosno najmanju vrijednost izraza navedenog kao argument i mogu se primijeniti na sve tlpove podataka, a ne samo na brojcane (pri tome se tekstualni podaei porede po abecednom kriteriju). Na prlmjer, ukoliko zadamo sljedeci upit
SELECT Max(Iznos) AS NajveciKredit, Min (Izdan) P,S DatumPrvogKredita
FROM Krech t;

zbog toga 5to za kredite broj 10 i 11 nije uneseno niSta u kolonu "Dug". Uz ime kolone maze se pisati i opcija DISTINCT, i u tom slucaju se broje samo redovi ko)i u toj koloni imaju razlicitu vrijednost. Na primjer, upit
SELECT Count(DISTINCT ImePrezime) AS UkupnoKl:ijellata FROM-Kredit;

kao rezuHat cemo dobiti sljedeci Ispis: DatumPrvo Kredita 2002-04-04 Ovakav rezultat smo dobili zbog toga sto je najveci iznos kredita 12000, a "najmanj]" (tj. najraniji) datum izdavanja je 4. april 2002. godine. Veoma cesto je potrebno izvrsiti uplt samo nad nekim od slogova u tabeli. Za to se koristi opcija WHERE iza koje slijedi nekLuvj!;1t. U tom slucaJu 5e obraduju samo slogovi koji zadovoljavaju zadani uvjet. Shena kao u Excelu, uvjeti sadrze izraze povezane relacijama "manje" ), "veee" (, "jednako" (=), "manje Hi jednako" (<-=),"\lece iii jednako" (>::.::) i "razI16ito" (<. Pored toga, prostiji uvjeti se mogu -po~ezivaii Y-~Ioenjje-uvjete.upotrebom riieei AND, OR i NOT, kOje redom imaju znacenja "1\ "ili"- i "ne". Za_:prqvjeru d?- Ii je neko polje prazno (NULL), mogu se koristiti specijalni operator! IS NU~4 r. IS ):J,GT 1~vLL. Opciju WHERE je najbolje ilustrirati na primjerima. Slljed] nekoliko primjera,"u kojiina'je:p"fvo mlveden problem, zatim odgovarajuci upit, i, kona6no, rezultat izvrsavanja upita.

kao rezultat _6e dati broj 6, zbog toga sto se u tabeli nalaze podaci za svega 6 razliCitih klijenata. Treba napomenuti da Microsoft Access ne poznaje ovu opciju. Count (*) prosto broii koliko ima redova u tabeli. Na primjer, upit
SELECT Count (*) FROM Kredi t i

proizvodi sljedeCi ispis:

fr01 J

Primijetim~ da je sistem kreirao genericko ime ExprG1, s obzirom da nismo zadali. opciju AS.

Funkeija Sum korlsti se u obliku Sum (/zraz). ana vrsi sabiranje vrijednosti Izraza koje b! se dobile iz_sva~og reda tabele pojedina6no, i maze se primijeniti sarno na brojcane tipove. Na primjer, upit
SELECT S-um{Iznos) FROM Kredit;

.. 202

203

/zfistati spisak svih kfijenata koji su dabffi kre~it sa rokam atp/ate 12 mjeseci.
SF,l,ECJ' DISTINCT ImePrezime FROM Kredit WHERE Period=12;

SELECT Count:(*) FRO!1 Kredit WHERE Izdan IS NOT NULL;

ImePrezime Mujo Mujid

P01 ' ::==J W


Bitno je zapamtlti da ako se ne navede opcija WIiERE, tada se obrada vrsi nad svlm redovima i'z tabeJe. NULL podatak moze dati pogresan rezultat, ako se ne vodi raeuna a navedenoj Cinjenlci.

Utvrditi koliko kredita je ispfadeno u ;znosu manjem iii jednakom 7000 KM na period kracl ad 12 mjeseci.
SELECT Count (*) FROM Kredit: i\lHER.l!: 1zn08<=7000 AND Period<12;

Utvrditi ko/iko kredita je izdano na 12, 24 iff 36 mjeseci.


SELECT Count (*) FROM Kredit WHERE Period;o12 DE Period",24 OR Period",36;

I ;X P'Ol
Iz/istati brajeve i datume izdavanja kredita koji su isplaceni u jufu 2002. godlne.
SELEC1' RrQj, Izdan FROM Kredi t
WHERE Izdan>ocDATE

Isti upi! se krace maze zapisati ovako:


SELE('T Count{*) FROM Kredit WHERE Period IN {12,24,36)i

Za izmjenu podataka u tabeli koristimo naredbu: UPDATE lme1'abele SErf UstaPridmiimnjo WHERE Uvjet

'2002-07-01' AND Izdan<=DA'l'E '2002-07-31.';

--Sroj

6 7

Izdan 2002-07-02 2002-07-02 2002-07-12


X BE'fWEEN

Umjesto uvjeta x>""a AND x<",b moze se koristiti fraza prethodni upit moze naplsati i kao:
SELEC'r Braj, Izdan FROM Kredi t

a AND b. Shodno tome se

Stavka WHERE U naredbl UPDATE maze se izostaviti, a za nju vrljede ista pravila kao i U SEI,ECT naredbi. ListaPridmZivrmja je !ista iskaza tip'a ImeKolone :;: Izraz razdvojenih zarezima. Izraz Izraz se izraeunava i dodjeljuje po!jima u ko!oni ImeK%ne za svakf red koji zadovoljava uvjet Uvjet, iii za Sve redove ukoliko je uvjet izostavljen. Ova je takoder najbolje ilustrirati na nizu primjera, u kOjima cerna prvo navesti problem, a zatfm odgovarajueu SOL naredbu koja rjesava problem.

Naknadno je ustanovljeno da se klijent, 6ije je lme zapisano kao Marko Markov/d, zapravo zove Mirko. !zvrsiti neophodne izmjene u bazi podataka.
UPDA'I'E Kredit SET ImePrezime", 'Mirko Harkovic' WHERE .ImePrezime-=' Marko Markovic' ;

WHERE lzdan BET'\IJEEN DATE '2002-07-01' AND DA'1'J)! '2002-07-31';

Ne smijemo zaboraviti da se u Microsoft Accessu datumi pisu na nestandardan naein, pa bi Isti upit u Accessu trebalo napisati ovako:
SELECT Broj, Izdan FROM Kredi t WHERE Izdan B;::;rvmEN #07jOlj2002j~ AND #07/31/2002#;

Doslo je do promjene kursa na triistu deviz8, zbog 6ega treba izvrsiti smanjenje duga svih klijenata za 12%. Izvrsiti neophodne izmjene u bazi podataka.
UPDATE Kredit SET Dug''''O. 8a'Dug;

Vazno je napomenuti da je jedini uvjet koji zadovoljava prazno polie (NULL) uvjet IS NtJL1~. To znaei da de upiti
SELECT Count(*) AS- Otplaceni_FROM Kredit WHERE Dug::.;O; SELECT Count(*) AS, Neotplciceni FROM Kredit I'IlHERE Dug<>O;

kao rezultate dati redom- brOjeve '3l6~ stO_Uk(;pno daje 9, mada u tabeli ima 11 kredita. Nedostaju krediti kod kojih dug nije niti jednak:ll-~iti le _raz!16it ad 0; a to su z~pravc; ~r~qit! gqje nema upisanih podatka 0 dugu. Broj-takvih ~redita mQzemo- oobiti upitom
SELEcr Caunt,(*") AS

Neob.i-~1j-<;iio'

FROM Kredit WHERE Dug IS

NUr~I.,;

U ovoj naredbi nalazi sa na prvi pogled 6udno pridruzivanje Dug",Q,B8*Dug. Treba voditi racuna da, za razliku od znaka ":;:" koji 59 koristi unutar uvjeta, znak ":;:" u pridruzivanju ne oznacava jed~ nakost u matematskom smislu, vee ga treba tumaCiti kao znak-dodje/e (0 eemu nas upozorava rljee SET). Stoga, pridruzivanje Dug"'O. 88*Dug znaci da postojeCi sadrzaj kolone "Dug" treba pomnozlti sa 0.88, i novodobijenu vrijednost ponovo smjestiti u koloriu-"DiJ~t: .. S_a prid,ruzivanjima slienog obi ika (poput BROJ:.::BROJ+l) ste se vjerovatno vee susreli u 'naslavi informatlke U osnovnoj skoli kada ste radi!i sa programskim jezlkom BASIC. Faktor 0.88 potiee ad 6injenk5e.da k~daod cjellrie (1 OO/c,) adbijemo 12% dobijamo 88%, sto je zapravo 88/100 iii O.8ff..lstu na!!?dbu- smo:mogli zapisatLi na s!jedeCi nacin, koji jasnije odrazava sta zaista radimo sa ~adFzajerri'~olon_?:"pug":
UPDATE Kredit SET Dug=Dug- (D1l9*12jl00);.

koj! ee, naravno, kaa_J0Zul!at_dati-br9] 2.-

Utvrditi kofiko kreditt1 fe do ,$,ada.-fsplaceno_(odnosno ukupan broj kredita clje je isplac;vanje poce/o, a ne mora nuino biti: z.avrseno).

Kredit bro} 10 izdan je 15. tebruara 2003. godine: Upisatf, ovu 'informacij~_lJ bazu podataka.
UPDATE Kre.dit S'I' Izdano:::DA'I'E '2003-02-15'
,~g=Iznos,

tgHERE B:roj",10;

204

205

Prlm!jetimo da sma uporedo sa postavljanjem datuma pridru?ivanjem Dug=Iznos "otvorili" kredit, tj. postavili da ie trenutno dugovanje iednako punom iznosu kredita. U slucaju da radimo sa Microsoft Accessom, isti upit ce, zbog razlike u naeinu zadavanja datuma, 91asiti ovako:
UPDATE Kredit SET Izdan""#15/02!2003#,Dug=Iznos \'illERE Broj",lO;

Pilanja i zadaci
1. Sta su lokalne, a sta umretene baze podataka? 2. Kakva je razlika izmedu sistema za upravljanje datotekama i sistema za upravljanje bazama podataka? 3. Cemu slute transakcione datoteke? 4. Koja je funkcija administratora baze podataka? 5. Kakva je razlika izmedu centraliziranih i distribuiranih baza podataka? 6. Sta je tehnologija kl1jentfserver i kakva ie njena uloga u upravljanju bazama podataka? 7. Sta znate reci 0 hijerarhijskim i mreznim bazama podataka? 8. Sta su relacione baze podataka i koji su njihovi osnovni elementi? 9. Objasnite naeine povezivanja tipa "jedan prema jedan", "jedan prema vise" i "vise prema vise". 10. Kako se rjesavaju povezivanja tipa "vise prema vise", i zasto je neophodna posrednicka tabela? 11. Bta je normalizacija baze podataka? 12. Sta su aplikacije baze podataka? 13. Opisite ukratko program Microsoft Access. 14. Sta su jezici za manipuJadju podacima? 15. Sta znate reci 0 jeziku SOL? 16. lsprobajte sve primjere iz ovog udtbenika vezane za SOL na sistemu za upravJjanje bazama podataka koji posjedujete na racunaru na kojem radite. '17. Pomo6u nekog od sistema za upravljanje baza podataka (moze i Microsoft Access) kreirajte tabelu koja opisuje skup ucenika neke skole. Nakon toga, postavlte SOL upite kojim cete odrediu imena i prezimena svih ucenika drugog razreda kojl imaju odlican uspjeh, kao j imena i pre~ zimena svih ucenika eija je starost izmedu 15 i 17 godina (podrazumijeva se da kreirana tabela mora sadrtavati odgovarajuce atribute koji sadrze trazene podatke). 18. Upoznajte se, uz pomo6 nastavnika, sa vizualnim postupkolTl kreiranja upita u Microsoft Accessu. Kreirane upite prikazite u SOL obllku (pomo6u opelje SOL View u View meniju) i uporedite njihov izgled sa onim SIO ste naucili 0 SQL-u. 19. Kreirajte bazu podataka sa tri tabele: tabela korisnika biblioteke, tabe!a gradova i tabela knjiga, prema modelu koji smo opisali kada smo govorili 0 relacionim bazama podataka. Pop unite tabele podacima kao u opisanom primjeru. Nakon toga, probajte sastaviti SOL upit koji ce izlis tati podatke 0 imenu i prezimenu, broju telefona, mjestu stanovanja, kantonu i imenu knjige koju je korisnik biblioteke zaduzio za sve korisnike koji su zadutHi barem jednu knjigu. Uputa: Da bi se ostvarila veza izmedu ove trl tabele, neophodno je u opeijl WHERE navesti uvjet da primarni kljucevi primarnih tabela moraju biti jednaki stranim kljucevima u sekundarnim tabelama. (Napomena: radi se 0 zadatku koji je namijenjen iskljucivo naprednim ucenicima). 20. Ukoliko mogucnosti dozvoljavaju,. upoznajte se uz pomoc nastavnika sa postupkom kreiranja obrazaca, izvjestaja i je.dnostavnijih aplikacija baze podataka uz pomoc Microsoft Accessa.

U prethodnom prim/eru potkrala se greska: pogresno su upisane 0 kreditu broj 10, a on zapravo los uvijek nije izdan. Ponisititi upisane informacije 0 kreditu koje su Izvrsene u prethodnom primjeru.
UPDA'i'E Kredi,t S1'T IzdanooNUl,L,Dug=!UL WHEHE Broj=10;

Iz prethodnog primjera je vidljivo da se naredba UPDATE moze korlsti i za brisanje pojedinih podatka u bazi. S druge strane, ukoliko zelimo da brisemo jedan iii vise kompletnih slogova (redova) iz baze podataka, koristimo naredbu DELETE, koja ima sljedeCi oblik:
DELETE FROM lineTLlbele WHERE Uvjet

Stavka WHERE U naredbi DELETE takoder se moze izostaviti, ,I u tom slucaju se brisu svi redovi tabele, inaee se brlsu samo redav! koji zadovoljavaju postavljeni uvjet. ! ovu naredbu cemo ilustriratl na nekoliko prakticnih primjera. Klijent Markovic je odustao od svog kredita bro} 9. Izbrisati podatke 0 ovom kreditu Iz baze.
DEIJETE FROM Kredit WHEHE Broj",9;

Izbrisati Iz baze podataka sve zavrsene kredite, lj. kredite kod kojih }e dug }ednak O.
DELETE FROM Kr:edi t WHERE DLJ.9"'O i

Nakon unosa podataka u tabe/ll "Kredit" u06eno je da je doslo do prihvata velikog dije/a pogresnih podataka. Zakljuceno je da je fakse izbrisati sve podatke pa ih iznova unijeti, nego ispravljati ih pojedina6no. Stoga'je potrebno Izbrisati kompletnu labelu.
DELETE FROM Kredit;

Oa bi se postigli bolji efekti u radu sa SOL-om kako bi se mogle obaviti i 'kompleksnije transakdje. nad bazama podataka, bilo bi potrebno deta!jnije upoznavanje sa relacionim modelima, funkcionalnim zavisnostima, ulogom primarnog i stranog kljuea, i kreiranjem slozenih upita. Medutim, izloteni pregled SOL-a sasvim je dovoljan da se shvate osnovne ideje manipuliranja sa podacima u bazi podataka.

206

207

']1 :1 I
'1
-"1
11

2.5 iNTEGRIRANI PROGRAMSI<] PAKETI


2.5.1 Inlegrirani pakeli za uredsko poslovanje
Potreba za razvojem integriranih programskih paketa nastala je onog trenutka kada se pojavHa potreba da se rezultati obrade podataka, dobijeni pom06u jednog programa, iskoriste kao u!azni podad u nekom drugom programu. Na primjer, sasvim je 10gi(:na potreba da se podad dobijeni lz neke baze podataka dodatno abrade u programima za tabelarne proracune iii da se graficki prikazu pomo6u programa za poslovnu grafiku. Medutim, veGina programa nije bila dizajnirana tako da moze prihvatati podatke koji su nastall kao rezultat rada drugih programa. Izlaz iz ove situacije naden je kreiranjem visenamjenskog softvera. Postoje dvije vrste visenamjenskog softvera: integriran! program; (eng!. integrated software) i integrirane programske kolekcije (eng!. software suites), mada S8 cesto obje vrste nazivaju prosto integriranim programsklm paketima.
Integrirani programi omogu6avaju kombiniranje osnovnih funkcija vise razliCitih aplikativnih programa, poput obrade teksta, tabelarnih proracuna, upravlj'anja bazama podataka, rada sa,graflkom i racunarskih komunikacija u jednom jedinstvenom programu. Ovakvi programi obieno u svom imenu imaju ugradenu rijec "Works". Najpoznatlji predstavnici ovakvih programa su Microsoft Works, PerfectWorks, Lotus Works, Claris Works i AppleWorks, Integrirani programi obitno imaju znatno slabije mogucnosti od zasebnih programa koji obavljaju" pojedine funkcije ugractene u njih< Na primjer, Microsoft Works posjeduje mogucnosti obrade teksta, tabelarnih proracuna j upravljanja bazama podataka, ali su te mogucnosti znatno manje nego mogucnosti namjenskih programa Microsoft Word, Microsoft Exce/i Microsoft Access. Treba napomenuti da je danas prillcno tesko povuci granicu izmedu namjenskih i integriranih programa. Na primjer, Microsoft Word posjeduje neke mogucnosti programa za tabelarne proracune, lako mu to nije osnovna namjena. Microsoft Excefposjeduje neke mogucnosti kako programa za obradu teksta, taka i programa za upravljanje bazama podataka, itd.

I
I

'il

;'\

~:j

1
;~J
,il
": ,

'I

1
i

rl
;',i

{j

'(~j
;'i-~

'.;

,,;1

[I
ti
d

"I
':j
;/)

';1

j
,,:j
,
0}

S obzirom na navedena ogranitenja, prirodno se postavlja pitanje zasto uopce koristiti integrirane programe. Razlog je, u sustini, veama jednostavan. Momma krenuti od jedne cinjenice koje, nazalost, na nasim prostorima mnogi jos uvijek nisu svjesni. Programi poput Microsoft Warda, Excela i Accessa se PLACAJU, i to skupo! To sto ria n8sim prostorima skora de necete naei
niti jedan racunar na kojem se ne nalaze instaliralli ovi programi posljedica je iskljucivo nepostojanja zakonske regulative koja sprecava Uegalno kopiranje softvera. Btaga, nimalo nije cudna to stc na nasim prostorima veJiki broj korlsnika dotfvljalta Word, Excel, itd. kao sastavne difelove racunara, a ne Irao netto sto treba kupiti i platiti! Medutim, u vecini drugih

:
";j -::',i
"
C"

".

,",' ;!
,;; ',;'1
\'1

'~i ;:"

\'i

drzava nije taka, i za ilegalno kopiranje i distribudju softvera, kao i koristenje softvera koji nije legal~ no nabavljen j instaliran, predvidene su velike kazne (ukljucuju6i 1. zatvorske). Posmatrajmo sada situaciju sa softverom sa aspekta nekoga ko treba da pIaU za njegovo koristenje. Tacno je da su npr. Word, Excel i Access veoma m06ni programi, ali veCini prosjecnih korisnika ne treba vise od 10% mogucnosti ugradenih u ,ove programe. Ukoliko npr. Microsoft-Works moze da zadovolji sve potrebe nekog korisnika, njemu se mnogo vise isplati nabaviti neki program poput njega, koji kosta ispad 100 dolara i koji podmiruje sve njegove potrebe, nego pl@cati dVQstr-uko ,vecu- 'sumu samo, za Microsoft Word, eije mogucnosti ne6e koristiti. Pored toga, integrirai1i progr,a~mf trQse-- mnogo manje memorijskih resursa. Na primjer, U verziji 97 u kojoj je kompletan Microsoft Wprk zauzimao svega 7 megabajta na hard disku, sam Microsoft Word je- zauzima~rpre.~o ~5' m~gabajta! Dbigledno je da koristenje integriranih paketa korisniku ostavlja vise prostora na.rlisku ia:sbft;ver,-koji mu zaista treba. Korisnik koji placa softver, dobra 6e razmisHti sta mu treba a St?-nef-~re-ba, i "nece-instalirB.ti na disk programe koje nece koristiti, tek da mu se "nadu pri ruel akO l1!0zda.zatreba": Za razliku od integriranih programa, integriraf)e programske-"kde/(cije predstavljaju skupinu odvojenih aplikacija, poput programa za obradu teksta, t~belarne p-~oracune, itd. koje -je proizveo isti

208

209

prozvoda6, koje imaju isti iii sliean korisnieki interiejs, kOje mogu medusobno razmjenjivati podatke, i koje se mogu kupiti u paketu po eijeni koja je znatno nita ad eijene svake pojedinaene aplfkacije< Visa djena ovih programskih kolekcija u odnosu na integrirane programe dovodi do toga da je u zemljama sa razvijenom softverskom kulturom ovaj vid softvera znatno zastupljeniji l) radnirn orga~ nizacijama nego kod individual nih korisnika. Kako ave programske kolekcije sadrze programe bez kojih je nezamislivo poslovanje bilo kakve radne organizacije, one se obicno nazivaju lntegrirani paketi za uredsko poslovanje, iii, u zargonu, "Office' paketi. U najvaznije integrirane pakete za uredsko poslovanje spadaju Microsoft Office koji se isporucuje u dvije verzije: "standardnoj" i "pro" fesionalnoj", zatim IBM Lotus SmartSuite koji se isporucuje u sarno jednoj verzlji, i Corel WordPerfect Suite koji se- takoder isporu6uje u dvije verzije (pri 6emu se "profesionalna" verzija naziva Office Professionan.

odredivanje kriticnih aktivnosti u projektu sa aspekta vremena zavrsetka projekta iii sa aspekta troskova, kao i odredivanje postupaka koje treba preduzeti u cilju efikasnije realizacije projekata.

2.5.2 Inlegrirani pakeli za elektronicku Irgovinu i eleklronicKo poslovanje


U posljednjih desetak godina, intenzivan razvoi informacionih tehnologija, a narocito racunarskih

mreia, u potpunosti je promijenio k!asicni pristup trgovini i poslavanju. Dok se nekad trgovina i
poslovanje nisu magU nl zamisHti bez neposredne razmjene dobara i novcanih sredstava, modeme metode trgovine i poslovanja svode se' na razmjenu informacija izmedu raeunara, U skadu sa novim tehno!ogijama, razvill su se eiektronicka trgovina (eng1. Electronic Commerce ill. E~fominerce), kao i elektronicko poslovanje (eng!. Electronic Business iii EMBusiness). Veoma cesto se i elek~ troni6ka trgovina i elektronicko poslovanje nazivaju jedinstvenim terminom E-Commerce. Pod efektroniekom trgovinom podrazumijevamo kupovinu iii prodaju dobara iii usluga putem globalnih ra6unarskih mreza, a naro6ito Interneta j njegovog setvisa World Wide Web, bez il<akvog fizi6kog kontakta izmedu trgovca i kupea. E!ektronicka trgovina maze se definirati i kao proces uprav" Ijanja finansijskim transakcijama putem globalnih ra6unarskih mreza od strane pojedinaca iii kompanija. Ovaj proces ukljucuje kako maloprodajne, taka i veleprodajne transakcije. Sustinu elektronicke trgovine cine sistemi i postupci pomoeu kojih dojazi do razmjene razliCilih iinansijskih dokumenata i informacija. Ovi sistemi uklju6uju transakcije kredltnim karticama, narudtbama i finansijskim izjavama, kao i transakcije raznim elektronickim ekvivalentima uobicajenih trgovinskih sredstava. Tako je elektroni6ko poslovanja uvelo citav niz novih termina kao sto su elektronicka gotovina (E~Cash), elektronicko pJacanje (E-BilJing), elektronicki cekovi (EMCheques), eJektronicki ratun! (E~invoices), itd. Elektronlcka trgovina predstavlja nastavak tehnologije eiektronicke razmjene podataka, odnosno EDt (Electronic Qata Ihterchange) tehn%gije. ED/ tehnologlja predstavlja skup konvenclia za razmjenu poslovnih podataka izmedu umrezenih racunara. Ova tehnologija koristila se i prije pojave Interneta, i obicno se koristila u razmjeni podataka izmedu korisnika koji su vee bili u neposrednom kontaktu putem prlvatnih mreza, na primjer za razmjenu podataka izmedu kompanija koje su poslovale u kooperacij1.
E/ektronieko poslovanje je mnogo sira djelatnost od e!ektronicke trgovine, mada se i ona obicno naziva izrazom E-Commerce, kao sto smo vee napomenuli. Pod eJektronickim poslovanjem podrazumijevamo vodenje pos/ova putem ra6unarskih mreta, sto ne podrazumijeva samo kupovinu i prodaju, nego i kompletnu brigu 0 svim klijentima i poslovnim partnerima, kao i organizaciju poslovanja u sopstvenoj firmi i organizaciju nacina saradnje sa klijentima.

Prednosti integriranih programskih kolekcija sastoje se ne samo u niio! cijeni, nego i u sU6nm rukovanju sa programima ko]i cine kolekciju, Obicno je dovo!jno upoznati jedan program iz kolekci~ je da bi se sa lakqeom koristili i ostali programi iz kolekcije, Pored toga, razmjena podataka izmedu pojedinih programa iz iste kolekcije ne bi trebala da predstavlja nikakav problem. S druge strane, nedostatak integriranih programsklh kolekcija je tipicno velika zauze6e prostora na disku. Na prim" jer, Microsoft Office 97 zauzima 120 megabajta, dok Corel WordPerfect Suite zautima 157 mega" bajta prostora na hard disku (uporedite avo sa C/arisWorksom koj! zauzima 13 megabajta). Na nasim prostorima, ubjedljivo najzastupljeniju in~egriranu program sku kolekciju predstav!ja programski paket Microsoft Office, ko]i je instaliran na gotovo svim racunarima sa kojima se mozete susresti (naza!ost. naj6esce i!egalno). Ovaj paket u sebi sadrii Citav niz programa. 0 mnogima ad njih, kao-sto su
Microsoft Word, Microsoft Excel, Microsoft Access, Microsoft PowerPoint, Microsoft Photo Editor

i Microsoft Organization Chan vee smo govori!i. Pored ovih programa, Microsoft Office sadrzi i niz drugih programa (ovisno od verzije), ad kojih cemo spamenuti Microsoft Scheduler, koji predstavlja kombinaciju elektroni6kog kalendara, elektroni6kog rokovnfka i efektroni6kog podsjetnika, zatim Microsoft Outlook, koji predstavlja kombinaciju komunikacionog progiama i organizatora /i6nih informacija (0 ovom tipu programa smo govorili u prvom dijelu udzbenika), Microsoft Binder koji omogucava objedinjavanje dokumenata kreiranih pomo6u razlicitih komponenti paketa Microsoft Office, Microsoft Publisher, koji predstavlja jednostavniji program za stolno izdavaslvo, kao i Microsoft Project, koji spada u programe za rukovodenje projektima, 0 kojima cemo detaljnije govoriti u nastavku teksta"
Programi za rukovodenje projektima u posljednje vrijeme cesto saCinjavaju neizostavan dio

ozbiljnijih paketa za uredsko poslovanje. Pod projektom, u opcem slucaju, podrazumijevamo skupinu postupaka i resursa koji se moraju organizirati sa ci!jem poslizanja zadanog cilja u zadanorn vremenu. Programi za rukovodenje projektima'koriste se za pfaniranje, organiziranje i upravljanje resursima, troskovima i ljudstvom koji su neophodni za zavrsetak projekta u predvidenom vremenu" Ovakvi programi obavezno posjeduju moguenost grafickog prikaza planir~1nih vremena po6etaka i zavrsetaka pojedina6nih posjova od kojih se sasloji proje_kat, kao i-pri~aza stvarnih vremena kada su ti poslovi i zavrseni, sto omogucava !aksu organizaciju preostal_ih-zadat~ka,koji jos nisu obavljeni do trenutka kada se vrsi analiza. Primjeri programa zei rukovooelJJe projektir:na su Harvard Project Manager, Microsoft Project, Suretrack Project Mailagiit j Ma'!!ifJerPro."
Gantolfi (engL Gantt) dijagrami i PERT (Erogram !;sa!uaton .Bevi,ew.I~Ghnique) "dijagrami. Gantovi dijagrami koriste niz horizontalnih linija iii staplea da prikazu poe~taktraianje l'kraj svake predvidene

U programima za rukovodenje projektima obicno se z~,.9rafi~i prikaz"-korlste dva tipa dijagrama:

aktivnos1i (pri cemu jedinica mjerenja vremena nlQze varjratl o~ reda-ii1lrJute"doTeda godrne). Ovi dijagrami pomai:u da se uoei da Ii su sve aktivnosti zavrseneu predvldenQm vremenu. Za razliku od Gantovih dijagrama, PERT dijagrami prikazuju "ne sarno vremf!rf~" negoJ odnose izmedu pojedinih aktivnosti u projektu. Ovi odnosi se prikazuju pomoeu linija koje 'poyeiuju graficke bJokove koji pred~ stavljaju pojedine aktivnosti. PERT-dijagrami olaksavaju procje~u trajanja po)edinih etapa projekta,

Uvodenje elektroni6ke trgovine I poslovanja irnali su ogroman utjecaj na bankarstvo, Veeina banaka danas koristi transakcione terminale na svojim salterima i automatizirane sa/terske masine (tzv. bankomate) odnosno ArM (8utomatic Ialler Machines) masine (ave masine n~maju nikakve veze sa ArM mretama 0 kojima smo govorili u ptvom dije!u udzbenika), koje su elektronlt_ki povezane sa racunarima u banei. ArM masine su inteligentni terminali koji automatski me 'reviziju': klijentovog bankovnog racuna, odnosno stednih uloga, kao j druge bankovne usluge za klilenta~,~: banke. Na-taj na6in ostvaruje se elektronicki transfer sredstav8, poznat pod skraeenim'hazivom EFT-(EJectronie Eunds Iransfer), koji ce u bliskoj buducnosti u potpunosti z"amijeniti gotovirn{i". eekove kao osnovno sredstvo placanja. _:_" '. Jasno je da se elektronicka trgovina i poslovanje ne mogu realizirati bez oct"govaraju6e"_ sofi" -- . verske podrske" Skup medusobno povezanih aplikacija koje sluze za podrsku elektroni6koj"ctrgovlni i poslovanju formiraju integrirane pakete za elektronicku trgovinu i pos/ovClnje,"medu kojima-'je'najpoznatiji paket Oracle Financial. Ovi integrirani paketi moraju sadrzavati veliki. b~oj karakte-

210

211-

risticnlh funkclja, kao sto su abrada prodajnih transakcija, kontrola nabavke i razmjestaja inventara, analiza raGuna i prodaje, prijem i pfacanje ratuna elektronickim putem, upravijanje kreditfma, vodenje pfatnih spiskova j analiza rada, vorJenje knjiga kupaca i dobav/jaca, vodenje gfavne knjige poslovanja, ltd. Elektroni6ka trgovina i poslovanje postaju sve zastupljeniji u.praksi, zbog toga sto dovode do smanjenja troskova poslovanja. Jasno je da je razmjena male kolicine podataka preko racunarske mreze jeftinija, brza i u- veeini slu6ajeva pogodnija nego komunikacija putem kurira iii cak i komu~ nikacija putem telefonskih razgovora. Medutim, osnovni problem kod elektroni6ke trgovine i poslovanja je problem sigurnosti. Globalne mreie poput Interneta su dostupne isuvise velikom broju Ijudi, tako da se vellki broj korisnika ustrutava da salje osjetljive podatke (poput brojeva kreditnih kartica) putem mreze ra6unara zbog straha da ne dopadnu u ruke zlonamjernih pojedinaca. Me6utim, kako su se mnoge organizacije uvjerile u neslucene' pogodnosti koristenja elektronickog poslavanja, danas su citavi timovi strucnjaka angazirani na unapredenju sigurnosnjh sistema ko]i bi trebali da vjerovatnocu zloupotrebe svedu na minimum. Danas je u upotrebi standard za sigurne transakcije putem mreie pod nazivom SET (Secure Electronic Iransactions), koji su za potrebe sigurnog elek" tronickog poslovanja razvili Visa, MasterCard, IBM j druge kompanije.

teksta, poput Microsoft Warda, ugradiH u sebe vellki broj mogucnosti koje su prije bile svojstvene iskljutivo programima za stolno izdavastvo. Bitna razlika izmedu danasnjih tekst procesora i pro" grama za stolno izdavastvo je u cinjenici da je primama funkcija tekst procesora ipak i dalje obrada te/(stualnih dokumenata, dok je podrska radu sa grafikom i specificnom obHkovanju teksta cesto izvedena na prllicno nezgrapan nacin koji je pogodan sarno za neprofesionalne j poluprofesionalne primjene. Tekst procesori lmaju velike mogucnosti vezane za uredivanje teksta, u koje spadaju mogucnost pretrage i zamjene teksta (engl. search and replace), provjere pravopisa i gramatike, automatske korekclj'e gresaka, i drugih zanimljivlh mogucnosti sa Kojima smo se upoznal1. S druge strane, mogucnostl uredivanja teksta u programima za stolno izdavastvo svedene su sam~ na najnuzniji minimum. NjillOV zadatak je da omoguee podesavanje izgleda stranice do najsitnijih detalja~ koji ukljutuju sve moguce natine pozicioniranja proizvoljnih dijelova teksta i slika na straniee, prijeloma teksta u vise stupaca, izmjene veli6ine, baja, nijansi, svjetline, kontrasta i pozadine sllka i dijelova teksta, itd. Kao sto sma vee rekli, vrhunski tekst procesorl posjeduju izvjesne moguenosti DTP programa, ali ni izdaleka u onoj mjeriJao pray; GTP programL Na primjer, Microsoft Word omogucava prijelom teksta u vise kolona, ali ne omogucava da se tekst iz trece kolone na jedanaestoj stranici automatski nastavi u prvoj koloni pedeset i sedme stranice, sto je testo potrebno priiikom kreiranja raznlh magazina, casopisa, itd. Takoder, Microsoft Wordomogucava da se uz pomoe TextBoxobjekta (o' kojem smo ranije govorill) tekst pozicionira na proizvoljno mjesto u dokumentu, pa cak I preko neke od ubacenih slika. Zapravo, upravo je TextBox objekat kljucni objekat koji daje Microsoft Wordu bitna svojstva GTP,programa. Medutlm, previse intenzivna upotreba TextBox objekata znatno komplicira rad sa dokumentom, jel' je svaki TextBoxobjekat prakticno neovisan jedan od drugog (mada je moguce podeslti da se tekst "preljeva" lz jednog TextBox ob~ekta u drugi). Razliku izmedu vrhunskih tekst procesora j DTP programa najbolje mozema ilustrirat\ na konkretnom primjeru. Na sHei sa desne strane prikazan je izgled tri stranice, koje sadrte potpune isti tekst i i!ustracije, samo ,sto su organizlrane na razliCit naCin. Mada je principijelno moguce ob!iko~ vati stranice na prikazan naCin i u Microsoft Wordu, za postizanje ovakvog izgleda potrebno je uloilti i truda i vremena. Ukoliko smo vee dobili dokument oblikovan na jedan ad tri prikazana na6ina, a ielimo ga preoblikovati na neki od preostala dva naCina, taj posao moze biti izuzetno naporan 1 dugotrajan ukoliko koristimo Microsoft Word. S druge strane, u namjenskim GTP programima, avakvo oblikovanje i promjena oblikovanja Iz jednog u druga dva prikazana naCina, mogu se obaviti veoma brzo, uz pomoe mnoStva specijalnih komandi namijenjenih upravo za ovu svrhu. . Programl za obradu teksta ko]i posjeduju DTP svojstva mogu dobro 'posluziti svrsi sve dok se lie zahtljeva veliki kvalitet stampe u boji. Preeiznije, Bve dok se finalni otisak proizvodi pomocu stampaca (npr. laserskog) u jednom pro/azu, bilo direktno na papir, bilo na paus~papir rad] riaknadtiog umnozavanja pomoeu masina za stampanje zasnovanih na raznim fotopostupcima, oV~kvi programi mogu zadovoljiti. S druge strane, za potrebe visokokvalitetne stampe u boji, papil' prolazi kroz masinu za stampanje cetiri pula, prj cemu se svaki put otiskuje samoJedna od cetiri osnovne boje CMYK modela (cijan, magenta, tufa i crna) 0 kojem smo govorili u pogJavlju 0 racunarskoj graficL Stoga, programi za stolno izdavastvo moraju biti u stanju da pripreme cetiri advojene verzije dokumenta, kOje se obicno nazivaju separacije, od kojih svaka sadrii informaclje samo o jednoj komponenti boje u dokumentu. Za sada, ovakvu mogucnost ne posjeduje nitijedan program
213

2.5.3 Integrirani paketi za slolno izdavas!\lo


Sa pojmom stolnog izdavastva upoznali sma S8 jOs u prvam dijelu ovog udibenika. Medutim, kako su uz ovaj pojam danas prisutne brojne nejasnoce, naroCito u vezi sa razl1kovanjem stofnog izdavastva i abrade teksta, na ovom mjestu cemo malo detaljnije analizirati pojmove vezane za stolno izdavastvo, kao i odgovarajueu softversku podrsku ovaj, relativno mladoj primjeni racunarsklh tehnologija. Mada program1 za obl'adu teksta postoje vee decenijama, njihova primjena je dugo vremena bila ogran/cena iskljucivo na pisanje dokumenata ciste tekstualne sadrzine, poput pisama, dopisa, clanaka i slicnih dokumenata. Za potrebe pripremanja knjiga, brosura. navina itd. programi za obradu teksta se nisu mogli koristiti, jer nisu omogucavali mijesanje slika i teksta, proizvo!jan raz~ mjestaj i oblikovanje teksta na stranici, itd. Tadasnjim izdavaCima na raspolaganju je bio jedino metod "makaze lljepilo" (engl. "cut and paste" u bukvalnom smislu), gdje su Se komadi teksta i slika bukvalno izrezlvali pomoeu mal<aza i lijepili na praznu stranicu, da bi se sadrzaj stranlce obl\kovao po zelji. Oblikovana stranica se kasnije umnozavala raznim fotopostupc1ma. Situacija se drasticno promijenila prije nepunih dvadesetak godina, pojavom programa Aldus
PageMaker (prva verzija bila je namijenjena iskljucivo za ra6unar Apple Macintosh). To je bio prvi

program koji je omogueavao proizvoljno razmjestanje kako tekstualnih taka j slikovnih komponenti na stranice dokumenata koj] se stampaju. Pojava ovog programa izazvala je pravu revoluciju u izda" vackoj djelatnosti, jer je omogueila da metodi tipa "makaze i Ijepilo" odu u zaborav (komande "Cut", i "Paste" koje se koriste u mnogim programima dobile su ime upravo kao'podsjetnik na dane kada su izrezivanje i lijepljenje u bukvalnom smislu bile jedine tehnike oblikovanja stranica). Kako je Afdu? PageMaker omogueio obavljanje izdavastva uz upotrebu _samo stolnih (engl. desktop). racunara i'. odgovaraju6ih izlaznih uredaja (stampaca), bez pomagala poput makaza i Ijepila, ovakvo izd,;1Vastvo uskoro je dobilo naziv stolno izdavastvo ill DTP (Qesk!op Eub!ishing), Uskoro nakon pojave.Aldus PageMakera, pocell su se pojavljivati i drugi DTP programi. Ne tako davno, obrada teksta i stolno iZdavastvo bile su dvije posve odvojene stvari. Obrada teksta se i dalje bavila, kao sto joj ime kate, isklju6ivo obradom dokumenata tekstuaine prirode; L-tQ' dokumenata koji nisu zahtijevali specifican razmjestaj teksta na stranici (poput prlkaza teksta u vis~ stupaca). Za mijesanje teksta i grafike, kao i za specificno oblikovanje teksta, kOrlstili su se iskljucivo" programi za stolno izdavastvo. Danas je situacija bitno druga6ija, jer su vrhun~ki programi za ~bradu
212

koji se svrstava u programe za obradu teksta. Takoder, savremeni DTF programi mogu neposredno da komuniciraju sa stamparskim masinama kOje koriste postupke fotoosvjetljavanja. U mnogim definicijama programa za stolno izdavastvo, upravo se moguenost kreiranja CMYK separacija ! kOij1uniciranja sa profesionalnim stamparskim masinama korfst! kao kriterij da Ii program spada u kategorjju vrograma za stolno izdavastvo iii ne. Za potrebe stolnog izdavastva obicno se ne prave programske kolekcije, vee integrirani programi, jer je funkcije, koje zahtijeva stolno izdavastvo, jednostavnije obav!jati ukoliko su sve prisutne u isto vrijeme unutar istog programa. Za profesionalne potrebe danas se najvise koriste integrirani program] QuarkXPress i Adobe PageMaker. Prefiminarna verzlja ovog udzbenika uradena je uz pomoc programa Microsoft Word, medutim, za kreiranje finafne verzije u obliku koji se moze starnpati u profesionalnoj stampariji koristen je upravo QuarkXPress. Microsoftov OTP program Microsoft Publisher, koji je odnedavno sastavni dio programske kolekeije Microsoft Office, znatno zaostaje po kva!itetu u odnosu na prethodna dva programa i, eventual no, moze da posluzi za poluprofesionalne,primjene. Nekada je mnogo u upotrebi bio OTP program Ventura Publisher, ali su ga danas uglavnom potisnuli moeniji DTP programi. Mada je bitna karakteristika stolnog izdavastva rad sa slikama, program] za rad sa slikama obitno se ne smatraju sastavnim di]elom paketa za stolno iidavastvo. Ipak, firma Adobe izdala je j integriranu prograrnsku kolekciju pod nazivom Adobe Publishing Collection, koja pored vee pomenutog programa Adobe PageMaker i programa za rad sa rasterskorn grafikom Adobe PhotoShop, ukljuGuje i program' Adobe Illustrator za rad sa vektorskom grafikom, kao i Adobe Acrobat koji omogu6uje Izdavanje elektronickih publikacija u tzv. PDF (eortable Qocument format) zapisu, koji se moze citatl i stampati na proizvoljnom racunaru, neovisno od vrste racunara i operativnog sistema koji se koristL Veoma je vazno napomenuti da, ukoliko se neki dokument treba dacoblikuje uz pomoc OTP programa, nije poteljno vrsiti njegovo prethodno oblikovanje u programima za obradu teksta. Na primjer, dokument se maze u Microsoft Wordu veoma lijepo oblikovati, ali ce ta oblikovanja samo praviti probleme kada se kasnije dokument bude uCitavao u DTP program. Na primjer, prllikom ucitavanja dokumenta radenog u Wordu u Drp programe, svi objekti specifitni za Word u najboljem slucaju zadriayaju sarno one moguenosti manipulacije kak:ve su postojale 1u Wordu, a nerijetko se desava i da se neka spec1ficnlja oblikovanja jednostavno izgube. Posebno, TextBox objekti, koji u Wordu predstavljaju "iscjepkane" nepovezane objekte, takvi ostaju i nakon uCitavanja u DTPprograme (pod uvjetom da ih OTPprogram uopce uspije prep'oznati, sto ne mora biti slutai). 8toga 6e nakon uCitavanja oblikovanog dokumenta u OTF programe, dokument u najboljem slutaju zadrzati onakvu strukturu kakvu je imao i u Wordu, time nismo nista postigll. Da blsmo iskoristili punu moe orp programa, dokumente je potrebno preoblikovaii, sto je mnogo lakse Liraditi ukoliko izvorni dokument nije uopce obllkovan. 8toga se, prilikom rada sa OTP programima, prvo POmQeu nekog od tekst procesora prlpremi neoblikovan, iii eventual no, samo neznatno'oblikovan tekst (bez ikakvih sloienijih zahvata). Zatim 58 kreiraju crtati pomocu nekog od programa za crtanje koji je' oobro podrian u OTP programima (vjerovatno najbolji izbor je Corel Draw). _ Sk!?nirane Jotografije _se posebno doraduju u programima za obradu rasterskih slika (Adobe PhotoShop je n.ajees6Lizbor). Tek nakon sto se pripreme sye ove komponente, one se uz pomoc OTP' f?fograma--u6bJlcuj.y .l,rkonacan dokument.

crteza sa uputstvima za izradu i montazu. Na primjer, CAD programi pomatu arhitektima u dizajniranju i projektiranju zgrada i drugih gradevina, inzinjerima u dizajniranju i projektiranju automobila, aviona, elektronitkih uredaja, puteva, mostova itd. Na prvi pogled, veGina CAD programa podsjeca na programe za crtanje, jer se pomocu njih obicno crtaju razne vrste specijaliziranih crteza, poput nacrta, shema elektricnih i elektronickfh uredaja, kao i tehnickih crteta koji se susre6u u masinstvu i arhitekturi. Medutim, vazno je naznaciti da su CAD programi zapravo integrirani programi (a ponekad i kompletne integrirane ko/ekclje programa), jer je crtanje samo jedna od njihovih mn'ogobrojnih funkcija. Pored crtanja, CAD programi omogueavaju razficite vrste proracuna, simufacije rada slozenih uredaja ifi sloienih tehno!oskih procesa, itd. Takoder, za razliku od klasicnih programa za crtanje, CAD programi namijenjeni za kreiranje tehnickih crteta mnogo vise painje posvecuju problemima vezanim za precizno zadavanje dimenzlja pojedinih dijelova crteia i njihovo tacno pozicioniranje. Konkretne funkcije koje mogu obavljati CAD programi zavise od osnovne namjene za koje su predvideni. Taka postoje specijalizirani CAD programi za potrebe arhitekture, masinstva, elektrotehnike, itd. Mnogi CAD programi omogucavuju crtanje u tri dimenzije i mnogobrojne manipulacije sa trodimenziona!nim objektima u prostoru, sto ih tijesno povezuje sa programima za trodimenziona!nu grafiku. Na taj nacin, projektantu js omogueeno da vidi objekat koji se projektira iz svih pravaca, pa cak i iz pravaca iz kojih je u stvarnosti posmatranje nemoguce (npr.,posmatranje unutrasnjosti zatvorenog objekta). Primjeri CAD programa namijenjenih pocetnicima su Autosketc/l i CoreICAD. Izvjesni slo2':eniji CAD programi dopustaju dizajnerima analize tipa "sta bi bilo kad bi bUo" (slicno programima za tabelarne proracune). Ovakve analize mogu drasticno smanjiti vrlleme potrabno za projekliranje nekog uredaja. Procjenjuje se da je, uz pomoc CAD programa Parametric, firma Motorola ustedjela 9 mjeseci vremena prilikom razvoja svojih mobilnih telefona. CAD programi se ne koriste sarno u tehnici. Tako, na primjer, postoje CAD programi ko]i p.omazu korisnicima da optimal no opreme stan namjestajem, urede bastu, organiziraju poljoprivredno zemljiste, pa tak i da kreiraju izgled frizure koja im najbolje odgovara. U modnoj industriji CAD programi se obilato Imriste za dizajniranje odjevnih predmeta. Tako se, mnogi odjevni predmeti prije nego sto se zaista proizvedu, prvo isprobavaju na "virtualnim manekenima", ko]i nisu nista drugo nego specijalno dizajnirani trodimenzionalni grafieki objekti.
CAD programi ko]i omogucavaju izrade skica i nacrta ponekad se nazivaju i CADD (Qomputer Aided Qesign and Qrafting) programi. Oyakvi fA" If:, ,) programi posjeduju ugradenu bogatu kolekciju "', vee kreiranih simbola i objekata, ko]i .~, omogucavaju brzo kreiranje raznih nacrta (poput tlocrta neke gradevine, ltd.). Najpoznatiji program ove vrste je AutoCAD koji je proizvela firma AutoDesk (primjer projekta uradenog ovim programom prikazan je na slici sa desne strane). AutoCAD je, op6enito gledano, vjerovatno najpoznatiji i najvise koristen CAD program. Danas se rad bilo kojeg arhitekte, inzinjera gradevine iii masinskog intinjera, ne moze ni zamislitl bez upotrebe ovo9_ programa. Pomocu njega su u posljednjih dvadesetak godina projek, _, _ tirani zaista raznovrsni objekti. Neki poznatiji reprezentativni primjeri ukljucuju olimpijski:sladioh Z8..potrebe ijetnih oiimpijskih Igara 1996. godine u Atlanti, masine za 6iscenje tepiha pomoGu-pa're~ pa cak i muzi6ke instrumente poput elektricne gitare Gijl je vlasnik rok muzicar Eddie Van Hal/en ..

2.5.4 Integrirani paketi za dizajniranjeiprojekliranje


Racunari se odavno koriste za potrebe dizajn[ra~j~::j' proje~tifa:nj~ u raznim oblastima intinjerskih djelatnosti. Program; za dizajniranje i projektiranje uz pomo6 racunar8 iii CAD (gomputer Aided Qesign) program; su programi koji su namijenjeni ia -kompletno izvodenj'8 projekta nekog sastavnog dijela, uredaja, iii masine, pocev ad idejnog projektaTskice, pa sve do detaljnih tehnicklh
214

CAD programi veoma cesto cine integrirane pakete sa programima za proizvodnju uz pomoc racunara, odnosno CAM (Computer Aided Manufacturing) programima, taka da takve ,pake~e obicna nazivamo CAD/CAM. CAD/CAM paketi omogueavaju da se proizvod koji je dizajniran uz poma6 CAD programa proslijedi kao ulaz u CAM programe, koji upravljaju automatiziranim proizvodnim pogonima, tako da se kao rezu~at cbbija gotov proizvod. CAM programl omogu6avaju racunaru da prati zalihe slrovina, odabire njihove optimalne koilcine, daje naloge za aktiviranje pojedlnlh masina za obradu sirovina i poluproizvoda, iii masinaza sklapanje gotovlh proizvoda, kao i da pratl prijem i otpremu gotovih proizvoda u skladista. Interesantno je napomenuti da su CAD/CAM paketi izazvaO pravu re~ voluciju u modnoj industriji, jer su omogu6ili automatiziranu proizvodnju odjevnih predmeta dizajniranih na ratunaru. Primjena CAD/CAM programa u cjelovitom procesu proizvodnje naziva S8 racunarski integrirana proizvodnja, iii, skraeeno, CIM (Qomputer integrated Manufacturing).

Savremena elektrotehnika i elektronika danas se takoder ne mogu zamisliti bez intenzivne upotrebe CAD programa. CAD programi koji se koriste u elektrotehnici i elektronici ne omoguCavaju samo crtanje shema, nego i kompletnu analizu i simulaciju rada uredaja koji je predstavljen tom shemom. Taka, proj9k~ tant maze u polpunosti da analizira rad uredaja, i da proratuna.i odredi parametre svih elemenata ad kojih S9 sastaj! uredaj. Primjer jednog takvog CAD programa je Electronics Workbench EDA, koji je prikazan na slid sa sirane. CAD programi namijenjeni za potrebe elektronike obicno omogucavaju i automatsku izradu nacrta stampanih pioCica, a uz pomoe odgovarajueih uredaja prikljucenih na racunar, i njihovu flzicku realizaciju (8tO vee spada u CAD/CAM}. lnace, stampane plocice predstavlJaju plasticne ploCice na koje je u vidu tankog metalnog sloja nanesen niz provodnika', i na koju se lemljenjem pricvr8cuju Ql["'~!!'lI! ,;:'f;,,,~'''~c',,!,!jU;,!1!I,:;:\j~~'~''~~" ..?J IT".M ostale elektronicke komponente koje saCinjavaju uredaj (ovakve pl06ice ste sigurno vidjeli ukoliko ste ikad rastavili neki elektronicki uredaj, opr. radio-prijernnik). CADprogrami za eJektrotehniku ! elektroniku cesto se sastoje od niza prOJrama koji cine integriranu programsku kolekciju. Na primjer, programski paket OrCADsastoji se ad niza programa kao sto su DrCAD SOT (S.chematic Qesign Iools) za crtanje elektrotehnicklh i elektronickih shema, DreAD VST (~erification and ,S.imulation 10015) za analizu i simulaciju elektroni6kih uredaja, DreAD PCB (Erinted Qircuit 's.oard) za izradu ~tampanih ploCica, itd.

NaJcesci alati ko]i se susrecu u paketima za brzi razvoj aplikaclja su tzv. vizualn; alatl, kod kojih programer dizajnira pojedine komponente softvera na slican nacin kao prilikom rada u nekim od grafickih programa (crtanjem tabela, dijagrama taka, obrazaca za unos podataka, elemenata kOrisnickdg okruzenja, itd.), nakon cega razvojni sistem sam generira dijelove programa koji odgovaraju dizajniranim komponentama. Na taj nacin, veliki braj p'rograma se moze napravlti uz sasvim malo (ponekad oak i nimalo) klasicnog programiranja (t]. plsanja instrukcija). lpak; najcesce se nijedna ozbi!jnija aplikacija ne moze napraviti sarno poma6u vizualnih alata, nego je potrebno koristiti i klasicno programkanje. Zbog toga se vizualni alati obicno javljaju kao dodaci klasicnim prevodioclma (kompajlerima) za klasicne programske jezike. Najpoznatiji integrirani paketi sa vizualnim alatima za brzi razvojaplikadja su Microsoft Visual BaSic (zasnovan na jednoj verziji programskog jezika BAS/C), Microsoft Visual C++, Borland De/phi i Borland C++ Builder, 0 kojima cemo' nesto vise reei u tre6em dijelu ovog udzbenika. Integrirane programske ko!el<cije koje se sastoje od kompajlera za razlicite programske jezike sa dodatl<om vizualnih aiata za brzi razvoj apilkacfja obicno se nazivaju Visual Stud;o (npr. Microsoft Visual Studio). Najvecu primjenu vizualni alati za razvoj aplikacija nasli su za potrebe aplikacija koje upravljaju bazama podataka. Tako, svi vee pomenuti integrirani paketi sa vizualnim alatima za brzi razvoj apllkacija posjeduju mnostVQ alata koji su namijenjeni upravo kreiranju i odrzavanju baza podataka, kao i manipuliranju sa podacima u bazi podataka. Na prirnjer, paketi Microsoft Visual C++ (verzija 6.0 ili novija) i Microsoft Visual Basic (verzija 6.0 Enterprise) sadrze skupinu alata pod nazivom Visual Database Tools ko]i podrzavaju vizualni razvoj baza podataka. Take, na primjer, alat Database Des;gner omogucava grafi6ki dizajn tabela i veza izrnedu njih, kao 1kreiranje i izmjenu komponenti baza podataka, dok alat Query Designer ornogucava upotrebu vizualnlh metoda za kreiranje SQL upita za pristup iii izmjenu podataka u tabelama. Izgled ova dva alata prlkazan je na sljedecoj slicl:

2.5.5 integrirani pakeli za brzi razvoj apllkacija


Ubrzani razvoj racunarske tehnike doveo je do potrebe sve brteg i brzeg razvoja odgovarajuceg softvera. Brzina kojom se razvijao softver nije mogla da prati razvoj hardvera, tako da je u jednom trenlJtku . brzina razvoja softvera predstavljala glavnu i<oCnicu daljeg razvoja racunarstva j informatlke u~p6e. Izlaz.lz-_ ave situacije naden je u razvoju integriranih paketa za blZi razvoj aplikacija iii RAD (Sapid Applicatjon Qevelopment) sistema. Ovi paketi nude niz tzv. programerskih alata (eng1. programming toqfs) koji omogucavaju automatizaciju pojedinih procesa u pisanju programa za racunar, poput fogickog dizajniianjat, kreiranja algoritama, kodiranjs (prevodenja algoritama u programe), testiranja, otklanjanja gresaka i .odrta~ vanja programa. Sve prisutnija automalizacija odrazila se i na proces programiranja, taka da danas programeri piu programe uz veliku pomae samog racunarskog sistema. Na taj nacin je u pragramersku prak-' su uslo r8cunarski potpomognuto programiranje (skraceno CAP, ad eng!. Qomputer Aid!d Erogmmming). Potrebno je napomenuti da je danas, bez obzira na sve uvedene automatizacij8, ~ajskuP~'a komponenta razvoja svakog racunarskog sistema radno vrijeme programera ko]i su angatlrani na raz:'Qju.
216

Vi:;ualni alat "Datahase Designer"

l/hualni atat "Qllery designer"

"Neki dd integriranih paketa sa vizualnim alatima namijenjeni su iskljuCivo Hi gotovo iskljuCivo za razvoj baza podataka i pripadnih aplikacija. Jedan relatlvno jednostavan integrirani program za - takvu namjenu je Microsoft Access, a kojem smo vee govorlli u prethodnom poglavlju. Od profesionalnih paketa za OVU namjenu najpoznatiji je Oracle Developer. Postoje i integrirani paketi za brzl razvoj aplikacija koji omogucavaju razvo] izvjesnih vrsta aplikacija (najcesce upravo za fad sa bazama podataka) iskljucivo uz pomoc vizualnlh alata, bez
217

ikakve potrebe za klasicnim programiranjern. Ovakvi paketi nazivaju se generatori apJikacija. Mada su ovakvi paketi jednostavniji za koristenje, jer ne zahtijevaju poznavanje klasicnog programiranja, oni su 1 ograniceniji u odnosu na klasiene integrirane pakete za brzi razvoj apllkadja. Generatori aplikacija za baze podataka obicno Cine sastavni dio tzv, CASE (Qomputer Aided Software Engineering) paketa, iii programerskih radionica, koji djelomicno iii u cjel05ti pokrivaju citav niz aktivnosti na izradi informacionih sistema, Najpoznatiji paketi ove vrste su Clarion, koji se koristi za potrebe manjih informacionih sistema, i Oracle Designer (koji S8 ranije nazivao Oracle Case), koji je pogodan za sve vrste informadonih sistema, uklju6ujuCi i najve6e,

Pitanja i zadaci
1. 2. 3, 4. 5, 6. 7, 8. 9. 10. 11. 12. 13, 14, 15. 16, 17. 18. 19. 20. Kako je nastala potreba za integriranirn programskim paketima? Sta su integrirani programi, a sta integrirane programske kolekcije? Sta su integrirani paketi za uredsko poslovanje? Koji je najpoznatiji integrirani paket za uredsko poslovanje i od kojih se programa sastoji? Zasto postoji potreba za koristenjem integriranog programa Microsoft Works, ukoliko znama da on posjeduje mnogo manje mogucnosti ad integrirane programske ko!ekcije Microsoft Office? Sta su programi za rukovodenje projektima i koji su najpoznaliji? Sta znate reCi 0 elektronickoj trgovini i e!ektronickorn pos!ovanju? Sta su elektronicka razmjena podataka i e!ektronieki transfer sredstava? Sta je slolno izdavastvo? U cemu su slicnosti i razlike izmedu abrade teksta j stolnog izdavastva? Sta je PDF format zapisa dokumenata? Zasto nije preporuCljivo dokumente, koje telimo oblikovati pomoGu DTP programa, prethodno oblikovati pomo6u tekst procesora? Objasnite sta su CAD programi i nabrojte nekolika njihovih maguCih primjena. Zbog cega abieni programi za crtanje (poput Corel Drawa) nisu CAD programi? Na'koji nacin su povezani CAD i CAM programi? Sta su integrirani pake!i za brzi razvoj aplikacija i koji su najpoznatiji? Sta padrazumijevamo pod nazivom Visual Studio? Kakva je veza izmedu integrlranih paketa za brzi razvo] aplikacija i baza podataka? Sta su generatori aplikaclja? Sta su CASE paketi j koji su najpoznatiji?

,,'I
1

....1
,

218

219

2.6 MUlTiMEDIJA U OTVORENIM I ZATVORENIM SISTEMIMA


2.6.1 Osnovni pojmovi
0

mullimediji

mediju ostvarenu na slstemima ratunara 1 drugih multimedijskill uredaja kojl su medusobno povezani putem, globalnih ratunarskih mreza (obicno Interneta), pri temu se informacije na bilo kojem raeunaru mogu organizirati i pohranjivati na nacin ko]1 je potpuno neovisan ad natina organizacije i pohranjivanja informacija na ostaiim ratunarima. Na taj natin se u otvorenim sistemima uvijek mogu dodavati nove informacije (npr. povezivanjem novih racunara u mrezu) neovisno od vee postoje6e situacije, sto zapravo i cinl ove sisteme "otvorenim". Slika i propratni zvuk koji se javljaju u multimedijskim tehnologijama kao pratilae obieno suhoparnih tekstualnih Intormaclja, trebaju da korisniku pruze potpuniji dozivljaj prikazanog sadrzaia, s obzirom na Cinjenicu da sa istovremeno angazira vise Ijudskih osjetila. Razlika izmedu klasicnog i multimedijskog nacina prezentiranja informacija najbolje je vidljiva u multimed;jskim enciklopedfjama, koje korisniku mogu pruziti neuporedivo vise informacija u odnosu na klasi6ne enciklopedije, zbog Cinjenice da se za prezentaciju informacija koriste slike (kako staticne, tako i an\mirane) i zvuk, koje je veoma tesko na zadovoljavajuei natin opisati sarno rijecima.

Dugo vremena se smatralo da racunarska tehnika j audio tehnika (tehnika rada sa zvukom)

nemaju nista zajednicko, tim prije sto su savremeni racunari uredaji za obradu digitalnih informacija, dok fe zvuk tipican prfmjer analognih informaclja (podsjetimo se da sma 0 razlie! izmedu analognih i digltalnih informacija govorlli u prvom dijelu ovog udzbenika). Zvucne informacije zapisivale su se na gramofonske ploce i magnetne trake, koji SU tipicni predstavnic1' analognih (kantinua/nih) medija. Do velike promjene doslo je nakon izuma optickih kompakt diskova (CD-ova), na koje se muzicki zapis, nakon prethodno obavljene digitalizacije, pohranjuje u digftalnom obflku, u vidu serije binarmh bro/eva, sl16no podacirna u racunarskoj memorlji. Uredaji za reprodukciju kompakt diskova (ko]i su se u pocetku nazlvali digitafni gramofoni, ali je taj naziv ubrzo iscezao I zamijenjen engleskim nazivorrt Co-playery, po svojoj strukturl veoma podsjecaju na strukturu digitalnih ra6unara (npr. mikroprocesor je njihov neizostavni dio). Na taj natin je uspostavljena prva veza izmedu racunarske i audio tehnike. Mada su se kompakt diskovi u po6etku koristili iskljucivo za zapis muzike, veoma brzo je primije6eno
da bi. kompakt diskovl mogll bit! jako pogodan medij masovne memorije za pohranjivanje programa i

2.6.2 Neophoclna hardverska podrilka mullimedijskim sislemima


Multimedijske tehnologije, kao I sve druge vrste racunarskih i informacijskih tehnologija, nisu izvodlve bez odgovarajuee hardverske i softverske podrske. Na primjer, jasno je da reprodukcija zvuka na racunaru zahtijeva prisustvo zvuenika, odgovarajuCih sintetizatora zvuka (zvucnih kartica), kao i odgovarajucih programa kojl ee generirati neophodne upravljacke signale slntetizatorima zvuka koji su potrebni da bi Se proizveli odgovarajuCi zvukovi. Bitno je napomenuti da multimedija zahtijeva izuzetno velike ra6unarske resurse (kako hardverske, tal{o i softverske), sto je osnovni razlog zbog cega Se multimedija na ra6unarskim sistemima pocela intenzivno koristiti tek u pos!jednjih 10-15 godlna. Racunare ko]i su opremljeni odgovarajueim hardverom i softverorn za multimedijske primjene zvaeemo multimedfjski racunari. Razmotrimo sta je sve neophodno od hardverske podrke za multimedijske primjene. Krenimo prvo od onoga sto je najodglednije odgovarajueih ulaznih i izlaz~lih uredaja. Za prikaz staticnih sllka brzina rada grafitkih kartiea nije previse bitna. Medutim, za prikaz slika u pokretu, neophodne su vfsokokvalitetne gratieke karlfce, koje karakterizira velika brzina prikaza slika. Naime, kako su animirane sllke zapravo samo slijed statlcnih slika koje se brzo izmjenjuju (filmski standard! predvidaju izmjenu 24 slike u jednoj sekundi), jasno je da ukoliko graflcka kartica ne maze da prikazuje sliku dovoljno brzo, na ekranu e9 dod do treperenja iii zastajkivanja prilikom prikaza animiranih slika. Stoga su za multimedijske primjene neophodne graf1eke kartice za koJe je izlicito naglaseno da omogu6avaju glatko prikazivanje digitalnog filmskog zapisa (na srecu, danas je prakticno nemoguee nad graficku karticu kOja nema takvu podrsku). Pored dobre grafi6ke kartice, potreban je i monitor sa velikim ekranom i visokom rezofuclj'om, jer ee u suprotnom gledanje digitalno zapisanih filmova bitl sve drugo samo ne zabavno. Savremene graficke kartlee cesto posjeduju i TV izlaz (engl. TV ou~ kojl omogucava prikljueenje racunara na televizijski aparat j prikaz slike na televizijskom ekranu, Mada je kvalitet prikaza:sUke na televizijskim el<ranima uvijek znatno slablji nego na ekranima monitora, gledanje filmova na,_televizijskom .ekranu (ko]i je tipleno veei od ekrana najveclh monitora) je znatno p~ijatnye za,Oct nego g!~danje na-ekranu rnonitora. Ukoliko se multimfjdijske informacije. trebaju 'prez~tit'ir-af( ~in;fpl,lblici, ~eoPhodno je u popis neophodne opreme ukljuciti i multimedijski projektof;' TaKo.der, ,ukoli~o 'pored puke reprodukcije video zapisa iii jednos1avnijih manipulacija sa postojeeim,>/i.t=le0 zapisima (I?oput tillovanja fHmova, itd.) zelimo da se bavimo i samostalnirnkreiran/em videJj~zaprsa, jasno je da nam je neophodna i odgovarajuea digftalna kamera, ' U posljednje vrijeme sve vise su u upotreOi' Spe.cija!n-l qClapterl, nazvani TV kartice iii TV tjuneri (engl, tune!). TVljunerje uredaj kojl omogu~ava prev~enje analognih inforrnacija koje pristizu kroz
221

podataka za racunare. Nakon sto su se kompakt diskovi zaista poceli koristiti kao medij masovne memorije za racunare, prirodan korak je bio opremanje racunara takvim hardverom i softverom ko]i ee omogueitl reprodukciju audio kompakt diskova (tj. kompakt diskova na kojima je zapisana iskljuCivo muzika i koji su namijenjeni za reprodukciju na odgovarajueim muzickim uredajima) na racunarima opce namjene. Na taj nacin je gotovo izbrisana razlika !zmedu audio tehnike i racunarske tehnike. Danasnji racunari opee namjene mogu, uz odgovarajueu opremu, s!uziti kao CD-playeri, dok s druge strane, svi CD-playeri kao svoj kljucni dio sadrZe digltalni racunar specijalizirane namjene. Takoder, upravljanje raeunarom pomoeu zvucnih informacija (npr. glasom) u danasnje vrijeme nije nikakvo tudo, madaje sve donedavno djelovalo poput nauc:ne fantastike. Savremeni elektroni6ki muzicki instrumenti, poput raznih vrsta sintesa/zera i ritam masina, danas nisu nista drugo nego digitalni racunari 'specijaJizirane namjene (i to cesto prilicno moeni), koji nerijetko koriste iste medije masovne memorije (poput disketa; itd.) za smjestanje podataka (npr, zapisa pjesama) kao i digitalni racunari opee namjene. Uskoro nakon objedinjavanja audio tehnike i racunarske tehnike, i video tehnfka (tehnika animirane slike, odnosno sUke u pokretu), kao jOs jadan klasicni primjer ana/ogne tehnike, dobila je i svoJu digita/nu verziju, sto je dovelo do postupnog brisanja granice lzmedu video tehnike i ra6unarske tehnike. Danas je sasvim uobicajeno zapisivanje video materijala (filmova, itd.) na kompakt diskove, a pogotovo na njihove specijalne verzije ekstremno velikog kapadteta poznate pod skraeenim nazivom ova (Qigital.\lersatiie .Qisc iIl.Qigital Yideo .Qisc). Stoga se danasnji ra6unari mogu upotrebljavafi za reprodukciju filmova, !ito je' donedavno bila iskljuCiva privilegija video rekordera. Takoder, video kamera je danas sasvim prirodan ulazni uredaj za dlgitalne racunare. Skupina tehnologija koje su dovele do objedioLavimj!3- racunr;trske tehnike, audio tehnike i video tehnike u jednu jedinstvenu cjelinu, danC!s'zajedn'ickim'fm~nom nazivamo muliUmedijske tehnologije. Postoji vise definjcjl~~sta}e :zaprav9 multil1le9ij~. Najprihvaeenija je definicija po kojaj je multimMija tehn6fogija.:k6ja. bmogu-eava prik~z informaelja u vise razlieitih oblika, poput teksta, grafike (staticnlh; odnosno riep_~Krefnih '-slika), animac(fa (slika u pokretu), video zapisa (animacija visoke kvalitete kOj? .slJ-obtcnO:'P"racerie zvukom, puput filmova), muzike i govora. Multimedija se 6esto dijeli na inultinied;jI! Uzatvoren!trJ s/stemima I mulfimediju u ofvorenim sistemima. Multimedija u zatvQrenim '"sistemir'IJ~ podrfizumijeva multimediju ostvarenu na racunaru ill skupinl povezanih racunara (iIi nekih srodnih uredaja); na-kojima je unaprijed poznato kako su informaeije organizirane, gdje su po'hranjen~'i itd, S druge_ strane, multimedija u otvorenim sistemima podrazumijeva multi220

televizijsku antenu, i koje se koriste u televizijskoj tehnici za prikaz slike na TV aparatima, u digitalne informacije kOje se mogu prikazati na monitoru racunara. Tako, TV tjuneri omogucavaju (uz pomoe odgovarajuceg sof1vera) gledanje televizije pomoc':u racunara, tako da racunari mogu da zamijene klasicne TV aparate. Posebno je zanimljivo to sto softver za gledanJe televizije uz pomoc racunara omogucava prikaz televlzijske slike u prozoru (koji ne pokriva Citavu povrsinu ekrana), taka da na ekranu u isto vrijeme mozete lmati, na primjer, prazor sa tekst procesorom u koji unosite neki dokument, i prozor u kojem gledate vasu omiljenu seriju, ne prekidajuCi rad sa dokumentom. Za potrebe prezentacije zvucnih informacija (muzike i govora), neophodno je da racunar posjeduje sintetizatore zvuka i zvu6nike. Jednostavniji sintetlzatori zvuka (zvucne kartice) danas obieno delaze integriranl na maticnu plocu racunara. Mada se zvucne kartice osjetno razUkuju 'po eljenl, bitno je napomenuti da je kvalitet reprodukcije zvucnih zapisa sa audio kompakt diskova i svih drugih tzv. uzorkovanih zvu6nih zapisa pribUtno istl, neovisno od kvaHteta zvuene kartice. Do velike razlike u kvalitetu zvuka dolaz! jedino prilikom reprodukdje tzv. sintetiziranih zvucnih zapisa, kakvi se najvise koriste u programirna za komponiranje uz pomoe racunara i upravljanje eiektroni6klm muzi(;kim instrumentima, a nerijetko j u raeunarskim igrama (0 razlici izmedu uzorkovanih i sintetiziranih zvu6nih zapisa govoricemo nesto kasnije). 8toga, skupe zvuc:ne kartice treba da kupuju sarno muzi6ki profesionalci, dok 6e potrebe vec':ine korisnika zadovoljiti i najjeftinije zvucne katrice. Zvucnici koji se,priklju6uju na raeunare, najeesce su stereo zvucnici, mada se mogu sresti i sistemi sa vise od dva zvu6nika koji se koriste za jos kvalitetnije tehnike vjerne reprodukcije zvuka nego slo js stereo tehnika (npr. kvadrofonska tehnika, koja zahtijeva upotrebu 4 zvucnika, od kojih je svaki loc'lran u jednom uglu prostorije). 8koro sve zvucne kartice posjeduju prikljucak za zvucni izlaz (engL audio ou~ preko kojih se fBcunari mogu prikljuCiti na razglasne uredaje iii I<ucnu audio opremu, dime se dodatno poboljsava kvalltet zvuka, kao i zvucni ulaz (engl. audio in) na koji je moguce prikljuCiti mikrofone i klasicne medaje za reprodukciju zvuka (kasetofone, itd.) i tako omogudti unosenje zvucnih informacija u raeunar. Mikrofon je neophodan ulazni uredaj i u slucajevima kada zelimo izdavanje naredbi racunaru putem govora, sto se d~nas sve eesce susrece. VeGina zvucnih kartica omogucava prikljuCivanje elektroni6kih muzi6kih instrumenata (koji su zapravo, kao stc smo vee rekll, digilalni racunari specijalizirane namjene) na racunar opee namjene preko tzv. MIDI (Musical,lnstruments Qevice Interface) prikljucka. MIDI je, ustvari, standard koji je prvobitno bio namijenjen iskljucivo za medusobno povezivanje j sinhronizaciju raznih elektronickih muzi6kih instrumenata poput sintesajzera, rHam masina, itd. a koji je kasnije iskoristen i za povezivanje muzickih instrurnenata sa racunarima. MIDI koristi serijski prenos podataka, stoga MIDI prikljucak zapravo predstavlja jednu vrstu serijskih ulaznih vrata. Povezivanje racunara sa elektranickim muzi6kim instrumentima ima visestruke primjene. Na primjer, moguce je na racunaru pripremiti neku kompoziciju u vidu notnog zapisa, koju je kasnije moguce reproducirali uz pomoc elektronickih muzickih instrurnenata. Na taj nacin, kornpozitor maze cut] kako ce napisana kompozicija zvucati (bez potrebe da angazira zive muzieare), i vrSiti neophodne korekcije dok ne bude zadovo!jan izvedbom (prije ne90 sto kompozicija zaista bude izvedena utivo). Vecina savremenih kompozitora intenzivno se koristi ovom tehnikom prilikom pisanja muzickih djela (na prirnjer, prva bosansko-hercegova6ka opera Hasa,naginica pisana je upravo na ovakav nacin). MIDI tehnika omogucava i suprotan postupak: biIjetenje zvucnog zapisa koji zb/i muzieari sviraju na elektronickim muzickim instrumentima, i njihovu kasniju reprodukciju iii prikaz u vidu notnog zapisa. Na ovaj nacin je moguce pohraniti svirku zivih muzicara i kasnije]e vjemo reproducirati na istim instrumentlma. Takader, na ovaj nacin, muzicari ka)i ,ne poznaju muzieku notaciju (notni zapis) mogu dobit! naIni zapis svojih muzitkih izvedbi. Nakon sto smo razmotrili neophodne ulazne i izlazne uredaje za multimedijske primjene, razmotrima i zahtjeve na uredaje koj! cine centrafnu jedinicu racunara, koji su mnogo manje uaeljivi na prv! pogled. Veoma vazno je napomenutl da su multirnedijske informacije izuzetno bogate kofiCinom fnformacija, stoga je za 'njihovo memoriranje neophodna velika koficina memorije,' a za njihovu obradu izuzetno velika snaga procesora. Na primjer, audio kompakt diskovi trose blizu 10 megabajta memo222

I
i
1

rijskog prostora za pamcenje jedne minute zvucnog zapisa! 8toga, multimedijski racunari moraju obavezno biti opremljeni 6ita6ima opti6kih diskova (CD, a po moguc':nosti i DVD), jer su avo jedini prenosivi uredaji masovne memorije koji su podesni za biljezenje muitimedijsklh informacija. Za obradu multimedijskih informacija ra6unar mora bitl opremljen veoma mocnim procesorom 1velikom kollcinom RAM memorije. Ranije su procesori koji su bili namjenski dizajnirani za laksu obradu multimedijalnih Informacija nosill u svom imenu oznaku MMX (Multimedia E~tension), dok se u novijim procesorima oznaka MMX vise ne spominje, S obzirom da se podrska multimediji danas uglavnom podrazumijeva. Ukoliko zelimo da se bavimo ne samo pregledanjem, multimedijalnih informacija nego i njihovim kreiranjem, neophodno je posjedovati i CD pisa6, kao i hard disk ve/ikog kapaciteta za potrebe prlvremenog biljezenja multimedijalnih informacija prije njihovog kona6nog zapisa na optieki disk.

2.6.3 Neophodna softverska podrska multimedijskim sistemima


Uvodenje i razvoj multimedijskih sistema doveo je do potrebe razvoja odgovarajucih standarda za zapis multimedijskih informacija, kao i odgovarajuceg softvera koji 6e rukovati taka zapisanim informacijama. Standardni formati zapisa grafi6kih informacija, poput statitnih silka, razvljeni su j prije pojave multimedije, i 0 njima smo govorili u poglavlju a racunarskoj grafici. Ostaje da se razmotri naCin zapisa zvucnih informaclja, i informacija u formi pokretnih slika (animacije). Za pamcenje zvucnih informacija postoje dva sustinski razliCita naeina zapisivanja koje mazemo nazvati uzorkovani (semplovam) zvu6ni z.apisi i sintetizirani zvucni zapisr Uzor/wvani zvucni zapisf zasnivaju se oa pamcenju uzoraka vnjednostf intenziteta zvucnog talasa, koji je osnovni nosilac zvucnih informac1ja, uzetih u odredenim vremenskim trenucima. Drugim rijecima, uzorkovani1 zvucni zapisi predstavljaju digitalizirani zapis odgovarajuceg analognog nosioca informacije - zvucnog talasa. 8 druge strane, sintelizirani zvucni zapis! sadrts infonnacije 0 visini, trajanju i bojl pojedinih tonoll8 koji cine zvucnu informaciju. U tom smislu, ovi zvucni zapisi slicni su fJotnom-zapisu koji se koristi u muzici za zapi~ivanje muzitkih kompozicija. 8intetizirani zvucni zapis] mogu se primijenlti samo za zaplsivanje muzi6kih informacija, all ne i govornih inforrnacija. Najjednostavniji format uzorkovanog zvuenog zapisa je tzv. WAV (od eng I. wave) format. Datoteke koje sadrze zvucni zapis u ovom formatu imaju na svom imenu nastavak . WAV. Ovaj format zapisa najcesee doslovno pamtl uzorke vrijednosti intenziteta odgovarajuceg zvucnog talasa uzete u pravilnim vremenskim razmacima. Ovakav nacin zapisa omogucava izuzetno vjernu reprodukciju, ali je, sa druge strane, veama zahtjevan po pitanju memorijskih resursa. Naime, u prvom dijelu ovag udzbenika, vidjeli smo da je, prema Shannon-Nyqufstovom teoremu 0 uzorkovanju, potrebno uzeti barem 40000 uzoraka u sekundi da ne bi doslo ni do kakvih gubitaka informacija. Ukoliko zelimo stereo -zapis, ovo uzorkovanje je potrebno uzeti posebno za oba kanala zvuka. Ukoliko svaki uzorak zapisemo sa 16 bita (manji broj bita povecao bi gubitak inforrnacija usljed kvantizacije), prosti- raeun -daje blizu 10 megabajta po jedno] min uti zvuenog zapisa. Uzimanjem manjeg broja _uzoraka po sekundl ovi memorljski zahtjevi se rnogu smanjitL Medutim, na taj nacin se gubi na kvalitetu ,zvUka (uslje-d_ Qubitka informacija). WAV format zapisa podrzava i nake elementarne metode kompresij-e podataka. -Ipak, ostale einjenica da su WAVzapisi {ipieno jako glomazni i-pogodni'samo zai.efa-!jvn6 kra.tke zapis's. Bitno je napomenuti da je zapis zvuka koji koriste audio kompaict diskovi veo l11 asrodan:VVAVzapisu (mada ne i potpuno istl), tako da Sve sto]e reeeno za WAVzapis vrije-di i ia:ZaplSe".nfi-audio kompakt diskovima. Napomenimo da Windows operativni sisterni ne vide neposredno zaprs"e:na -audio kompakt diskovima, nego umjesto njih vide samo kratke datoteke sa nasJa\lkarn '.C-DA koje, predstaVljaju upucivaee na stvarne zapise, i preko kojih operativni sistem moze prl$tupiti stvarnom' zvucnom zapisu. Da bi-~e'-omogucro zapis zvuka koji trosi manje memorijskih resursa, razvijeni su razni aigoritrni za zvucnih zapisa. Jedan od najboljih algoritarna za kompresiju zvucnih zapisa

kdmpresij~ -uzorkovanih

223

ugraden je u format uzorkovanog zvucnog zapisa poznat pod imenom MP3 format (punim imenom MPEGri 1 Layer~3, iz cega se vidi da je MP3 sarno specljalni slu6aj MPEG zapisa a kojem cemo go~ voriti nesto kasnije). Ovaj zapis dosta je srodan JPEG zapisu za kompresiju slika. MP3 zapis, slieno JPEG zapisu u slucaju slika, dovodi do izvjesne degradacije kvaHteta zvuenog zapisa. Medutim, prak~ sa je pokazaia da se pamacu MP3 zapisa zvucni zapisi mogu sabiti preka 10 puta (dakle, na oko megabajt po minuti'zvucnog zapisa) a da Ijudsko uho ne primijeti nikakvu razJiku u kvalitetu u odnosu na WAV zapis (Ijudsko 6ulo sluha je mnogo manje osjetljiva na degradacije u kvalltetu nego 6ulo vida). Pom06u MP3 zapisa mogu se postiCi i jos veei faktori sabijanja (cak i preke 100 puta), ali u tom slucaju degradacija kvaliteta zvuka postaje sasvim primjetna. Zbog svojih izuzetno povoljnih osobina, MP3 je danas ubjedJjivo najrasprostranjeniji format uzorkovanog zvucnog zapisa (datoteke koje cuvaju ovako zapisane zvucne informacije imaju na imenu nastavak .MP3). Pored MP3formata, u sirokoj upotrebi je i Real Audio format zapisa (koji prepaznajemo po nastavcima . RA, . RM, . RAM i jos nekim na imenu datoteke). Ovaj format zapisa ima dosta slienosti sa MP3 zapisom, i specijalna je razvijen za potrebe radio prenasa i slusanja muzike uzivo pomocu globainih ra6unarskih mreza. Mada Real Audio format ima izvjesnih prednosti ,nad MP3formatom, pokazalo se da, pri istom stepenu kompresijs, Real Audio format dovodi do vece degradacije zvuka nego MP3 format. Uzorkovani zvu6ni zapisi mogu da zapamte bilo kakve zvukove, poput laveia pasa, buke automobila u prometnoj uUci, iii zvuka koji nastaje struganjem stiropora ad zid. S druge strane, sintetizirani zvu6ni zapisi su u stanju da zapamte samo zvucne informacije koje imaju veoma pravifnu strukturu koja se moie opisati nizom tonova (a ne raznih neartikuliranih zvukova), kao sto su npr. muzicke kompozicije. Mada su ovakvi zvucni zapisi mnogo ograniceniji od uzorkovanih zvucnih zapisa, oni posjeduju izvjesne bitne prednosti u odnosu na uzorkovane zapise. Pored toga 8to zau~ ziiTIaju mnogo manje memorije ad uzorkovanih zvucnih zapisa (cesto je cijelu kompoziciju koja traje nekoliko minuta moguce zapisati u manje od stotinjak kilobajta), sintetizirani zvuGni zapisi mogu se reproducirati putem elektronickih muzickih instrumenata, i racunar na osnovu njih maze generirati notni zapis kompozicije, sto je nemogu6e postid pomo6u uzorkovanih zvuenih zapisa. Najrasireniji format sintetiziranog zvucnog zapisa je MIDI format (prepoznatljiv po nastavku
.MID na imenima datotekakoje ga koriste) koji je, kao sto mu ime gavori, prvenstveno bio razvijen

slike u slijedu slika ko)i cine animaciju obicno sasvim neznatno razlikuju, taka da je davoljna pamti~ ti samo prvu slik)..l u slijedu, kao i razlike izmedu svake sljede6e slike u odnasu na prethodnu sliku. Pored toga, kod pokretnih slika nije potrebno toliko precizno pamcenje deta!ja kao kod staticnih sllka, s obzirom da zbog njihovog brzog izmjenjivanja, !judsko oko nije u stanju da uoei svaki detalj. Na ovim idejama zasnovani su mnogi algorltmi za kompresovano zapisivanje animiranih sllka, koji u sabe uklju6uju i mogu6nost zapisa zvu6nih podataka', 'tako da su idealni za pam6enje video zapisa. Najpoznatiji format za pamcenje video zapisa je MPEG (Motion Eicture fxperts Group) format, kojl u sebe uklju6uje i MP3 format za parn6enje zvuka i ko]i omogucava kompresiju video zapisa i do 95%. Pored MPEG formata, u irokoj upotrebi su i Microsoftov AVI (Audio Yideo interleave) format, kao i QuickTime MOV (od engl. movie) format, keji je prvo bio razvijen iskljuclvo za Apple Macintosh ra6unare, ali se kasnije rasirio i za PC racunare. Nakan sto smo se upoznali sa naCinima zapisa multimedijskih lnformacija, mozemo nesto reCi i o odgovaraju6em softveru koj! rul<uje ovim informaeijama. Postoj! ogroman broj razl!6ltih programa koji u manjoj iii ve60j mjeri koriste multimediju. Stoga je veama tesko izvriti prikJadnu klasifikaciju multimedijskog softvera. Ipak, u sasvim grubim okvirima, multimedijski softver mazemo podijeliti u tri grupe: sottver za prikaz multimedljskih informacija, softver za kreiranje multimedijskih infor~ macija i multimed;jskih aplikacija j sottver za obradu multimedijskih informacija, U engleskoj Iiteraturi se sottver za kreiranje multimedijskih informacija i multimedijsklh aplikacija najcesce naziva softver za autoriziranje (engl. authoring software odnosno multimedia authoring software). Za prikaz multfmedijskih informacija postoji mnostvo programa. Kako tTlultimedijske informacije postaju sve rasprostranjenije, izvjesni programi za prikaz multimedijskih informadja danas cine sas~ tavni dio svih modernih operativnih sistema. Tako, sve modernije verz!je Windows operativnih sistema sadrZB pomo6nl program CD Player, koji omogucava reprodukciju audio kompakt diskova, kao i program Media Player, kaji omogucava reprodukciju zVlJ(;nlh zapisa (kako uzorkovanih, tako i sin~ tetiziranih) i video zapisa. Media Player ne podrzava sve formate zvucnih i video zapisa, tako da je za neke zapise potrebno koristiti posebne programs za reprodukciju. Na primjer, za reprodukciju Real Audio formata zvucnog zapisa neophodno je koristiti program Rea/Player. Bitno je napomenu~ ti da za prikaz i reprodukciju multimedijskih informacija postoji cifavo mnostva razliCitih programa koji sluze za istu svrhu, a koji se uglavnom razlikuju samo po nekim sitnijim dodatnim mogucnostima. Tako se, na primjer, za reprodukciju zvucnih zapisa u MP3formatu mnogo koristi program Winamp, koji je bio jedan od prvih programa koj! su podrzavali ovaj format zvucnog zapisa (prvobitna verzija ovog programa patjece od hrvatskog programera Tomislava Uzelca, a kasnije se u njegov razvoj ukljucio citav niz programera iz raznih zemaIJa). U poznatije programe za reprodukciju video zapisa spadaju ActiveMovie, QuickTime Movie Player, Micro DVD Player, itd. Rea/Player takoder omogucava reprodukeiju nekih tipava video zapisa. Za kreiranje muftimedijskih informacija i aplikacija postoji takader mnostvo programa koji se raz~ !ikuju po svojaj tacnoj namjenl. Opeenito gledano,' programL ovog tipa omogu6avaju korisniku kreiranje multimedijskih aplikaclja (obicno u formi prezentacija) -koje objedinjuju tekst, statitne slike, zvuk, i animaeiju. Ovakvi programi najcesce pos'matraju multtmedijske aplikacije kao slijed dogadaja (eng!. event sequence). Svaki dogadaj u, OS0ov[-predsta"vlja prikaz_ neke tekstualne, graflCke, zvu6ne iii animirane informaeije. Kreator moze uprav!jat.l-strukttirom' dogadaja, njihovim redoslijedam, kao i tacnim vremenskim trenucima u kojima- 6e poledini ddgadajl na$tupitL Takoder, kreator moze odre* diti vrstu i stepen interakcije izmedu mult"imediLske-aplika'cije'l korisniKa koji ce koristiti aplikaciju (na prlmjer, da Ii 6e se neki dogadaj pakrenuti_ pr!tiskom'h"a -Mekl(tlpku-odnosno-kllkom misa na odredeno mjesto, iii de se dogadaj sam pokrenuti po isteku,odrl$~nog:vremena}.'lY1ultimedijske aplikacije imaju mnostvo prlmjena, pocev od obic[I,e t;:ap-aVEHpoPvt multimedijskih racunarskih igara), preko obrazovnih primjena, pa sve do krelranja multifnedifskih~baza podataka i baza znanja. Medu najpoznatije programe za kreiranje multimedijskfh info~mac_jla "L apllkaelja spadaju Macromedia Authorware, Macromedia Director, Action!, Asy";u:trix Ico(lAuthor r Asymefrix Toolbook.
225

za potrebe upravljanja elektronickim muzickim instrumentima. Ovaj format zapisa muziku posmatra kao nfz dogadaja (engl. events) koji su je generlrali. Dagadaji mogu biti npr. pritisak iii otpustanje neke tipke na klavijaturi sintesajzera, pritisak na dugme sintesajzera kojim se mijenja boja tona, pomjeranje paliee kojom se postize vibriraju6i ton, udarae palicom u bubanj iii cinelu, itd. MIDI for~ mat prosta pamti informaciju 0 svakom dogadaju (npr. kOja je tipka na klavijaturi pritisnuta i kojom jacinom) kao i tacna vrijeme.u kojem se dogadaj dogodio. Prilikom reprodukcije MIDlzapisa, racunar uz; pomoc odgovarajuceg hardvera oponasa (simulira) zapisani slijed dogadaja koj! su generirali muziku. OCigledno je da je ovaj vid zapisa idealan za upravljanje elektronickim muzi6kim instrumentima. Takoder, iz nje~a je sasvim lako rekonstruirati notn! zapis kompozieije. Za pamcenje animiranih sllka razvijeni SU mnogobrojni formati, zapisa. Jedan od najjednostavnijih formata ~apisa, animiranih slika predstav!ja animfrani GIF format, kojt se sastoji prosto ad slijeda slika od kojih SEl brzh'n fzmjerijivanjem formira animacija. Dosta rasprostranjen format zapisa ani~ mira!)ih slika,-koji p~red'Slika-'moze da pamti i propratni zvuk, je j SWF format kOJj je razvijen nam~ jenski.od stran~ firrrie.iVlacrolYfedja za upotrebu u njihovim programima (SWF je skracenica od Shock WavE?-E!a~.h;-sto)e)m~ programa ko]i generira ovaj format zapisa). Medutim, za potrebe video zapisa, u- kojima se ,IavJjaju pczkretne slik~ visokog kvaliteta koje su obavezno pracene zvukom, i koj) nerijet~o traju dosta ~ugo, klasieni -formaH zapisa animiranih sllka nisu pogodni. Naime, uzmemo Ii da,'cak-i uz~najboltu-'kompresiju; jedna visokokvalitetna staticna slika tesko moze zauzeti manje od tridesetak_k11obajta,-i pretpostavimo Ii da je za potrebe kva!itetne animaeije potrebno izmjenjivati 24 slike u sekundi, pfOstim racunom do!azimo do zakljueka da je potrebna preko 40 megabajta za pamcenj!9-jedne miQute slike u pokretu. Izlaz lz ove potesko6e naden je u Cinjenici da se susjedne
224

Medu programima za obradu multimedijskih informacija naroCito su u upotrebi programi za obradu zvucnih zapisa. Da bismo kreirali uzorkovanl zvu6nf zapis, dovoljna je ima!i mikrofon iii nek! drugi izvor zvucnog signala kO}i se prikljucuje na zvucni ulaz 'zvucne kartice, i upatrijebiti neki ad programa za zapisivanje zvuka kao sto je Sound Recorder, koji dolazi kao sastavni dio Windows operativnih sistema. Snimljeni zvueni zapis kasnije je mogu6e uredivati i mijenjati uz pomoo programa koj! se nazivaju editori zvucnih zapisa. Pomoeu ovih prograrna moguce je vrsiti mnogobrojne manipulaclje sa zvucnim zapisima, poput izmjene glasn06e i boje tona, raznih korekcija, itd. Na primjer, ukoliko posjedujemo zvucni zapis lnterpretacije nekog pjevaca, pomocu editora zvucnih zapisa moguce je ukloniti izvjesne greske uoeene u interpretaciji, pa cak i poboljsati iii potpuno promijenitl boju glasa pjevaca. Editori zvucnih zapisa gotovo iskljueivo rade sa WAVformatom zvuenog zapisa, Jer algorltmi kompresije ko]i su ugradeni u zapise poput MP3 zapisa onemogucavaju njihova efikasno uredivanje. Jedan od poznatijih editora zvucnih zapisa je program CoolEdit Pro. Ukoliko je potrebno da obradujemo zvucne zapise koj! nisu u WAV formatu, mozemo se posluziti nekim ad mnogobrojnih konvertora farmata zvucnog zapisB. Na primjer, neki od eesto koristenih konveltora su MPEG Layer~3 Producer za pretvaranje WAV formata u MP3 format, kao i AudioGrabber i Xing AudioCatalyst za pretvaranje zapisa sa audio kompakt diskova u WAV ilili MP3 format. Kreiranje sintetiziranih zvucnih zapisa prilicno se razlikuje od kreiranja uzorkovanih zvucnH-1 zapisa. Ovi zapisi se najcesce kreiraju neposrednim sviranjem na elektronickim muziC!dm lnstrumentima (obieno sintesajzerima) koji su povezani sa racunarom preko MjDI prikljucka. Pri tome se koriste programi koJ! omogucavaju zapisivanje signala kOje generiraju elektranicki muzicki instrumentL Sintetizirane zvucne zapise moguce j8 kreirati i bez pomo61 elektronickih muzlckih instrumenata, pomocu specijalnlh editora, koristenjem raznih tehnika kao 510 su pisanje nota, kreiranje liste dogadaja, itd. Programi za obradu sintetiziranih zvuenih zapisa abieno dolaze kao integrirani paketi koji omogucavaju mnastvo funkcija: zapisivanje signaia sa elektronickih muzickih instrumenata, upravIjanje elektronickim muzlCkim instrurnent1ma, pisanje nota, manipuliranje_, sa zvucnim zapisima, automatsko generiranje notnog prikaza iz zvuenog zapisa, itd. Vjerovatno najpoznatiji program ave vrste je Steinberg Cubase Score VST, koji je u prvlm verzijama razvijen jos za ATARI kucne racunare, a do danas je napravljen za gotovo sve postojece modele racunara. Ovaj program je prilicno kompieksan i namijenjen ijevlasnicima uglavnom muzickih muzickimstudija. profesionalcima Za potrebe amaterskih i poluprofesionalnih primjena lakse je koristiti programe nesto manjih rnogucnosti an jednostavnijih za rad. Primjer sasvim dobrog a jednos~ tavnog programa za rad sa sintetiziranirn zvucnim zapisima je CakeWalk Pro Audio. Prinijer rada sa ovim programom 'prikazan je na slici desno. ~ba pomenuta programa omogucavaju ne samo rad sa ,'sintetlziranim zvucnim zapisima, nego i ~~"~i",;c::~=:=::.::=:=.=~=::=::~:.:L:"=c~::==:::='"'l rnijeSfJ,l7je (miksanje) uzorkovanih i sinte -ti?ifarilh zvu?nih za~isa.

2.6.4 Hipertekst i hipermedija


Hipertekst predstavlja jednu od temeljnih tehnologija rnultimedije, koja Je omogucila razv~j mu/~ U otvorenim sistemima. Osnovna ideja hiper!eksta je mogucnost povezivanja uzaJamno vezanih tekstualnih podataka, koj] su razbacani u razliCitim dokumentima, na takav naein da se pomoeu jednostavnih radnji moze preci sa prikaza jednog podatka na prikaz nekog drugog njemu srodnog podatka, bez potrebe da znamo u kojem se dokumentu vezani podatak nalazi.

timedije

:1

Pod hjpertekstualnim dokumentom podrazumijevamo tekstualni dokument koji sadrzi posebno oznaeene dijelove (najcesce QQdvueQDiLLQ,QQl~n@ drugom boiom) koj! se nazivaju hiperveze iii hiperJinkovi, a ko]i posjeduju svojstvo' da pritisak na tipku misa u trenutku kada se pokazivac misa nalazi na hipervezi dovodi do prelaska u neki drug) dokument na koji hiperveza ukazuje (u trenutku kada se pokazivac misa nalazi na hipervezi on obicno ima drugaciji izgled, naj6esce izgled d[~na sa 'ispruzenim prstom). Na primjer, pretpostavimo da korisnik na ekranu proucava hipertekst~alnl d?ku~ ment koji govori opcenito 0 pticama. Aka korisnik u tekstu naide na pojam koj! ga detaljrHJe zan.lma, npr. "Iastavica", moze klikniti misem na taj pojam (pod uvjetom da je taj pojam izveden kao hlperveza), i na ekranu e8 se pojaviti novi dakument koj! podrobnije objasnjava pojam 0 kojem je rijee. Novi dokument moze takoder sadrzavati nove hiperveze. Na primjer, Citajud informacije 0 lastavicama, korisnik moze naie! na lnformaciju da su to pUce selice, pri eemu je pojam "ptice selice" izveden kao hlperveza. Klikom na ovu hipervezu korisnik moze dobiti detaljnUe informacije 0 raznim vrsta ptica selica, itd. Strogo uzevsi, pojam hipertekst trebao bi da S8 odnosi na dokumente koji sadrz.e samo tekst i hiperveze. Za dokumente koj! pored teksta sadrze nepokretne i pokretne sllke, kao i zvucne zapise, i u kojima ulogu hiperveza mogu preuzimati slike i njihovi dijelovi, a ne sarno dijelovi teksta, jspravni~ je je koristiti termin hipermedija. Ipak, najeesce se izraz hipertekst koristi kako za pray! hip~rtekst, tako i za hipermediju. Ako posmatramo, na primjer, hipermedijalni dokument ko]i govon 0 pt~cama, korisnik maze klikom na sliku !astavice vidjeti animirani prikaz njenog leta, iii cuti njeno oglasavanje, ltd. Cjelokupna WWW (World Wide Web) tehnologija koja je popularizirala upotrebu global nih racunarskih mreza zasnovana je upravo na hlpertekstu i hipermediji. Osnovna ideja hiperteksta i hipermedije, koja je zapravo omogueila upotrebu multimedije u otvorenim sistemima, je mogucnost da hiperveze ukazuju ne same na dokumente koji S8 nalaze na istom racunaru kao i posmatrani hipertekstualni dokument, nego [ na dokumente koj! se naJaze na bilo kojem drugom ra6unaru koji je sa njim povezan. U slucaju globalnih racunarskih mreza kao sto je Internet, to znaei da hiperlink moze ukazivati i na dokument ko]i se nalazi na raeunaru na dru~or~ kraju svijeta. Pri tome je principijelno moguce da se opCi dokument 0 pticama ureduje u Norve~koJ,. dokument 0 lastavicama u Argentini, a dokument 0 pticama selicama u Mongolijl. KakO su SVI OVI dokumenti medusobno povezani hipervezama, korisnik uopce ne primjecuje njihovu prostornu razbacanost i dozivljava ih prakticki kao dijelove jednog jedinstvenog dokumenta. ,Otvorenost ovakvog sistema je ocigledna: dokumenti se magu uredivati na raznim lokacijama, neovishO jedan ad drugog, a hiperveze su one sto ih medusobno povezuje u jedlnstvenu cjeli~u; Hipertekstualne dokumente mazemo kreirati na razne nacine. i Mlqr?soft,WO!d omogucava ubacivanje hiperveza u tekstualne dokumente, koje mogu-upucivatLna drqgl dio 1stogdokumenta, Hi na sasvim drugi dokument, na istam iii udaljenom racunaril"~(za.ovi/ ~wtJ~_ tr,eba izabrati naredbLJ Hyperlink iz menija Insert, ill pokrenuti alatku !nsert Hyperlink sa "~t~~rd~' t~.ake sa alatima). Medutlm, programi poput Microsoft Warda nisu prilagodeni s~i~ TPc~r].a.rl'r'n~ kO]I. se koriste u svijetu, niH su instalirani na svim racunarima koji ih mogu Koristiti;- ~otreba 2a kon5~e~Je:m hiperteksta u otvorenim sistemima, u kojima se na zna unaprijad koji .se racllnari kOr1ste, sa kakvlm operativnirn sistemima i kakvim aplikativnlrn softverom, dovela j9' dQ potrebe usp-o_Sfavlj~nja ~tan~ darda za organizaciju hipertekstualnlh dokumenata koji..ce se moGi prikazivati na s~im racunanma.

'~~~i~~~~~~~,'rfu~~~~l0~~~~~1~J&J~ ~.'~~j

Na,~rimjer,--Cak

Slicno programima' za obradu 'zvucnih ;~Pi~~:-'Pci$fo~~i 'p~ogra~i za' 9bradu video zapisa. Medu najrasprostranjenijim primjenama ovakvih programa spadaju-rnontaza i titlovanje filmova. Programi za obradu video zapisa omogucavajuj samastalna ,I(reiranje video zapisa, najces6e uz pomoc digitaloih kamera, kao i zapisivanje televizijsko'g Si~nala-ui:.pom'oc kartica sa TV tjunerom. Jedan od najmocnijih programa za obradu .vid:eo zapisa je program Aaobe'Pr~mjere, dok se za amaterske i poluprofesionalne primjene cesto kori~ti program VjrtualDub.
226

227

Ova potreba postala je posebno velika s pojavom Interneta koji povezuje ogroman broj raeunara iz Citavog svljeta koji se medusobno sustinski razlikuju.
Danas se kao standard za zapisivanje hipertekstualnih dokurT)enata koristi zapis poznat pod nazivom HTML (tlyperIext Markup .Language). HTML se nekada pogresno svrstava u programske jezike, mada se, u stvarnosti, ne radi ni 0 kakvorT) programskom jeziku (u pitanju je, zapravo, jezik za oblikovanje dokumenata, koji nema nikakve veze sa programiranjem). HTML je, u sustini, obiean tekst u koji su ubaeene specijalne Qznake koje se pisu unutar siljastih zagrada < i > (tzv. HTML tagov~. Pomocu HTML tagova se definiraju hlperveze, i zadaje osnovna forma kako bi hipertekstualni dokument trebao da bude oblikovan (nacin kako se zadaje oblikovanje hipertekstualnih ,doku menata prilicno podsjeea na naCin rada sa tekst procesorima prije nego sto je razvijen WYSIWYG koncept obrade teksta). HTML dokumenti na svom imenu imaju nastavak .HTM iii .HTMl. Za pregledanje hlperfekstualnih dokumenata zapisanih u HTML formatu, koriste se specijalnl programi nazvani HTML preglednic; iii brouseri (engl. browset')o Postaji vise razliCitih HTML preglednika, a danas se najvise koriste Microsoft Internet Explorer (ko)i Ie, ad verzije Windows 98, sastavni dia Windows operativnih sistema) i Netscape Navigator. Mada ime ovih pragrama gavori da su ani pretezno namijenjeni za pregledanje hipertekstualnih dokumenata na Internetu, ani se mogu koristitl neovisno od Interneta. Zadatak HTML preglednika je dvojak. Prvo, ani eitaju izvorni sadriaj HTML dokumenta i oblikuju ga u skladu sa speciflkacijama, pri cemu se specifikacije dodatno prllagodavaju magucnostima racunara na kojem se dokument pregleda. Drugim rijecima, preglednik ima puno pravo da ignorira ill izmijeni neki ad specificnLh zahtjeva za oblikovanjem dokumenta ukoliko ustanovi da racunar na kojem se dokument pregleda ne padrzava takav vid oblikovanja. Na ovaj naein, ostvaren je izuzetno veliki stepen prenosl\1osti HTML dokumenata izmedu raznih vrsta i modela racunara. Drugo, preglednici na sebe preuzimaju zadatak izvrSavanja odgovarajuce akcije kOja treba da se izvrsi kada korisnik klikne misem na neku od hipeNeza u dokumentu. Na sljedecoj slici prikazan je primjer izgleda izvornog HTML dokumenta (Iijeva), i istog dokumenta prikazanog u HTML pregledniku Internet Explorer (desno):
<H1'ML:> <HEAD> <'rITIJE>Primjer HTML 001
</HEAD>

jezici (proraeune, pristup bazama podataka, ltd.), dodavanje skripti u HTML omogueilo je da se hipertekstualni i hlpermedijski dokumenti pocnu ponasati poput pravih aplikacija koje omogucavaju interakciju sa korisnikbm (pri tome 58 ave "aplikacije" izvrsavaju neovisno od vrste i modela racunara na kojem S6 dokument pregleda). Skriptni jezici nisu jedini nacini da se HTML dokumenti ueine dinamienim i interaktivnim. U sirokoj upotrebi su i tzv. Java aplef; kao i Active-X kontrole, kojl predstav!jaju neke vrste minijaturnih aplikacija koje se mogu izvrsavati unutar HTML preglednika prilikom pregledanja dokumenata. Java apfeti i Active-X kontrole namijenjeni su za istu svrhu, ali S8 sustinski razlikuju po tehnickim detaljima izvedbe.

HTML dokumente je mogu6e kreirati i u obienim tekstualnim editorima, ruenim umetanjem odgbvaraju6ih HTML tagova gdje je neophodno. Medutim, kako ovakav naejn kreiranja maze da bude jake mukotrpan, razvijeni su i spedjalni programi koji omogucavaju kreiranje hipertekstualnih i hipermedijskih dokumenata koristenjem WYSIWYG I<oncepta, na sllcan naCin kako se danas kroiraju obicn] tekstualni dokumenti pomocu tekst procesora. Najpoznatiji programi za ovu svrhu su Microsoft FrontPage i Macromedia Dreamweaver. cak i Microsoft Word omogueava da kreirani dokument snimite u HTML formatu, tako sto prilikom zadavanja naredbe Save As lz padajuee liste Save as type izaberete opciju HTML Document. Medutim, specijalizirani program! za kreiranje hipertekstualnih i hipermedijskih dokumenata (kao sto je npr. Microsoft FrontPage) nude znatno bogatiju podrsku specificnostima vezanim za hipertekst i hipermediju, poput mogucnosti automatskog generiranja skripti za izvjesne uobieajene radnje, ltd.
Jedan od najnovijih trendova u razvoju hipermedije i multimedlje u otvorenim sistemima opcenito, predstavlja 3D muftfmedija, iii, kako se cesce naziva! 3D WEB. 3D WEB omogueava interaktivni prikaz i manipulaciju sa trodimenzionalnim objekiima unutar hipermedijskih dokumenata na sliean naCin kao u programima za trodimenzionaino crtanje. Na ovaj naCin, hipermedijski dokumenti omogu6avaju prikaz izvjesnih elemenata koji spadaju u domen virtualne stvarnosti, 0 kojoj smo govorili u poglavlju posveeenom racunarskoj grafici. Za kreiranje 3D WEB-a nisu dovoljni ni HTML ni skriptni jezici, vee se koristi VRML (Y..irtual Reality Modeling .Language), jezik specijalno dizajniran za opis modela virtualne stvarnosti (posebno trodimenzionalnih modela), koji smo vee spominjali_ Bitno je naglasiti da obieni HTML preglednici nisu u stanju da prikazuju 3D WEB dokumente. Za tu svrhu koriste se specijalni VRML preglednici. Alternativno, mogu se koristiti speciialni softverski dodaci I<oji omogucavaju prikaz 3D WEB-a u k!asicnim HTML preglednicima poput Microsoft Explorera (softverski dodaci koji prosiruju mogucnosti nekog postojeceg programa obieno se nazivaju engleskim nazivom plugin). Najpoznatiji dodatak za Microsoft Explorer preglednik koji omogueava prikaz 3D WEB-a je WorldView, poznat jos i pod imenom Microsoft VRML

Jmp'l~~</H'l'ML>

<BODY BGC01.,OR","FOFFFF">
<CEN-l'ER><El>Ovo je naslov</H1> <H2>(a ovo je pQ(lnaslov)</H2></CENTER>

OVIl ,ie

naslov

(a ovo je podnaslov)
H'Th1L dokumenti mogtl sadthvati poja~alle kao i naglasrm: dtjelove teksta Klik,'1i 113 oml hlr.~:!ezl\ za naslavak
,
,

mugu sadr::;ilvati <STRONG>po j acane<! S'l'RONG> kao i <BM>naglasene</illb dijelove tek,sta. <:BR><BR> Klikni na ovu <l>. HREFooo"drugi .htm]"> hipcrvezu</A> za nastavak.
dol:~e("y:ti

H'l'HL

</BODY>

<-/ETHL>

HTML se pokazao sasvim dobar za potrebe hiperteksta, pa u izvjesnoj filjeri i hlpermedije;Jer omogueava ubacivanje slikovnih i zvucnih informacija u dokumente. Ipak, za potrebe prjkata.~nimj~ ranih sllka, kao i za potrebe kreiranja dokumenata koji dinamicki mijenjaju 8VOj sadrtaj -(npr. prikazu<-~ ju razliCite poruke u razliCito doba dana), sam HTML se pokazao nedovoljan, Stoga je om6gu6~.o: da se u HTML dokumente ubacuju tzv. skript'e, koje predstavljaju minijaturne WOgr'!IAW t~kuPrfle naredbi) pisane u nekom od specijaliziranih programskih jezlka nazvanih skriptn; j~zici, f kojl su namijenjeni iskljuclvo za potrebe pisanja skrlpti. Najpoznatiji i najvise kQristeni sK"rfptni- j~z:jk je' JavaScript. Kako skriptni jezici omogucavaju vecinu radnj! koje omogucavaju -i klasicni progr~mski
228 229

Pilanja i zadaci
Sta je multimedija i kako je nastala? Kakva je razlika jzmedu multimedije u otvorenim i zatvorenim sistemima? Sia SU osnovni sadriaji multimedije? Zbog 6ega multimedijske aplikacije nude znatno vetu kollcinu lnformacija nego obicne aplikacije? 5. Kakav hardver treba da posjeduje multimedljski racunar? 6. -Sta je MID! prikljucak i za sta se koristi? 7. Kakve vrste zvucnih zapisa pastoje i koji su najpoznatiji formati zvucnih zapisa? 8. Koj] su najpoznatiji formati video zapisa? 9. cemu sluzi program Winamp? 10. Kako se kreiraju multimedijske apllkacije? 11. Ukoliko nastavne mogu6nosti to dozvoljavaju, upoznajte se sa osnovnim multirnedijskim aplikacijama, kao i jednostavnijim programima za kreiranje multimedijskih aplikacija. 12. Sta su editori zvutnih zapisa? 13. Kako se kreiraju sintetizirani zvucni zapisi? 14. Sta je hlpertekst a Sta hipermedija? 15. Kreirajte dva medusobno povezana hipertekstualna dokumenta u Microsoft Wordu karisteCi naredbu Insert Hyperlink. 16. Zbog 6ega su hipertekst i hipermedija neophodni za razvo] multimedije U otvorenim sistemima? 17. Staje HTML? 18. 6emu sluze HTML preglednici, koji su im osnovni zadac1, i kojl su najpoznatiji? 19, Sta su skriptni jezici? 20. Kako se kreiraju HTML dokumentl? 21. Ukoliko nastavne moguenosti to dozvoljavaju, kreirajte samostalno nekoliko HTML dokumenaia (najbolje uz pomoe Microsoft FrontPagea). 22. Sta je 3D WEB i kako se kreiraju 3D WEB dokumenti? 1. 2. 3. 4.

2.7 RACUNARSKE KOMUNIKACIJE


2.7.1 Komunikacija u lokalnim racunarskim

mreiama

U proom dijelu ovog udzbenika upoznali smo se sa osnovnim princ1pima prenosa podataka i organizacije ra6unarskih mreza. Tom prilikom smo vidjeli da ra6unarske mreze mozema grubo podj~ jeliti na Jokalne iii LAN (Local Area Network) mreze, koje povezuju ratunare na relativna malom prostoru, i giobalne, rasprostranjene ill WAN (Wide .8rea Network) mreze, koje povezuju ra6unare iii skupjne lokalnih mreza na znatno sirem prostoru, koji maze obuhvatiti i Citav svijet. Takader smo vidjeli da su ra6unari uLAN mrezama manje iii vise neposredno povezani kablovima jedan sa drugim, prl 6emu se ostvaruju izuzetno velike brzine prenosa podataka, dok su u WAN mrezama racunari obitno povezani putem telefonskih mreta, pri cemu je brzina prenosa podataka znatna manja nego uLAN mrezama. U ovom poglavlju posvetit cemo vise paznje naCinu koristenja racunarskih mreza i njihovim primjenama u oblasti komunikacija. Komunikacija izmedu ratunara u lokalnim mrezama danas je izuzetno jednostavna, jer moderni operativni sistemi omogucavaju pristup resursima na svim racunarima u lokalnoj mrezi na identican nacin kao i pristup resursima na lokalnom racunaru (tj. racunaru na kojem u tom trenutku radimo). U Windows operativnim sistemima, jedina razlika vidljiva korisniku u pristupu resursirna na lokalnom racunaru i drugim ratunarima u mrezi, sastoji se u tome sto se za pristup resursima na lokalnom racunaru I<oristi ikona My Computer, a za pristup resursima na ostalim racunarima u loka!noj mrezi ikona Network Neighbourhood (iii My Network Places u novijim verzijama Windowsa) , mada je, pomoeu izvjesnih postavki, moguce postiei da izvjesni resursi sa drugih racunara budu vidljivl i preko ikone My Computer (npr. moguce je postiCi da hard disk nekog drugog racunara bude vidljiv kao dopunski hard disk na lokalnom racunaru). Sa aspekta sigurnosti i mogucnosti zloupotrebe, izrazito je nepozeljno da svi resursi sa svih racunara u mrezi budu dostupni svim korisnicima na svim drugim racunarima u mrezL Zbog toga je moguce postaviti da izvjesni resursi na nekom racunaru budu dostupni drugim ra6unarima u mrezi samo ukoliko se prije toga eksplicitno prog!ase za dijeijene resurse (engl. shared resources). Resursi koji nisu proglaseni za dijeljene resurse vidljivi su sarno na /oka/nom ra6unaru. Takoder je moguee organizirat! da izv]esni resursi budu vidljivi samo nekim korisnicima. Pored toga, moguce je razlititim korisnicima dodijeliti razlicita prava pristupa (engl. access rights) izvjesnim resursima u mrezi. Na primjer, odredeni korisnici mogu imati pravo da pregJedaju izvjesne dokumente ali ne i da ih mijenjaju iii brisu, dok drug! (povlasteni) korisnici mogu imati puna prava pristupa nad istim doku~ mentima, ukljucujuCi i moguenast izmjene iii brisanja, Oa bi se omoguCila kontrola vidljivosti resursa i upravljanje pravima pristupa pojedinim re'sursi~ ma za razne korisnike ra6unarske mreze, neophodno je uvesti nel<i mehanizam koji sistemu omogucava identifikaciju korisnika koji radi za nekim od racunara u' mrezi. "U to svrhu se. zasvakog korisnika mreze otvara kor;snicki racun (engl. user accounQ koji, ,izmedu bsta.!99, sadrzi podatke 0 korisnickom imenu (engl. user name) i lozinci (engl, password) Korisr::ri1.<!'l. Kori$ni~ko ime je naziv koji .jednoznacno identlficira karisnika (npr. njegovo ime i prezime) i ana jEi. {jostu-pno javno (npr. moguce je zahtijevati prikaz korisnickih imena svih korisnika koji:-l{ ne:k6riiJrenutk.u'rade . za ra6unarskim sistemom). S druge strane, lozlnka je naziv koji je pozna] sa'rno korlsniklfi ':nikome drugom, i ona se nikada i nl pod kakvim uvjetima ne prikazuje javno. Smls3cUozlnke"je da onemoguei pojedincima da se lazno prijave pod tudim korisnickim imenom'. Zhogtoga bi za lo.zihke trebalo birati takve rijed (najbolje nasumi6ne kombinacije brojki i slova od bar-em 8 znakova) .!<:t.ko da ih druge asobe tesko mogu pogoditi ijj naslutiti. ._""
231

....-

230

"[

Korisnieke raeune definira osoba zaduzena za upravljanje i nadzor nad raeunarskom mrezom, kao i za njeno odrzavanje. Ova osoba obieno se naziva mrezni administrator. Mrezni administrator kreira korisni6ki raeun na zahtjev korisnika. Pri tome se kreira korisnicko ime i pocetna lozinka, kOja je obi6no ista kao i korisnicko ime. Korisnik kasnije moze promijenlti svoju lozinku, bez znanja administratora (koji nije duzan da zna korisnikovu lozinku), i to bi trebalo uraditi odmah _ nakon kreiranja korisni6kog racuna. Lozinku je moguce mijenjati proizvoljan broj puta. 6ak je, iz razloga sigurnosti, poi:eljno cesto mijenjati lozinku. Korisnieko ime nije moguce promijeniti bez intervencije mreznog administratora. KorisniCki raeun! kreiraju se isklju(:ivo na mreinom serveru (osim u peer-to-peer mrezama, u kOjima je korisni6ke ra6une neophodno definirati oa svakom racunaru pOjedinacno, sto je njihov oCigledan nedostatak). Prilikom zap06injanja rada sa racunarskom mreiom, korisnik je dutan da izvrSi pn)avu (engl. login) kojom ce sistemu" saopeiti svoje korisnicko lme i lozinku. U slu6aju da su uneseni podaci pogresni, sistem oe odbiti korisnikov zahljev za pristup. Ista strategija se moze koristiti i neovisno od ra6unarskih mreza, u s!ucajevima kada na istom racunaru radi vise korisnika, a potrebno je ogran16itl prava pristupa pojedinlh korisnika pojedinim resursima. Formular za prijavu obiono se pojavljuje odmah po podizanju operativnog sistema. Primjer ovakvog formulara prikazan je na sliei desno. Treba primijetiti da prilikom unosa lozinke, ona nije vidljlva .. ~iz:rll=':l,kr:!"ji:,'Zct~,!:,:!IlIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJ':IIZlxj cak ni korisniku koj! je unosi (umjesto stvarnih OK :),'1 znakova, ispisuju se sarno zvjezdice). Na taj ;~.~ 1ype a U"er n;;;t;w aho p~,,'_~O!d 10 klQ on to Vj,mlows naCin se spretava mogu6nost da neko ko se \'I~Y . na!azi u bHzini s!ucajno vidi lozinku. Po zavrsetku rada sa sistemom, obavezno je izvrSiti i odjavu (engl. fogou~ ukoliko zelimo da nakon toga s!stem koristi neki drugi korisnik.

niclrati sa korisnicima B i C bez prekidanja veze). Orugo, pri neposrednoj komunikaciji, telefonski impulsi se breje, kao klasicni telefonski razgovor izmedu dva korisnika, jer telefonske centrale ne prave nikakvu razliku izmedu prenosa govora, i tonskih signala koje emituju modem\. Tako, ako se korisnik A nalazi u Bosni i Hercegovini, a korisnik B u Kanadi, i ukoliko je njihova komunikacija trajaJa jedan sat, ta 6e komunikacija kostati (po cijen! od 5.5 KM po min uti, koja je vazila u trenutku pisanja ovog udzbenika za razgovore izmedu BiH i Kanade) citavih 330 KM, sto je apsolutno neprihvatljivo. Trece, ukollko bj neki korisnik zelia da neposrednom komunikacijom pristupi nekim informacijama I<oje ga zanimaju, on bi marao poznavati tacnu lokaeiju racunara koj! sadrzi te informacije, kao i bra) telefona na ko]i je taj racunar prikljucen, sto citavu stvar Clni tesko upotrebljivom. Svi ovi nedostaci izbjegnutl su razvojem globalnlh racunarskih mreza. Cijela sustina komunikacije u globalnim racunarskim mrezama zasniva se na tome da individualni korisniei ne uspostavljaju vezu sa udaljenim racunarima neposredno, vee posredstvom kompanija nazvanih snabdjevac; iii provajderi (engl. providei) koje na sebe preuzimaju uslugu uspostavljanja komunikacije sa udaljenim racunarima (posredstvom drugih provajdera, na koje su priklju6eni zeljeni odredisni racunari). Pri tome, korisnik cijelo vrijeme neposredno komunicira samo sa provajderom, a racunarski sistemi pravajdera, koji su medusobno povezanl, brim) se kako ce se dalje ostvariti kontakt sa teijenim uda~'enim racunarom. Kako je korisnik u neposrednom telefonskom kontaktu'samo sa provajderom, koj!" se tipicna nalazi u istom gradu iii regiji u koja] se nalazi i korisnik, njemu se napla6uju telefonski impulsi kao da se fadi 0 obicnom lokalnom razgovoru (pa 6ak i jeftinije, ukoliko provajder posjeduje poseban ugovor sa uredom za telekol11unikacije, ko]i omogu6ava naplatu telefonsi\ih impulsa ko]! idu preko telefonskog broja provajdera po posebnoj tarifi). Na jedan provajder u isto vrijeme maze bit! prikljucen veliki bra] korisnika,ovisno ad kapaciteta provajdera. Usluge provajdera se takoder naplacuju, meautim djene us!uga korlstenja provajdera neuporedivo su jeftinije ad cijena telefonskih razgovora na daljinu, i ne zavise od udaljenosti krajnjeg ra6unara sa kojim korisnik teli da llspostavi komunikaciju. Zavisno od konkretnog provajdera, us!uge se Inogu placati bilo u fiksnom iznosu za odredeni period (npr. jedan mjesec) neovisno ad stepena koristenja usluga, bilo u ovisnosti od stepena koristenja (npr. po svakom satu Imristenja usluge). Provajderi mogu, ukoliko to tele, da daju odredenim korisnicima i besplatne usluge (npr. provajder nake radne organizacije moze nuditi besplatne usluge za svoje uposlenike). U tom slueaju, korisnik plaea sarno lokalne telefonske impulse. Provajderi koji nude usluge prikljucivanja na Internet naziva]u se Internet provajderi i obicno se oznacavaju skracenicom ISP Qnternet .service :rovider). Alternativno se prikljucenje na Internet moze obaviti i preko kompanija koje nude i druge vrste mreznih elektronickih usJuga (fZV. ()n~lfne servis/) kao sto su Microsoft Network iii America Online (AOL) kOje, bar za sada, ne postoje u nasoj zeml]i. Sve ovo, u principu, zvuCi veoma jedoostavno. MeduUm, ono sto je slozeno u djeloj tehnologiji globaln!h ra6unarskih mreza je ana sto krajnji korisnik ne vidi, a to ]e nacin na koji provajderi medusobno komuniciraju. Da bismo stekli odredeni uvid u to sta se zaista desava, uze6emo kao primjer najrasireniju i najslozeniju globalnu racunarsku rnrezu -internet. Grubo receno, Internet je organiziran kao skupina specijaliziranih racunara i uredaja nazvanih mrezne prfstupne tacke (skra6eno NAP, od eng!. J~.etwork Access :o\nt), koji predstavljaju cvorista na koja se prfkljucuju sve manje mreze kOje cine sastavni dio Interneta. Mrei:ne pristupne tacke obicno se naiaze u glavnim gradovima drzava iii regija. Sve mrezne pristupne tacke su medusabno povezane, bilo putem satenta, bilo putem kab!ova ko]i omagucavaju brzi prenos podataka. Bitno je uociti da posta]i mnostvo puteva kojlma informaclje mogu stiei od jedne do druge mrezne pristupne tacke, tako da ukotiko neka od pristupnih tacaka zakaze, informactje je mogu6e preusmjeriti drugim putem. Upravo ova izrazita decentraliziranost i redudaneija omoguoava Internetu funkcioniranje cak i u slucaju diverzija i sabotaza, koje nikad nisu iskljucene. SV! Internet provajderi prikljuceni su bilo direktno iii indirektno na najblizu mreznu pristupnu tacku. U sustini, provajder djeluje kao pristupna barijera izmedu racunara i ostatka Interneta. Postoji moguenost da neki racunar bude neposredno prikljucen na mreznu pristupnu ta6ku, ali je takva moguenost izuzetno, skupa, i koristi se samo u izninlOim slucajevima, Sljedeca slika daje pojednostavljeni uvid u nacin na koji ]e Internet organiziran:
233

2.7.2 Osnovni koncepti globalnih racunarskih mreia


U prvom dijeJu ovog udtbentka vidJeli sma da se globalne racunarske mreze realizlraju uglavnom posredstvom telefonske mreze kao dominantne komunikacijske mreze, i uz pomoc mode~ ma, koji vrsi pretvorbu digital nih podataka ko]i se nalaze u racunaru u analogne signale podesne za prenos putem telefonske mreze i obrnuto. Za uspostavljanje komunikacije izrnedu dva udaljena racunara koji su preko modema prikljuceni na telefonsku mrezu, u principu nije potrebna nikakva dodatna aprema. Na primjer, korisnik A i korisnik B mogu uspostaviti vezu izmedu svojih racunara putem telefonske mreze na taj nacin 8to 6e pNa oba korisnika pokrenuti nek! komunikacioni program, kao sto je npr.' HyperTerminal, nakan cega jedan od korisnika (reeimo, A) treba da pozove broj te!efona korisnika 8, bHo rucno, bllo pomo6u nekog ad programa za automatizirano biranje telefonskog broja, kao 5to je Phone Dialer. Korisnik B ne treba da odgovara na poziv (t]. ne treba da podize ,slusalicu), vee treba da pusti da na poziv odgovori modem (sto korisnik B moze posti6i zadavanjem odgovarajuce komande)., Mode,m koriSnika A 6e prepo?!nati da na pozlv nije odgovorio covjek- nego drugi modem, sto pregstaylja stgt:laJ La. uspostavljanje komunikacije. Nakon sto je komunikacija uspostavljena, korlsnik A i f3 .mogu:'-raz:: mjenjivati p~ruke, datoteke, itd. u zavisnosti od konkretnih mogucnosti koristehog kQmunikaCionQg programa. Ovakav vi_9 komunikacije nazivarno neposredna komunikacijaJzmedu kQri-stilk~ A.i~~. Mote se postaviti pitanje zasto su uopce potrebne globalne racunarske mreze ukoliko je tako~akp uspostaviti neposrednu komunikaciju izmedu bilo koja dva racunara u svijetu koji su.pr-eko.modema prikljuceni na telefonsku mrezu. Postaje barem tri izuzetno vazna nizloga zbog 'kojih le nepasredna komunikaclja izuzetno nepovoljna. Prvo, prilikom neposredne komunikaclje, na hilo kojl ra6unaL-u jed"~ nom trenutku maze biti prikljucen samo jedan drugi ra6unar (npr. korisnik A rie moze uporedtio. kotnu232

Mretne pristupnc tai5ke Internd prol'ujderi (ISP)

o Korisllii5ki raauiUri ili Jmge


taka/lie i ri.L\j)fUslrwlienf mreze

Internet, kao i sve druge mreze koje koriste TCPI1Pprotoko!, adresiraju ratunare iskljucivo preko njihove IP adress. Medutim, kako su IP adrese teske za pamcenje, uveden je sisten: ~ojl omogucava da S8 znacajnijim serverskim ratunarima u mrezi dodjele i s/ovne adrese. N~ pnmjer, vee pomenuti racunari sa informacionim sistemima agencije CNN i grada Sarajeva i~aju redom slovne adrese WWIIl. crm. com i www.sarajevo.ba. Kako ove slovne adrese mreZI ne znace nista u mrezama se koriste racunari spec1jalizirane namjene nazvani DNS (Qomain Name Service) serv~l"i, tijl je zadatak- automatsko prevodenje s!ovnih adresa poput www.enn.com U IF adrese poput 64.236.16,84. Drugim djecima, DNS serveri predstavljaju nesta poput elektronickih tel~" fonsklh imenika u obicnom telefonskom saobraeaju. Naravno da niti jedan DNS server ne moze sadrzavati podatke 0 IP adresama svih ratunara ko]i posjeduju slovne adrese. UkoUko neki O,,!S server na pronade podatke 0 trazenoj slovnoj adresi, on odmah upueuja zahtjev za potragorn dr~glm DNS serve rima sa Kojima je povezan, koj! opat po potrebi upueuju zahtjeve drugim DNS servenma, itd. Sve ovo se odigrava jako brzo, j ukollko trazena adresa zaista postaji, ana ee biU pronadena za nekolika sekundi, ma gdje da se nalazila. DNS serveri automatskl azuriraju svoje baz~ podataka: dodavanjem informacija 0 IP adresama ratunara kojima se pristupalo u skorije vrijeme, .1 po potrebl brisanjem informacija 0 IP adresama racunara kojima se dugo nije pristupala. U slu6aJu kv~ra n.a DNS serveru, pristup ratunarima u mrezi preko slovne adress je onemogueen, mada 1m S8 I dalje maze pristupati preko IP adrese. Slovne adrese se, kao sto je vidljivo iz gore navedenlh primjsra, sastoje od niza rileci razdvojen~h ta6kama. Po pravilu bi pasljednja fijec u slavnoj adresi trebala da predstavlja tzv. do~el1u,v kOja zapravo predstavlja sifru drzave koja je dodijelila slovnu adresu raCunaru, tj. drtave u koja] je racunar registriran kao server. Po konvenciji, veGina domena su dvoslovne skracenice (npr. de za Njemacku, uk za Veliku Britaniju, fr za Francusku, hr za Hrvatsku, ba za Bosnu i He:cegovinu, ltd.), mada postoje i trosfovne damene, koje su formalno u vlasnistvu 8jedinjenih Americklh Drzav~, a u praksi se koriste kao internacionalne domene za razne svrhe, poput domena com za komerCI" jalno poslovanje, edu za potrebe obrazovanja (samo na engleskom govornom podrucju): org. za potrebe raznih neprofitabilnih organlzacija, itd.lrnena racunara koji nude usluge WWWservlsaoblcno imaju imena koja pocinju sa www.madajeovosamopreporuka.aline j pravllo. Prilikom prenosa informacija kroz globalne ratunarske mreze, svaka poruka, bez obzira na njen sadrzaj (tekst, sllka, itd.); dijeli se u sitne dijelove nazvane paketi, koji se salju neovisno jeda.n od drugog ka odredisnorn racunaru, na kojam se ponovo sklapaju u jedinstvenu cjelinu. P.ri tome Je ~.eoma vjerovatno da ee razliCiti paketi ko]i cine istu poruku posve razlititlm putevima doel do odredlsta. ~ slucaju da se neki od paketa zagube, sto je sasvim moguee, pogotovo ukoliko se u isto vrijeme preno~: velika kolitina pOfuka kroz mrezu, biee automatski postavljen zahtjev za ponovno slanje paketa k?JI nedostaju. Ovo ponovno slanje naziva se retransmisija, i ona je osnovni razlog zbog 6aga u ne~lm periodima brzina rada, sa mrezaina moze strahovito da opadne. Da bi se sprij~Ci!o (iii barem u~anjllo) lutanje paketa kroz mrezu i smanjiJa vjerovatnoea retransrnisije, u globalnlm mrezama ~?nste se uredaji nazvani usmjerivaiH iii ruteri, 0 kojima smo, u najkraCim crtama, govorili j u ptvorn dyelu .a~og udzbenika.-Ruteri su uredaji ko]i pomazu u odredivanju najboljeg puta kojim neki paket moze st.u.':I.do .2:aljel1og o_dredista, u skladu sa stanjem prometa kroz mrezu koje vlada u datom trenutku. Na pnmjer, :futer moi:e izabrati neki, na prvi pogled potpuno nelogican, zaobilazni put umjesto mnogo neposred'~fl-ijeg puta ykoliko uStanovi da 1e direl<tni put znatno optereeeniji protokom podataka u odnosu n~ zao_ ,_ hit?-zni :pl.ft: Ovdje se maze napraviti puna analogija sa automobilskim saobracajern: duzl put moze nas , .doV_~sti 'mnogo"brze do cilja ukoliko na kracem putu vlada velika saobraeajna guzva. 8tog,a, u glo?alnl"m'mtunifrskim mrezama nije rijetkost da poruka poslana jz Sarajeva u Zenicu na putu 00 odredtsta kroz. '[3erlin, Kairo, Johanesburg, Tokio, Tuzlu, Kopenhagen, Beograd j London prije nego sto , stigne do Zenice (sve se ovo odvija u svega nekoliko sekundi).

Jasno je da je, u ovolikom mnostvu racunara, neophodno uspostaviti neki sistem identlfikacije pojedinih racunara u mrezi. Internet, a i mnoge druge mreze, za identifikaciju racunara u mrezi koriste skup konvencija i pravila poznatih pod nazivom TCP/IP (Iransmission Qontro! protocol/Internet Erotocol).' Pod protok%m S8, opeenito (ne sarno u racunarskim mrezama, vee i u ekonomiji, pravu, ltd.), podrazumijeva skup konvencija i pravlla koji preciziraju nacin prenosa podataka izmedu ucesnika u komunikaciji. Na primjer, mrezni racunarski protokoli propisuju kada j pod kojim uvj~tima racunari mogu emitirati i primati podatke putem kanala veze, kako ti podaci mora" ju biti organizirani, itd. Dva racunara, koji koriste razlicite mrezne protokole, nece moei komunicirati cak i ukoliko su prikljuceni na isti kanal veze, jer se nikada nece moGi sloziti oko toga kada treba emitirati poruke, sta one trebaju sadrzavati, kako treba reagirati po prijemu p~ruke, itd. 8toga su protokoJi neophodni u svim racunarskim mrezama, l<ako lokalnim, taka i glabalnim. Na primjer, mnoge lokalne mreze takoder su zasnovane na TePIIP protokolu. Pored Tep/IP protokola, u lokalnim mrezama na]vise se korlsti IPX (lnternetwork packet Exchange) protokol, kojl je za potrebe svojih mreznih okruzenja razvlla kompanija Novell. Prema TCP/IP protokolu, koji je najpogodnlji za velike racunarske mreze, svl racunari u mrezi se identificiraju pomoeu sifre koja se sastoji od cetiri broja u opsegu od 0 do 255 ko]i su mec1usobno razdvojeni tackama (npr. 192.73.114.3). Ove sifre nazivaju se IP adrese. Svaki racunar ucesnik u mrezi jedinstveno je odreden svojom IP adresam, na isti nacin kao sto telefonski braj (skupa sa prefiksom za drzavu i grad) jednoznacno odreduje telefonskog pretplatnika bilo gdje u svi" jetu. Racunarima koji su neprekidno prikljuceni na ratunarsku mrezu i koji posjeduju informacije koje bi mogle bit! od koristi drugim utesnicima u mreti (serverskim ratunarlma), dodjeljuju se stalne, odnosno fiksne IP adrese. Na primjer, ratunar koji sadrzi centralni javni informacioni sistem vodeee svjetske agencije za javno informiranje CNN posjeduje IP adresu 64.236.16,84, dok racunar koj! sadrzi sluibeni informaCioni sistem grada Sarajeva posjeduje IP adresu 161 . 58 . 169 . 79 (ovi podaci bill su aktuelni u vrijeme pisanja ovog udzbenika, a sasvim je moguee da su u meduvremenu promijenjeni). 8 druge strane, racunari koji se na mrez_u prik!jucuju tek oS vremena na vrijeme i koji traze usluge od drugih racunara u mrezi (klljentski racunari), dobijaju privremene IP adrese koje vri" jede onaliko koliko traje prikljucenje na mrezu (odnosno, tzv. sesija). Nakon-adjave sa mre-ze, ista IP adresa se maze dodijeHti drugom racunaru. Nakan ponovnog prikljucenja na mrezu, novododije" Ijena IP adresa moze biti potpuno drugatija od IP adrese dodijeljene prilikom prethodne sesije.

'pro'de

Globalne racunarske mreze cesto se klasificiraju prema svom propusnom opsegu (eng!. balldw~dth),; Pod prapusnim opsegom podrazumijevamo razliku izmedu maksirnalne i minimalne
235

234

dozvoljene brzine promjene signala nosioca in'formacije koji putuje kroz kanal veze.' Propusni opseg Je direktno povezan sa maksimalnom mogucom brzinom prenosa podataka kroz mrezu. Mreze sa sirim propusnim opsegam dopustaju vecu brzinu prenosa podataka. Prema propusnom opsegu, mreze matema padijeliti na uskopojasne (engl. narrowband) mrete kaje dopustaju brzine prenosa podataka do 64 KB/s (kilobajta u sekundi), zatim sirokopojasne (eng!. wr'deband) mreze koje dopus1aju brzine prenosa podataka od 64 KB/s do 1.5 MB/s, i' izrazito sirokopojasne (eng!. broadband) mreie kOje dopustaju brzine prenosa od preko 1.5 MB/s. Sve mreze kod I<ojih se kao prenosni medij koriste klasicnEi telefonske mreze spadaju u uskopojasne mreze. S druge strane, ATM mreze, 0 kojima smo takoder govorili u prvom dijelu udzbenika, predstavljaju primjer tehnologije izra" zito sirokopojasnih mreza. U vrijeme pisanJa ovog udzbenika dominirale SU lIskopojasne mreze, medutim sasvim je moguce da 6e se situacija drasticno promijeniti u veoma bliskoj buducnosti.

trenutku kada se u donjem desnom uglu trake sa zadacima (koja se obicno nalazi na dnu radne povrsine) pojavi ikona koja izgleda poput povezanih racunara, veza sa Internetom je uspostavljena. Korisni6ki ra6unar je ovim postao dio !nterneta, 1ostace povezan sve dok korlsnik eksplicltno ne zatrazi prekid veze (Hi dok se veza ne prekine sarna od sebe, usljed prevelikih smetnji na vezama). Ovaj prekid se moz.e izvrsiti na nekolikO naCina, a najiednostavniji je klik desnom tipkom misa na pomenutu ikonu i izbor naredbe D;sconnect iz iskocnog menija koji S8 javlja tom prilikom. Bltno je napomenuti da s~ proces prljavljivanja korisnika moie i automatlzirati pomocu tzv. komandnih skripti, tako da se odmah po uspostavljanju veze automatski izvrsi prijava korisnickog imena i lozinke za adrec1enog korisnika. U tom slucaju terminalski prozor uop6e se ne pojavljuje. Za racunar kojl js prikljucen na Internet, u iargonu kazemo da js online (engL on fine:;:: bit! na linij], odnosno na mreii), za razliku od izraza offline, ko]i se koristi u slucaju kada veza nije uspostavljena. Izraz online koristi se za sve manipulacije koje se obavljaju putem Interneta (npr. izraz online transakcije oznacava transakcije kOje se obavljaju putem Interneta). Nakon sto je uspostavljena veza sa Internetom, moguce je korlstiti neke od mnogobrojnih usluga koje nudi Interne~ a koje se nazivaju Internet servis;' Postoji mnogo razlicit\h Internet servisa, od kojih je vjerovatno najrasprostanjeniji servis WWW-'(W,orld Wide Web). Ovai servis zapravo pred" stavlja ogroman informacioni sistem, a sastoji se od velikog broja hipertekstualnih i hipermedijskih dokumenata koji se obicno nazivaju Web stran;ce. Od svih Internet s8!visa, ovaj servis je posljednjih godina dotivio naJbrzi razvoj. On omogueava ne samo prenos tekstualnlh, vee i multimedijskih informadja (animadje, zvuka, itd.), kao i izvrsavanje programa putem skrlptnih jezika, Java ap!eta, 1drugih komponenti 0 kojima smo govorili u poglavlju 0 multimediji. IIVWW servis danas obezbjeduje cita.v ~iz naprednih usluga kao sto su multimedijske prezentacijs, interaktivne stranice, pracenje radIo! TV programa, automatski prenos programa i podataka sa udaljenih racunara na korisnicki racunar, itd. Uredena skupina medusobno povezanih Web stranica eila je svrha prezentacija neke odredene teme, obicno se naziva Web sajt (eng!. Web site). Da bi se omogu6io pristup proizvoljnim dokumentima na Internetu, neophodno je bilo ustanoviti odreciene konvencije za imenovanje dokumenata lz kojih ee biti jasno ne sarno kako se dokument zove, nego i gdje se na!azi. Puni naziv dokumenta prema ovim konvencljama naziva se URL runiform Resource ,Locator) iii, manje preclzno, I!'ternet adresa (u zargonu cesto sarno adresa). Hiperlinkovi koji ukazuju na dokumente koji se nalaze na udaljenim racunarima sadrze zapravo URL odredisnog dokumenta. URL, odnosno Internet adresa, u najopcenitijem slueaju ima sljede6i oblik (pri cemu se broj porta koristi samo u specificnim slucajevima, stoga ga necemo posebno objasnjavati):

2.7.3 Upotreba Interneta i WWW servisa


Da bi se racunar koji je opremljen modemom prikljuCio na Internet preko telefonskog prikljucka, vlasnik racunara prvo mora otvorlti korisni6ki racun kod nekog od Internet provajdera, NajveCi Internet provajder u naso) drzavi je BIHNET, koji je sastavni dio kompanije Telecom 8iH, a postoje i drugl Internet provajderi kao sto je UTiC illniverzitetski lelejnformac1oni Qentar), SmartNet, itd. Kada karis" nlk koji je otvorio korisnicki ratun kod nekag od provajdera teli da uspostavi vezu sa Internetorn, on P!VO mora uspostaviti vezu sa provajderom kod kojeg ima otvoren racun. Za uspostavljanje veze sa provajderom mogu se koristiti razliciti programi. U Windows operativnim sistemima, za tu svrhu najcesce se koristi pomocni program Dia/~Up Networking koji dolazi kao sastavni dio aperativnog sis~ tema, mada postoje i balii programi za Istu svrhu {npr. RAS professiona~, Prije prve upotrebe, programi za uspostavljanje veze moraju se prilagoditi (konfigurisatl) prema l<onkretnom provajderu, sto se radi prema uputama kaje ponudi svaki provajder pri!1kom otvaranja korisnickog ra6una. U slucaju da vas skalski ratunar lma pristup na Internet, ova prilagodenja je vee obavio nastavnik (1 vjerovatno kreirao ikonu na radnoj povrsini koja omagucava uspostavu veze), tako da se 0 tome ne morate brinu~ t1. U slueaju racunara povezanih u lokalnu mrezu, dlrektna veza sa Internetom uspostavlja se sarno sa serverskog ratunara, dok ostali raeunari pristupaju Internetu indirektno, koristeci usluge servera. Nakon pokretanja programa za uspostavljanje veze, proces uspostavljanja zapocinje. Sasvim )e mogu6e da se veza ne uspostavi lz prvog pokusaja, zbog prebukiranostl provajdera. U trenutku kada se veza uspostavi, na ekranu se pojavljuje karakteristicni terminalski prozor (prikazan na slici sa lijeve strane), u kojem se od korisnika traii da unese svoje korisnicko ime i !ozinku. U slueaju da su uneseni podaci neis" pravni, iii u slucaju da korisnik nije lzmirio svoje finansijske obaveze prema provajderu, pristup ce biti odbijen (engl. access denied). U suprotnom, na ekranu se pojavljuje pozdravna poruka provajdera, kao i komand/. tori~~~;'{Fhl C~nc~I!F3) na 11ni]a koja omogucava da zadajemo odgovarajuce komande provajderu. U ovom trenutku, mi jos nismo '., ,' .. _ . " . _ povezani sa Intemetom, nego samo sa provajderom. Da bismq,_se:'!')ovl9zali sa Intemetom, potrebno je provajderu zadati odgovaraju6u komandu, najces6e ppP,;stq~j~-skraceniGa od engL EoinHo"Eoint Erotocol (neki provajderi, poput BfHNET-a, avu koman" ~ "du '_izvrSavaju automatski, bez potrebe da je korisnik eksplicitno zadaje). Nakon zadavanja ove _. _kom'ande, na ekranu se ispisuje IP adresa koja je dodijeljena korisnickom raeunaru u toku tekuce sesi" ie,'i joS-"11eke dOf)Unske intormacije. Sada je potrebno klikom na dugme Continue (ili pritiskom na tipku F7) ukloniti terminalski prozor, jer nam neposredna komunikacija sa provajderom vise nije potrebna U

R."tg nt 5L ", ,i..fh .. ,

iot X);

ime--protokola://imeJoc:unoraijolder_1 ljoldcr._2/ ... /imc_dokumenta:hroLporta


Na primjer, dokument koji sadrii dnevni raspared filmova u sarajevskim kinima na jednom od nesluzbenih informacionih sistema vatnijih gradova Sosne i Hercegovine, ima sljedeCi URL odnosno adresu (ove adrese su podloine promjenam~, pa jEi sasvim mogu6e da ova adresa ne bude va!jana u trenutku !<ada budete Citali ovaj udtbenik_ .

http://www.city.ba/bhis.a~aJe~9/k5:no . Rht"rnl .
Ovdje je http ime protciko!a kOji_sekoristr," www .~iiy .ba je lme racunara na kojem se dokument nalazi, bh i saraj evo su lmenB foldera'O'!r1os"n,o pod{oldera u kbjem se dokument naiazi, dok je kino. shtml naziv samog dDkurrient~.:Kao t~~ia6~nqra moie .se koristiti njegova slovna iii IP adresa. Kako Web stranice zapra-vo riS~:D;~t~'. :d;ugo ~ego hip-ert~kstualni dokumenti, za njihovo pre" gledanje moze se upotrebljavati _bilo kojt HTM.L preglednlk iii brouser, poput Internet ExpJorera (u nastavku cemo pretpostayiti da" se k~xisti upravo-ovaj .preglednik, mada velikih razlika nema ni u ostalim preglednicima). Ra? ~a ovim p~egledniGima)e izuzetno jednostavan tak i za apsolutne
237

2B6 .

pacetnike (mada i ani pasjeduju mnastvo apcija namijenjenih iskJjucivo iskusnim korisnicima). Da bisma prikazaJi neku Web stranicu, davoljno je u polje za unos Address unijeti URL te stranice (pod uvjetom da smo se prethodno prikljucili na Internet) i ona 6e se nakon kraceg !Ii duzeg eekanja prikazati na ekranu. Na sllci slijeva prikazana je Web stranica koja odgovara URL-u iz primjera koji sma maJoprije razmatrali (preciznije, izgled te stranice kakav je bio 8. februara 2003. godine).

je (sllke, animaclje, zvuk, itd.). potrebno snimiti posebno. Na primjer, u Internet Exploreru, slike motemo snimiti. klikom desnom tipkom misa na sliku, a zatim izborom naredbe Save Picture iz iskocnog menija. Internet Explorer (ad verzije 5.0 nadalje) omogucava i automatsko snimanje cjelokupne Web straniee zajedno sa cjelokupnim hipermedijskim sadrzajem pomoGu naredbe Save As. Medutlm, bitno je istaei da ee svaka hipermedijska stranica uvijek biti snimljena iz dva dijela. Prvi dio sadrzavaee samo hipertekstualni dio dokumenta, i biee snlmljen pod imenom koje smo zadali sa nastavkom .H'rH (npr. Oglasi.htm), dok ce svi hipermedijski dodaei biti snimljeni u poseban folder eije je ime jednako imenu dokumenla sa dodatkom "_.. files" na kraju imena (npr. oglasi~files). 0 ovome trebamo voditi raeuna ukoliko kasnije telimo premjestiti snimljenu,stranieu na neku drugu lokaciju (npr. na disketu). Maguee je postav!ti hiperlink tako da ukazuje na naki softverski resurs koji nije element hiperteksta iii hipermedije, npr. na neki program, arhiviranu da1oteku, iii opeenito datoteku koja ne pripada konceptu hipermedije. U tom slueaju, prilikom klika na takav hiperlink, preglednik ee automatski pokrenuti postupak prebaeivanja odgovarajueeg softverskog resursa (datoteke) sa udaljenog racunara na korisnikov racunar (nakon cega ee korisnik odlueiti sta ee ue\niti sa njim). Taj postupak naziva se download (zbog nemoguenosti dobrog prijevoda ovog izraza, kod nas se eesto koristi targonski izraz "skidanje" sa lntemeta). Obrnuti postupak, tj. postupak prebacivanja nekog softverskog resursa sa korisnickog raeunara na udaljeni raeunar, naziva se up/Dad, ali se on znatno rjede susrece prilikom rada sa Web stranlcama. izuzetno Je vazno napomenuti da je svaki resuts koji je "skinut" sa lnterneta, prije bilo kakve upotrebe, potrebno provjeriti pomo6u nekog ad antivirusnih programa, S obzirom da postoje mnogi saji'ovi fla kojima se mogu naci (bilo namjerna iii nenamjernoj datoteke koje sadrie softverske bornbe, trojanske konje, viruse, i druge vrste destruktivnih programa 0 kojima smo govorili u prvom dijeiu ovog udibenika! Veoma cesto nam je potrebna neka informaclja, ali nemamo nikakve ideJe na kojoj bi je adresi mogli traziti, tim prije sto je WWW otvoreni informacioni sistem koji nudi ogromne koliCine informacija. Da bi se omoguelo pristup informacijama za koje ne znamo gdje se nalaze, unutar WWWsistema nalazi se j veliki braj tzv. racunara pretfaii~ vaca (engl. search engines). Raeunari pre~ GtOUps trazivaei posjeduju ogromne baze podataka koje euvaju informacije 0 tome gdje se mogu naCi pajedine informaeije (sami raeunari pre.trazivaci su takoaer ogromni i obieno pred~ stav!jaju raeunarske sisteme od neko!iko stot!na iii h[ljada raeunara povezanih u !okalnu mrezu). Najpoznatiji raeunari pretrazivaei su ~Google: AIt-aVista, Yahoo i Lyeos, kojima se moze pristupiti redom preko adresa ".VlWW.; \:JQog'le. com, www.altavista.com, www.yahoo.com i WIIViA' .1ycos. COin. Upotreba ':.la9uria~a Rretrativaca je reiativno jednostavna. Nakon pristupa poeetnoj stranici racunara pretrativaca, pojaVljuje se polje za unos u kOje motemo unijeti jednu iIi vise kljuenih rijee! I~oje nas. zanima. '..ju."(ri.?'sIlCi sa -strane prikazan je izgled pocetne stranice pretrativaca Google). Pretraga zapocinje Rtiiiskom na tipku ENTER iii klikom misa na odgovarajuee dugme. Po zavrsenoj pretrazj (koja traje ..izvJ~sn6 vrijeine: najeesee ne duze od desetak sekundi, osim ako je mreza jako zagusena), pretrativap .ce 'prikazati spisak svih Web stranica pohranjenih u bazi podataka racunara pretrazivaea koje sadrze zadane kljucne rijeci, zajedno sa hiperHnkovima ko]i ukazuju na ta stranice, tako da pro'nadenim stranieama mozemo !ako pristuplti. VeGina racunara pretrazivaca, pored moguenosti
239

URL, odnosno Internet adresa, ne mora sadrtavati sve dijelove koje smo naveli. Na primjer, ime protokoJa (zajedno sa pripadnom dvotackom i dvije koso erte) se veoma eesto izostavlja, jer so za pronos hipertekstualnih dokumenata gotovo uvijek koristi protokol HTTP (.t!yperlext Iransfer Erotocol), koji predstavlja podskup opeeg TePllP protokola priiagoClen prenosu hipertekstualnih i hipermedijskih dokumenata (Web straniea). Ukoliko kao URL zadamo samo "ime racunara (npr. www.city.ba).prikazaee se dokument koji je na tom racunaru proglasen za potetni dokument (obicno dokument sa imenom index, html iii main. html), sa kojeg se granaju hiperlinkovi ka ostalim dokumentima. Taj dokument obicno se naziva osnovna, pocetna iii kucna stra~ nica (engl. home page). Korisnik Web stranicama najeesce pristupa upravo preko hiperlinkova koji vade sa osnovne stranice (pri tame se u polju za unas Address uvijek ispisuje puna adresa dokumenta koji se trenutno prikazuje). Ovakav pristup ima prednast sto ne treba pamtiti duge adrese i tacne lokacije pojedinih dokumenata. Medutim, ponekad je potrebno pratiti dtavu seriju hiperlinkova da bi se sa pocetne stranice doslo do zeljenog dokumenta. Poste pristup svakoj ad Web stranica maze biti prilicno spar (naroeito ukol1ko je mreza preopterecena), tada cemo mnogo brie pristupiti zeIjenom dokumentu ukoliko odmah zadamo njegovu punu adresu (naravno, pod uvjetom da je znamo). Takoder, moguee Je da se na nekom raeunaru nalazi skriveni dokument ha koji ne ukazuje niH jedan hiperlink, tako da tom dokumentu mogu pristupiti sarno oni koji znaju njegovu punu adresu.
..:J
'j; -(?"

Vedna naredbi i alatki u HTML preglednicima sasvim su jednostavne za upotrebu. Tako, na primjer, ukoliko telima da se vratimo na dokument koji smo preg!edali prije nego sto smo pomoeu hiperlinka presli na drugi dokument, kliknucemo na dugme Back, dok nas klik na dugme Forward vodi ponovo u smjeru istog hiperlinka. Dugmad Back i Forward mogu se koristiti za vraeanje unazad i odlazak unaprijed kroz citav lanae povezanih dokumenata, sto amogucava veomajednostavno kre~ tanje (iIi navigaciju, kako se u zargonu kaze) kroz dokumente. Pomoeu dugmeta Stop mozemo zaustaviti uCitavanje straniee u slucaju da one predugo traje, dok dugme Refresh omogueava ponovno ucitavanje iste stranice, sto moze biti ad koristi ukoliko je doslo do greske prilikom ucitavanja straniee, iii ukoliko postajl sumnja da je sadrtaj stranice u meduvremenu promijenjen. Naredbom New Windowiz menija File moguee je otvoriti istovremeno vise prozora u kojima motemo pregledavati vise razlicitih Web stranica,' sto ponekad moze biti veorna prakticrio. Svi naz/vi komandi kaje su spomenute odnose 'se na preglednik Internet Explorer, dok se u drugim preglednicima mogu susresti i drugaeiji nazivi (npr. Netscape Navigator koristi komandu Reload umjesto Refresh). Treba jos napomenuti da klik desnom tipkom misa na hiperlinkove iii pojedine dije!ove Web straniea prikazuje iskocni meni koji sadrti razne kprisne naredbe koje se odnose na dio doku~ menta na kojem se halazio pokazivac misa u trenutku klika. Stranicu koju pregledamo mozemo sacuvati (snimiti) na sliean naein kao u veeini programa, pom06u naredbe Save As u meniju File, Ipak, nuzno je napomenuti da veliki broj preglednika obavIja snimanje sarno hipertekstualnog sadrzaja, 'dok je sve sadrzaje koji spadaju u domen hiperrn(:">di238

pretrage po kljucnim rijecima, sadrze i spiskove stranica sa izvjesnim interesantnim informacijama ko]i su razvrstani po kategorijama. Ovakvi pretraziva6i nazivaju se kata/ozi (engl. directories). Mada je, u svojoj sustini, osnovna upotreba pretrazivaca krajnje jednostavna, ponekad je potrebna prilicna vjestina da se odaberu prave kljucne riieel koje (;e dovesti do prikaza tacna onih informacija koje nas zanimaju. Ve(;ina pretrazivaca, pored prostog zadavanja kljucl)ih rijeCi omoguCava i zadavanje slotenijih upita. Taka, na primjer, veGina pretrazivaea omogu(;ava da ispred rijeCi dodamo znak + iii (bez razmaka izmedu znaka i rijeel). Znak + oznacava da se navedena rijet mora neizostavno pojaviti u stranici koju trazimo, koliko god mazda djelovala nebitna, dok znak - oznacava da se navedena rijee ne smije pojaviti u stranici koju trazimo. Na primjer, uko!1ka nas zanimaju informacije 0 fQckmuzici, ali kOja ne spada u kategoriju hard rockmuzike, mozemo postaviti upit koji glasi rock muzika -hard. Ukoliko nas zanimaju stranice koje sadrte makar jednu od navedenih rljed, maiemo rijeti koje tratimo razdvoji ti operatorom OR. Na primjer, upit Zagreb Voz OR vlak pronaci Ce sve stranice na Kojima se nalazi rijee zagreb i makar jadna od rijeei voz iii vlak. Ukoliko tratima tacnu frazu kOja se sastoji od nekoliko rijee! u taena odrectenom poretku, tu skupinu rijed trebamo staviti izmedu navodnika. Na primjer, ukoliko postavimo upit Meho Nehic':, pretrazivac nam maze izlistati i stranice u kojima se govori a Husi Mehicu i Mehi Suljicu, jar su u njima prisutne obje k!jucne rijeti (Meho i Mehi(~) koje smo zadali, sio vjerovatno nije ono sto zelimo. S druge strane, uko!iko postavimo upit .' Meho Mehi e", pretrazivac 6e nam lz11stati samo one stranice u kqjima se javlja tacna fraza Meho l~erJ.:i.e (ali nazalost ne i fraza Mehie Meho, tako da je za pronalazenje osoba na Internetu najbolje korlstiti slozeni upit poput "Meho Mehie" OR "Mehie Meho"). Neki pretrazlvaCi (npr. Altallista i Yahoo, ali ne i Googfe) dopustaju i upotrebu znaka zvjezdica (*) koji zamjenjuje proizvaljnu grupu slava, tako da bi upit papri * pronasao sve stranice koje sadr2':e rijet] koje poeinu sa frazom papd, sto moze biti jako korisno kod pretratlvanja stranica na bosanskom jeziku s obzirom na nase mnogobrojne padeze (npr. paprika, papri ei, paprikama, itd,). U svakom slueaju, prije bilo kakve ozbiljnije upotrebe raeunara pretraiivaca, pozeljno je prouCiti savjete za efikasno koristenje, koji se mogu pronati prateCi hiperlinkove poput Search Tips, Help Search, itd. sa paeetne stranice pretrazivaca.
w

licnog komunicifanja. Danas se razvija i varijanta elektronicke poste poznata pod nazivom voice mail, koja umjesto razmjene pisanih poruka omogucava razmjenu snimljenih govornih poruka. Da bi korisnik mogao koristiti uSluge e!ektronieke poste, on mora posjedovati svoje elektronicko postansko sanduce (eng!. mailbox). ElektronlCko postansko sanduee je, zapravo, odredeni memorijski prostor na raeunaru koji se brine 0 prijemu i otpremi korisnikove elektronitke poSte, i koji se nazlva Email posfuiftefj (server). Naravno, elektronicko postansko sanduee korisniku mora neko dodijeliti (npr. mretni administrator radne organizacije u kojoj je korisnik zaposlen). Obicno, svaki Internet provajder svakom korisniku koji kod njega otvori korisnibki rabun automatski dodjeljuje i elektronicko postansko sanduce. Svaki korisnik elektroni6ke poste dobija adresu za elektronicku postu (odnosno tzv. E~mail adresu) oblika imc~k()risl1ika@imeJ(JcunQr{/, -gdje imc_lwrisnika pred stavija korisnicko lme korisnika elektronieke poste, dok imeJacYunara predstavlja adresu raeunara na kojem se nalazl elektronieko postansko sanduce korisnika (primjer E-mail adrese je peroperic@bih.net .ba.). Znak @ koji se javlja u E-mafladresama eila se et(engL a~, mada se u zargo~nu susrecu i izrazi ludo "a", majmunsko "a" (engl. monkey "a"), pa cak isamo majmun.
H

Za koristenje usluga elekironidke paste koriste se posebni program!, nazvani E-mail klijenti, medu Kojima su najpoznatiji Eudora, Microsoft Outlook (kaji dolazi kao sastavni dio paketa Microsoft Office), Lotus CC:Mail, Pegasus Mail i Outlook Express (ko]i dolazi kao sastavni dio Windows opera" tivnih sistema u novijim verzijama, i koji je prikazan na sliei desno), Neki od ovih programa (poput Microsoft Out/ooka) su relativno .slazeni za upotrebu, jer pored slanja i prijema elektronicke paste',,~:,;',;':';'::'.;:::;::::::~:':' omogucavaju i mnogobrojne druge radnje ," nevezane za elektronicku postu. U nastavku cerna malo detaljnije razmotrlti pro- I ,l, 0 " ... gram Outlook Express, kojl je dovoljno jednostavan za upotrebu, i koji se na nasim prostorima najcesee susrece kao E-mail klijent.
',,,,,~,,,, ~

Usluge WWWservisa (kao, uostalom, 1usiuge Inteneta op(;enlto) su potpuno besplatne (avo ne treba brkati sa uslugama Internet provajdera koji naplacuju usluge pristupa Internetu). Najveei braj korisnika Interneta vecinu vremena pri radu sa Internetom provodi upravo trazenjem informacija uz pom06 pretrazivaca i pracenjem hiperlinkova koji ukazuju na odredene interesantne teme, veoma cesto i bez ikakvog odredenog cilja. U zargonu se ovakav fad naziva 5urfanje (eng1. surfing). Treba znati da je WWWotvareni informacioni sistem na koji prakticno bilo ko moze stavljati informacije kakve god zeli (ponekad i sa jako nepodobnim sadrzajem), tako da informacije prikupljene putem Interneta uvijek treba prihvatati sa izvjesnom dozom rezerve. cak i informactje koje se pronadu na Web sajtovima nekih poznatih firmi ne moraju uvijek biti tacne, jer je poznata boljka mnogih firmi koje posjeduju Web sajtove da ne poklanjaju dova!jno paznje redovnom azuriranju informacija prezenti~ ranih na sajtovima, pa se nerijetko desava da pronadene informacije budu zastarjele, odnosno neak* tuelne. N~zalost, ovaj problem je narocito izrazen kod Web sajtova domacih firmi, pa cak i panekih kote imC]jLi veHk! znac~j i uzivaju veliki ugJed u nasem_drustvenam zivotu.

Prije prve upotrebe, bilo kaji program za s!anje i prijem elektronieke poste (E-maffklljent) potrebno je prilagoditi (konfigurlsati) prema konkretnom E"mail serveru, sllcno kao sto se programi za uspostavljanje veze moraju prllagoditi konkretnam provajderu. Ova prilagodavanja obavljaju se prema uputama koje nudi organizacija kod koje korisnik ima elektronicko postansko sanduee (u slucaju da vas skolski racunar posjeduje mogu(;nast koristenja elektronicke poste, neophodna prilagodavanja je najvjerovatnije vee obavio nastavnik). U veCini E-mail klijenata, posta (to"su zapn;ivb poruKe) je razvrstana u foldere, od kajih su najznacajnlji Inbox u kojem se cuva <p~istigla:-post~,- Qutbox u- kojem se euva pasta spremna za slanje, Sent Items u kojem se cuvaju k.C?pije pos-lane_posJ~,JDeleted Items, u kojem se cuva posta spremria za brisanje. Bitno je. naglasiti 9i;! kqrisniKl1e m:or? bfti'prisutan za racunarom u trenutku pristizanja elektronicke poste (niti njegoy racunar uot=J,e$J]lora bitf~uk!jucen), jer se sva posta kOja pristigne korisniku euva u njegovom elektr6nic~kom,.postanskom .sanducetu (dakle, ne na karisnikovom ratunaru). Tek na eksplicitan t':a.htjev,- koji:se. izvodl'p6kretan]em komandi poput Receive, Check Mail ill neke slicne (ovisn6-od' Konkretnolf E~mail-klijE:nta), sva pristigla elektronicka posta se pre baeuje na korisnikov racunar u -Inbox .fOJder. Slicno, k9mandom Send (Hi nekom slicnom), sva pri~ kupljena posta u Outbox-folderu otprema se plY~ u elektronieko postansko sanduce, nakon eega se
241

2.7.4 Elektronicka posta

"Elekfr~fnc~a posta, o9nosno skracenim imenom E-mail, predstavlja najvise koristen servis Interneta:poslije- WWWsalVisa. Elektronicka posta predstavlja veoma brz i jeftin nacin komuniciranja ~ ~ "iz:medu'k'orisnika u raznim krajevima' sVijeta (mnoga jeftiniji ad telefonskog razgovora), kojl po formi .,'_ podsjeca na klasicno dopisivanje, izuzev sto poruke putuju enormnom brzinom sa kraja na kraj svi" jeta (HpTcno ne'-duze od nekollko minuta). Proejenjuje se da se danas u svijetu svakog dana razmijeni vise stotina miliona elektroniekih poruka, tako da je elektronieka posta danas najrasprostranjeniji oblik

E~mail posluzitelj dalje brine kako ce otpremiti poruke na trazeno odrediste. Podrazumijeya ~~tPa (1 oba slu6aja, korisnikov racunar mora prethodno biti prikljucen na Internet. U mnogim EMma!, I<lijentima (npr. Outlook Expressu), komande Receive j Send objedinjene su u jednu komandu koja se zove Send/Receive (Hi Send/Recv). Prilikom slanja e!ektronieke paste najvise se koristi protokol koji se naziva SMTP (S.impleMail Iransfer Erotocol), dok se za prijem elektronieke poste obieno koriste POPS (Eost Qffice Erotocol version J) iii IMAP (Internet Message 8.ccess Erotocol) protokolL

otvoriti besplatan korisnieki raeun popunjavanjem odgovarajuceg formulara (koji se dobija izborom hiperlinka Sign Up iii nekog slieriog, zavisno od konkretnog posluzitelja). Ovi posluzitelji kreiraju elektronieke postanske sandueice kojima korisnik pristupa putem klasicnih HTML preglednil<a (poput Internet Explorera), a ne pomocu posebnih programa (poput Outlook Expressa). Ovaj vid elektronieke poste naziva se Web Mail. Kompletan rad sa ovakvim posluziteljima obavlja se iskljucivo putem Web straniea, koje su dizajnirane tako da oponasaju izgled j,rad standardnih EMmaii klijenata. NajveCi nedostatak opisanog pristupa elektroniekoj posti je to sto je nemogu6e odjednom prebaciti sve poruke iz elektronickog postanskog sanduceta na korisnicki raeunar pa ih pregledati bez potrebe za pri,klju6enjem na Internet, s obzirom da na korisniekom racunaru ne postaji Inbox folder, vee se on samo simulira puiem Web stranica (svaka poruka zapravo predstavlja Web stranicu). Drugim rijecima, za vrijeme pregledanja elektronieke poste korisnik mora eitavo vrijeme biti prikljucen na Internet, Cime se nepotrebno trose telefonski impulsi. Takoder, kako se svaka poruka formira kao zasebna Web stranica, prikaz poruka maze se odvijati prilieno sporo, narocito ukoliko je mreza zagusena. S druge strane, kod klasicnih sistema elektronicke paste, zasnovanih na POP3 iii IMAP protokolu, _korisniku je dovoljno da bude prikljueen na Internet samo neko!iko sekundl (koliko traje prebacivanje poruka !z elektron'!ckog postanskog sanduceta u kor"lsnieki Inbox folder), nakon cega je poruke mogu6e pregledati bez potrebe za trosenjem telefonskih impulsa.
I

Da bismo kreirali novu poruku, u E-mail klijentu pokrenemo naredbu koja obicno ima naziv poput
New Mail iii Compose. Nakon pokretanja ove naredbe, pojavljuje se formular sa velikom praznom

povrsinom u koju unosimo tekst poruke, kao i nekoliko polja za unos, ad kojih su najznaeajnija polja obHjezena sa To: u kOje unoslmo E-mail adresu primaoca poruke, zatim Cc: (od engl. carbon copy) u kOje eventualno upisujemo adrese na koje zelimo da posa!jemo kopije iste poruke (ova polje moze ostati prazno, a ukoliko zelimo poslati vise kopija na razlieite adrese, potrebno je navesti niz adresa koje su medusobno razdvojene tacka-zarezima), kao I polje Subject: u koje uplsujemo temu poruke, odnosno nekoliko rijee! kojima,rezimiramo sadrzaj poruke. Temu poruke primaoe poruke vidi (kao naziv poruke u Inbox folderu) i bez potrebe za otvaranjem p~ruke, taka da terne pomazu primaoeu poruke da razlud koje ee peruke prvo c!tatl, a koje ce mozda potpuno ignorirati. Po zavrsetku pisanja poruke, potrebno je zadati komandu Send kojom ce se napisana poruka smjestiti u Outbox folder (u nekim E~mail klijentima je potrebna jos jedna Send komanda da bi poruka zaista i otputovala iz Outboxfoldera, kao sto je vee opisano, dok u drugim poruke odlaze automatski ukoliko E~mail klijent ustanovi da je raeunar onUne). Pored opisanih komandi, bitne komande koje se takoder susrecu u E-mail k!ijentima su: Forward koja omogucava prosljedivanje primljene poruke nekom drugom korisniku, zatim Reply koja omogueava odgovaranje na primljenu poruku, i Delete koja omogucava brisanje poruke. NaCin upotrebe ovih komandi je oeigledan, Veoma znaeajna mogucnost elektronicke poste je mogucnost s!anja dopunskih datoteka (poput sitka, programa itd.) zajedno sa porukama, Ove dopunske datoteke nazivaju se attachmenti (prikladan prijevod za ovaj izraz ne postoji) iii MiME (Multipurpose Intenet Mail J;)tension) dodaci. Da bismo "prikaci!i" attachment na poruku, prilikom pisanja poruke dovoljno je izabrati naredbu poput Attach File iii alatku na kojoj je nacrtana spajallca (zavisno od konkretnog E-mail klijenta), nakon 6ega ce se otvoriti dijalog koji omogucava izbor datoteke koju hoc':emo da prikaeimo na poruku< Prilikom prijema poruke koja sadrzi attachment, primalae ee biti obavijesten 0 tome i imat ce moguenost da otvori sadrzaj attachmenta. Olldje vrijedi isla pravi/o kao i prilikom "skidanja" datoteka sa Interneta: Bilo kakav attachment prije otvaranja obavezno treba, provjeriti pomocu nekog ad antivirusnih programa, cak i ukoJiko dolazi ad poznatog posaljioca! Naime, mnogi racunarski virus; razmnozavaju se ns principu da kreiraju laine poruke 58 adresama korisniku poznatih pasa/jioca (koje zapravo ne poticu ad njih), a koje sadrze attacl1mente koji u sebi sadrie viruse i druge destruktivne programe! Elektronicka posta nudi t" mogucnost _diskusija putem e/ektronicke poste, preko takozvanih maiJjng {aruma (iii mailing listh koji omogucavaju medusobnu razmjenu iskustava i informaeija 0 raznim problemima izmedu grup!1 kOJtsnlka; ~oruk~ koje se salju na odgovarajuce forume automat~ ski se salju svirn prijavljenim- kprisniGirria tih.-fOrljma. Korisnik se prijavljuje na odgovarajuei forum najcesce slanjem specijalne poruke naJa{:uria(koji administrira taj forum. Forumi nude ogromah broj razlicitih tema za diskusiju-,: gd -koj!h_~e~ ve6im~, 1<or1sti u akademskim krugovima. Da bi se omogucilo koriste~je vl~~tit~_i~-6u:l'jl.adrese anim korisnieima koji nemaju otvoren koris~ nicki racun ni kod jednog !ntern~t provajdera, a irnaju pristup'lnternetu na neki drugi naCin (npr. kod prijatelja, u Internet cafeu, -ttdt izvj~sni Web poslu?:itelji nude usluge prijema i slanja elektronicke poste putem WWWservisa.- ryledu ovim Web posluziteljima najpoznatiji su Yahoo Mail, koji se nalazi na adresi mail. yahoO', com, i Halmai/-- (U vlasnistvu Microsofta), koji se nalazi na adresi www.hotmail.com. Putem ovih Web Posluzitelja svaki korisnik koji ima ikakav pristup Internetu moze

;!

2.7.5 Ostali Internet servisi


Pored WWW~a i elektronicke poste, koji su najeesee koristeni Internet servisi, Internet pruza i mnostvo drugih servisa. Jedan od servisa ko)i js donek!e sHean elektronickoj posti predstav!ja caskanje (engl. chaQ pufem Interneta iii IRe (Internet Belay Qhat). Pomocu ovog servisa korisniGi Interneta mogu medusobno "razgovaratJ" kucajuCi poruke i citajuCi ih sa ekrana. Medutim, za razliku od elektronicke poste, ovdje se komunikacija obavlja 'u rea/nom vremenu, tj. svi ucesnicj u komunikaciji moraju se lstovremeno nalaziti u bJizini raeunara. Say razgovor obavlja se posredstvom tzv. kana/a, koji pokrivaju razmjene informacija 0 specifienlm temama. Postoje razlicite vrste IRc servisa, a za njihovo korislenje neophodni su odgovarajuCi programl, medu kojima su najpoznatiji Microsoft Internet Relay Chat (poznatiji pod skracenim Imenom mlRC), flliirabifis ICQ, MSN Messenger i AOL Messenger. Napredni IRe servisi omogucavaju i I<omuniciranje putem glasa, naravno pod uvjetom da koris~ nici posjeduju odgovaraju6u opremu. Na ovaj naeln omogueena je simulacija telefonskog razgovo~ ra putem Interneta, po eijeni koja je neuporedivo niza ad Gijene obi6nog telefonskog razgovora na daljinu. Sve tehnologije koje omogucavaju prenos glasa putem interneta, nazivaju se zajednickim nazivom VOl (~oice Qver Internet) tehnologije. Ove tehnologije predstavljaju podskup opcenitijih tehnologija kojirna se ostvaruju multimedijske interaktivne komunikacije put~m Interneta. Prlmjer naprednih komunikacija ove vrste su video konferencije, koje omogucavaju diskusije izmedu grupe korisnika koji su opremljeni video kamerarna, i koje omogu6avaju da korisnrci ne sarno cuju, nego i vide (na ekranu monitora) svoje sagovornike. -Jedan od servisa bez kojeg je nezamisliv ozbiljnijL rad sa InternetOJ1l je' FTP_;(Eile Iransfer Erotoc,ol). FTP ie ujedno i ime protoko!a, i Ime odgovarajuceg sewisa, 'SlLcno-HITp-u,.FTP jG tai<oder podskup TCPIIPprotokola. Medutim, za razliku od HTTP'p:rot6k61~:lsoji_jep~ilagoden prenosu pretezno hipertekstualnih i hipermedijskih dokumenata, FTP protokQU~- razvijen za prenos datoteka proizvdljnog sadrzaja, i omogucava efikasan prenos datoteka"kak(rsa udaljenog raeLmara na lokalni racunar (download), taka i sa lokalnog na udaljeni :ra6unax '(upload). -~6r!stenjem FTP servisa, moguce je putem Interneta nabaviti veliki broj do.kumenata, eiektroniGkih knjiga, slika, programa (kako zabavnih, poput igara, tako i sasvim ozbiljnih programa, I{oji obieno spadaju u kategoriju shareware iii freeware programa), itd.. 243

242

Mada je ograni6eni pristup FTPservisima (1 to samo download a ne i upload) moguc i pome6u HTML preglednika (peput Internet Explorera), ovakav pristup se ne preporucuje, s obzirom da HTML preglednici nisu posebno prilagodeni radu sa FTPprotokolom (njihov izvorni protokol je HTTP, tako da se mora obavliati pretvorba izmedu ova dva protokola). Stoga je za koristenje FTP servisa pozeljno korlstiti posebne programe nazvane FTP kUjenti (primjer ovakvog pro.Qrama je WS_FTp). Jedan jednostavan FTPklijent(nazvan prosto FTp) dolazi kao sastavni dio Windows operativnih sistema, ali zbog prilicno primitivnog korisnickog inteliejsa (komandna linija) njega mogu koristlti jedino iskusniji korisnici. Za prikljucak na bilo koji raeunar koj1 nUdi FTPusluge, takoder ie potrebno posjedovati korisnicko ime i lozinku (1 to upravo na tom racunaru). Ovaj zahtjev umnogome ogranicava upotrebu FTP servlsa. Stoga, mnogi FTP posluzitelji doz'voljavaju prijavu korisnika koji nema otvoren korisni6kl raeun taka sto' 6e kao korisnicko jme navesti Anonymous, a kaa lozinku svoju Email adresu. Na taj naein, korisnik dobija manja prava pristupa nego korisnik koli ima otvoren korisnicki raeun na tom ra6unaru, ali ipak moze koristiti ve6inu usluga kOje FTPservisi pruza]u.
Te/net je servis i protokol ko]1 sluzi za pristup za Tad na udaijenom racunaru (engL remote login) koristenjem lokalnog raeunara kao terminala. Pokretanjem odgovaraju6eg komunikacionog programa (primjer ie program koji se takoder zove relnet i dolazi kao sastavni dio Windows operativnih sistema) i navodenjem adrese raeunara kojem se zeli pristupiti, korisnik moze raditi na udaljenom racunaru isto kao da radi na ra6unaru ko]i se na!azi u njegovoj sobi. Pristup udaljenom racunaru je mogu6 samo ukoliko korisnik posjedu]e otvoren korisni6ki racun na tom racunaru. Nakon odobrenja pristupa, korisnik moze, ovisno 0 pravima pristupa koje posjeduje, koristiti raspolozive resurse tog racunara, ukljucuju6i i hardverske resurse poput memorlj'e, procesora, izlaznih jedinica, itd. Na taj nacin, korisnik mreze moze koristiti neki vrlo brz, mocan i skup racunar bez potrebe da fizicki odlazi na mjesto gdje je tal racunar zaista lociran. Mada pastoje ra6unari na kojima je mogu6e raditi na daljinu bez placanja naknade, uslu~ ga rada na daljinu najeesce nije besplatna, pogotovo ukoliko se radi 0 zaista mocnim raeunarima.
Mreine novine (engL Usenet News) predstavljaju Internet servis putem kojeg korisnici sirom svijeta mogu razmjenjivati informacije 0 razlicitim temama. Korisnik mreznih novina maze poslati poruku koja 6e biti vidljiva svim ostalim korisnlcima mreznih novina, a moze i pregledati poruke koje je poslao bilo koji drugi korisnik mreznih novina. Za razliku ad diskusija putem elektronicke poste, kod mreznlh novina sve poruke su pohranjene na nekom centralnom racunaru na ko]i se korisnid moraju prijaviti da bi citali poruke vezane za neku temu (kod diskusije putem e!ektronicke poste, poruke vezane za odredenu temu automatski pristizu u elektronlcko postansko sandu6e svakog korisnika).

Gopher predstavlja nekadasnji servis i protokol za pristup dokumentima, ko]1 se danas veoma rljetko korist1. Gopher je zapravo negrafi6ki (tekstualni) informacioni sistem, zasnovan na sistemu menija. Gopher protokol prosljeduje kroz Internet korisnicki zahtjev za pronalazenjem odredene informacije, i vrsi prenos dokUlnenta sa zeljenom intormacijom na korisnicki raGunar. -Pojavom WWWservisa, uloga i znaca] Gophera potpuno su se izgubili. Glavni razlog je veoma ogranicen i kompliciran korisnicki interfejs ko]! posjeduje Gopher u poredenju sa WWWservisom.

Da bi se korisnici mfeznih novina mogli sna6] u mnostvu poruka koje svakodnevno pristiiu, sve poruke su razvrstane u razliCite tematske skupine (eng1. newsgroups), ovisno 0 podrucju na koje se odnose. lmena tematskih skupina sastoje se, poput slovnih adresa racunara, ad niza rijeei razdvojenih tackama (npr. rec. food. recipes, hr. ree .music, hr. sci, comp.lang . pascal, ltd.). PlVa rijee u imenu grupe oznacava tematsku skupinu sireg sadrzaja, dok svaka sljedeca rijee suzava skupinu. Npr. u imenu comp .lang .pascal riiee comp oznacava da je u pitanju tema vezana za racunare (engJ. computers), rijec lang precizira da se radi 0 temi vezanoj za programske jezike (eng!. languages), dok rije6 pascal sasvim suzava tematsku skupinu pa-diskuslje vezane za.programski jez]k Pascal. Unutar svake tematske skupine nalaL;e se poruk-e koje su p6slali korisnici mreznih novina. To su, uglavnom, kratke poruke sliene elektronicKoj posti-(mada,:hlogU sadrtavatl_i attachmente poput E~mail poruka), osim sto su vidljive svim korisnicima mrezQih nciYirft.?. Z~ kofistenj~ mreznih novina takoder je potrebno posjedovati odgovaraiu6e program_e~ tZy'.::n~ws,-!(/fjente. Vee spomenuti_program Outlook Express se moze konfigurisati da radi i kao news klije~r, ~'-rie _sarno kao . E~mail kllj'ent. Izvjesni ra6unari pretrazivaei (npr. Google) omogucavaju i Pf~tfa:z~.v?nie mreznih -nO'vina koristenjem WWWservisa. Treba napomenuti da pored mailing j :Usenet fqruma; postoje j tzv. Web foruml, koji su nallk na mailing lomme, sarno 8tO su organizlranj.u, okviru: nekog Web sajta, i kojem pristup imaju sarno prijavljeni posjetioci tog salta. Eventualno, svi posjetiocrsajta m-clgu-da pregledaju poruke, a pisanje je dozvoljeno sarno korisnicima koji su prljayljeni kao- korisnici tog salta.

244

245

Pitanja i zadaci
1. Cernu sluze korisnicki raeuni? 2. Zbog 6ega je potrebno da postoje i korisnicko ime'! lozinka? Zbog 6ega nije dovoljno da postoji sarno korisnicko lme iii sarno lozi'nka?
3. Kako se vrsi komunikacija u lokalnim

3. OSNOVE PROGRAMIRANJA
3,1 OSNOVNE KARAKTERISTIKE PROGRAMSKIH JEZIKA
3.1.1 Nedostaci govornih jezika za potrebe komunciranJa sa racunarom
U prvom dijelu ovog' udzbenika, vidjeli smo da ukoliko ielimo neki problem rjesiti uz pamoc racunara, moramo prvo racunaru na neki nacin saopciti problem koji zelimo rijesiti. Drugim rijecima, moramo komunicirati sa racunarom. Naravno da bi idealno bilo da racunaru mazemo iznijeti problem u nekom od govornih jezika (engleskom, bosanskom ltd.), na primjer: "Molim te, rijesi jednaCinu X + 2 61 ispisi njeno rjesenje na Stampac.". Nazalost, lz mnogo razloga, ovakvo komuniciranje sa racunarom, bar za sada, nije moguce. Najbitniji razlozi za takvu nemogucnost su sljedeci: Govorni jezici su optereceni mnogim rijecima i izrazima koji racunaru ne predstavljaju nista. Na primjer, u govornom jeziku recenica "Kupt hamburger, pojedi 9a i odspavaj do popodnevnog filma." sasvim je smisiena, Medutim, tesko je zamisllti kako bi na nju trebao da reagira racunar.
U govornim jezicima veoma cesto se neke stvari podrazumijevaju. Na primjer, ukoliko mi dobijemo naredenje "Idi u prodavnicu i kupi mlijeko.", podrazumijeva se da cerna S8 nakon obavM Ijene kupovine vratiti kuci (da donesemo m!ijeko), Robot, koji bi eventual no mogao izvrsavati ovakve naredbe, nakon obavljene kupovine ostao bi net istom mjestu (u prodavnici), jer mu ni jedna naredba ne nalate da se treba vratiti kudo Ispravan "program" za ovakvog robota trebao bi da glasl "ldi u prodavnicu, kupi mlijeko i vrati se kucL". covjek u govornom jeziku nije navikao na potrebu za ovako preciznim izrazavanjem, taka da bi komuniciranje sa racunarom na govornom jeziku cesto bilo praceno nedosljednostima.

rnreiama

u modernim operativnim sistemima?

4. Kako se uspostavlja neposredna komunikacija izmedu dva racunara prikljucena na telefonsku rnrezu? 5, Sta su Internet provajderi 1Gernu sluze?
6. Opisite ukratko kako je organiziran Internet.

7. Sta su protokoli i cernu sluie? 8, Sta su lP adrese, a sta slovne adrese? Koji racunari imaju i slavne i IP adrese? 9, Garnu sluze DNS serveri? 10. Sta SU domene? 11. Sta su uskopojasne a sta s,irokopojasne mreze? 12. Kako se vrsi povezivanje korisni6kog racunara na Internet? 13, Sta su Web stranice, a sta Web sajtovi? 14. Bta je URL i ad 6ega se sastoji? 16. Kaka se pregledaju Web stranice?

16, Ukolika vasa skala posjeduje prikljucak na Internet, prakticno uvjezbajte upotrebu HTML preglednika za pregledanje Web stranica, 17. Bta je download, a sta upload? i 8. Sta su racunari pretrazivaCi i koji su najpoznat1ji? 19. Ukoliko vasa skola posjeduje prikljucak na Internet, praktlcno uvjezbajte pre1razivanje Web stranica pomocu nekoliko najpoznatijih ra(;unara pretrazivaca. 20. Da Ii su informacije dobijene putem Interneta uvijek pouzdane? Obrazlotiti odgovor. 21. Sta je elekironicka posta i kako se koristi? 22. Ukoliko vasa skola posjeduje prikljucak na Internet, prakticno uvjetbajte sianje i prijem po'ruka putem elekironicke paste. 23. Bta su attachmenti j kako se koriste? 24. Na koje se sve naCine racunar moze "zarazitj" racunarskim virusima prHikom koristenja Interneta? Na koji nacin se mazemo zastititi od zaraze? 25. Sta je Web mail, i kakve su mu prednosti i mane u odnosu na klas!cnu elektronicku postu? 26. Ukoliko vasa skola posjeduje prikljucak na Internet, otvorite svoj vlastiti korisnicki racun na nekom od Web mail servis~ (Yahoo Mail, .Hotmail iii nek! drugi), i uvjezbajte natin njihovog koristenJa. 27. Kako se realiziraju interak!ivne multlmedijske komunikacije uz pomoc Interneta? 28. Kakva je razlika izmedu elektronlcRe po.ste 1caskanja putem Interneta? 29. Cemu sluze FTP i Telnet?30, Sta su mrezne navine i kakg Se koriste? 31. Razmislite kakve nam ~ventualne ..op.q~Osii prijete 'ad savremenih informacionih tehnologija koje su se razvile pojavom In~~r!}et~:-:_._: -.

,,!

,
i

,
i
i

! ,

-'I

:i

Govorn! jezici su ponekad dvosmisleni, tj, iz ispravne reeenice nije posve jasno sta se htjelo retl. Na primjer, u jednoj engleskoj knjizi bio!ogije, napisana je recenica "fruit flies like a banana". Autor je hiio rsci "v06ne musice vole bananu" (sto jeste ispravan prijevod ave reeenice na bosanski jezik). Medutim, prevodilac je ovu recenicu preveo kao "voce letl poput banane". Ova, nazalost, takoder jeste rnogu6i (lspravan) prijevod reeenice, jer "fly" moze znacit! "musica" iii "Ietjeti", a "like" moze znaCiti "voljeti" iii "poput" (ipak je jasno da autor sigurno nije htio da kaze ovu drugu verziju prijevoda). Postoje i neki slieni primjeri na bosanskom jeziku. U nekom restoranu napisano je "Zabranjeno gostima hranitl ribe.". Gramatlcki je ova recenlca ispravna, ali je nejasno da Ii gosti ne smiju hraniti ribe, mse gosti ne smiju davati kao hrana ribama" U ovom slucaju, nase zivotno iskustvo, koje racunar ne posjeduje, pomaze nam da odbacimo drugu varijantu kao nelogicnu. U primjeru reeenice "Pop je govorio dugo gledajuti u daljinu." {primjer lEi uzet iz jednog romana) nista nam ne pomaze da zakljueimo da Ii je pop dugo govorio ill je d~go g!edao (primijetimo da bi jedan zarez ispred iii iza rijeel "dugo" rijesio nedoumicu),.. S!i{;nu :situaciju mama i sa recenicom ".Ko pjeva zlo ne misli.", iii sa cuvenom latinskom recenk;:om '!Ibis redibis. numquam peribis in bello.", koja, u zavisnasti od toga gdje stavimo zarez, moze imati potpOI:1('),suprptna znacenja ("lei ces, neces se vratitl, poginuees." i "Ici ces, vratlt ces se, neoos pogjnuti~~)~ - .. Govorni jezici posjeduju veliki stepen fzv. redudancije, kOj~ O~~gi.;6-~~"<{ d~. Iz.- pisanog teksta uklonjmo znacajan bro) znakova, a da tekst i dalje bude ra;:::l,Imljhi., Ma:cta je ovakva nidudancija veoma korisna u svakodnevnom Ijudskom komunicira"nIu;- j!;lr smanjtlje'nlogl!cnost nesporazu rna, za potrebe komuniciranja sa racunarom ona je (lepoieijna, jer~.epotfeQno tr~si racunarske resurse.
H

246

247

Zbog svega navedenog, razvijeni su posebni, precizni i nedvosmisleni (mada nerijetko i prillcno ogranieeni) jezici za komuniciranje sa raeunarom, nazvani programski jezici.

3.1.3 I'roceduralni programski jezici 3.1.2 I'rogramski jezici niskog nivoa


Najprimitivniji programski jezik je masinski jezik. Ovaj jezik sastaji se samo od n;zova nuta i jedinica. Jasno je da ovakav jezik covjeku mora biti izuzetno nerazumljiv. Medutim, to je jedin! jezik koj! racunar neposredno razumije, bez potrebe za prevodenjem. Zapravo, procesor eita jz memorije s!ijedove "nula" i "jedlnica", interpretira ih na odredeni na6in, i lzvrsava. Stoga je masinsk! jezik izrazito ovisan 0 procesoru kej! 'je upotrijebljen u raeunaru. Na primjer, na procesorima famHije INTEL BOxB6 (ovi procesori, Hi njihovi najblizi srodnici, nalaze se u svim PC ra6unarima), sljedeei masinski program
1011QOGOOGOO{}101 0000010000001000
0010110000000110

Znatno napredniju skupinu programskih jezika Cine tzv. procedurafn; jezid. Ova skupina predstavlja najsiru s~upinu programskih jezika, i u nju spada valik! bro] danas koristenih programskih jezika, kao sto su BASIC, Pascal, FORTRAN, COBOL, C ltd. Karakteristika jezika iz ove sku pine je da za rjesavanje ma kakvog problema uz pomo6 ovih jezika, moramo ra6unaru jasno i precizno opisati postupak kako se rjesava taj problem (drugim rijecima, potrebno je prethodno sastaviti a/goritam za rjesavanje prob!ema). Sta se pod tim podrazumijeva, biee detaljno objasnjeno u sljedeeem poglavlju. Za razliku od asemblerskog jezika, proceduralni jezici ipak ne zahtijevaju rasclanjivanje problema na previse elementarne operacije (na primjer, izraz 5 + 8 - 6 prihvati6e, bez potrebe za rasClanjivanjem, prakticno svakl proceduralni jezik). Takoaer, proceduralni jezici SU, za razliku od masinski orijentiranih jezika, problemski adient/rani jezici, jer ne ovise od konkretne masine na kojoj se program lzvrsava, nego samo od problema koji se rjesava. Neupueeni cesto postavljaju pitanje kakva je uopce korist od racunara ukoliko mu mi moramo objasniti kako da rijesi neki problem. Stvar je u tome sto za r]esavanje nekih problema eovjeku bez pomoCi racunara treba lzrazito mnogo vremena, mada ih princfpijelno zna rijeSiti. Na primjer, neka ze!imo da izracunamo sumu reciprocnih vrijednosti svih brajeva od 1 do 1000000. Ovaj problem se principijelno moze rijesiti uz pomoc dzepnog kalkulatora, pa cak i samo pomocu papira i alovke, ali za koliko vremena? Ukoliko koristimo obieni kalkulator, i pritls6emo u prosjeku dvije tipke u sekundl, potrebno je preko pet mjeseci svakodnevnog osmocasovnog rada da dodemo do rezultata (pad uvjetom da nigdje ne pogrijesimo, sto je praktieno nemoguce)! Mectutim, sljedeei p-rogram u jeziku BASIC (8 kOjim ste se vjerovatno susreli u osnavnoj skoli) rijesice istl problem za neko!1ko sekundi (tacna 11 sekundi na racunaru sa Pentium !II procesorom na 700 MHz, i sa QBASIC prevodiocem za BASIC), pri cemu za sam unos programa sa tastature nije potrebno vise od jedne minute:
10 20 30 40 50 S\.llna "" 0 F'OR broj '" 1. TO 1000000 Buma '" suma + 1 / bro] NF,x'l' bro] PRIN'l' surna

sabira brojeve 5 i 8, nakon 6ega oduzima 6 od rezultata. Nemojte se cuditi ako ne razumijete ovaj program: morate biti masina da biste ga razumjelL Covjek moze razumjeti masinski jezik jedino uz pomoe glomaznih tablica u kojima je zapisano sta koja kombinacija nula i jedinica radi! Mada se nekada moralo programfrati iskljucivo u masfnskom jeziku, jasno je da nas ovakvo programiranje ne bi daleko odvelo. Zbog toga su razvijeni drugi programski jezici, pogodniji za covjeka, nazvani vis; programskf jez;c;. Prvu stepenicu iznad masinskog jezika predstavlja asemblerski (simboflck~ jezik, l{Oji se jos uvijek ne smatra visim programskim jezikom. Kod ovog jezika, odredene skupine nula i jedinlca zamjenjuju se skraeenicama (tzv. mnemonlcfma) kOje opisuju njihova znacenje. Na primjer, lstl program kao u prethodnom primjeru, u asemblerskom jeziku bi se zapisao ovako:
mov add StW aJ,5 al, 8 al,6

Ako prepoznamo da skraeen!ce mov, add i sub znace "prebaci", "saberi" i "oduzmi" (ad. eng\. "move", "add" i "substract'), smisao programa vee pocinje da se nazire (tj. on postaje "uhvatljiv''). Nazalost, i ovakav jezik je prilicno tezak za covjeka, zbog cinjenlce da su mu naredbe prejednostavne. Na prvi pogled moze djelovati paradq~sa!no da je jezik tezak zbog prejednostavnih naredbi. Medutim, sa tak:vim naredbama, potrebno je upotrijebiti veliku koli6inu naredbi za rjesavanje cak i najjednostavnijih problema (u gruboj analogi]i, to je isto kao da zelimo l.skopati jarak koristenjem kasiCice za kafu umjesto velike lopate). Za primjenu asemblerskog jezika, svaki problem je neophodno rasdaniti na gomilu posve elementarnih operacija, koje nerljetko za~tijevaju duboka poznav:anje unutrasnjih procesa u racunaru (pogledajmo, na primjer, ko!i~o Je garnji progrti!1'l.komplikovaniji od prostog izra?-8 5 + 8 - 6). Ipak, poznavanje asemblera je neophodno.6nim programerima ko]i zele da u potpunostl kontroliraju sve unutrasnje procese u ra6unaru i sve sistemske cre~Qrse .ra(:pnara, s obzirom da je asemblerski jezik (osim naravno masinskog jezika) jedini jezik-u kojem. ~programer Jma apsolutnu kontrolu nad ra6unarom. o. .Asemblerski jezik se ponekad naziva 1 asembler, mada ova) :t$tmirl. nile "oposve -precizan. Dodatnu zbrku unosi i Clnjenica da se ponekad poistovjeeuju asemb!!:~r~kioi masihskj je-zlk., sto naravno nije tacno. Jezici niskog nivoa (masinski i asemblerskf) riredstavljaju ma'Sinski 6rijtmtirarye jezike, jer zavise od masine na kojo] se program izvrsava (preciznije:, od nlenag procesora).

Takoder, ne treba zaboraviti cinjenicu da danas obicno krajnji korisnik racunara nije ujedno i programer. Tako, programe najcesce prave profesionalni programeri (koji znaju kako se rjesava neki I<onkretan problem), a njihove programe koriste krajnji korisnici, koji mogu ali i ne moraju da znaju I<ako se taj problem rjesava. Sve sto ani treba da znaju je kako se program upotrebljava.

3.1.4 Karaicterislike najrasprostranjenijih proceduralnih jezika


Kao sto je vee receno, sa jednim pragramskim jezikom vee sma se upoznali u osnovnoj skoli: to je BASIC, Rijec BASIC skra6enica je od traze J2eginner's Alf-purpose ~ymbofic instruction [d6de, iz 6ega se vidi da se radi 0 programskom jeziku namljenjenom pocetnicima. Madaje jedno vrijeme dvaj jezik bio izu2etno popularan, polako se istiskuje lz upotrebe zbog toga sfo podstice neke zastarje!e koncepte u programiranju, Na prvom mjestu, u BASIC~u se tok programa moze nekontro!irano prebacivati sa jednog na drugi kraj programa (tJpotrebom GO'l'O naredbe), sto dovodi do nepreglednih programa koji se teska prate i jas teze odtiavaju. Mada se danas susrecu i mnogo naprednije va~. ' rijante ovog programskog jezika (poput verzije QBAS/C), u kojima se takvi problemi mogu prevazici, ostaje misljenje da BASIC nije jezik za ozbi!jnije primjene. Iznimku predstavlja znatno unaprijedena varijanta BAS/G-a nazvana Visual BASIC, 0 kojoj eemo govoriti nesto kasnije u ovom poglavlju'-

248

249

FORTRAN (ad eng I. -Formula Iranslation) je znatno mocniji programski jezik od BASIC-a, i dugo vremena bio je najpopularniji programski jezik za potrebe naucno-tehnickih prora6una. Ovaj jezik je stekao popularnost zahvaljujuCi ogromnoj kolekciji matematickih potprograma koji su programerima bili dostupni za upotrebu u vlastitim programima, sio je znatno alaksavalo programiranje. Medutim, sHena BAS/C-u, FORTRAN je duga vremena podsticao zastarjelu metodologiju programiranja (ovdje se prvenstveno misli na najrasprostranjeniju verziju ovog jezika FORTRAN 77). Mada se FORTRAN i dalje razvija, i mada su se pojavile znatno naprednije verzije (npr. FORTRAN 90) koje su uklonije gotovo sve njegove nedostatke, ave verzije su se pojavile prekasno, u doba kada su se vee pojavili kvalitetni programski jezici koji su bili boJji od tada aktuelne verzije FORTRAN 77, Kao posljedica tog kasnjenja, FORTRAN se danas postepeno povlaei u korist jezika kao sto su C i njegova pobo!jsana varijanta nazvana C++, koji su preuzeli veCinu njegovih dobrih svojstava. Programski jezik Pascal (ime je dobio u cast matematicara i fizicara Blaise Pascala) bio je zamisljen pNenstveno kao programski jezik za edukativnu namjenu, jer podstice pisanje jasnih, preciznih i eitljivih programa. Ovaj jezik posjeduje prillcno stroga pravila pisanja programa, koja tjeraju korisnil<a da se pridrzava izvjesne discipline pri programiranju. Stoga je ovaj jezik veoma pogodan za ucenje programiranja. Standardni (izvorni) Pascal bio je donekle ogranieen, jer nikada nije bio zamisljen kao jezlk za ozbiljne primjene. Ipak, velika popularnost ovog jezika (naroelto u Evropl) dovela je do pojave brojnih prosirenja ovog programskog jezika, koja su sasvim upotrebljiva cak i za veoma ozbiljne primjene (ovdje prvenstveno mislimo na verziju Pascala poznafu pod imenom Turbo Pasca~. Nakon dugog perioda popularnosti, jedno vrijeme je vladalo misljenje da je Pascal potpuno zaboravljen programski jezik, potisnut od strane jezika C i C++. Medutim, u posljednje vrijeme, Pascal kroz svoju znatno unaprijedenu verziju nazvanu Object Pascal (koja eini osnovu programskog 'razvojnog okruzenja poznatog pod imenom Delphi) ponovo dobija na popularnosti, jer posjeduje veoma jasnu sintaksu (koja jezicima C i C++ nije bas jaea strana). Programski jezik C (njegovo ime ne znaei nista nego je plod ekscentricnosti autora jezika - dva njihova pretllodna jezika zva!i su se A i 8) po osnovnom konceptu prilicno je blizak Pascalu, mada se po sintaksi dosta razlikuje od njega. Za razliku od Pascala, sintaksa jezika C je mnogo slobodnija, sto programeru daje znatno vise mogucnosti, ali po cijenu pisanja konfuznih i nejasnih programa u kOjima se, nakon izvjesnog vremena, vise ne snalazi niti njihov autor (treba napomenuti da se i u ovom jeziku mogu pisati sasvim jasni i titljivi programi, sarno sto ovdje jezik ne primorava programera na takvu discipHnu). Pored toga, jezik C omogueava programeru znacajnu \mntrolu nad svim unutrasnjim procesima u racunaru (gotovo poput asemblerskog jezika), sto ga eini idealnim za razvoj sistemskog softvera (operativnih sistema, itd.). Jezik Cje gotovo u potpunosti istisnuo upotre'bu asemblerskog jezika (osim u nekim zaista delikatnim situacijama). Nakon sto je vodeea svjetska softverska firma Microsoft ozvanieila jezik C kao sluzbeni razvojni jezik za programe koji koriste Windows operativne sisteme, jezik C je dozivio nevjerovatnu popularnost u gotovo svim primjenama, mada je prvobitno bio zamisljen pretezno kao jezik za razvoj sistemskog softvera. Danas je veeina dostupnih programa (ukljueujuci i najpoznatije programe poput Warda, Exce/a ltd.) pisana upravo u jeziku C (iii njegovim bliskim srodnicima C++, Java i C#).

biti "dolazak u skolu", "odgovaranje", "izrada kontrolnog rada", "odlazak kuci", itd. Najpoznatiji objektno orijentirani j6zici danas su SmallTalk, C++ (unaprljedena verzija jezika C), Delphi (zapravo Object Pasca~, Java, C# (jezik veoma sliean jeziku Java, cita se "C sarp") itd. Objektno orijentirani jezici dozivje!i su veliku popularnost pojavom Windows serije operativnih sistema, jer se pokazalo veoma prakticno da se pri programiranju razni elementi grafickog okruzenja Windows sistema (poput prozora, dugmadi, menija, ikona, itd.) modeliraju upravo pomoGu objekata. U posljednje vrijeme, narocitu popu!arnost doiivljava programskJ' jezik Java, jer omogucava pisanje programa koji se bez ikakvih problema mogu izvrsavati na bila kojem racunaru, neovisno od njegovog tipa i operativnog sistema koji se koristi, sto je naroCito pogodno za pisanje aplikaclja koje koriste Internet i druge racunarske mreze. Prilikom izrade Web stranica masovno se koristi objektno orijentirani jezik pod nazivom JavaScript koji je inspirisan jezikom Java, ali Je znatno jednostavniji i ogranieeniji. Pogodnost objektno orijentiranih jezika za programiranje u grafickom okrutenju dovela je do pojave integriranih razvojnih sistema za vizuelno programiranje. Naime, prilikom razvoja bHo kOje aplikacije koja koristi graficko okruzenje, najdosadniji i najzamorniji dio je upravo programira~ nje okruzenja. Oesavalo se da se i do 90% vremena utrosenog za razvoj apllkacije iZQubi upravo na razvoju okruzenja. Sreeom, proces razvoja okruzenja je u prilieno formaliziran i sab!oniziran, sto je omogucilo razvoj vee pomenutih sistema za vizualno programiranje. Kod ovih sistema programer dizajnira graficko okruzenje na slican naCin kao,prilikom rada u nekom od grafickih programa (crtanjem obrazaca, postavljanjem komponentl poput dugmadi, ikona i menija na obrasce, itd.), a razvojni sistem sam pise neophodni dio programa koj] ee generiratl dizajnirano okruzenje. Programeru ostaje samo da napise one dijelove programa koji se izvode kao reakcija na odredeni dogadaj, poput pritiska nekog tastera Hi klika misem na neku opciju u menlju, ikonu iii dugme. 8toga programi pisani u ovakvim jezicima djeluju kao skupina nepovezanih cjelina koje se izvrsavaju iskljuCivo kao reakci~ ja na odredene dogadaje. Ovakvo programiranje naziva se programiranje upravfjarw tokom dogadaja. Jasno je da se na taj nacin postiie znatna usteda u vremenu programera. Najpoznatiji razvojni sistemi za vizualno programiranje su V;sual BASIC (zasnovan na jednoj znatno usavrsenoj verziji BAS{C-a koja posjeduje i mnoge osobine Pasca/a), Delphi (zasnovan na Object Pascalu), Visual C++ i C++ Builder (zasnovani na jeziku C++), itd.

3.1.6 Neproceduralni programski jezici


Posljednju kategoriju programskih jezika cine neprocedurafni jezici. Za razliku ad proceduralnih jezika, kod neproceduralnih jezika nije neophodno da racunaru objasnjavamo kako da rijesi' problem, nego samo u 6emu se 8astojl problern Uasno, precizno j nedvosmisleno), a raeunar sam zakljucuje kako problem treba da se rijes1. Zbog toga, ovaj tip jezika nazivamo i deklarativni (opis~ n~ jezici. Ovakav pristup, na prvi pogled, djeluje savrseno. Naza!ost, racunar ne posjeduje intellgen~ ciju (tj. sposobnost snalazenja u situacijama sa kojima se nije ranije sU8retao), tako da je ovakav pristup ogranicen sarno na rjesavanje onih tipova problema za koje je tvorac programskog jezika '''ebjasnio'' racunaru kako se rjesavaju. Zbog toga su prakticno svi neproceduralni jezici ograniceni na ri_esavanje uskih klasa problema, dok su proceduralni jezici manje iii vise univerzalni. Medutim, u ;- domenu svoje valjanosti, ovi jezlci mogu biti zaista izuzetno mocn1. Primjer jezika iz ove kategorije jezika je SQL (Structured Query 1anguage), sa kojim smo se, u kratkim crtama, upoznali u drugom dijelu ovog udzbenika. Ovaj jezik ie izuzetno mocan za potrebe upravljanja bazama podataka, ali se ne moze koristiti ni za kakve druge svrhe. Komuniciranje izmedu covjeka i racunara u jezicima ovog tlpa" uglavnom se zasniva na formlranju odredenih pitanja (upita) koje covjek postavlja raeunaru, .. stoga se jezlci ovog tlpa nazivaju i upitni jezici. Bitno je napomenuti da ni programiranje u neproceduralnim jezicima nije uvijek posve jednostavno (mada je, uglavnom, znatno jednostavnije nego u proceduralnim jezicima). Naime, postoje

3.1.5 Objektno orijenlirani proceduralni je,;cl


Kao posebna potkategorija skupine procedura!nlh jezika izdvaja se skupina objektno orijenti- ranih jezika (neki autori ovu skupinu jezika izdvajaju u posebnu kategoriju). Kod jezika iz ove skupine problemi koji se rjesavaju modeliraju se pomo6u tzv. objekata iii klass, kojl imaju svoje atribute'f metode. Atributl predstav!jaju skup svojstava koje neki objekat posjeduje, dok metode predstavljaju skup postupaka ko]i se mogu vrslti nad objektom. Uzmimo kao primjer objekat "ueenik". Njegovi atributi mogu biti "irne", "prezime", "adresa", "bra] u dnevniku", "ocjene" itd. dok njegove metode mogu .
250

251

mnogobrojne situacije u kojima nije lako objasnitl racunaru cal< nl u cemu se problem sastoji, na naCin koji 6e bit! dovoljno jasan, precizan i nedvosmislen, i dovbljno uskladen sa mogucnostlma jezika! Znatno unlverzalniji jezici jz kategorije neproceduralnih jezika su jezici LISP (List Erocessing Language), PROLOG (Pmgraming in !:,Qgic) i ML (njegovo lme ne znael nista) ko]1 imaju prlmjenu u domenu tzv. vjestaeke inteilgencije. Rad u ovim jezicima j8 osj6tno tezi nego, na primjer, rad sa SQL-om, sto predstavlja cijenu koja je placena za povecanu univerzalnost ovih jezika. Metodologija programiranja u ovim jezicima zasniva se na tehnici poznatoj pod nazivom funkcionalno programiranje. Ova tehnika nema prakticki nista zajednicko sa tehnikom proceduralnog programiranja (na primjer, klasicna grananja i petlje u ovakvim jezicima ne pastoje), sto je i osnovni razlog zbog eega se ovi jezici svrstavaju u grupu neproceduralnih jezika. Skupina neproceduralnih jezika kojo] pripadaju pomenuti jezicl naziva se funkc;onalnf jezic;, Pored ogranicenosti primjene, jos jedan bitan nedostatak neproceduralnih jezika je sto su izuzetno zahtjevni po pitanju racunarsl\ih resursa (koHcine memorije, brzine procesora, ltd.).

duralne jezike su prava rijetkost). Od proceduralnih jezika najeesc8 se interpretira BASIC (jako postoje i kompajleri za BASIC), dok se FORTRAN, Pascal i C iskljuCivo kompajliraju. Medutim, danasnji kompajieri za Pascal i C pruzaju gotovo sve pogodnosti koje pruzaju interpreteri, tako da je danas rad sa ovlm jezicima udoban kao nekad rad u BASIC-u. Napomenimo jos da postoje i hibrldni prevodi~ Dei (na primjer, tzv. P~kod kompajleri i run~time interpreter~ koj1 kombiniraju tel1nike koje koriste kompajleri, i interpreter!. Ovakvi prevodiocl najcesce se koriste kod programskog jezika Java.

3.1.7 Kompajleri i interpreteri


Vee je receno da racunar neposredno razumije sarno masinski jezik. Program, u ma kojem drugom programskom jeziku, za raeunar je obieni tekst koji mu ne znael apsolutno nista. Stoga se programi pisani u drugim programskim jezicima moraju prevesti u masinski jezik uz pomoe posebnih pragrama prevodilaca kojl se nazivaju kampa/leri Gasno je da su prvi kompajleri morali biti napisani u masinskom jeziku, s obzirom da je na pocetku on bio jedini jezik koji je na raspolaganju). Program napisan u nekom visem programskom jeziku (prije prevodenja) naziva se izvorni program (iii izvomi kod), dok se masinskl program nastao kao rezultat prevodenja naziva obJektni program (iii objektni kDd), Prevodiocl koji prevode asemblerski u masinski jezik obicno se nazivaju asembJeri a ne kompajleri (sto je donekle konfuzno, jer se i sam asemblerski jezik nerijetko naziva asembler). Nekada je programer bio mnogo svjesniji postojanja kompaj!era, jer su se programi'prvo pisali u nekom od editora teksta, zatim snimali kao tekstua!ni dokument (odnosno tekstualna datoteka), nakon eega se kompajler pozivao kao poseban program sa ciljem formiranja objektnog programa koji se mogao izvrsavati. Danasnji kompajleri su najeesce tako dobra integrirani u razvojni sistem da programer najeesce nije ni svjestan njihovog postojanja, nego stice iluziju da ra(:unar neposredno izvrsava program pisan u nekom visem programskom jeziku. Pored kampajlera, postoj! i drugl tip programa prevodioca: to su tzv. interpreteri. Za razliku od kompajiera, kod kojih se prvo eitav izvorni program prevodi u masinski jezlk pa tek tada zapocinje niegovo izvrsavanje, interpreteri uzimaju jednu naredbu izvbrnog programa, prevode je, izvrsavaju je, "zaborav!jaju" njen prijevad, uzimaju sljedeeu naredbu, prevode je, izvrSavaju, itd. Stoga, interpreteri podsjeeaju na eovjeka-prevodioca koji obavlja simultano prevodenje nekog govora sa jednog jezika ria drugi, uporedo dok govorn!k govor!. S druge strane, kompajleri podsjecaju na covjekaprevodioca - k-oji dobije pisani tekst na jednom jeziku, a predaje kao rezultat svoga rada pisani tekst na drugom jeziku. Kompajlirani programi izvrsavaju se mnogo brie u odnosu na interpretirane programe. Nairne, ". , u slucaju interpretera, naredbe koje se ponavljaju (recimo, u nekom ciklusu), prevode se svaki put "i,spoc-e"tka' (nakon eega interpreter svaki put "zaboravlja" njihov prijevod), sto nesumnjivolrosi vrijeme. Mettut!,rn, interpreteri imaju i svojih prednostL Interpretirani program je lako prekinuti u bilo kojem .-" trenutku, n,akon"eega mozema obaviti neke izmjene u programu j nastaviti izvodenje od mjesta prekj~ da, sto .nije lako i~vodivo (ponekad i nemoguce) u kompajliranlm pragramima. 8toga su razvoj i _ispravka interpretiranih programa znatno jednostavnlji nego u slucaju kompajJiran!h programa. Dalje, neRi: ad jezika po svojoj prirodi nisu pogodni za kompajliranje, nego samo za interpretiranje. Tu se prvenstveno mis!i na neproceduralne jezike, koji se uglavnom interpretiraju (kompajleri za neproce252 253

Pitanjai zadaci
1. Kako se naziva najprimitivniji programski jezik koji se sastaji sarno ad niza nula i jedinica? 2. Sta je simbolicki (asemblerskl) jezik? 3. U koju kategoriju programskih jezika spadaju sljedeCi jezici: a) Pascal b) LISP c) Java d) SOL 4. U cemu je razlika izmedu proceduralnih i neproceduralnih programskih jezika? 5. Izbacite uljeza iz sljedece liste: a) BASIC b) COBOL c) SOL d) FORTRAN e) C 6. Koje SU osnovne karakteristike jezika BASIC, FORTRAN, Pascal i C? 7. Koje su glavne primjene programskih jezika Java i SOL? 8. Sta su atributi j metodi? 9. Sta su razvojni sistemi za vizualno programiranje i koj] su najpoznatiji? 10. Sta je programiranje upravljano tokom dogadaja? 11. Sta su funkcionalni programski jezici? 12. Da Ii je programiranje u neprocedurainim programskim jezlcima uvijek jednostavno? Obrazloiite odgovor. 13. Kakva js razlika lzmedu interpretera i kompajlera? 14. Zasto su prvi kompajlerl morali biti pisani u masinskom jeziku? 15'. Kakvim se prevodiocima abiena prevode neproceduralni jezici?

3.2 METODOLOGIJA PROGRAMiRANJA


3.2.1 Proceduralno i neproceduralno komuniciranje sa racunarom
Vidjeli smo da se veGina programskih jezika moze podijelitl na proceduralne j neproceduralne jezike. 8toga se 'j metodologija programiranja moie podijeliti na proceduralno i neproceduralno komuniciranje sa racunarom. Kod proceduralnog komuniciranja, neophodno je racunaru opisati pre cizan postupak rjesavanja nekog problema. Na primjer, pri upotrebi ma kojeg proceduralnog jezika, nije dovoljno same reci "Nadi 'najveci i najmanji element u popisu od 1000 brojeva i ispisi nadene elemente.','. Umjesto toga, racunaru je potrebno saopCiti detaljan postupak poput sljedeceg:

Preipustavi (za sada) da je prvi element ujedno i najveei i IUUnwllii; Za sve elemente od-drugog do posljednjeg (hlljaditog), radi sljedece akcije: -=> Uporedi tekucH dement sa do tada utvrdenim najver-'im clemen!om; ukoliko je tekuci element wei, proglasi go najvecim elemenfom (za sada); =? Uporedi tekuCi element sa do lada uji'rdenim najllwliim elemclI{OIl1: ukoli/w je tekuci element lIIanji, proglasi ga najmanjim elemcll!orli (za .\'ada); "'* Prikaii najveCi i lIujmallji element.
=?

Mada postaj! plilicna razlika izmedu konkretnih zapisa ovog algoritma u razlicitim proceduralnim pro gramsk!m jezicima, svi zapisi prate logiku koja je opisana u navedenom algoritmu, iskazanom struk tuiranim govornim jezikom, na natin sa kojim smo se upoznali u prvom dijelu ovog udibenika. Prikazimo, radi ilustraclje, kako bi ovaj algoritam konkretno izgJedao u programskim jezicima BASIC (klasicni), FORTRAN 77, Pascal i C:

ilASIC
100 110 120 130 140 150 najveci niz (1): najmanji = niz (1) FOR elem 2 '1'0 1000 IF nil. (elern) > najveci 'l'HE:N najveci = niz (810m) IF niz (e18m) < najrnanji 'l'HEN najrnanji = niz (elern) NEXT elern PRINT najveci;" ";najrnanji

FORTRAN 77
NAJVECI '" NIZ (1) NA.JMANJI co NIZ (1.) DO 100 ELEM = :;:, 1000 IF (NIZ .G'1'. ELEM) NAJVECI NIZ (EI,EM) IF (NIZ .vr. El,E:tf) NAJl>iANJI '" NIZ (F ..LEf1)

..' -:

100 C.oNTTIllJE
~ITE

(*,") NAJIJECI,

'

"

NAJMAUn

254

255

Pascal
Najveei :~ Niz [1]; Najrnanji := Niz [1J; for Elem : '" 2 to 1000 do begin i f Niz [Elem] > Najveci then Najveci : co Niz l'ElernJ; i f Niz [Elem] < Najmanji then Najrnallji :'" Niz [Eleml end, writeln(Najveci,' ',Najmanji);

c
Najveci ~ Najmanji ~ Niz [lJ; for (Elem 2; El~1U <~ 1000; Elem++)

Neproceduralno komuniciranje cemo ilustrirati na jos jednom jednostavnom primjeru. Pretpostavimo da je Safet Damirov otac, a da je Hasan Safetov otac. Ove Ginjenice se u jeziku PROLOG (neproceduralnom) mogu zapisati na sljedeCi nacin:
otac (safet, damir). otae (hasan, safee).

i f (Niz' [Elan] > Najveei) Najveci '" Niz {Elent]; i f (Niz [Elelllj < Najmanji) Najmanji '" Niz [Elem];
printf (" %d %d\n", N'GJ-jveci, Na.jmauji} ,

Kako bismo mogli uz pomoc racunara odrediti ko je Damirov deda, a da ne unesemo direktno informaciju da je to Hasan? U jezlku PROLOG mozemo racunar "nauCiti" sta je to deda, pomoGu s!jedeceg pravila:
deda (X, Y) :- otae (X, Z), atae (Z, Y).

Ukoliko pazljivo razmotrimo ove programe, primijeti6emo da je u svakom ad njih osnovna ideja algoritma jasno vidljiva.

Ovim smo definirali sta je to deda: osoba X je deda osobe Y ukoliko postoji asoba Z takva da je X otac ad Z, a Z otac ad Y (ovdje sma radi.jednostavnosti zanemarill 6lnjenicu da deda maze biti i majcin -olae). Ukoliko sada pitamo racunar ko je Damirov deda pomoc:u naredbe
?. clem (X, damir)

Za razliku od proceduralnog komuniciranja, kod neproceduralnog komuniciranja racunaru treba da saop6imo sta zelimo da uradimo a ne kako to treba da se uradi. Razliku izmeciu proceduralnog i nepraceduralnag komuniciranja najbolje cemo objasniti na konkretnom primjeru, Neka, na primjer, zelimo da ispisemo spisak imena i prezirnena svih ucenika iz nekog razreda koji imaju pros]ecnu ocjenu ve6u od 4 i ko]i zive u Sarajevu. U jeziku SOL (sa kOjim smo se vee susreli u drugom dijelu ovog udzbenika, i ko]i je tipican primjer neproceduralnih programskih jezika), dovoljno bi bilo zadati sljedecu naredbu:
SELECT IIDe, Prez.ime FHOM Razred WHEHE ProsjecnaOcjena > 4 AND Grad

"Sarajevo"

Vidimo da je ova naredba samo formalni zapis onaga sta felima da uradimo. Meduiim, u rna kojem proceduralnom jeziku, mi bismo morali racunaru da objasnimo kako da pronade popis ucenika, j kako da u tom popisu pronade ucenike sa zeljenim svojstvima. Pri proceduralnom komuniciranju, neaphodno bi bilo sastaviti algoritam, koj! bi mogao izgledati poput sljedeceg:

dobi6emo ocekivanl odgovor "Hasan". Obratite paznju da u ovom "programu" nigdje nismo racunaru objasnili kako da nade ko je Damirov deda, nego smo samo naveli neke elementarne cinjenice (0 tome ko je ciji otac), a zatim opisali sta je to deda. Ratunar je sam na osnovu ove definicije "zakljucio" da ce Damirov deda zapravo biti otac njegovog oca. Veoma je bitno da uoeite da program nije bio zasnovan na formulaciji tipa "objasni6u ti kako ces odrediti ko je neeili deda", nego na for~ mu\aciji "objasnicu tl sta je to deda, a dalje S8 snalazi sam". Naravno, racunar ne posjeduje inteligenciju na osnovu koje bi se mogao "snalaziti sam", vee je ta prividna "inteligencija" u ovom slucaju ugradena (u vidu preciznih pravila) u interpreter za jezik PROLOG.

3.2.2 Melodologija razvoja proceduralnog komuniciranja


Mada je neprocedura]no komuniciranje lakse za covjeka, procedural no komuniciranje je mnogo univerzalnije, i stoga cemo se u nastavku baviti uglavnom sarno njime. Vee sma rekli da je kod proeeduralnog komuniciranja potrebno racunaru precizno objasniti kako se rjesava neki problem. Ova moze biti prilicno kompliciran postupak cak i za relativno jednostavne probleme, jer covjek nije navikao da u detalje objasnjava svaki svoj postupak u svakodnevnom komuniciranju, sto je u komuniciranju sa racunarom neophodno. Da bismo jasna ilustrirali ovu problematiku, krenimo ad jednog konkretnog problema, koj! za covjeka djeluje posve bezazleno, a kojl sa druge strane zahtijeva prilican trud za realizaciju u vecini procedural nih programskih jezika. Formulacija problema glasi:

Otvori popis u(~enika i kreni sa Citm(jcm od poc:etka; Sve dok se ne dostigne kraj popisa, mdi sljedece akdje: proataj podalkr: 0 sljcdccclfl uceniku- iz popi.w; Ukoliko je prosjdna ocjena uc:enika veea od 4 i ukoliko je mjesto bO!'aJlka u(\eniki1 Sarajevo, onda: "* [spisi ime i prcz.ime za proCitarlOg uc:cnika; =>. Zalvori popis ut:rmika.

"* ""*'

"* "*

Ovakav opis a!goritma nekome maze izgledati jako sitnicavo. Medutim, ukoliko kortstimo proceduJalno komuniciranje, sa racunarom se jednostavno mora ovako komunicirati, neovisno 0 konkretnon} pr_ogramskom jeziku. Na primjer, konkretan zapis prikazanog algoritma u jeziku Pascal izgledao bi ov?ko "(nemojte se plasiti sto ne znate tacno znacenje naredbi koje su ovdje prikazane - proba.jts ~amo da '''u~vatite'' osnovni smisao na osnovu poredenja sa gornjim algoritmom):
assign (Popis, 'Uceniei'); reset (Popis); while. not eof (Popis) do begin . read (Popis, Ucenik); i f (Ueenik ProsjeenaOcjena > 4) and (Deenik Mjesto writeln (Ueenik Ime,", Ucenik Prezirue) end; close (Popis),

Potrelmo je uCitati fJorlatke q svill( ucenicima u razretIu, a zatim i:}istaii spisak ucenika sortiran po pro,ljeku, taka tIa ,~e uCi}iiik sa najbolj{m prosiekom nalazi ntt vrhu spi~ka.
PlYi probl~m '$a kojim sers'usrecemo pri p'okusaju rjesavanja ovog problema u bilo kojem programskom j'ezi,ku (bHo proc-eauralnom:i!i neproceduralnom) je cinjenica da racunar nema pajma 0 tome sta je "ucenik!~m ;'-r8.2feif':."$toga je "prva etapa: u procesu programiranja dizajniranje odgovarajucih struktura pOdqftika "k9j'e:-modetiraju objekte iz stvarnog svijeta na nacin ko]i se moze lako obradlvati u pragramu ..Prilikcin:rdizajniranja struktura podataka, potrebno je izvrsiii njihovo rascla~ njivanje na elemen!arne. pO.datke, popUt brojeva iii nizova znakova, sa kojima racunar zna da neposredno rukuje ... y na-sem-pfirnjerO, ucenika matemo modelirati kao skupinu podataka koja se sastoji od,nj~govog imeoa_ j:prezimena, zatim datuma roelenja, spiska oejena i prosjecne oejene. Ime i prezlme su samJ za sebe Qizovi znakova, datum rodenja je sastavljen od tri broja: dana, mjeseca i
257

, sarajevo') then

.256

godine rodenja, dok je spisak oejena skupina brojeva. Konacna, razred mazema modelirati kao skupinu u6enika, Ovakav dizajn prikazan je na sljedecoj sliei:

Podaci za jednog ucenika takoder predstavljaju skupinu padataka koja se sastoji ad imena, prezimena i datuma rodenja, kao i skupine ocjena (za svaki predmet posebno), tako da ovaj korak moiemo dodatno ras6laniti, i dobiti sljede6i opis algoritma za unosenje podataka 0 svim ucenicima:

RAZRED:

Ime Prezime
Dan rodenja
Mjesec rodenja Godina rodenja

Ime Prezime
Dan rodenja
Mjesec ' Godina rodenja i rodenja
~Ocjena
Dan

Ime Prezime
rodenja
Mjesf'..c rodenja Godina rodenja :Ocjena N

"'*

Za sve ucenike od pl1lOg do posljednjeg, radi sljedde: =t> Unesi podatke 0 imcnu, prezimeltll i datumu rodcnja za tekuceg [!(Yenika; Za sve predmete od prvog do posljednjeg, rad! sljedeee: "* Unesi podatke 0 tekuG'em predmefu za tekudeg ucenika.

"'*

Ocjena Ocjena i j 2

[ Ocjena Ocjcna jOcjcna 1 j N 2


.

Ocjena: Ocjena ~ j 2

U ovom trenutku sma postigli dovoljan stepen rasclanjenja koj! omogucava prevodenje ovog koraka algoritrna u vecinu raspolozivih procedur~.Inih programskih jezika, jer svi navedani koraei vee postoje kao naredbe (naravno, sa drugaCijom sintaksom) praktlcno u svim proceduralnim jezicima. Razmotrimo sada SljedetLkor~k, ko]i zahtije\l.a racunanje prosjeka za sve ucenike. Jasno je da ovo racunanje mozemo svesti na niz racunanja prosjeka za svakog ucenika pojedinacno:

Prosjek UCENIK 1
~

Prosjek UCENIK 2

Prosjek UCENIK3

Vee na ovom mjestu javlja se ovisnost dizajna ad konkretnog pragramskog jezika koji cemo upotrijebiti. Ovaj dizajn prilagoaen je modernim jezicima kao 8tO su Pascal i C. Stariji jezici, poput klasicnog BAS1C-a i FORTRAtJ.:-a 77, ne dozvoljavaju pakovanje raznorodnih podataka u jednu cjelinu, tako da bismo npr. u klasicnom BASIC-u morali posebno cuvati skupinu imena, skupinu prezimena, skupinu godina roaenja, skupinu oejena itd. Nakan sto smo osmislili neophodne strukture podataka, neophodno je osmisliti algoritam kajim 6emo ostvariti zadani cilj. Pokusajmo prvo ugrubo sklcirati sta je sve neophodno da uradimo. Na osnovu postavke problema, vidimo da je neophodno prvo unijeti podatke, zatim ih sortirati i prikazati sortirani spisak. Sortiranje je potrebno izvrslti po prosjeku, Mada u opisu pmblema to nije posebno naglaseno, pretpostavlja se da podatke 0 prosjeku za svakog ucenika kor'lsnik nece unositi rucno, nego se od racunara ocekuje da te podatke izracuna na osnovu podataka 0 ocjenama svakog od ucenika. Na osnovu ovog razmatranja, mazemo predloziti grubu skieu algoritma:

"*

Za slle ucenike od prvog do posljedllJeg, radi sljedde:

"*

IzmGTunaj pmsjek za tekuieg ucenika.

Ova] opis je moguce prevesti u konkretan programski jezik jedino ukotiko jezik kojim raspolazemo posjeduje naredbu za racunanje prosjeka niza brojeva. Mada pastoje i takvi programski jezici, u veeini jezika je neophodno prosjek racunati sabiranjem svih brojeva i dijeljenjem nadene sume sa brojem sabiraka (tj. brojeva). Sabiranje svih brojeva u nizu je opet u veeini jezika neophodno realizirati dodavanjem jednog po jednog broja na tekucu sumu (koju na pocetku postavljamo na nu!u). Medutim, ne smijemo zaboravitl na cinjenicu da se u obrazovnom sistemu prosjek ucenika koji ima makar jednu s!abu ocjenu Uedinicu) ne racuna, nego se u tom slucaju uzima da je prosjek takoder jednak jedlnici. Ovu elnjenicu takoder treba ukljuCiti u algoritam. Nakon ovog razmatranja, mozerno prikazati razradenu verziju koraka "Izracunaj prosjek za sve ucenike"~
~ Za

"* "* "'*

Unesi podalke 0 .I'vim Ilcenicima; Izracunaj prosjek za sve u(cnike; Sortiraj spisak po pro~jcku; PrikatJ sortirani .izvjdtqj.

Problem u predlozenoj skici algoritma je u tome sto se ona ne sastajl ad naredbi koje razumije ijedan raspolozivi programski jezik. 8toga je neophodno korake iz algorltma dalje rasclanjivati sve dok algoritam ne svedemo na _korake koji se direkino mogu prevesti u programski jezik koji ielimo da koristimo. Mada stepen detaljnosti do kojeg se mora vrsiti ovo raSt:lanjivanje zavisi od konkretnog programskog jezika, vecina_ proceduralnih programskih jezika zahtijeva rasclanjivanje na prilicno eiementarne operacije (napomenimo,da bi se u neproceduralnom jeziku prilagodenom ovom tipu problema, poput SQL -a, -qUaY probJe'm- rljesio pomocu jedne jedine naredbe, ako zanemarirno naredbe neopho~rie ul)Oi? 'p,odataka).

ta

sve ucenike od pnl(!g do posljednjeg, radi sljedece: Posta vi tekucu sumu na rllllu; Pretpostavi da ucenik Itema slahilt- o('jena; =.:> Za ,I've predmete od pnJog do posljednjeg, radi sljedde: Ulwliko je ocjefla iz tekuceg predmeta jeduaka jedillici, onda: "* Zapamti da ucenik ima slubih ocjena; =t> U suproinom: Dodaj o('jenu iz tekuceg predmeia na tekucu sumu; Ukoliko ucenik ima slubili ocjena"onda: =t> Proglasi jediniclI za pro.ljek; =t> U suprotnom: ".,lzracunaj prosjek kao-~olicnjk t2!{U,r!e);[lme -1 broja predmeta.

"* "*

"'*

"*

"*

"*

"

"

Kreni~o prvo ad kor~ka 5}r)esr p-odatke _0 svirn _\Jc,enicima". Gotovo ni jedan programski jezik ne dozvoljava da se.-lJtava-sK.WRlna podataka,unese jednom naredborn (osim mozda FORTRAN-a, (:jja naredba READ dopusta_ne~tc~ sllcno). Stoga se ovaj korak mora rasCianiti na niz koraka kojima se unose podaci_ 0 syaKo,m ,'uC'eni~u pojedinacno:
'9 Za ,,"Tie lI(cnik( od prv.og do posljednjeg, radi s/jedeee: ~ Ull'e~-i pudutke 0 tekuG'em lIceniku.
258

Ovaj opis je, kao sto cerna kasnije vidjeti, neposredno-prevod!v~u v:ecinu proc.eduralnihjezika. "--., .-'.
"
'

S!jedeCi korak, koji glasi "Sortiraj listu po prosjeku", 'PriJi(i~;1'e ~elikata~. Ukoliko radimo sa programskim jezikom koji posjeduje naredbu za sortir~l!je'-Ijst~' p'o:pt~jzvoljnom kriteriju, mozemo reci daimama srece (takva je, na primjer, naredba 'qso:rt'. \J jezik.u C). ~rE?tpostavimo, medutim, da jezik koji zelimo da koristimo ne posjeduje takv~ naredbu (sto 'i.~ prHicn_o vjerovatno). Razmislimo kako blsmo mogJi rasclaniti ovaj korak na prostije korake. Prvo};toireba da pokusamo je da anaHziramo kako bismo mi rucno sortirali Jistu ucenika. Mozemo, na pr~mjer, predloiiti sljeded postupak: 259

:::::> :::::>

"'*

No.di ucel1ika so. najhoUim prosjekmn i prebaci go. no. prvo mjesto u listi; Meritt preostalim uccnicima nodi ucenika so najhoUim prosjekom i prebaci ga no. drugo mJesto u listi; Medu preostalim I/cenicima nadi U(l'f1ikn so. najholjim pr(njekom i prcbaci go. no. treee mjesto u listi;

Na svu srecu, dalja razradivanja nisu potrebna: apisani a!goritam se lako neposredno prevodi u veeinu programskih jezika, jer se svi njegovi koracl mogu realizirati kao -naredbe u konkretnim proceduralnim programskim jezicima, bez potrebe za daljim rasclanjivanjem. Preostao nam je jos jedino korak "Prikazi sortirani izvjestaj" iz pocetnog algorltma, Gija je razrada, nakon svega sto sma prosli, sasvim jednostavna:

Nazalost, ovaj opis je nedovoljna precizan. U apisu sma upotrijebHi tri tackice eije je znaeenje covjeku pasve jasno. Medutim, algoritmi S6 ne mogu ovako opisivati. Algoritam se mora sastojati ad jasnog i precizno odredenog niza koraka, u kojem ne postoje nikakve nedoumice. Probajmo stoga malo formalizirati ovaj opis. Ukollko uvedemo indeks i koji oznacava redni braj razmatranog ucenika (i je broj u opsegu ad 1 do N, gdje je N ukupan broj ucenika), gore predlazeni opis se maze pre" ciznije zapisati na sljedeci nacin:
~

"'*

Za sve ucenike od prvog do posljednjeg (iz sortiranc liste), rodi sljcdcee: !spW jJodatke 0 imcnu, pre;:il11cl1ll, datulI1u rodenja i prosjeku za t'eku(eg IIcenika.

"'*

Za Sl'e

!f(~cnike

"*

:::::>

odpn:og do prctposljcdnjeg, radi .\'ljedde (i =: rcdni braj ra:matmnog u!:enikn): Medu u.cenicima od i"tog do posljednjeg narii ucenfka sa najholjim prosJekom; Prehaci /1([(tcnog ucenika no. i-to mjesto u listi.

Ovim smo zavrsili razvoj naseg "pragrama", koji mazemo nazvati apstraktni program (iii pseudo kod), jer se nismo vezali ni za kakav konkretan programski jezjk. Razvijeni apstraktni program posve je Jako prevesti u konkretne programske jezike (primjer ovakvog prevodenja dat je u poglavlju 3.11). Najtezi dio programerskog posla je upravo kreiranje apstraktnog programa, dok je njegovo prevodenje u konkretan programski jezik najeesce rutinski posao, pogotovo za iskusnijeg pragramera. Prilikom razvoja ovog apstraktnog programa, koristili smo metodolagiju koja se zasnivala na tome da prvo grubo skiciramo kostur algoritma, ada zatim svaki od upotrijebljenjh koraka dalje rasclanjujemo i razradujemo sve dok ne prepoznamo da S9 rasclanjeni koraci mogu direktno prevesti u naredbe pragramskag jezika koji zelima da koristima. Ovakva metodologija naziva S8 razvoj programa sa vrha nanfze (eng1. top-down), 1predstavlja jednu ad najvise koristenih metodologija pro" gramiranja uopce (mada postoje i druge metodalogije, npr. razvoj sa dna navisfJ, engl. bottom-up). Nekome, ko se nije nikada susretao sa programiranjem, moglo bi se uciniti da Je rezultiraju6i apstraktni program prilicno dugacak. I zaista, ovaj apstraktni program preveden u bilo koji kankretan proceduralni jezik (npr. Pascal) bio bl dugaeak oko tridesetak redova, mada je postavljeni prob" lem djelovao gotova trivijalno. Mec1utim, neophodno j8 shvatiti da je raeunar obicna rnasina kojoj nije lako "objasniti" odredene cinjenice. Zbog toga, programiranje nije posve jednostavan proces i trati dosta znanja i razvijenu logiku za apstraktno razmiSljanje. U skladu sa tim, i sam pojam sta su "mali" a sta "veljki" programi donekle odudara od onoga sto Ijudi mogu pomisliti na prvi pagled. Nemojte pomisliti da je apstraktni program koji sma upravo razvili "velik"; danas sa svi programi Gija je duzi" na kraea ad nekoliko hlljada redova smatraju "malim", dok se "velikim" programima nazivaju programl eija se duzina izrazava u stotinama hiljada pa eak i milionima redova (takvi programi nisu nikakva rijetkost: Wincbws operativni sistemi i svi programi iz Microsoft Office paketa, poput Microsoft Warda, spadaju u kategoriju "velikih" programa).

Ovaj opis vee ima formu algoritma. Medutim, i u njemu se javljaju izvjesne nedoum!ce, odnosno nedorecenostL Naime, kada nademo ucenika kojeg treba dovesti na Ha mjesto u listi, sta uraditi sa ucenikom koji je vee bio na tom mjestu? Mi bismo vjerovatno podrazumijevali (bez potrebe da nam to il<o posebno naglasi) da tog u6enika treba pomjeriti na neko drugo mjesto, npr. na mjesto gdje je bio ucenik kojeg sma doveli na njegavo mjesto. Medutim, vee sma rekli da racunar ne podrazumi" jeva nista, taka da je neaphodna gomji algaritam uCiniti preciznijim, na primjer na sljedeci nacln:
:::::> Za

sve rtccnike od pl1'og do prrtpos/j('dnjt'g. mdf sljedeee (i =: rcdni broj razmatmnog urrnika): Medu I{ccnidma od i-tog do poslj('dl~j('g rUldi ucenika sa najho/jim pro,sjdwm; "'* Prebaci nadenog ucenika na i-to mjesto u listi, ana njegovo mjeslo prebaci ucenika koji je do tada bio na i-tom mjestu.

"*

Da nisma preclzirali 8ta treba raditi sa ucenikom koji se vee nalazio na i"tom mjestu, racunar bi podatke a njemu najvjerovatnije izgubia (jer bi na njegovo mjesto dovea nove podatke, a stare podatke nije saeuvao nlgdje). Upravo ova cinjenica potetnicima stvam prilicne teskoCe prllikom programiranja: Ijudi jednostavno nisu naviklf da u svakodnevnom komuniciranju naglasavaju sve pOjedinosti postupaka koje obavljaju. Mada je ova) algoritam mnogo precizniji i razradenlji nego ptvobitni, on jos uvijek nije neposredno prevadiv nit! u jedan programski jezik. Naime, fraza "nadi ucenika sa najboijim prosjekom" ne maze se neposredno iskazati u proceduralnim jezicima. Neophodno je racunt;lru objasniti kako da nade takvog u6enika. Ideju za nalazenje takvog u6enika u prln~cipu sma iz!ozili na samom poeetku ovog poglavlja, prilikam ilustracije a!goritma za nalazenje najveee_g i najmanjeg proja u nlzu brojeva. Ovu ideju mazema ugraditi u prethodni algaritam, eime. do.bijarno novl:_'razradeniji algaritam:

3.2.3 Struktuiranl pristup razvoju programa


Prilikom razvoja apstraktnog programa u- prethodnom odjeljku, mogli sma primijetiti da hi jedari ad koraka algoritma nije bio numeriran. Medutim, sve do kasnih osamdesetih godlna' bilci-le uobicajeno da se algaritmi iskazuju u vidu numeriranih karaka, a da se sva grananja u algq~itmu iskazuju u vidu iskaza oblika "idi na korak n", gdje je n braj koraka. Na prlmjer, pri takyom' stilu pj$a~ nja algoritma, nas algaritam za raeunanje prosjeka mogao bi izgledati ovako: -

~ Za Sl'C uccnike (ld prvog do prctposljcdnjeg, nidi slfc4c;e(i =: rNlili.b;'o/~(t:;l11atranogll(tenika): =:> Pretpo.I'lavi da upravo i-ti ucenik imn nnjbq1ji p.ro..\jek-i zap/,mlti nfegov prosjek;

"'*

"*
260

Za sve ucenike od i+ 1.. 1'og do posljednjcg;-radDljedet.0) ... . ~ Ako tekuCi lu\enik ima bolji prosjek oct d.o,~aifa.v;1jeg izajboljeg p;Qsjeka. (Jnda: Zapamti njegol' prosjekJ_-(edni"broj; Prehaci ;:apmnccllog uccnilw 114 i-.to mjalo u li!>1i;-a na njt~((Olio mjesto prcbaci ucenika kojije do ta4a bio na i"tom rnj;;.I'tu.

"*

.261.

1. Kreni od prvog uceniku; 2. Postavi tekueu sumu na nll[u; 3. Kreni od prvog predme/u; 4. Ukoliko je ocjena jedllakajedinici, idi na korak 8; 5. Doda} oc}enu iz tekuceg predmeta na tekuet! sumu; 6. Vkoliko nema vi.\:e ucellika idi na korak 10; 7. Fredi fla sUedcCi predmet, zatim idi flU korak 4; 8. Proglasi jedinicu za prvsjek; 9. Jdi na!wrak 11; 10. /zracunaj pro5jek kao kohen-ik tekuee sume i broja predmeta; 11. Ukoliko I1cnw vi.{e ucenika, idi na korak 13; 12. Predi fla sljede(eg ucenika, zatim idi na korak 2;
13. Kraj.

tura ponavljanja, uvjet pod kojim se skupina iskaza ponavlja provjerava se na samom pocetku, taka da ukoliko uvjet Dije u startu ispunjen, navedena skupina iskaza neee se izvrSiti niti jedanput. Metodologija programiranja u kojaj se pisanje programa svodi na upotrebu opisanih karakteristicnih struktura naziva se metodologija struktuiranog programiranja, i na njoi se zasniva programiranje u veeini modernih programskih jezika. Svi moderni proceduralni jezici, paput Pascala i G-a, kao i modernije verzije BASIC-a i FORTRAN-a, posjeduju naredbe kojima S6 ovakve karakteristicne strukture mogu neposredno izraziti. 8truktuirani pristup programiranju olaksava i razvoj modularnog dizajna programa. Osnovna ideja ovakvog dizajna je da S8 program podijeli u vise manjih cjelina (potprograma), koji su, U 5tO js god moguee vecoj mjeri, neovisni jedan od drugog, Kod ovako dizajniranih programa, kontrola ispravnosti programa je znatno olaksana i, Sto je jos bitnije! program moze da radi tim Ijudi skora nezavisno jedan od drugog, U danasnje vrijeme, od programa se zahtijeva ne samo tacan i korektan rad, vee i efikasnost, razumljlvost i modularan dizajn. Kako se ovi ciljevi posHzu, razmotrieemo kroz poglavlja kOja slijede.

Ovakvi opis! algoritama obicno su bili praeeni dijagramima taka, i bili su prilagodeni starijim programskim jezicima (poput ALGOL-a) kao i starijlm verzijama programskih jezika BASIG i FORTRAN, koji za realizaciju grananja koriste naredbu GOTO (najeesce u kombinaciji sa naredbom IF). Medutim, prilikom razvoja slozenijih programa, avakav pristup pokazao se veoma nepraktican, jer le, dovodio do programa koje je teska pratiti i jOs teze odrzavati. Zbog toga, u danasnje vrijerne, kod svih savremenih teoreticara programiranja vlada misljenje da su algoritmi sa numeriranim koracima kao i dijagrami toka izuzetno stetni za razvoj dobrog programerskog razmisljanja. 8toga je neophodno algoritme preformulirati na takav naCin da se u potpunosti ellminira potreba za numeriranjem koraka. To je moguee postiei svodenjem algoritama na karakteristicne algoritamske strukture. Dvije forme prisutne u svim tipovima algoritama su sekvenca iskaza, u kojoj se iskazi izvode onim redom kako su napisani, i iskazi grananja, kod kojih se izvrsavanje algoritma nastavlja ad nekog drugog mjesta. 8ekvenca iskaza ocigledno ne zahtijeva numeraciju iskaza. 8 druge strane, da bismo kod iskaza grananja izbjegli potrebu za numeracijom, moramo -ograniciti primjanu ovih iskaza na odredene tipicne forme, U savremenim algoritmima to su:
Strukture grananja sa jednostrukim iii visestrukim izborom, u kojima se jedna grupa iskaza izvfsava u s!ucaju da je neki uvjet ispunjen, a druga grupa iskaza u slucaju da isti uvjet nije ispunjen. U opisu algoritama, ovakvi iskazi se rnogu opisati upotrebom karakteristicnih rijed i fraza "ako", "ondEi' i "inace" (iii "u suprotnoni'). Strukture ponavljanja, u kojima se grupa iskaza ponavlja vise puta. Ove strukture se opet mogu podijeliti u tri kategorije, U prvoj kategoriji je broj ponavljanja unaprijed poznat, i ovi iskazi se mogu opisati upotrebom fraza peput "za sve vrijednosti od pocetne do krajnje, radi sljedece iskazfl' (ovakve fraze smQ cesto imali U opisu algoritma koji smo razvili u prethodnem odjeljku). U drugoj kategoriji, javlja $e potreba da se odredena skupina iskaza ponavlja sve dok je zado~ voljen odredeni uvjet; stomoiemo opisati-frazama poput"sve dokje uvjet fspunjen, radi slj'ede6e iska.ze" (na primjer; _~'sve dok_ima ucenika u popisu, prikati podatke za teku6eg ucenika"). U treeoj kategoriji! :odredeiJa.sklipina' iskaza-se ponavlja sve dok se odredeni uvjet ne zadovolji, sto mozemo opisatl fraZ:Cim popuf"P9navljaj sljede6e iskaze sve dok se-uvjel ne ispun!' (na primjer, "ponavljaj (f~~s:koma!l.de site ciok -korisnik ne,unese ispravnu komandU').

Strukture -pod;jelit1 na konacne, kod kojih se grupa iskaza ponavlja konaean broj puta t J ,be~k(jfftic.ne, -kod kojlh se grupa iskaza ponavlja unedogled (tj. dok ne iskljuCimo raeUn'af UJ d"ok_:ne-pre:kin~mo'program nasilno, sto se u veeini kompajlera postiie kombinacijom tipkJ Gtrl +.- Break iii Glr! + ._C), ,Takoder, strukture ponavljanja mozemo podijeliti i na bez~ uvjetne j' uvjetne. Kod- beiuvtetnih strukfura- ponavljanja, skupina iskaza se izrsava barem jedan~ -. put, a tek nakon-toga dola~,do provjere da Ii treba istu skupinu iskaza ponoviti. Kod uvjetnih struk~
262 263

ponavija~;~ m~te;riQ~16g-;tki

Pitanja i zadaci
1. 2. U camu js sustlnska razlika izmedu proceduralnog i neproceduralnog komunidranja sa

3.3 ELEMENTI PROGRAMSKOG JEZIKA PASCAL

racunarom?
Koja su ogranicenja neproceduralnog komuniciranja?

3.3.1 Zasto Pascal?!


Izlaganje 0 programskom jeziku Pascal zapotet cemo odgovorom na pltanje koje uteniei testo postavljaju prilikom prvog susreta sa ovim jezikom: Zasto, bas Pascal?! Nairne, utenlei' se veoma cesto susreeu sa misljenjem samozvanih "informatickih strucnjaka" koji zastupaju stay da Pascal ama bas nicemu ne sluzi, da je zastario programski jezik, da je u potpunosti istlsnut u korist modernijih programskih jezika kao 8tO su C++, Java itd. Mada ovakvi stavovi nisu u potpunostl bez osnova, oni su u najmanju ruku pretjerani. Na prvom mjestu, treba napomenuti da su moderni programski jezid znatno tazi od Pascala, i da veGina literature koja obraduje ove jezike polazi ad pretpostavke da citaoei vee poznaju naki proeeduralni jezlk, obicno upravo Pascal. Dakle, poznavanje Pascafa je cesto preduvjet za savladavanje drugih proceduralnih i objektno-orijentiranih programskih jezika. Zbog svoje strogosti, Pascafje idealan programski jezik za savladavanje metodologije proceduralnog programiranja, i dobar je preduvjet za kasnije ueenje modernijih programskih jezika. Na primjer, ucenje jezika C++ bez prethodnog poznavanja Pascala dovodi do velikih tesko6a. Jezik C++ je mnogo manje strog od Pascala, zbog toga sto se pretpostavlja da je programer iskusan, i da dobro zna sta radL Kao posljediea tog nedostatka strogost1, mnoge greske koje bi kompajler za Pascal automatski detektirao, kod C++-8 mogu ostati neprimijecene (zbog toga sto C++ kompajler pretpostavlja da je programer bas hUo da obav! neku prividnu nelogicnost, da bi postigao neki tr1k kojim ce optimizirati program). Mozda b1 se razlika izmedu programiranja u Pascalu i C++-u mogla uporedlti sa razlikom izmedu voznje nekog automobila ogranieenih mogucnosti (npr. Fi6e) i nekog supermocnog automobila (npr. Fom?ule 1). Sa Ffcomvozac ne moze postiCi velike brzine, nltl razviti veliku snagu, ali vjerovatnoca udesa nije velika, a i ako dode do njega, posljedice obicno nisu preveJike. S druge strane, Formula 1 postite ogromne brzine i razvija veliku snagu, medutim neiskusan vozae maze veoma lako lzazvati udes, cesto sa fatalnim posljed1cama. Ucenje jezika kao sIa su C++ (pa 1clava) bez prethodnog poznavanja Pascala, donekle podsjeea na utenje voznje na Formu/i 1 bez prethodne obuke na slab1jim automobilima. Na kraju ovog uvodnog izlaganja, vrijedi reCi da su tvrdnje da je Pascaf "zastario f neupotrebljiv programski jezik" takoder dlskutabilne. Ukoliko se misli na standardni (lzvorni) Pascal, on zaista nije prikladan za pisanje ozbiljnijih programa, vee prvenstveno za ucenje progmmiranja. Medutim, danas postoje i mnogo naprednije verz1je Pascala. Na prvom mjestu, postoji Extended Pascal, koji predstavlja noviju "standardnu" verziju Pascala. Narocito je upotreb!jiva verzija nazvana Turbo Pascal kOja je, mada s!uzbeno ne predstav!ja standard! toliko rasirena na PC racunarima da se izborila za nezvanicni status "nesluzbenog standarda za jezik Pascal na PC racunarima". f',!e 'smijemo zaboraviti ni na Object Pesca! (cesto pogresno nazvan Delphi - sam jezik so zove Object Pascal, a De/phi Je integrirano razvojno okruzenje za vizua!no programiranje koje koristi ovaj jezik). Danas se sve veei broj komercijalnih programa razvija uz pomo6 Delphi razvojnog sistema, za sta je potrebnopoznavanje Object Pascala, koji nije nista drugo nego znatno dopunjeni Pascal. Kao dokaz u prilog pvoj tvrdnji, napomenimo da se- svi programi iz ovog udzbenika, mada posve jednostavni i 'pjs~rii -u ~ izvornom Pascalu, mogu uspjesno kompajlirati u Delphi razvojnom sistemu! "

3. U cemu S9 sastojl metodologija proceduralnog komuniciranja? 4. Zbog cega programiranje nile jednostavan proces? 5. Sta predstavlja dizajniranje struktura podataka? 6. OpiMe razvoj programa sa vrha nanize. 7. Sta je struktuirano programiranje? 8. Sta je modularni dizajn programa? 9. Koje se karakteristicne algorltamske strukture javljaju pri struktuiranom programiranju? 10. Kako mazema padijeliti strukture ponavljanja?
11.

Sta 6e se desiti

ukoliko u strukturama ponavljanja nek] uvjet

~ije ispunjen nikada, asia ukoHko

je ispunjen uvijel<? Na koji nacin ponasanje u ovim situacijama ovisi od konkretne kategorije strukture ponavljanja? 12. Sastavite apstraktni program za rjesavanje kvadratne jednaCine. Pri tome pokusajte da predvidite sve slutajeve koji mogu nastupiti (ukljuGujuCi i sluGaj kada je koeficijent uz kvadratni 61an jednak nuli, tako da se jednacina svodi na linearnu). 13. Sastavite apstraktni program koji predlaze spisak ut8nika za skolsko takmicenjc iz matematlke, pri cemu je kriterij izbora oejena iz matematike.

I ,

.,'-

"

3.3.2 Sintaksa, gramatika i semantika


Prije iz!aganja konkretnih elemenata programskog jezika Pascal, podsjetimo se daj.:va,kt jezik., . bilo govorni iIi programski, posjeduje svoju sintaksu, gramatiku, i semantiku (treba.napomerjuti-da neki autori ne razdvajaju s1ntaksu od gramatike, taka da oboje svrstavaju u simak-su). Sinlaksa. definira pravila pisanja rijeCi nel<og jezika. Na primjer, napisemo Ii "Idem kuc{ tranvajem.", napravilf .

264

265 -

sma sintaksnu gresku, jer r(jec "tranvajem' ntje ispravna napisana (treba "tramvajem"), Gramatika definira pravita fspravnog povezfvanja rijecf u recenice. Na primjer, recenica "Sulra sam i6f u kino." ne sadrzi sintaksne greske, jer su sve rijeei ispravno napisane, ali sadrii gramaticku gresku, jer pomocni glagol "sam' ne ide uz budu6e nego' uz proslo vrijeme (naravno, trebalo bi napisati "6u' umjesto "sam'. Konacno, semantika definira znacenje recenice, Maguce je form irati sasvim sintaksno j gramaticki ispravne recenice, ali semanti6ki neispravne, jer nemaju smisla (npr. "KiSa cita pap!r.", iii jos drasticniji primjer iz knjige D. CvetkoiJica, "Praskozorje ceslja slak/o umiljatim nogavi cama, a narocito ad mrkve."). . I sintaksa i gramatika nekog jezika mogu se precizno opisati formalnim matematickim pravlllma (najpoznatiji takav opis je tzv. Backus-Nauerova forma), sto omogucava kompajleru da izvrsi detaljnu provjeru sintakse i gramatike napisanog programa, i da nam ukaze na ucinjene greske. Sa semantikom ie situadja znatno teza. Semantiku je prakticno nemoguce u potpunosti forma!izirati, tako da nam na veCinu semantickih gresaka kompajler ne maze ukazati, nego se one otkrivaju tek u fazi izvrsavanja i testiranja programa, sto ie cesto veoma naporan i dosadan posao. Sustinska razlika izmec1u programskih i govornih jezika ie u tome sto programski jezici posjeduju mnogo manji broj rijed, ne posjeduju sinonime, i imaju znatno strotu i precizniju gramatiku, time se izb jegava mogucnost dvosmislenog tumacenja. U govomim jezicima, prisustvo redudancije 0 kojoj sma govorili u prvam poglavlju, eesto omogucava korektnu interpretaciju recenice cak i ukoliko ]e ona pravapisno iii gramati6ki (pa ponekad cak isemanti6ki) nekorektna. Kod programskih jezika, koji ne pos jeduju redudaneiju, iii ]e ona svedena na minimum, sintaksa i gramatika jezika moraju se strogo postovati. U suprotnom, prevodilac (kompajler) nece biti u stanju da zakljuCi sta smo ze!jeli da kazema.

o
173 -1.'312
+27

0023

Konstanta 0023 u posljednjem primjeru identicnaje konstanti 23, jer se nule na pocetku ignoriraju. Realne konstante obavezno sadrze cijeli i decimalni dio, koji se razdvajaju decimalnom tackom (a na zarezom, kao 5tO je uobicajeno u matematici). Cijeli i decimalni dio moraju sadriavati barem jednu cifru: Za pisanje veoma velikih iii veoma malih brojeva, moguce je koristiti sintaksu mEe koja predstav!ja m iDe, odnosno "m puta 10 na i'. Pri tome je m eijeli iii realni bro) (sa iii bez predznaka) nazvan mantisa, dok je e cijeli brai (sa iii bez predznaka) nazvan eksponent. Simbol "E" koji oznacava "puta 10 na" moze se pisati i kao malo s!ovo "e" (inate, Pascal ne pray! razliku izmedu malih i velikih slova). Zapis broja u obliku mEe nazivamo eksponencijalna notacija ill zapis u formi pokretnog zareza, SHjedi nekoliko primjera ispravno napisanih realnih konstantl:
23.5

173.0 +174.2 -0.01234 55E6 -3 8E+03 12.0e-5

(Ovo mati 5510") (Ovoznaci -3.8lO J ) (01'0 maGi 1210")

3.3.3 Ailabel jezika Pascal


Opis svakog jezika neophodno je zapoeeti navodenjem skupa simbola (iii alfabeta) od kojih se grade fijeei i iskazi tog jezika. Alfabet programskog jezika Pascal sastoji se od svih velikih i malih slova engleskog alfabeta, cifara 0 - 9, i sljedecih specijalnih znakova:
+ +

Primijetimo da, mada 173 i 173. 0 predstavljaju isH broj, 173 je cjeJobrojna a 173. 0 realna konstanta. Znakovne konstante (poznate jos pod imenom stringovne iii alfanumeri6ke konsianle), sasto je se ad proizvoljnog niza znakova (bez obzira da Ii pripadaju alfabetu jezika Pascal iii ne), koji su na pocetku i kraju omedeni znakom "apostrof" ('), koji se ne smatra sastavnirn dijelom znakovne konstante. Ukoliko telimo da unutar niza znakova koji tine znakovnu konstantu upotrijebimo bas znak apostrof, on se tada mora pisali udvojeno (ti. uduplano). Slijede primjeri ispravno napisanih znakovnih konstanti (sa pojedinim propratnim objasnjenjima):
'A' 'DohaI' dan'
(Ova kOflslanla sadrzi .1'01110 jedno slol'o) (Na,fa slova su dozvo(jena UI/ular znakovnih fwnstanti)

<

>

'"

Mada standard Pascala predvida upotrebu znaka (t), danas je umjesto njega cesee u upotrebi znak (A). Alfabet verzije Turbo Pascal ukljucuje jos i sljede6e znakove:
@

'Dzevad'

Pored toga, alfabet jezlka Pascal ukljucuje i prazninu (iii blanko znak). Mada se praznina ne vidi na ekranu, i ona predstavlja znak (i to cesto veoma vazan), jer racunar mora na neki naCin zapamtiti u memoriji Cinjenicu da na nekom mjestu zelimo prazan prostor! '

'DZEVAD'
, Razrnaci
, d87 33 654-321'
'j!s%&cXX!-a?'

(Razmaci se Ire/ira)u kau i svaki drugi znak)

3.3.4 Kons!anle kao element; jezika Pascal


Od skupa simbola nekog jezika tvore se konstante, fijec! i iskazi (iii izjave). Konstante'-mogtl biti brojcane i znakovne. Brojcane konstante mogu bit] cjelobrojne i rsalne. Cjelobrojne kons'tante, . sastoje se sarno od cifara 0 '" g,'pri cemu ispred prve cifre moze eventualno stajati predzoa~_1: n(:-:, Slijede primjeri ispravno napisanih cjelobrojnih konstanti: " , '

'That'

'8

good!'

(Ova koltslulltaje valjana, iako sadrzi znakol'c izvan alfabela) (Ovoje tzv.prazna kOllsfanta, koja ne sadrii uiSla) (Ova iWllstanta sadri) rdenicu "That's good!") (Ova kOnl'lultla sadrii sumo jedan apustmj!)

Bitno je navesti da se znakovne konstante 'A' i 'a' (kao i ',Dzevad' j 'DZ,EVAD') razlikuju. Znakovne konstante su jedini izuzetak u kojem Pascal pravi razliku izmedu malih i velikih sloval

266

267

3.3.5 Rijeci jezika Pascal


Sve rljed koje poznaje jezik Pascal dijele se na kljucne (iii r:ezervirane) rijeci, predefinirane rijeci
i karisnicki definifane njeei (iii identifikaton). Sve rijeel jezika Pascal sastoje se iskljucivo od slova engleskog alfabeta (dakle, nasa slova nisu dozvoljena) i clfara, pri cemu cifra ne smije bit! na prvoj poztelji. Rijed moraju biti razdvojene jedna od druge barem jednomvrazninom, iii nekim znakom kojl

3.3.6 Iskazi i komenlari


{skazi (izjave) jezika Pascal sastoje se od konstanti, rijeei i drugih znakova Pascal alfabeta (operatora i separatora), na nacin ko]! je propisan gramatiekirn pravilima jezika. Iskazi sluze za opis struktura podataka.koje de se koristiti u programu (tzv. dekfarativni iskaz~, kao i za opis postupaka koji 6e se obavljati nad tim podacima (tzv. izvrsni iskazn. Operator; su znakovi (ponekad i skupine znalmva) kojr predstavljaju neku operaciju (npr. znak + predstavlja operaciju sabiranja), dok su separator; znakovi koji razdvajaju jednu cjelinu od druge, poput znakova zarez (, ), dvotacka (:), tacka-zarez (i), itd. NaroCito bitan separator u jeziku Pascal je iatka-zarez (;) kofi razdvaja jedan iskaz od drugog. 0 ovome 6e biti vise govora u narednim poglavljima.

ne tvori r!jee (na primjer, zarezom, znakom +, ltd,).


Kfjucne rjjee; su one rijed koje predstavljaju srt svakog- Pascal-programa. One imaju tacna odredena unaprijed definirana znacenja, i njihova znacenje je nemogu6e promijenit1. Dakle, ove rijed u programu se mogu koristiti samo za tacno odredenu namjenu, i nizasta drugo. Na primjer, kljucne rijea jezika BASIC su PRIN'r, INPUT, GOTO, IF, FOR, SQR, ADS, itd. Standardni Pascal posjeduje 35 kljuenih rijeei, koje su prikazane u sljedecaj tablici:
=d

div file
if not

record type

array do for in or repeat until

begin downto

forward
label packed oet ver

case else function mod procedure then while

canst
end

Sintaksa jezika Pascal predvida da bilo koji dio Pascal programa koji je omeden vltieastim zagradama predstavlja komentar, i raeunar se na njega uopce ne obazire prilikom izvrsavanja programa. Jedlna svrha komentara je da olaksa razumijevanje programa onom ko cita program. Drugim rijecima, uloga vitlcastih zagrada je slicna ulozi REH naredbe u BASIC-u. Kornentar moze sadrzavati rna kakve znakove, ukljucujuci j znakove izvan alfabeta Pasea/a (npr. nasa slova),

gato nil program to with

Varijanta Turbo Pascal jezika Pascal (koja S8 danas pretezno koristi) posjeduje i sljedece kljucne rijeci (preuzeto iz verzije Turbo Pascal 6.0 ):
absolute external object uses asro implementation shl virtual assembler inline shr xor constructor interface string destructor interrupt unit
'\,;

.,j

.;1

'I
1

Predefinkane rijeci su one rijed koje posjeduju unaprijed definirano znacenje, mada je njihovo znaeenje mogu6e promijeniti. Na primjer, rijee write podrazumfjevano predstavlja naredbu za ispis podataka na ekran, dok rijee sqrt podrazumijevano predstavlja funkciju za racunanje kvadratnog korijena. Za razliku od kljucnih rijeci, predefiniranim rijecima programer mote promijenit! znacenje, taka da je principijelno mogude definirati da rilec write nalazi, recima, rjesenja kvadratne jednaeine (mada se takva praksa zaista ne preporucuje). Programski jezik BASIC ne posjeduje predefinirane djeci: njemu su sve rijed iii kljucne iii korisnicki definirane rijeeL Pascal posjeduje manji braj kljucnlh rijeb, ali zato posjeduje prilican broj predeflniranih rijecL Tako, standardni Pascal posjeduje nekoHko desetina predefiniranih riieei, dok je broj predefiniranih djeCi u moderniJim verzijama Pascala daleko vedi (u verziji Turbo Pascal njihov brai prelazi 1000). Korisn;r3ki definirane rijeci (ldentfffkatorn su one rijeci koje nemaju nikakvo unaprijed predvidenp znacenje, nego njihovo znaeenje definira programer. U jeziku BASIC, korisnicki definirane rijeei su uglavnom imena promjenljivih, dok u Pascafu korisnicki definirane-rijeci imaju znatno siru -primjenu, Za razliku ad BASIC"a, sve korisnicki definirane rijeel u Pascalu rnoraju biti prethodno najavljene (dek/arirane) u posebnom dijelu programa koji se naziva deklarativni dio programa. 0 ovama 6e detaljno biti govora u sljede6em poglavlju.

Radi jasno6e, u svim primjerima u ovom udzbeniku, kljucne rijeei jezika Pascal bi6e pisane
. masnim slovima, ostali ugradeni elernenti Pascala (predefinirane rljeel) biGe pisani obicnim slovima, dok ce se imena koja definira korisnik (korisnicke rijec!) pisati nakosenim slovima.

268

269

Pitanja i zadaci
1. Sta su sintaksa, gramatika i semantika nekog jezika? Zbog 68ga mazema razumjeti covjeka koji grijesi u sintaksi i gramatici, a racunar ne moze. razumjetl sintaksn-o i gramaticki neispravan program? 3. Od 6aga se sastoji alfabet jezika Pascaf? 4. Zaokruzite neispravne realne konstante u sljedecem popisu: a) 274,23 b) 37.121 c) 3E4 d) 3c4 e) 123 f) -12e-12 g) +123.321 5. Zaokrutite neispravne znakovne konstante u sljedecem popisu: a) '#$%&/(' b) 'Sirnica c) zeljanica d) 'Jogurt' e) 'I'm king' f) 'U?:::) (/)// g) 'I am "king'" h) '" i) 'I"m king'j) , 6. Sta su klju6ne, a sta predefinirane rljed? Navedite bar po dva primjera za svaku od njih. 7. Zbog 6ega nije dobra promijen1ti znacenje neke predefinirane rijed? 8. Sta SlJ identifikatori? 9. Koja su pravila za pisanje identifikatora? 10. Koje od sljedecih rijeei ne predstavljaju ispravne identifikatore: e) Burek a) haftudaftu b) U2 c) 2Pac d) Cevapi j) duZina f) obim kruga g) DanArmije h) Paja Patak i) brzina
2.

3.4 STRUKTURA PASCAL PROGRAMA


3.4.1 Uporedivanje BASIC i Pascal programa
Pascal je pragramski jezik ko]! korisnika primorava da se pridrtava strogo propisane strukturs prilikom pisanja programa. Ovu strukturu najbolje je ilustrirati na konkretnom primjeru. Neka je patrebna napisati program koji prvo brise ekran, zatim trazi ad korisnika da unese neki broj sa tastature- i, na kraju, ispisuje na ekran uneseni broj uvecan za 1. U programskom jeziku BASIC, taj program bi, na primjer, mogaa izgledati ovako:
10 REM OVAJ PROGRAM ISPISUJE UNESENI BROJ UVECAN ZA 1
20 CLS 30 INPU'l' broj

40 PRINT' broj

U Pascalu (verzlja Turbo

Pasca~,

isti program lzgledao bi ovako:

program pX'imjer (input, output);

{ ovaj proqram .isp:isuje uneseni broj uvecan za 1 }


uses Crt;

11. Sta su iskazi, i kakve vrste lskaza postoje? 12. Sta su operatori, a sta separator1? 13. Kako mazema ubaciti komentare u Pascal program (koje racunar ne treba da uzme u obzir)?

var Braj : integer;

begin
eLmer;
readln (Rcaj) i writeln (Emj + 1) end.

Ovdje sma se oslonili na Turbo Pascal iskljucivo zbog clnjenice da standardni Pascal ne predvida naredbu za brisanje ekrana (poput naredbe CLS u BASIC-u). Ovo ne predstavlja osabit problem, s obzirom da je Turbo Pascal najrasprostranjenija verzija Pascala za PC raeunare. Razlike izmedu programa u BAS/C-u i ovog programa su 06igledne, Stoga, razmotrimo pazljivije ovaj program. Na prvom mjestu, BASIC programi se pisu pretezno velikim slovima, dok je uobicajeno (ali ne i obavezno) da se Pascal program! pisu malim slovima mada, kao sta je vee reeeno, Pascal (za raz!iku od jezlka C, C++ i Java) ne pravi nikal<vu razliku izmedu malih i velikih slova, osim unutar znakovnih konstanti. Bitnije je uoeiti da se u Pascalu, <za razliku ad klasicnog BASlc.a, ne koriste Nmjski brojevi (napomenimo da se oni ne moraju koristiti ni u nekim madernijim verzijama BASIC-a, kao sto je npr. QBASIC). U nastavku cerno detaljnije analizirati prikazani Pascal program, koji je ocigledno slozeniji od odgovaraju6eg BASIC prog,rama.

3.4.2 Zaglavlje programs


Na pocetku svakog Pascal programa mora se nalaziti zagJavlje programa. Ona zapoCinje kljutnom rijed program, iza koje s!ijedi ime programa (Primjer U nasem primjeru), Ova kljucna rijee gavari kompajleru da je rljee 0 programu, a ns 0 neC8mu drugom, npr. pt'Ogramskom- modulu, koji zapoCinje kljucnom rijeei uni t (programski modul je skupina potprograma koji se mogu koristiti unutar drugih pragrama, ali koja sama za sebe ne predstavija kompletan program). Nakon nje slijede rije6i input. ukoliko program cita podatke sa standardnog ulaznog uredaja (tipicno tastature), odnosno output ukoliko program prikazuje izlazne podatke korisniku preka standardnog izlaznog uredaja (tipicno ekrana).
270 271

Ove rljeel se obavezno pisu u zagradama, i predstavljaju tzv, parametre programa. Na kraju zaglavlja (kao i na kraju vecine naredbi jezika Pasca~ n?lazi se tacka-zarez. Vrijedi napomenuti da ve!iki braj danasnjih kompajlera za Pascal dozvoljava da se zaglavlje programa izostavi, tako da bi program radio j ukoliko bismo potpuno jzostavili prvi red programa (tj. njegovo zaglavlje), U narednom redu programa primjecujemo tekst "Ovaj program ispisuje uneseni broj uvecan za 1" napisan unutar viticastih zagrada { i}. Kao 8tO je vee ranije objasnjena, ovaj tekst predstavija komentar, i racunar se na njega ne obazire prilikom izvrsavanja programa.

prihvate. 0 ovome cemo kasnije govoriti detaljnije, U prethodnom primjeru, deklaracija


var Broj : integer;

deklarira (najav!juje) promjenljivu nazvanu Broj koja moze sadrzavati sarno cjelobrojne vrijednos~ ti, sfo je najavljeno pomocu oznake integer (rijee integer na engleskom jeziku znaci "eijell bra)"). Pored deklaracija promjenljivih, program moze sadrzavati i deklaracile drugih elemenata jezika Pascal kao sto su npr, imenovane konstante, zatim definicije tipova, procedura, funkcija, ltd. 0 eemu 6e kasnije bit! vise govora. Sve deklaracije zaJedno Cine dekfaracijskf dio programa, koji prethodi ;zvrsnom dijelu programa. Dok deklaracijski dio samo najavljuje strukture podataka koje ce se koristiti u programu, izvrsni dio sadrzi opis postupaka koji 6e se obavljati nad tim podacima (radi usporedbe, mozemo smatrati da svi BASIC programi uglavnom posleduju samo izvrsni dio). !zvrsni dio programa uvijek zapoeinje kljuenom rljeei begin, a zavrsava kljucnom riieel end, nakon koje obavezno sHjedi latka, koja oznaeava kraj programa. lzvrsni dio progral11a predsiavlja specijalni slucaj tzv. bloka, koji predstavlja bilo koju skupinu naredbi koje su omedene sa begin i end. Svrhu blokova upoznacemo kasnije. Za sada je dovolino da znamo da iZVrSni dio programa takoder predstavlja jedan blok.

3.4.3 Deklaracijski dioprograma


U primjeru ko)i sma razmatrali u prethodnom odjeljku, odmah nakon zaglavlja programa nalazi se izjava (iskaz) uses crt; Mada ova izjava nije sastavni dio izvornog Pascala, podrzana je u gotovo svim danasnjim verzijarna jezika Pascal, i upotrebljava se veoma eesto. Kljucna rilee uses govori kompajleru da 6e program koristit1 neke naredbe koje nisu sastavni dio standardnog Pascala, pri eemu ime navedeno iza uses (u nasem primjeru crt) predstavlja ime programskog modula u kojem su definlrane nestandardne naredbe koje koristimo. U nasem primjeru koristena je nestandardna naredba clrscr za brisanje ekrana (ad eng!. Qear cxeen), kOja je definirana u modulu nazvanom crt (od engl. Qathode Bay lube). Svaki program koji teli da koristi naredbu za brisanje ekrana (i druge nestandardne naredbe definirane u modulu crt) mora sadrtavati ovu izjavu. Kao i BASIC, Pascal takoder poznaje pojam promjenlj;vih. Promjenljive (iii varijable) su slava II! rijeei koje sluze kao zamjena za neku vrijednost (ne nuzno brojeanu). Na primjer, promjenljiva Braj maze sadrzavati vrijednost 10, dok promjenljiva Ime maze sadrtavati vrijednost 'Mirsad', Preciznije reeeno, promjenljive su zaprava mjesta u memoriji u kojima se euvaju odredene vrijednosH, pri cemu programer pristupa sadrtaju promjenljivlh preko njihovih imena:

3.4.4 Izvfsni dlo programa


Pogledajmo sada jos jedanput razmotreni primjer programa, i uocimo karakteristicne cjeline kOje se javljaju u njemu:
program PrimJ'er (input, output);
---~- ............... zaglllF(ic plVgmma

{ ovaj program ispisuje une13eni braj llvecan za 1 )

uses crt;
var Bro.1 : integer;

deklamtijski dio

begin
cJrscr;
(E1"O j) ; writeln (Broj + 1) end.

~ [~~~
Braj Ime

readln

izv,.fnidio

Medutlm, za razliku od BASIC-a, u Pascalu se svaka ad promjenljivlh koje 6e se koristiti (kao i mnogi drugi elementi jezika koji se opisuju- preko korisnieki definiranih rijeci) mora prethodno deklarirati (najaviti), Na taj naein se smanjuje mogu6nost greske koja moie nastati ukoliko negdje u programu slucajno pogrijeSimo u imenu promjenljive, Na primjer, pretpostavimo da smo u BASIC-u napisali sljede6i program, u kojem je greskom u redu 20 naplsano BRJ umjesto BROJ:
10 BROJ '" 5 20 PRINT BRJ

Nakon pokretanja ovog programa, na ekranu bi umjesto ocekivane vrijednosti 5 bio ispisan braj 0, i BRO' nisu ista promjenljiva, au BASIC-u sve promJenljive imaju vrijednost 0 dok im se l1e dodijeli neka druga vrijednost. U Pascalu bi ovakav tip greske bio odmah detektiran, Jer (neposw tojeca) promjenljiva B&1 nije propisno najavljena, odnosno deklarirana.
je-~ BROJ

Ostaje jos da prokomentiramo izvrsnl dio ovog programa. Na ovom mjestu 6emo samo letimieno razjasniti smisao upotrilebljenih naredbi. Naredba clrscr, kao sto je vee reeeno, brise ekran (poput naredbe CLS u BASIC-u). Naredba readln eeka da korisnik unese neku vrljednost pomocu standardnog- ,Lilaznog ured,aja (tipieno tastature), a zatim smjesta unesenu vrijednost u promjenliivu eije ie ime navedeno unutar- zagra9a (u nasem slueaju promjenljivu Broj), sHeno naredb! INPUT u BASIC-u. Kazem'o da if) prQmjehljiva Broj argument (iii parametafj naredbe readln. Argumenti su, za,pr~v0, dopunske in-fonTlacije -koja treba pros!ijediti nekoj naredbi da bi efekat njenog izvrsava~ nj? bio.precizno~tf.efinirall.: I;J jeziku Pascal, argumenti svih naredbi, za razliku od BASIC-a, pisu se unutar zagrada. -Nare9ba. -wri t.?ln ispiiuje vrijednost svog argumenta na standardni izlazni uredaj (tipicno-'ekr~n), n-a~o~'~tega._slijedi pr~lazak u novi red, s!icno naredbi PRIm' u BASIC-u. Mo;?emo, prim'ljetlti da se prakticno svaka naredba u Pascalu zavrsava znakom tacka~zarez. Ovaj 2:n~k "tapravo,slut1 za razdvajanje naredbi (poput znaka dvotacka u BASIC-u), mada, za raz1iku od BASIG-a-; kraj raCla 'neoznaeava i kraj naredbe, tako da se jedna naredba moze protezati I u vise redova, Upascafu,. kraj naredbe oznaeava iskljuCivo znak tacka~zarez. prj tome se taeka~zarez

Deklaracija promjenljivih zapoeinje navodenjem kljucne rijeei var, Nakon toga sllledi popis promjenljivih koje deklariramo zajedna sa dozvoljenim skupom vrijednosti kole promjenljive mogu da
272

273

mote (ali ne mora) izostaviti nakon naredbe koja se nalazi neposredno fspred oznake kraja bloka end, Pored toga, suvisn! razmaci u programu se ignoriraju, osirn unutar znakovnih konstantL Stoga bi patpuno Ist1 efekat kao prethodni program proizveo i sljedeci program:
program Primje.r(input,
output); uses crt var B.roj integer; begin clJ:'scr; read (Broj
);

Pitanja i zadacl
1, Bta je zaglavlje programa?

2. 3. 4. 5. 6. 7.

Cernu slute promjenljlve? Bta je deklaracija promjenljivih? Sta Je deklaracijski, a sta izvrsni dio programa? Bta su argumenti naredbi u jeziku Pascan Sta oznacavaju kljucne rijeei begin i end? U sljedecem kratkom programu napravljeno je cak 6 gresaka. Pokusajte ih pronaci.
program prva pomoc (output)

v"rite
1

(Bmj + ) end.

begin writeln Broj end

Naravno, ovakav program je posve necitljiv, tako da radi citljivosti programa treba paziti na sti! pisanja. Narocito Je pozeljno naredbe unutar blokova (t]. izmedu begin i end) pisati uvuceno, Jer se tako lakse uocava gdje pocinje a gdje zavrSava blok. To narocito dolazi do izrazaja kod duzih programa.

8. U kojem slucaju separator tacka-zarez nije neophodan? 9. Zbog eega je potrebno paziti na stil pisanja programa?

274

275

3.5 ELEMENTARNE STRUKTURE PODATAKA


3.5.1 Cjelobrojni tip
U jeziku Pascal, svaka promjenljiva mora imati svoj tip, koji ~dreduje skup vrijednosti koje ta promjenljiva moie uzimati. Svi tipovi podataka se mogu podijeliti na proste tipove i sloiene tipove. Na ovom mjestu cemo govoriti 0 prostim,tipovima, dok cerna slozene tipove razmatrati u poglavlju 3.9. U proste tipave podataka spadaju cetiri Dsnovna tips podataka: cjelobrojni tip, realni tip, znakovni tip j log/cki (Buloy) tip, kao i dva Izvedena tips: pobrojani tip i intervalni tip.
Izlaganje 0 elementamim strukturama podataka zapacet cemo opisom cjelobrojnog tips, koji

brze i efikasnije radi sa cjelobrojnim nego sa necjelobrojnim podacima, Takoder, cjelobrojne promjenljive zauzimaju znatno manje memorije (dva do pet puta) nego realne promjenljive. Stoga, uko!iko znamo da neki podatak (ns primjer, broj ucenika u razredu) moze biti samo cijeli broj, tada bi deklaracija promjenljive Broj Ucenika kao promjenljive realnog tipa bila cisto rasipanje, kako memorije, tako i procesorskog vremena. Ukoliko zeHmo da deklariramo vh':>e promjenljivih raz/icitog tipa, kljucnu rijee var ne treba ponavljati, nego je, treba navesti sarno prllikom pIVe deklaracije. Na primjer, deklaracija
. var prvi
I

Dxvgi : integer;

Treci

real;

deklarira promjenljive Prvi i Drugi kao cjelobrojne, a Treci kao realnu promjenljivu.

je najjednostavniji prosti tip. Uzmimo kao primjer deklaraciju


var Braj : integer;

3.5.3 Znakovni tip


Promjenljive znakovnog tipa, odnosno tipa char, mogu kao svoju vrijednost sadrzavati proizvoljan znak (karakter), to jest S{OVO, citru iii znak interpunkcije. Na primjer, ukoliko imamo deklaraciju
var Znc1k char;

Ova deklaracija oznacava da je tip promjenljive Broj tip integer, odnosno cjelobrajni tip (vee sma rekU da rijee "integer" na engleskom jeziku oznacava djeli braD. Tip promjenljive odreduje vrstu vrijednosti koje se mogu smjestiti u nju, kao i vrstu operacija koje se na nju mogu primjenjivati. Za promjenljivu Broj iz gornjeg primjera, to znael da se u nju rnogu smjestati iskljuCivo djeli brojevi, i da se na nju mogu primjenjivati iskljueivo aritmeticke operacije definirane za cijele brojeve. Zbog nekih tehnickih ogranieenja, opseg vrijednosti koje se mogu smjestati U cjelobrojne promjenljive uvijek je ogranieen. U vecini verzija Pascafa (ukljucujuci Turbo Pascao, vrijednosti cjelobrojnih promjenljivih ogranicene su na opseg od -32768 do 32767. Ovaj opseg cesto nije dovoljan, pa mnoge verzije Pascala (ukljucujuCi Turbo Pasca~ uvode i tip longint, koji je identiCan tipu integer, osim sto dopusta znatno siri opseg vrijednosti (tipicno od -214'7483648 do 2147483647), sto je dovoljno za vecinu primjena. Tako, ukoliko zelimo da povecamo opseg vrijed~ nosti koje promjenljiva Broj moze da primi, pisat cemo deklaradju
var Broj longint;

tada promjenljiva Znak maze sadrzavati reeimo slovo 'A', clfru ' 7' iii znak '?'. Treba obrati~ ti paznju da promjenljive Upa char mogu sadrzavati sarno jednu znakovnu vrijednost u jednam trenutku, tako da nije moguce u promjenljivu znak smjestiti npr. rijee 'Bicikl '. Ova se pokazalo kao veliko ogranicenje, pa mnoge verzije Pascala (ukljueuju6i Turbo Pasca~ uvode i tip string. Promjenljive ovog tipa (zvacemo ih promjenljive stringovnog tipS) mogu sadrzavati Citave rijeCi iii reeenice (duzine do 255 znakova). Tako, nakon deklaracije
var Recenica string;

Ukoliko ze!imo da deklariramo vise promjenljivih koje su istog tipa, tada prilikom deklaracije navodimo popis promjenljivih koje deklariramo, medusobno razdvojenih zarezima. Na primjer,
var prvi I Drugi, Treci integer i

promjenljiva Recenica maze sadrzavati recenicu 'Jute j e pada.la kiSa.', lnteresantno je uoClti da je string k!jucna rijec (dakle, znacenje joj se ne moze izmijeniti), mada integer, real i char nisu kljucne nego samo predefinirane rijeel, sto znaci da se njihova imena mogu upotrijebitl i za druge namjene (time im se mijenja znatenje). Posmatrajmo, na primjer, sljedecu deklaraciju:
var integer :real;

3.5.2 Realni tip


Tip sliean cjelobrojnom tipu je rea/Vi tip, koji 'se ozriaeav8. sa reaL Promjenljive realnog tipa mogu sadrzavati proizvoljne vrijednosti iz skupa realnih brotvaXpreciznije, ne bas sve, jer je i n]ihav opseg kao i brej decimala koje se pamte u promlenJjlvofogranice"n). Primjer dek!aracije promjenljive realnog -tipa je: . ". var Temperatura : real;

Ovom deklaracijom smo dektarirali promjenljivu nazvanu integer, eiii je tip real. o.vakvodeklararlranje je vrlo losa praksa, jer sma na taj nacin izgubili tip integer, tako da nakon-.takve deklaracije ne mozemo viSe definirati ni jednu promjenljivu cjelobrojnog tipa! . Bitno je napomenuti da, mada je strlngovni tip veoma srodan znakovnom tipu, on ipak ne:spada u proste, nego u slozene tipove podataka (mada posjeduje lzvjesna svojstva pros_~~n ti~o~i3)._" ~

3.5.4 Logicki (Bulov) tip


JOB jedan prosti tip koji je ugraden u programski jezik Pascal je log(ckl tip (ili 8uJov..tip, 9_-cast-osnivaca matematicke !ogik0 George 800Iea), Promjenljive logickog tipa m-ogu imati sarno jednu o?
277

Pazljiviji utenik ce primijetiti da standardni BASIC; riije 'razdVajao.brojcane promjenljive na cjelobrojne j realne, nego su sve brojeane promjenijive mogle pamtJt(fealne vdjednostL_ 8toga razdvajanje koje zahtijeva Pascal djeJuje kao_neophodno komp!iciranje. lpak, treba napomenuti da raeunar mnogo
276

dvije moguce vrijednosti: true (taeno) i false (neta6no). Na primjer, ukoliko imamo deklaraciju
var Punoljetan Boolean;

type Sat'" 0 .. 23; DanfJGodini = 1 366;


MaxInt;

tada promjenljiva Punoljetan moze da ima samo vrijednost true Hi false (zaista, covjek Hk, jeste iii nije purioljetan - trece mogucnostl nema). Rijee Boolean obi6no se pise veJikim s!ovom,u znak postovanja licnosti G, Boolea, mada to nije obavezno.

Ovdje su deklarirani tipovi Sat, DanTJGodini i Nenegati.van, kao podskupovi tipa integer, U posljednjoj deklaraciji upotrijebljena je predefiriirana konstanta Maxlnt k~ja pre~stavlja najvec,u vrijednost kOja se moze upisati u promjenljivu tipa integer (ova konstanta Ima vrljednost 32767 u veCini verzija Pascafa). Ako sada deklariramo promjenljive
var Dan : DanUGodini;
Plata, Porez Nenegativan;

3.5.5 Pobrojani tip


Jezik Pascal dozvoljava korisniku i definiranje vlastitih, odnosno korisnicki definiranih (ipava. Ovi tipovi definiraju se uz pomoc kljucne rijeei type. Definicija tipova mora se nalaziti u programu prije deklaracije promjenijivfh, Jedan od korisnieki definiranih tipova je pobrojani tip. Ovaj tip predstavlja skup vrijednosti kOje je imenovao i uredio (tj. definirao im poredak) programer. Pobrojani tip S6 definira tako 5tO se ptvO definira ime tipa, zatim znak jednakosti, nakon eaga se unutar zagrada navodi popis vrijednosti (mec1usobno razdvojenlh zarezima) koje mogu uzimatl promjenljive tog tipa. Sve moguce vrijednosti moraju biti identifikatori, pisani u skladu sa pravilima pisanja rijeci u jeziku Pascal. Na primjer, deklaracije
type Boje C~ (Crvena, Zelena, P.Iava, Zuta, C=a, Bijela); Dan'" (Ponedje.ljak, Utorak, Srijeda, Cetvrtak, Petak, Suoota, Nedjelja); Rezultat "" (Poraz, Nerijeseno, FObjeda);

tada su vrijednosti tih promjenljivih ogranieene na definirane opsege: taka se promjenljivoj Dan ne maze na primjer pridruziti vrijednost 400, dok promjenljive PJ.ata i Porez ne mog u sadrzavati negativne vrijednostt. Dobra je praksa koristiti poddomenske promjenljive g~je 9?d ie to n:oguce .. Na taj naein omogucavamo kompajleru detektiranje gresaka kOje mogu nastatl usljed slu6ajne dodjele vrijednosti izvan dozvoljenog opsega nekoj promjenljivoj. Promjenljive intervalnog tipa moguce je deklariratl i bez posebnog uvodenja imenovanog inter~ valnog tipa. Na primjer, deklaracijom
vax Dan
1 .. 366;

definiraju tri nova tipa Baja, Dan i Rezultat. Promjenljive tipa Baja mogu imati samo vrijednosti Crvena, Ze1.ena, PlaYa, zuta, erna iii Bije.la (ali ne i Smedja iii Ljubicasta, jer nigdje nismo definirali da su i to boje). Slieno vrijedi i za promjenljive tipa Dan i Rezul tat. Primijetimo da nije dozvoljeno da boju nazovemo zuta, jer isprav,ni Pascal identifikatori ne smiju sadrzavati znakove izvan engleskog alfabeta, Vazno je napomenuti da deklaracija tipa samo definira novi pojam (kao neku vrstu apstraktnog objekta), ali ne i konkretne primjerke novouvedenog pojma sa kojima mozemo zaista i obavljati neke operacije. Tek kada deklariramo promjenljive koje su novouvedenog tipa, dobijamo konkretne objek~ te sa kojima mozemo nesto raditi. Promjenljive pobrojanog tipa mazemo deklarirati na ist! nacin kao i promjenljive eijl je tip neki od ugradenih tipova. Na primjer, neka imamo deklaraciju
var BojaZj,da, BojaAutomobila : Baja;

neposredno deklariramo promjenljivu Dan eiji je opseg ogranicen na opseg brojeva od 1 do 366, bez prethodnog definiranja iniervalnog tipa ko]i predstavlja taj opseg. Cjelobrojni, znakovni, logi6ki, pobrojani i intervalni tipovi zajedni6kin: ilTleno~ nazi~aju .se ordi nalni tipovi. Intervalni tip se moze definirati kao podskup. ma kakvog ordl~alnog tlpa (ail ne ! realnog tipa, koji nije ordinalni tip). Tako su sasvim dozvoljene sljsde6e deklaraclJe:
M

type DanUSedm.ici. "" (Pon, Uta, Sri, Cet, Pet, Sub, Ned) RadniDan '" Pon .. Pet;
VelikoS.lovo '" 'A'
.. 'Z';

var' PlaceniDarl
Inicijal

RadniDan;

VelikoSlavo;

Ova deklaracija uvodi konkretne promjenljive BojaZida i BojaAutomobila kOje su tipa Boja, i njima se moze dodijeliti bilo koja od vrijednosti koje su definlrane u tipu Baja. Na kraju treba naglasiti da lako upotreba pobrojanih tipova nekada mOle udnit! program citljivijim i pregednlpm, civi ttyxM u jeziku P!,scaJ posjecluju brojna ogranlcenja. Na primjer, promjenljive pobrojanog tipa nije mog~ce eltati ~ !a~lature niti ispisivati na ekran, sto u velikaj mjen suzava mogucnost njihove pnmjene.

Nakon ovih deklaracija, promjenljiva P1.aceniDan moze sadrzavati samo vrijednosti Pan, Uta, Br.i, Cet i Pet (ali ne i Sub iii Ned), dok promjenljiva Inic.ija,l moze sadrzavati sarno velika slova engleske abecede.

3.5.6 Inlervalni lip

Inte~~alnt(po7id~m~~sk~ -tip-je JDS jedan korisnicki definlrani tip, koj! omogucava pragrameru da -deff-h~a 'pOdskup ,nek~g vee postojeceg tipa, odnosno da ograni(;i skup vrijednosti predstavljen tipom. lntervaini-tip se d~finira tako s10 se prvo definira ime tipa, zatim znak jednakosti, nakon cega se navode poce:tnai krajnja vrijednost koju promjenljive tog tipa mogu uzimati, razdvojene sa dvije tacke.(ne znakom dvotacka). Na primjer, neka su date sljedece deklaracije:
278 279

Pilanja i zadaci
Kakva je razlika jzmedu cjelobrojnog i real nag tipa? Koje su prednosti a kole mane realnog tlpa u odnosu na cjelobrojnf tip? Sta je znakovni, a sta stringovni tip? Gemu sluzi logi6ki tip i kako se ovaj tip drugaCije naziva? Kako se definira pobrojani tip? Pretpostavimo da u Pascafu ne postoji tip Boolean. Kako bismo ga mogli sami definirati karisteCi pobrojani tip? 7. Gemu sluze intervalni tfpav! i kako se definiraju? 8. U cernu je razlika izmedu deklaracije tipa j deklaracije promjenljive? 9. Sta su ordinalni tipovi? Da Ii je realni tip ordlnalni tip? 1. 2. 3. 4. 5. 6.

3.6 KONSTANTE, PROMJENLJIVE IIZRAZI U PASCALU


3.6.1 Imenovane konslante
Pored uobicajenih brojcanih i znakovnih konstanti, koje smo upoznali u poglavlju 3.3, programski jezik Pascal dozvo!java i deflniranje imenovanih konstanti, koje se koriste za imenovanje nekih podataka koj! se nikada ne mijenjaju tokom rada programa. Imenovane kons1ante se definiraju u deklara~ivnom dijelu programa, pomo6u kljucne rijed const, iza koje slijedi popis definicija konstanti. Svaka definicija se sastoji od imena konstante, znaka jednakosti i vrijednosti konstante (nakon 6ega slljedi obavezni tacka-zarez). Imenovane konstante mogu biti bilo kojeg tipa koji smo do sada objasnili. Na primjer,
canst pi
~

3.141592654;

Broj[lcenika '" 36; BrojSedmicaU(,,odini '" 52; OdnosEuyoMarka ~ 1. 947.-

PrvoSlovo '" 'A'; Grad ~ 'Sarajevo'

!menovane konstante pove6avaju citljivost programa. Na primjer, lakse je u programu karistiti rijee pi ne90 stalno navoditi vrijednost kbnstante (koja je u gornjem primjeru definirana na nesto vise decimala nego 5to u6enici obicno I<orlste). Takoder, ukoliko se u nekom programu javlja potreba reeimo za brojem sedmica u godinj, dobra je praksa taj broj definirati kao posebnu imenovanu konstantu (npr. BrojSedmicaUGodini). Pril!kom analize programa, mazemo se mnogo lakse snaei ukaliko ugledarno neku konkretnu rijet (poput BrojSedmicaUGodini) nego bezliean broj 52, za koji ne mozema na PlY! pogled uoeiti njegovu ulogu u programu. Dobro je znat! da modeme verzije Pascala poznaju konstantu pi bez potrebe da je mi posebno definiramo (fj. ona je predefinirana a ne kOlisnf6ki deffnirana rijec). Imenovane konstante znatno o!aksavaju izmjenu i odrzavanje programa. Na primjer, ukoliko je nek! program pisan za potrebe evidencije ucenika u razredu kc]! ima 36 ucenika, .j ukoliko je broj ucenika definiran kao imenovana konstanta B.roj Ucqnika, njega je sasvim lako prilagoditi razredu od 32 ucenika, tako sto ee se izmjena napraviti same na jednom mjestu (u definielji konstante BrojUcenika). Da nismo definirali imenovanu konstantu, izmjene bismo morali izvrs!ti na svim mjestima u programu u Kojima se javlja braj 36 (l to sarno na onim mjestima gdje 36 zaista predstavlja braj ueenika, a ne slucajno nesta drugo)! Slieno, u trenutku pisanja ovog udzbenika, jedan eura vrijedio je 1.947 KM, sto je definirano konstantom OdnosEuroMarka. Ukoliko se ovaj odnos promijeni, izmjenu je dovoljno napraviti sarno u definiciji konstante. Napomenimo da se imenovane konstante mogu koristiti na bilo kojem mjestu gdje se mogu koristiti i obiene konst~n!e. Na primjer:
canst prvi ~ 1; Posljednj.i =' 36;

type

OpsegRazreda '" Prvi .. Posljednji;

Ovdje smo imenovane 'konstante Prvi i Poslj ednj i iskoristili za gefirjjranj~)ntervatnog 'tipa .
OpsegRazreda.

280

281

3.6.2 Promjenljive
Za razliku od imenovanih konstanti, vrijednosti promjenljivih se mogu mijenjatj u toku rada. Deklaracija promjenljivih (koja se obavlja pomo6u kljucne rijeel var) sarno najavljuje postojanje odgovarajucih promjenljivih, ali 1m ne pridruzuje nikakvu konkretnu vrijednost. Ovo je cest uzrok gresaka u programima. Pretpostavimo, na primjer, da sma napis~1i sljedeCi program: .
program OpasnaGreska (output);

promjenljivih (zapravo, prije deklaracija konstanti smiju se nalaziti deklaracije tzv. lab~/a, 0 koj~~a cema govoriti u poglavlju 3.8). Modernije verzije Pascala (ukljucujuci Turbo Pasca~ ne postavlJaJu ovakva ogranicenja, i kod njih se deklaracije mogu redati u proizvoljnom redoslijedu (uz uvjet da s~ nj u jednoj deklaraciji ne spominje neki pojam ko]i ce tek kasnije biti deklariran). Na primjer, sljedec! niz deklaracija je ispravan u modernim verzijama Pasca/a, mada ne i u izvornom Pascalu:
var Temperatura, Duzina const BrojDana '" 10; var, Vrijeme : integeri real;

var Braj : integer;


begin

Plata : real;
type ci.fra "" 0
var NekaCifra

wri teln (Braj) end.

9;
Citra;

Prilikom pokusaja da pokrenemo ovaj program, kompajler neee prijaviti njkakvu gresku. Program 68 se zaista i pokrenuti, ali 68 vrijednost koja 6e bit! ispisana biti potpuno nepredvidiva, odnosno manje-vise slucajna (najcesce nula, ali ne uvijek). Nairne, mi smo sarno najavili postojanje prom~ jenljive Broj u programu, ali joj nismo pridruzHi nlkakvu vrijednost. Ovo je tipican primjer Pascal programa koji ne sadr.zi nitl sintaksne nm gramaticke greske, ali koji sadrzi ozbiljnu semanticku gresku (ovaj tip greske dosta se cesto susrece u programiranju, naroCito kod pocetnika). Pridruiivanje vri. jednostl promjenljivim mora se obaviti u izvrsnom dijefu programa, bilo unosom sa tastature (kao u primjeru koji sma razmatrali u poglavlju 3.4), bila pomocu iskaza pridruiivanja. Ovaj iskaz cemo detalJnlje upoznati nesto kasnije. Za sada reeirno sarno da se on sastoj! od imena promjenlj'ive, zatim znaka dodjeJe (znak : =, 6ita se "postaje", npr. a : '" 5 citamo kao "a postaje 5") i, konacno, vri~ jednostikoja se pridruzuje promjenljivoj {uskoro cemo vidjeti zasto se koristi bas znak :::= a ne obicni znak jednakosti}. Tako bi korektna verzija gornjeg programa mogla izgledati ovako:
program IspravnaVerzija (output); var Braj : integer; begin Broj := 5; writeln (B.roj)

Jedino ogranicenje pO pitanju redosfijeda deklaracija kOje postavlja Turbo Pascal Jeste da deklaracija uses (ako je lma) mora biti na samom pocetku deklarativnog dijela programa.

3.6.3 Cjelobrojni izrazi


Pad izrazom smatramo svaku kambinaciju konstanti i promjenljivih koje su- povezane u smisfenu formulu koja ima neku vrijednost (sta se podrazumijeva pod smislenam formulom, propisano je gramatikom jezika). Na ovom mjestu nedema ulaziti u formalni opis gramatickih pravila za formi.ranie izraza, ko]i bi zahtijevao uvbdenje dosta apstraktnih pojmova kao sto su term, f~ktor. It? Umjesto toga, formiranje izraza objasnidemo na primjerima koji na dovoljna jasan nacin IlustnraJu kako se tvore ispravni izrazi u jeziku Pascal. Inaee, pravila za formiranja izraza sli6na su.pravillma formiranja izraza (formula) u matematici, uz manje izuzetke koji ce biti posebno naglasenl. Cje!obrojni izrazi mogu se sastojati od cjefobrojnih konstanti (npr. 5, 999, +999 iii -(2), cjelobrojnih promjenljivih, cjelobrojnifl operatora, cjelobrojnih predefiniranih funkcija i, eventualno, zagrada za promjenu prioriteta izvodenja racunskih operacija. Dozvoljeni cjelobrojni operatori su:
+

end.

Oval program ispisat ce braj 5 na ekranu. Naravno, od ovakvih programa nemamo bas pretjerane koristi, ali ne zaboravimo da pravimo tek prve korake u Pascalu! Bilno ie napomenuti da su imena konstanti, promjenljivih, tipova itd. identiiikatori, tako da njihova imena moraju sHjedi!i pravila za pisanje Pascal identifikatora kOja smo ranije objasnili. Taka, na primjer, imena promjenljivih se mogu saslojati sarno od slova engleske abecede i, cifara, pri cemupocetni znak mora biti SIOVD. Razmaci u imenu nisu dozvoljeni Oer je identitikator jedf}a rijeC), 1<a6 ni nasa slova (c, c itd.). Tako je Burek sasvim legalno ime promjenljive, ali Ce"vapi "niLe 'cne2aboravimo da"ista pravila vrijede i za ime programa, koje je takoder identifikalbrry1noge'_'vertjje_ Pascala dopusfaju da identifikatori sadrze znak za podvlacenje ( _ ), kaj! se korfsri umjesto-razrha-.. _'_ka u irnenu identifikatora. Tako, npr. u Turbo Pascalu, broj ocj ena nije ispraval}id entlfikatot,'"8il broj_ocjena jeste.ldentifikator BrojOcjena ispravan ie u svim verzijama Pascala:-U imenima' pramjenljivih i u astalim Pascafidentifikatorima, mozema karistiti i mala i velika sJova.-Mada:p~scal- ne pravi razliku izmedu njih, na tai nacin se povecava Citljivost programa. _
r -

* di v
mod

sabiranje oduzimallje IUnoienje cjelobrojno dijeljenje uslafak pri cjelobrojnom dijeljenju

Primijetimo da se znak mnotenja pise kao zvjezdica. Vrijedi napomenuti d.a .se mnozenje ~ ~ascalu uvijek mora ekspllcitno naznaCJti (fj. ne podrazumijeva se, kao u matematlcl). Tako, na pnmJer, ab nije a puta b, ved promjenljiva koja se zove ab (ispravno bi bilo pisati a*b). Iz istih razloga, nije ispravno pisati 2 (a+b) nego 2* (a+b). Dalje, biino je napomenuti da cjelobrojni izrazi ne smiju sadrzavati operaclju dijeijenja Ger rezultat dljeljenja dva cijela broja ne mora biti eijeli broj!. U~jesto toga, koriste se operatori div koji daje rezultat cjelobrojnog dijeljenja (tj. eijeli dio kolicntka) I ~~d koji daje ostatak pri cjelobrojnom dijeljenju (sto se, u slucaju kada je djelilac pozitivan, svodi na dlJe!Jenik umanjen za proizvod djelioca i cjelobrojnog kolicnika). Slicno kao u matematici, operacije mnozenja i dijeijenja (zapravo operacije div i mod) imaju visi prioritet U odnosu na operacije sabiranja i oduzimanja. Prioritet operacija moze S8 izmijeniti zagradam~. Medutirn, za razliku od matematike, u Pascafu se za tu svrhu koriste iskljuCivo male zagrade, bez obz!ra na dubinu gnjezdenja zagrada. Na primjer, izraz koj! bi se u matematici zapisao kao _ 283

Standardni Pascal zahtijeva da 58 u deklarativnom dijelu prvo mo(a]u navestr sve o_sklqracijeImnstanti (ako ih ima), zatim slijede deklaracije bpava (ako ih ima), a tek nakon toga -~klaracije
282

7 - 2 {[3 + 2 (6 - 13 . 2)

- 4J

3 + 1}

u Pascalu bi se ispravno zapisao kao


7 - 2

((3 + 2

(6 - 13 ~ 2) - 4)

3 + 1)

Prilikom upotrebe cjelobrojnih izraza, moramo voditi ra6una da je opseg cjelobrojnih vrijednosti ograni6en, sto maze dovesti do pojave prekoracenja _opsega kaja za posljedicu moze imati besmjs~ lene rezultate. Na primjer, u veeini verzija Pascala, najveci braj koji moze stati u tip integer je 32767. Stoga sljedeci program daje besmislen rezultat (-28754 u Turbo Pascalu):
program Primjerp.rekoraeenja (input, output)
i

Spomenuli sma da cjelabrojni izrazi mogu sadrtavati i cjeJobrojne funkcije. Argumenti svih funkcija u Pascalu obavezno se navode unutar zagrada, Najvaznije cjelobrojne funkcije koje poznaje standardni Pascal su:
abs (X) sqr (X)

var a, b, c : integer;

begin
a
::=

aps'olutna vrijednost od_ X na kvadrat

1230;

b := 2321; c := a * ,b;

writeln (e)

Slijedi nekoliko primjera ispravno napisanih cjelobrojnih izraza:


2 '" 2 33 * -6

~d.

7 + (-12)

Zapravo, dovoljno je da makar jedan od medurezultata pri racunanju slozenijeg izraza prekoraci dozvoJjeni opseg, pa da eijeH rezultat bude pogresan, cak i u slu6aju kada kona6an rezultat moze da stane u dozvoljeni opseg!

48 div 7 mod 3
(5 + 2)

~i

7 + sqr (4)
'k

sqr (4 '" 3

(2 + sqr (3))

5 ,- abs HI

(vrijednost ovog izrazaje 9, jer je 48/5 = 9.6) (vrijednost ovog izrazaje 1,jer je 7 - 32 = 1) (vrijednost ovog izraza je (5 + 2) , 7 + 4" = 65) (vrijcdnost ovog izraza je 7 . (4 + 3 . (2 + 3~)? = 9583) (vrijednost ovog izrazaje 5 + I "-3 1==8)

3.6.4 Realni izrazi


Realni izrazi se formiraju po slienim pravilima kao i cjelobrojni izrazi, jedino sto oni po potrebi mogu pored cjelobrojnih sadrzavati i realne konstante, reafne promjenljive, realne operatore i realne predefinj~ rane funkcije. Svi cjelobrojni Clanev! (konstante iii promjenljive) u realnom izrazu automatski se tretiraju kao realni (tj. vrSi se automatska pretvorba tipa). Uzmimo, na primjer, da imamo sljedece deklaracije:
coast Pi "- 3,141592654;

Vee je receno da cjelobrojni izrazi mogu sadrt8vati j cjelobrojne promjenljive, ali same one koji ma je prethodno dodijeljena vrijednost. U suprotnom, vrijednost izraza je nepredvidiva (nepridrza~ vanje ovog pravUa nije sintaksna, nego semanticka greska, sto znaei da naee bit! automatski detektirana od strane kompajlera). Naredba wri teln, koju smo vee koristili za ispis na ekran, prihvatiee bilo koji izraz kao svoj argument. Isto vrijedi i za iskaz dodjele, tj. sa desne strane znaka dodjele (: =) moze se na!aziti bilo koj! izraz (pod uvjetom da se tip izraza slaze sa tipom promjenljive eija se vrijednost dodjeljuje). Sve ovo 0 6ernu smo gavorili ilustrirano je u sljedeeern programu:
program PrimjerIzraza (output);

var B1:ojac, Dodatak Po.l!1preeJ]ik, Plata

integer; real;

Tada su sljedeel izrazi potpuno korektni:


2

* pi * Po.I uprecnik Dodatak + P.Iata

var a, b, c
begin

integer;

a :'" 5;
b := 3;

U prvom primjeru, ejelobrojna konstanta 2 se automatski pretvara u realnu konstantu 2. O. U dru~ gom primjeru, ejelobrojna promjenljiva Dodatak automatski se privremeno pretvara u rea!nu prilikom sablranja sa reafnom promjenljivom Plata. Stoga je sljedeca dodjela sasvlm legalna:
~luprecnik :~

e :'"

(b + 2) (a);

b :;;:0 (e writeln writeln wX'iteln


~d.

* 2; + 3) diva;

3;

(b); (e)

Dakle, smije _ se dodijelitj cjelobrojna vrljednost realnoj promjenljivoj. Ovdje se ponovo desava . a[1tomat$.ka: pretvorba (korwerzija) tipa. Medutim, ne smije se koristiti realna vrijednost u ejelobrojnim izrazima;" m dQdiJeliti. realni:l vrijednost cjelobrojnoj promjenljivoj,

'."~ -H?alnr-:izraz'i_"~~gU se formirati'na sliean nacin kao i cjelobrojni izrazi, koristeci aritmeticke ope-ratore i -Ita-grime. Dozvoljeni operatori nad realnim operandima su:
"

Ukoliko ste razumjeli sve e 6emu je do sada bilo govora, lake eete zakljuCiti da ee ova] program ispisati brojeve 5, 2 j 10. Primijetimo da je promjenljivoj b- prvo dodijeljena vrijednost 3, nakon toga je promjenljivoj c dodijeljena vrijednost izraza (b + 2) * 2 (odnosno 10, jer b sada ima vrijednost 3), a nakon toga se promjenljivoj b dodjeljuje vrijednost izraza (c '" 3) diva (odnosno 2, jer c sada ima vrijednost 10, dok alma vrijednost 5). Bitno je u06iti da nova vrijednost upisana u promjenljivu b brise prethodnu vrijednost koja je bila u njoj zapamcena.
284

.-

..

'+-.

'. sabirm~je

oril.lzimanje mnqzenje dijeljenje


285

Primijetimo da je kod realnih izraza dozvoljeno klasicno dijeljenje (pomo6u operatora I). Treba naglasiti da je rezultat primjene operatora dijeljenja realan cak i Uslucaju kada su aba operanda Gijeli brojevi (oni se tada konvertiraju u realne brojeve) i kada rezultat ne sadrzi decimale! Taka, na prim" jer, u s!ucaju da je a cjelobrojna promjenljiva, sljedeea naredba nije ispravna:
a := 12 I 4;

manja, tako da je cesto potrebno ubaciti dotatne zagrade. Na primjer, neka je potrebno pretvoriti sljedeCi izraz iz matematskog zapisa u Pascal zapis:

x -+z
y

Objasnjenje leii u Cinjenici da je I realni operator, tako da se izraz 12 I 4 (koji sadrzi dva cjelobrajna operanda) pretvara u izraz 12.0 I 4,0, ko)i kao rezultat daje rea{an broj 3.0 (koji S8 ne moze dadijeliti cjelobrojnoj promjenljivoj). Stoga, za' cjelobrojno dijeljenje treba koristiti operator div. S druge shane, operatori div i mod ne mogu se primijeniti na realne operande, npr. izraz 3.71 mod 2.3 nije dozvoljen. Ovi operator! mogu se javljati i u realnim izrazima, ali pod uvjetom da su oba njihova operanda ejelobrojnog tipa" Tako je, npr. legalan sljedeci izraz:
1.12 + 2.25 .. (7.12 332 mod 5) I 3

~-~+l Y x+y
Navescemo ispravan i neispravan prljevod ovog izraza u Pascal:
f:..pravno:
(x I y + z) I (x I y - z I (x + y) x I y + z ! x I y - z / x + y + 1
+ 1)

Neispravno:

Posljednj) Pascal izraz, koji bi neko mogao brzop!eto napisati, odgovarao bi matematickom izrazu

jer su oba operanda operatora mod (332 i 5) cjelobrojni. Realni lzrazi mogu sadrzavati i realne funkclje. Pored funkcija sqr i abs, koje se mogu prim" jenjivatl i na realne argumente, Pascal poznaje i druge realne funkeije, od kojih su najvaznije s!jedece (obratlte paznju na dvije razliCite funkclje veoma sllcnog imena, sqr i sqrt):
sqrt (X) In (X) exp (X) sin (X)
cos
(Xl
(X)

z x x z -+-'--+y+1 Y Y x
a ne izrazu koji smo zeljeli da napisemo. Da bismo bolje uvjezbali pravlla prevodenja izraza iz matematickog zapisa u jezik Pascal, navescemo tablicu sa nekoliko prlmjera malematickih i odgovarajuCih Pascal izraza: Matemati6ki zapl.;, Pascal zapis:
Isqr la) - 3) I (sqr Ix) +sqr (y))
(a

atan

kvadrutni korijen od X prirodni logaritam (logaritam po bazi e 2.71828) od X eksponencijalnaJunkcija, njen rezultat je e na X (t). eX) sinus ad X, pri cemuje X izrazen u radl}anima kosinus od X, pri cemuje X izraien u rudijanima arkus tangens od x, pri cemu se rezultat dobija If radljanilllil

a ~3
2

x2 +y2
ab c a bc

Bitno je napomenuli da sve ave funkcije vracaju kao rezultat realan broj, cak i ukoliko se rezultat moze napisati kao eijeli broj. Tako je, na primjer, rezultat izraeunavanja funkGije sqrt (9) realan broj 3.0, a ne cije!i broj 3. Nekome ova napomena moze izgledati kao "trazenje dlake u jajetu", ali ne smijemo zaboraviti da Pascal neee dozvoliti da rezultat izracunavanja funkcije sqrt dodijelite cjelobrojnoj promjenljivoj, cak i ako je rezultat prividno eijell broj! Mozemo primijet"lti da Pascal ne poznaje funkciju tangens, koja se, srecom, lako moze simulirati dijeljenjem sinusa sa kosinusom (interesantno ie da, s druge strane, Pascal poznaje arkus tangens, a ne poznaje arkus sinus i arkus kosin us). Mnogo je veei problem sto Pascaf ne poznaje stepeno" vanje proizvoljnim eksponentom. Za slueai malih cjelobrojnih eksponenata stepenovanje je ,Iako realizirati kao ponovljeno mnozenje (npr. x" = x . x . x . x . x), ali postavlja se problem kako reaJizirati npr. step"enovanje poput 2.351.7,. Srecom, lz matematike ie poznato da vrljedi rel,aGija

1,

b)

I c
a

iii sarno
I (b" c)

*b I c

a _c
b

(n I b) * c
3;' (4

ifi sarno
k

aI b

3.{4+
2+

. [(2x - 3): (x- 4)]l

+xl 12 + 1/ (x+ 1))

112.*x-3) I (x- 4)))

x+l

I+Jx +1
x-I

+sqrt ((x+ 1) I (x-I))

1+ Jx+1
x-I

l+sqrt (x+ 1) I (x- I)

odakls sHjedi da stepenovanje poput XV u Pascalu mozemo realizirati kao eXp {y * lI~:Jx},j'.: ~ Doduse, ovaj izraz vrijedi samo za nenegalivno x, ali se situacija za negativno x'~lak"o'nf9te: rije_sitf. uz pomoc jednost(ivnih dosjetki. Islo taka, ako malo pozovemo matematiku"u pomoe, .iaJs9."-eemo zakljuciti da se logaritam po praizvoljnoj bazi, reeimo ~ogy x, moz~ u Pas9?lu _re?Hzlrafi. kao
In (x) lIn (y).

2+~ vY;:fj
+L

+ sqrt. (3" sqrt (xl (x + 1)) + 2)


2/ (]

l+Ix+ly-lll

+ abs

(x + abs (y - 1))

Prilikom pretvaranja izraza IZ matematickog zapisa u Pascalzapis,' treba maio pripazJti na izraze koji sadrie razlomke, zbog cinjeniee da operacija dijeljenja lma veGi prioriiet' od sabiranja i odu-zi286

Prirnijetimo da u izrazirna poput a * b / c zagrade oko produkta nisu neophodne (ali nete ni smetati), jer 58 operacije koje su istog prioriteta (npr. mnozenje i dijeljenje) izvode redom slijeva nadesno.
287

Realni tipovi lmaju sasvim dovoljan opseg vrijednosti da 0 prekoracenju opsega ne moramo voditi racuna. Medutim, kod realnih tipova, javlja se drugi problem, poznat kao problem gubltka tai5nosti. Na primjer, posmatrajmo sljedeei program:
program pri.mjerGubi.tkaTacnosti (output);

cijelibroj 3 (jerje 3,17 + 2.5 / 8 Iz istih razloga, izraz

3.7825), koji se smije dodijeliti cjelobrojnoj promjenljivoj.

round (2.15 * 3) mod trunc (sqrt (9))

var a, b

real;

sasVirn je legalan (i predstavlja ejelobrojni izraz), jer su oba operanda operatora mod ejelobrojni. U slueaju da je decima!ni dio broja tacno na granici izmedu dvije cjelobrojne vrijednosti (tj. uko liko je decimalni dio broja jednak 0.5), funkcija round vrsi zaokruzivanje pozitivnih brojeva navise, a negativnih brojeva naniie. Tako ie, na primjer, round (3.5 l '" 4 a Tounp (-3.5) '" -4.
w

begin

a :'" 1.23.0;
b :'" 321.0; writeln (a
end.

b i b :- a I b

b)

Mada bi po svim zakonima matematike ovaj program trebao izbaciti nulu kao rezultat, nula se neee pojaviti kao rezultat nit! sa jednim prevodiocem za Pascafkoji je u upotrebi. Na primjer, Turbo Pascal ce ispisati -6.93 889390390723E-0018 iii 1.1641532183E-10, Qvisno da Ii je ukljucena opeija za racunanje sa povecanom tacnoscu iii ne, Ova zaistajesu veoma mali brajevi (oka 10~18 odnosno 10.10), ali nisu nule. U Gemu je problem? Izrazi a * b i b i a / b * b nakon uvrstavanja vrijednosti promjenljivih a i b postaju 123,0 * 321.0 I 321.0 i 123.0 I 321.0 * 321. O. U prvom slucaju, prvo se racuna produkt 123.0 * 321.0 ka]i daje rezultat 39483,0, a koji se zatim dije!! sa 321.0 sto na kraju daje taean rezultat 123,0. Medutim, u drugom slueaju, prvo se raeuna kolicnik 123.0 I 321.0 koji ima beskona6no decimala (0.38317757009, .. ). Kako racunar maze da zapamti same konacno mnogo decimala, On ce ovaj rezultat zaokrutiti na odredeni broj decimala. Nakon mnozenja zaokruzenog rezultata sa 321,0, neee se dobiti tacno 123.0 kao rezultat, 6tO na kraju dovodi do greske u konaenom rezu!tatu. Mozda je jos drasticniji primjer naredba
1tiTitelrl (0.5

Pored funkcija trunc i round, Pascal posjeduje i druge funkeije za pretvaranje (konverziju) tipova. Takva je svaka funkeija koja zahtijeva argument jednog tipa, a daje rezultat drugog tipa, Dvije izuzetno vazne funkcije takve vrste su chr i ord koje vrse pretvaranje iz cjelobrojnog tipa u znakovni i obrnuto. Da bismo razumjell ove funkcije, trebamo znati da se svaki znak u racunarskoj memoriji pamti zapravo kao broi (jer se u memoriji mogu pamtiti sam~ brojevi). 'Broj pod kojim se pamti neki znak zove se sifra (iii k6d) tog znaka. Na primjer, velika slovo lA' u memoriji se pamti kao broj 65. Ove sitre propisuje standard poznat pod imenom ASCII, ko]i smo ukratko spominjali j u prvom dije!u ovog udzbenika (postoje i drugi standard!, ali su znatno manje rasireni nego ASCII stan dard). Vrijedi napomenuti da nema nikakvog posebnog razloga zasto se velika slovo 'A' pamti bas kao broj 65, a ne kao nek! drugi broj. To je bila iskljucivo stvar dogovora. Sada mazema reei sta tacno rade funkcije chr i ord:
chr {Xl ord (Xl

0.5 - 0.4

0.4 - 0.3

0.3);

prctvara vrijednost cjelobrojnog izraza x u znak c{ia)e sift'a X pretvara znak x u cijeli bra) koji predstarlja .~ifru tog znaka

za kaju se ocekuje da bi trebala da ispise broj 0. Medutim, nula se kao rezultat nije pojavila niti na jed noj verziji kompajlera za Pascal poznatoj autoru (sliena stvar se desava u gotovo svim drugim programskim jezieima, taka da nije problem u samam Pasea/u)! Mada SV) razmatrani brojevi u ovom izrazu imaju konacno mnogo decimala tako da bi racunar po svakoj logici zaista morao da izracuna ovaj izraz tacno, to se ne desava (racunarska "Iogika" ne poklapa se uvijek sa Ijudskom). Ovo je posljedica nekih ogranieenja u naclnu kako ra6unar pamti realne brojeve u memoriji (naime, navedeni brojevi dobijaju beskonacno mnogo declmala kada se prevedu iz dekadnog u binami brajni sistem). Prim/eri poput navedenih, cest su uzrok veoma ozbiljnih i frustrirajuCih problema u programima koj! rade sa realnim tipovima.

Na prim/er, rezultat izracunavanja funkcije chr (65) je znak ' A' , dok je rezultat izracunavanja funkcije ord (' A') eijeli broj 65. Mozda nekome maze izgledati neobicno 8to funkcija chr kao rezultat daje znak, a ne broj. Medutim, ni matematika ne zahtijeva da vrijednosti funkcija moraju biti uvijek brajevL Matematicki reeeno, kodomen funkcije chx je skup svih znakova. Funkcija ord moze se primijeniti j na argumente logi6kog i pobrojanog tipa. Za argumente logickog tipa, stvar je posve jednostavna: ord (false) daje rezultat 0, dok ord (true) daje rezultat 1. Za argumente pobrojanog tipa, funkcija ord vraca kao rezultat redni braj pod kojim je odgovarajuCi argument bio definiran prilikom deklaracije pobrojanog tipa (pri camu brajanje pocinle ad nule, a ne od jedinice). Na primjer, ukoliko smo imali sljedecu dek!araciju
type Boje '" -(Crvena, Zelena, Playa, Zuta, Crud, Bijela);

3.6.5 Pretvaranje tipova u izrazima


Vidjeli sma da nije moguee dodijeliti rezultat nekog realnog izraza nekoj cjelobrojnoj prom~ jenljivoj, niti je moguce realne izraze karistiti kao operande u operatorima div i mod. Da bi se ublazio ovaj nedostatak, Pascafposjeduje funkeije trunc i round kale pretvaraju realne podatke u cjelobrojne (pretvaranje lz cjelobrojnog u realni tip, kao Sto sma vee rekli, obavlja se automatski u slueaju potrebe). Obje funkcije imaju jedan parametar koji je realan izraz, a kao rezultat vraeaju cijeli broj, koji se moze npr. pridruziti ejelobrojnoj promjenljivoj:
trunc (Xl round (X)

tadaje o.-rd (C.-rvena) jednako 0, ord (Zelena) jednako 1, ord (Plava) jednako 2, itd.

3.6.6 Znakovni izrazi


je izuzetno ogranicen po pitanju formiranja znakovnih izraza, Tako, u standardn6m 'Pasca'!.!! znakovni izraz maze biti jedino znakovna konstanta, znakovna promjenljiva, iii neka ftmkdja:-':(popu{ chr} koja' yraca znak kao rezultat. Modernije verzije Pascala, poput Turbo Pascala, - -.do.zvo]avaju upotrebu operatora + sa znacenjem "nadovezivanje". Taka, na primjer, ukoliko prom~ jenljiva- IIT}e 'sadrzi niz znakova Pero ',a promjenljiva Prezime niz znakova 'Peric', tadaje rez;ultat izraza:'- 1me +. Prezime niz znakova 'Pero Perie'. Operandi mogu biti bilo znakovnog tipa "(jedan znak), bilo stringovnog tipa (niz znakova), aU je rezultat uvijek stringovnog tipa.
1

~~~~da-rdhi'_:P;~sca/

pretvara X u cijeli bra) prostim odhacimn}em df'cimala pretvara X u cUdi bra) zaokruf,ivan)em no najbltii cijeJi bro}

Tako je, na primjer, rezultat izraza


trunc (3.17 + 2.5 I 8)

288

289

Funkcije pred i succ (prethodnik i sljedbenik) ne spadaju u funkcije za pretvaranje tipova, niti u znakovne funkcije, ali ih spominjemo ovdje jer su bHsko povezane sa do sada obradenim funkcijarna. One se mogu primijeniti na bilo koji ordinafnitip (tj. cjeJobrojni, znakovni, logicki, pobrojani iii inter~ valni tip). Funkcija pred vraca neposrednog prethodnlka, a funkcija Slice neposrednog sljedbenikasvog argumenta. Za slucaj cjelobrojnog tipa, situacija je sasvim jednostavna. Tako je pred (Xl isto sto i X - 1, dok je suce (X) isto sto i X + 1. Za slueaj logickog tipa, situacija je jos prostija: pred (true) je false, a suce (false) je true. Kod pobrojanih tipova, pojmovi prethodnik i sljedbenik definirani su prilikom same dek!aracije tlpa. Na primjer, uz deklaraciju jz prethodnog odjeljka, pred (Bijela) je Zuta, a Slice (Crvena) je Zelena. Prividno najsloienija situacija je ked znakovnog tipa, jer je za tacno objasnjenje potrebno poznavati AsciI Mre. Na primjer, suce (' A') Je 'B t (sto djeluje posve logicno), medutim pred (' A') je '@' (sto je prilicno zbunjujuce). Situacija postaje mnogo jasnija ako znamo da znakovi '@' 'A' i 'B' imaju redom ASCI! sifre 64, 65 i 66. Naime, za slueaj kada jEi x znakovnog tipa, izrazi pred (X) i succ (Xl ekvivalentni su redom sa izrazima ehr (ord(X) -1) i chr (ord(X) +1). Na ovom mjestu ne mozemo se upu8tati u dublju teoriju:-Vrijedi ipak znati da ASCII siffe svih velikih i svih malih slova Cine niz susjednih cijelih brojeva (65 - 90 za velika slova, 97 - 122 za mala slova), tako da funkcije pred succ rade sasvim logieno za slueaj kada im se kao argument ponudi znak ko)i predstav!ja slovo.
I

UDugovima :'" StanjeKase < Oi

Ova naredba ce promjenljivoj UDugovima dodijeliti vrijednost true ukoHko je vrijednost promjenljive- StanjeKase manja ad 0, a vrijednost false U suprotnom slucaju. Dobro obratite paznju na razliku izmedu operatora = sa znaeenjem "da Ii je jednako" (koji daje rezultat tipa "jeste" iii "nije") i znaka dodjele : = sa znacenjem "postaje". Vrijedi napomenuti da svi logicki operatori imaju nizi prioritet od sabiranja i oduzimanja, tako da se izraz P.lata + Porez < 1000 tumaCi onako kako se i ocekuje.
Relacioni operatori <, >, <= i >= primijenjeni na znakovne tipove, oznacavaju poredenje ne po velieini nego po leksikografskom (a.becednom) poretku (kada S8 u igru uk!juce i znakovi ko]i nisu slova, u poredenju kljuenu uJogu igraju ASCIf sifre, ali u te detalje se ovdje necemo upustati). U standardnom Pa.scalu ova tvrdnja vrijedi sarno za tip char, dok se kod modernijih verzija Pascafa ovi operatori mogu primijeniti i na tip string. Konacno, svi relacioni operatori primjenljivi su i na promjenljive pobrojanog tipa, pri cemu se smatra da su prilikom deklaracije pobrojanog tipa e.lementi uredeni redom od najmanjeg ka najvecem. Tako, uz deklaracije IZ prethodnog odjeljka, vrijedi Crvena < Ze],ena i erna > Bijela. Siozeniji logicki izrazi mogu se formirati od prostih logickih izraza i logiekih promjenljivih, uz upotrebu sljedecih operatora:
and

Ukoliko argument funkcije pred nema svog prethodnika, vrijednost funkcije pred je nedefinirana, i to se smatra semantiekom greskom. Na primjer, pred (false) predstavlja semanticku gresku. Slicno vrijedi za funkciJu suce ukoliko argument nema svog sljedbenika.

or

3.6.7 Logicki izrazi


Logi6ki izrazi su izrazi (:jja vrijednost maze bitl sarno true ("taeno") iii false ("neta(:no"). Najjednostavnija vrsta logiekih izraza su prosti !ogf6ki lzrazi iii poreaenja koja se formiraju ad dva cjelobrojna, fealna iii znakovna izraza medusobno povezana jednim ad sljedecih 6 refacionih operatora:
< >
<;;;;

not

kOl1jukcija (logiL~ko "i") di,\junkcija (lugicko "ili") negacija

Tako, uz pretpostavku da je promjenljiva Starost propisno deklarirana, sljedeci logicki izrazi imaju smisla:
(Starost >;;;; 16) and (Starost <= 65) (Starost < 16) or (Starost > 65) not (Starost > 65)

>= <>

manje vede jednako manje iii jedrwko veee ill jednako razliCito

Taka, LIZ pretpostavku da su deklarirane brojcane promjenljive Stanj eKase, Plata, Porez i Broj, kao i znakovna promjenljiva Inicijal, mazema navesti sljedece prlmjere ispravnih logi(:kih izraza:
,Stanje~8e 100 . _ Plat$ + Porez < 1000 ~Brcd . >"::' 5.2

Prvi ad navedenih izraza je tacan ukoliko je vrijednost promjenljive Starost veea iii jednaka od 16 i manja iii Jednaka ad 65. Drugi izraz je taean ukoliko je vrijednost promjenljive Starost manja od 16 ili veca od 65. TraGi izraz je taean ukoliko vrijednost promjenljive Starost nije veca ad 65. Visestruka poredenja koja su uobicajena u matematici poput 16 <= Staxost < 65 nisu dozvoljena u jeziku Pascal i moraju se pisati kao 8tO je gore objasnjeno, Takoder treba napomenuti da operator or lma prioritet poput sabiranja, operator and poput mnoienja, dok operator not ima priar!tet veGi i od sabiranja ! od mriozenja, Upravo'iz tog razloga, u gore napisanim izrazima neophodne su zagrade. Da smo izostavili zagrade, prvi izraz bi, zbog visokog prioriteta operatora and, bio shvaeen kao
Starost >= (16 aild-

8tO ocigJedno

nem~ S~iSI~,-i_ k~mpajl,~!'.bf p'rijaVio;gresku.-

-.

~.P'l' a- :fa.1se- u suprotnotn slueaju,

u_:fi~;ljednjem ~rlmieru, izraz ima vrijednost

Rekli smo da se u true ako promjenljiva Inicijal sadrzi, slovo

UDugov.ima, Maloljetan i' peQzisnl,r~,t09iGkE;l promjen.ljive, mozemo pisati izraze poput sljedecih:

I09iCkim,jzra~ma:~~riu k6~i-S~'iti i'logi6ke promjenljive. Taka, uz pretpostavku da su

~oglcki izrazi se najvise korjste unutar naredbi if, while i until, koje cemo upoznati kas-nij'~~ Takoder; vrijednost Jogiekog izraza moze se dodijeUti logl(;ko] promjenljivoj. Na primjer, ukoliko je- _ UDugovima logicka promjenJjiva, sljedeca naredba je sasvim valjana:

Mal.'oljetan _or P(" ..1;z~oller- -,-'

UDugovima and, (Porez .<"-'1800)-

Logieki izrazi se, po potrebi, !ako' mQgu pretvoriti u 'Cjelobrojne, upotrebom funkcije ord koju smo vee objasnHi.
291

290"

Pitanja i zadaci
1. Sta su imenovane konstante I cemu slute? 2, Koliku vrijednost ima neka promjenljiva neposredno nakon deklaracije? 3, Kako se nekoj promjenJjivoj moze dodijelltl vrijednost?
4. Kako S8 Ivore cjelobrojni, a kako realni izrazi?

3.7 ULAZ i IZLAZ PODATAKA


3.7.1 Naredbe ulaza i izlaza
U primjeru u poglavlju 3.4, vee sma se pavrsno upoznall sa naredbom readln za unos podata~ ka sa tastature, i naredbom wri teln za ispis na ekran. Pored ave dvije naredbe, za unos podataka i za ispis na ekran koriste se i naredbe read i wri teo Objasnimo prvo razllku izmedu naredbi read i readln. Ove dvije naredbe SU veoma sli6ne, 1ponekad je izmedu njih tesko uo6iti razliku. Ukoliko podatke u program unosimo jedan po jedan (tj: ukoliko iza svakog unesenog podatka pritisnemo tipku ENTER), tada se ave dvije naredbe ponasaju identi6no. Razlika nastaje u slueaju da prHikom unosa prije nego sto pritisnemo tipku ENTER unesema nekoliko podataka u istom redu razdvojenth razmacima. Da bismo objasnill ovu razliku, pretpostavimo da su u nekom programu deklarirane cjelobrojne promjen!jive a, ,b, c i d, i da je program sadrzavao sljedece naredbe:
read (a); read1n (b); read (e); read (d);

5. Sta je prekoracenje opsega, a sta gubitak tacnosti?

6. Neki od navedenih izraza ne predstavljaju ispravne izraze u jeziku Pascal. Nadite sve neis~ pravne izraze: a) x+4/sqrt(x-2) b) x*-2 c) x*/2 d) 2*-+/13))2 e) sqrt 3 2+(3+(4*5 g) 2*[3*{4*5}) h) sqr(sqrt(3)) i) 2*(3*(4*5)) j) Illx+y))) 7. Izracunati koliko je: a) 372 div 5 b) 372 mod 5 c) 372 I 5

8.

Izracunati vrijednost Pascal izraza 2. 38e2+abs (2 -sqrt (sqr (3) +sqr (4.) ) ) . 9. Kako biste na najkraci moguci nacin zapisali matematicki izraz (x + y - 3) U u jeziku Pascan Uputa: vrijedi jednakost x~ = [(x~rJ.

Pretpostavimo dalje da smo nakon pokretanja programa unijeli podatke na sljedeci natin:
16 12 19 (ENTER) 9 22 16 31 (ENTER)

10. Prevedite s!jedece izraze lz Pascafa u standardnu matematsku notaciju: a) sqrt{x} /y b) 2/ (x+abs (1-x c) sqr(sqrt (al +sqrt (b e) x+3/x-3 f) sqrt(sqr(a)+sqr(bl) g) (x+3)/(2+x/(.1+x) i) 4.12e3*a j) (a+2)/(3+b/(1+b k) 2/sqrt(1+sqrt{1+x)/2) 11. Prevedite sljedece izraze iz standardne matematske notacije u Pascal: a) x'~ b) 9,2(3104-4,4410-~) c) (a~+3a'b+3ab2+b3) d) e) tg Ix+y) I) Vii + vX+! + 1 g) 2,13-5 islnlx')--x]}+1 h) 12. Kako se obavlja pretvaranje tipova u Pascalu? 13. Kako se moze vrijednost cjelobrojnog izraza dodijeliti realnoj promjenljivoj, a realnog izraza cjelobrojnoj promjenljivoj? 14. Sta mozete reci a znakovnim izrazima u Pascalu? 15. temu sluze funkcije pred i succ?

d) a+b/a-b h) 3.32e3*x

log2 (x+l)
Ix+ 1x'-111

kako vrijednost

Tada de promjenljive a, b, c i d poprimiti redom vrijednosti 16, 12, 9 i 22. Da sma umjesto naredbe readln (b) upotrijebHi naredbu read (b), iste promjenljive poprimile bi redom vrijednosti 16, 12, 19 i 9. Drugim rijecima, prilikom upotrebe naredbe read, sljedece citanje se nastavlja od mjesta gdje se prethodno citanje zavrsilo, dok nakon upotrebe naredbe rea.dln, titanja novih podataka (pomoeu naredbi titanja koje do!aze iza nje) uvijek zapotine iz novog reda (nakon prltiska tipke ENTER), eak i u slucaju da je u prethodnom redu ostalo jos podataka. Kako se u veCini slucajeva podaci sa tastature unasa jedan po jedan, najtesce je nebitno da Ii cemo koristiti naredbu read iii readln. Izvjestan oprez potreban je kod unosa znakovnih promjenljivih. Pretpostavimo da su cl, c2 i c3 promjenljive tipa char, i da u programu imamo naredbe
read (el.); read (c2); read (e3);

16. Ukoliko cjelobrojne promjenljive x j y imaju redom vrijednosti 3 i 8, koje vrijednosti imaju sljedeci izrazi:
a) x > 5 b) (x > 5) and (y < 7) c) (x > 5) or (y < 7) d) not (x > 5)

17. Kako se ponasa funkcija ord primijenjena na logitke izraze?

Ako nakon pokretanja programa unesemo niz znakova ABCDE i pritisnemo tipku ENTER, promjenljive cl, c2 i c3 poprimice redom vrijednosti 'A', 'B' i 'C', kao sto je 1 ocekivano. Medutim, uko!iko sve read naredbe zamijenimo sa readln, samo ce promjenljiva c1 poprimiti vrijednost 'A', dok ce program traziti da vrijednosti za c2 i c3 unesemo u dva naredna reda (uz pritisak tipke ENTER nakon svakag unosa). Argumenti naredbi read i readln mogu biU isklju61vo promje~~iite cjelobrojnog, -rea.lrtog iii znakovnog tipa, i nista drugo. Oakle, izrazi kao argumenti nislj dOZVOljenf,.. kao -nipr?!'f.1je'nljive pobrojanog iii logitkog tipa. Obje naredbe mogu Se upotrljebiti s~ vise. argunienata. raidvo!enih zarezom. Prjtomeje.nare~~~ r~ad (vl, v2, :;3, : .. vn) identitnanizuna~edbr -"
."- -.

read (vI); read (v2); read (v3);

read (vn);

dok je naredba readln (v1, v2, v3, ... vn) identicna nizu:n}i:redbi read (vl); read (v2)
i

read (v3)

readln (vn);

292

293

RazHku izmedu naredbi writeln i write mnogo je lakse objasnitL Jedina razlika izmedu ovih naredbi je u tome sto se nakon naredbe wri teln s!jedeci ispis nastavlja u novom redu ekrana, dok se nakon naredbe write sljede6i ispis nastavlja taeno od mjesta gdje se tekuci ispis zavrsio. Obje naredbe prihvataju kao argument bilo koji cjelobrojni, realni, znakovni i logicki izraz (pobrojani tipovl se ne mogu ispisivati ovom naredbom). Takocter, i jedna i druga naredba mogu se upotrijebiti sa vise argumenata razdvojenih zarezom, kojl se tada ispisuju onim redom kojim su navedeni. U slucaju naredbe writeln prelazak u novi red vrsi se tek nakon ispisa posljednjeg argumenta. Naredba wri teln moze se upotrijebiti i bez argumenata. U tom slucaju Ona zakljueuje tekuci red, i obezbjeduje da eventualni sljede6i ispis poene u novom redu. Naredba writeln bez argumenata cesto se koristi kada zelimo da ispisemo jedan ill vise praznih redova na ekranu. Obratimo paznju na razliku izmedu sljedece dvije na prvi pogled sliene naredbe:
writeln ('2 + 3'); writeln (2 + 3);

Na kraju programa, upotrijebljena je naredba readIn bez parametara, Ova naredba, upotrebljena na ovakav naGin, zaustavlja program sve dok korisnik ne pritisne tipku ENTER (prec1znije, ona zahtijeva unos od korisnika, ali ignorira sadrzaj unosa), Naime, kako neki razvojni sistemi za programiranje u jeziku Pascal (poput Turbo Pascala) uklanjaju rezultate izvrsavanja programa sa ekrana eim program prestane sa radom, smisao ave naredbe je da zadrii rezu!tate izvrsavanja programa na ekranu -sve dok korisnik ne pritisne tipku ENTER (napomenimo da u Turbo Pascalu matema uklo njene rezultate izvrsavanja programa panovo vratiti na ekran priliskom na kombinaciju tipki Aft + FfJj. Ispis znakovnih konstanti nam omagu6ava da program ucinimo ljubaznim prema korisniku (engl. userfriendly). Naime, prethadni program je "ruian" u smislu da korisniku ne nudi nikakve informacije sta se ad njega ocekuje, i cemu program sluti. Nakan pokretanja programa, korisnik vidi samo prazan ekran, i uko~ liko ne zoa sta program radi, ne maze da zna sta se od njega ocekuje. cak i ukoliko korisnik zakljuci da se od njega ocekuje da unese neke podatke, nakon dva unesena broja program ispisuje druga dva broja, za koje korisnik nema apsolutno nikakvu lnformaciju 0 tome sta ani predstavljaju. Ove nedostatke mozemo lako ispraviti ispisom na ekran znakovnih konstanti (eiji se sadrZaj priJikom ispisa samo doslovno prenosi na ekran) koje obavjestavaju korisnika sta se od njega ocekuje, i sta predstavljaju ispisani rezultati. SHjed! pobaljsana verzija prethodnog programa, koja ilustrira kako bi dobro napisan program trebao da izgleda:
program Pravougaoni k (input, output);
uses crt; { sawo za Turbo Pascal }

U prvoj naredbi, '2 + 3' je znakovna konstanta koju raeunar doslovno ispisuje na ekran, taka da ce na ekranu bitl ispisano samo 2 + 3. U drugoj naredbi, 2 + 3 je cje/obrojni izraz ciju vrijednost racunar izracunava, tako da 6e.na ekranu bitl ispisan braj 5. Naredba
writeln ('2 + 3 =', :;) + 3}i

var Strdnical, Stranica2, obim, Povrsina

i.nteger;

ispisa6e na ekranu 2 + 3

==

5.

Demonstrirajmo do sada izloieno gradivo na jednostavnom programu koji trail od korisnika da unese duiinu stranica pravougaonika, a koji zatim ratuna i ispisuje obim i povrsinu tog pravougaonika:
program Pravougaoni,k (input, output)
i

uses crt;
var Stranical, Stranica.2, ObJ:rn, Povrsina

( samo za Turbo Pascal )


integer;

begin clrscr; { sarno za Turbo Pascal } writeln ('Obim i povrsina pravougaonika'); write ('Unesite prvu stranicu: '); readln (StranicaJ.); write ('Unesite drugu stranicu: '); readln (Stranica2); Obim :'" 2 * (Stranical + Stranica2); PovrKina :"' Stranical * Stranica2; w,t'iteln ('Obim pravo'Ugaonika je " Obim, '.'); writeln (' Povrsina pt'avougaonika je " Povrsina, '.'); readln

begin clrscr; readln (StraniCal, Stranica2); Obim := 2 * (Str"!Ilical + Stranica2);


Povrsina : '" Stranical

end.
( sarno za Turbo Pascal. )

Ueenicima se savjetuje da unesu i pokrenu ovaj kao i prethodni program i da !zvrse uporedivanje. Da ne bismo prikaze programa nepotrebno opterecivali detaljima koji nisu preljerano bitni za rad samog programa, kao i radi ustede u prostoru, u svim primjerima koji slijede u ovom udzbeniku izostavljaeemo naredbu cIrscr za brlsanje ekrana (zajedno sa neophodnom deklaracijom uses crt), kao i posljednju readln naredbu za ostvarivanje zadrske. Ucenicima se savjetuje da prilikom unosa i testiranja programa sami ubace ove miredbe tame gdje smatraju da je to potrebno (pod uvjetom da koriste Turbo. Pascal, sto'ie najvjerovatnija varijanta) .

Stranica2;

writeln (Obim, Povrsina); readln ond.

Ako pokren~m~ ovaj program i unesemo kao ulazne podatke brojeve 6 i 9, na ekranu 6e se .jspJsaij ~054 .. Jasno je da je obim pravougaonika sa duiinom stranica 6 i 9 jednak 30, a povrsina 54<-~edytirTl, moze s'e .postaviti pitanje zbog 6ega je ispis ova dva broja sastavljen? Odgovor je vOOmapro$~Jbog toga sto nigdje u programu nismo navell da ne treba da bude sastavljen! Vee ". ~~o.'n_ag!asilJ tia racunar nista ne podrazumy'eva dok mu se to eksplicitno ne naredi. Sreom,.ovaj -prOb!ef!f.s~-ve~malako rjesava, Vee smo vidjel1 da naredba wri teln (ili wri tel ispisuje doslovno ~a ~~gl.ll SV? z:nakove u'nytar znakovnih konstantL 8toga je dovoljno u naredbi za ispis izmedu ispisa -.:pro-:njenljivih 9bim i Povrsina ispisati jednu znakovnu konstantu kOja se sastoji od jednog (iii ,vise) razmaka. Drugim rijecima, naredba za ispis treba da glasi:
. writeln TObim,

Naredbe za ispis (formatira) prema potrebama korisnika. Na primjer, moguee je priiikom iSpig'::podes-avati sirinu polja predvidenog za ispis, na taj naCin 8to se iza argumenta kojj s.e)sPI$uj~ dod~ znak .: .nakon-6ega slljedl cijeli broJ (iii cjelobrojni izraz) koji odrectuje zelje~u srrinu polTa. Na -primjer, ukoliko napisemo naredbu
wri teln (' Obiru: "

d~pus'i~Ju da:s~';~P@ _~d~tno.pr;lagOdi


Olitm'
8)-;

lJ'.2 Formatirani"izlaz

'

"

Povrsina);

295

i ukoliko je vrijednost promjenljive Obim jednaka 240, na ekranu ce se ispisati: Obim:


240

begin

write ('Unesite poluprecnik: read In (R);

');
R

Zeljena sirina se postize ispisom razmaka ispred podatka koji se ispisuje. Treba naglasiti da 8 nije bro] razmaka koji se ispisuju ispred podatka, nego bro] m]esta na ekranu koje ce zauzeti podatak. Kako u nasem slueaju broj 240 ima tri cifre, on 56 dopunjuje sa 5 dodatnih razmaka ispred, sto zajedna Clni 8 mjesta. Podesavanje skine ispisa koristi se obicno u slucajevima kada zelimo da pastignemo da brojcani padaci koje ispisujemo u vise_redova budu poravnati udesno, tj. taka da odgovarajuce dfre svih podataka budu potpisane jedna ispod-druge, 51icno kao kada potpisujemo brojeve kOje zelimo rutno sabirati iii oduzimati. Na primjer, ukoliko izvrsimo sljedeee naredbe:
writeln ('Obim:
w:riteln ('Povrsina:' Obim 8); Povrflina 8);

writeln {'Obim kruga iznosi: ' , 2 writeln {'Povrsina kruga iznosi: end.

* pi
(J~)

4}; 4}

flqr

* pi_ : 0

Primijetimo da u ovom programu, za razliku od prethodnog programa, nismo definirali posebne promjenljive u koje smjestamo izracunat! obim i povrsinu. OVO smo uradili namjerno, radi iiustracije da se rjesavanju istog problema moze pristupiti na vise nacina.

3.7.3 Koristenje lekslualnih datoteka za ulaz i izlaz


Programski jezik Pascalomogucava da se podaci umjesto sa tastature unose lz proizvoljne tekstualne datoteke, kao i da se umjesto na ekran ispisuju u projzvolj~u tekstualnu datoteku. Posto cerna 0 datotekama detaljnije govoriti u poglavlju koje je posveceno slozenim strukturama podata~ ka, na ovom mjestu necema ulaziti u detalje, vee cemo na6in koristenja datoteka za ulaz i izlaz podataka objasnitl na konl<retnom primjeru, koj! cerna detaljno objasniti. Pretpostavimo da zelimo da prepravimo program za racunanje obima i povrSine kruga taka da se poluprecnik ne clta sa tastature nego iz neke ulazne datoteke (recimo UIJ,A.Z. TXT), a da se rezultati raeunanja umjesto na ekran ispisuju u neku izlaznu datoteku (reGimo IZLAZ. Tx'r). Prepravljeni program mogao bi izgledati ovako:
program KTUg (U12Z112, Izlazna);
const Pi '" 3.141592651;

tada ce, UZ pretpostavku da su vrijednosti promjenijivih Obim i Povrs.ina redom 520 i 16875, na ekranu biti ispisano:
obim: 520 16875

Povrsina:

Ukoliko je zadana sirina polja za ispis manja ad broja znakova koji se trebaju ispisati, zadana sirina polja se ignorira. Kada S9 pomocu naredbi wri te i wri teln ispisuju realne vrijednosti, ra6unar vrsi ispis u eksponencijalnoj notaciji (tj. u obliku mEe) ukol!ko mu ne naredimo drugaeije. Na primjer, ukoliko izvrsimo naredbu
writeln (4218 I 7);

var U}azna, Izlazna


R real;

text;

na ekranu ce bitl ispisan rezultat 6.02 57142857E+02 (ovaj rezultat, podsjetimo se, zapravo predstavlja 6.0257142857 . 10 2). Pri tome, bra) decimala koji ce se prikazati ovisi od konkretne verzije kompaj!era za Pascal koji se koristi (primjer je testiran na Turbo Pascalu 6,0). Mada je ovaj rezultat nesumnjivo tacan, on je ispisan na naein koji mazda jeste prikladan za inzinjere i tehnicki obrazovane korfsnike, aU ne i za ostale korisnike kojl ne pasjeduju visoko tehnicko obrazovanje. Naime, rezultat ispisan u obliku 602.5"7142857 svakako bi bio mnoga shvat!jiviji vecini prosjecnih korisnika. Stoga, jezik Pascal omogucava da se ispis u eksponencijalnoj notaciji izb]egne, na taj naein sto 6e se iza ze!jene sirine ispisa navesti jas jedan znak : a zatim zeljeni broj decimala koje ce bit! ispisane (eime se ujedno i sprecava ispis u eksponencijalnoj notaciji). ,Na primjer, ukofiko izvrsimo naredbu
writeln (4218 I 7 : 10 : 41';

begin aflsign (U1azna, 'Ul,AZ.'I'X1"); assign {Izlazna, 'IZLAZ.TX1"}; reset (U1az112) i rewrite {lz.Iazna}; readln (Ulazna, R); 2 " R " pi : 0 : 4); writeln {Iz.Iazna, 'Obim kruga izn08i: sqr (R) * P.i 0 : 4); writeln (lzlazn2, 'Povrsin2 kruga izn08i: close (U.Iazna); close (Iz.Iazna) end.

na ekranu 6e se ispisati braj 602.5,714 "dapunjen,' sa dva razmaka ispred (da se postigne zadana sirina od 10 polja). Ako zelimo da' ~.adamo samo brQI,cJ.ecimala ne i sirinu polja, za sirinu polja mozemo staviti nulu (ova yarijanta cJ9~du~e)1.ij.&'predv-i~eria standardom; ali je podrzana u gotovo svim izvedbama Pascala). Sve o~o 6,cemu- SmQ',g9'!orili ilus-trira.sljedeCi program koji od korisnika trati da unese polupreenik kruga, a zati~'~C!c0?~.-j isptsLlje njegov.obim i povrsinu na 3 decimale:

Analizirajmo ovaj program. Prvo sto mozemo primijetiti je da su predefinirane rijeci input i output Uzaglavlju programa zamijenjene sa korisnicki definiranim rijecima Ulazna i Izlazna, time programu stavljamo do znanja da umjesto standardnog ulaznog uredaja Unput:) i standardnog izlaznog uredaja (output), za ulaz i izlaz podataka koristimo tekstualne clat6teke, koje smo nazvali prosto Ulazna i Izlazna. Vrijedi napomenuti da vecina-moderr=!i~ k:ort)p_f:\j1era:za Pascal . u potpunosti ignarira zaglavlje programa, tako da ovu izmjenu nismo Jt,orali nFvrsiti ,'(mada je standardni Pascal zahtijeva). Dalje, primijetimo da smo u deklarativnom -dije-Iu progtaf!1a deklarirali dvlje promjenljive nazvane upravo Ulazna i Izlazna koje su tipa text. Q ovorn1[pu-ee.biti govora kasnije, a u ovom trenutku cemo reci sarno da on predstavlja teks~ualn~ daioteke. '.'.~ _ - Na pocetku izvrsnog dijela programa, nalaze se dvije as_sigp .naredbe~ SvrYla ovlh naredbi je" da povezu promjenljive Ulazna i Iz1.azna sa datotekama ria dis~u bija s!-ilme:na. ULAZ. 'l'XT i IZLAZ, 'l'XT. Pomocu naredbi reset i rewri te ove dvije datotel<e otva~amoJtr pripremamo za upotrebu), pri cemu naredba reset govori racunaru da je -dato~eka koja j~ predstFtvljena pr-am297

program Krug {input,-'~utp~'tL -: .

const pi '" 3
var R real;

14~592654;

296

jen!jivom prOS!jede~om kao a~gu~ent ove naredbe (tj. Ulazna) namijenjena za citanje podataka, dok naredb~ rewrl te gavar! da Je datateka koja je predstav!jena pramjenljivom pros!ijedenom kao argument (tJ. Iz.1azna) namijenjena za upis podataka. Po zavrsetku programa, koristene datoteke freba zatvoritl; sto se posHze naredbom close. Pos!jednje fzmjene ucinjene su u naredbama re~dln. j wri tel~: U~~llko se u ovim naredbama (i8to vrijedi i za naredbe' read i 1flrite) kao prvl argument u~ot:'Jebl Ime neke promjenljive koja predstavljatekstualnu datoteku, tada ce se (unutar odgavaraJuce n~redbe) ta datoteka koristiti za ulaz odnosno izlaz podataka umjesto stan~ dardnog ulaznog odnosno iz!aznog uredaja.

Pitanja i zadaci
1. Sta su naredbe ulaza, a sta naredbe izlaza? 2. Kakvaje razlika izmedu naredbi read i readln, a kakva izmedu write i write1n? 3. 8ta' ce se tacno ispisati na ekranu ukoliko se izvrsi sljedeCi niz naredbi:
write{2); writeln{'5 'l; write{' 3'}; writeln{12}; Odgovor provjerite na r1.:\cunaru, 4. Uz pretpostavku da su a i aa cjelobrojne promjenljive, sta ce se fspisati na ekranu uko!iko se izvrsi sljedeei niz naredbi: a:=3; aa_:=a*a; write ('a' aa , 'aa' 'a*a' ,a,a*aa, a*a, 'aa*aa');
I I

mo~ucnosti .kari~tenja tekstualnih datoteka za ulaz i izlaz podataka. Recimo ids sarno kako mot8M

Vee smo rekli da na ovommjestu nismo imali namjeru ulaziti u pojedinasti -vee sarno ilustrirati

rna Isprobatl ovaJ program. Pomocu nekog tekstualnog editora (npr, EDITMa u DO$-u ill NotePada u Windowsu) kr~irajmo datoteku koja sadrti samo jedan braj (npr. 5) i snimimo ]e pod imenom ULAZ. TXT u IS~i folder (direktorij) u kojem se nalazi i ovaj program. Nakon toga, pokrenimo program. Mada ovaJ progr.am ne ostavlja ~a ekranu nikakav vidljiv trag svog izvrsavanja, primijeticemo da se nakon pokretanja programa u Istam folderu pojavila nova datoteka nazvana IZL,i\Z TXT (koje ranije nije bilo). Otvorimo Ii ovu datoteku tekstualnim editoram (EDIT-om iii NotePadom) ~rjmijeticemo da je njen sadrtaj sljede6i: '
Obim kruga iznosi: 31.4159 Povrsina kruga iznosi: '78.5398
ToHko zaista iznose (na 4 decimale) obim i povrsina kruga ciji je po!uprecnik 5.

5. 6. 7.

8.

9.

10.

11. 12. 13.

Odgovor provjerite na ra6unaru. Sta je formatirani izlaz (ispis) i kako se takav ispis postiie u Pascalu? Kako se zadaje teljeni broj decimala prilikom Ispisa real nih vrijednosti? Kako se Citaju ulazni podaci iz tekstualnih datoteka, a kako se upisuju izlazni podaci u tekstu~ alne datoteke? Napisite program koji ee na ekranu ispisat! prvo vase ime i prezime podvu6eno nizom ertica (znakovima "minus"), zatim jedan prazan red, a zatim vas datum rodenja, skotu, odjeljenje i grad. Svaki podatak treba da bude ispisan u posebnom redu. Napisite program kojl traii da se sa tastature unesu dva cijela broja, a nakon toga ispisuje na ekran recenicu "Zbir brojeva __ i ~ je , a njihov proizvod je ~... ", pri cemu crtice treba zami~ jenitl sa unesenim i izracunatim podac1ma. Na primjer, ukollko S8 unesLi brojevi 5 j 8, recenica treba da glasi: "Zbir brojeva 5 i 8 je 13, a njihov proizvod je 40." Napisite program koji traii da sa tastature unesemo brej sekundi, a program treba da uneseni broj razloti na sate, minute i sekunde, te da ispise-rezultat. Na primjer, ukoliko unesemo broj 3725, program treba da ispise 1 h, 2 min, 5 s. Uputa: koristite aperatore div i mod. Napisite program koji traii da se sa tastature unesu dvije katete pravoug!og trougla a, j b, a koji zatim racuna i ispisuje duzinu hipotenuze c na tri decimale. Uputa: koristite Pitagorinu teoremu. Napisite program koji trati da se sa tastature unesu dva prirodna broja x i nr a koji zatim ispisuje koliko iznosi 1/x na n decimala. Sve napisane programe prilagoditi za ulaz i izlaz PQmocu tekstualnih datoteka.

296

299

3.8 EI..EMENTARNE PROGRAMSKE STRUKTURE


3.8.1 Prosli iskazi i sekvenca iskaza
U do sada razmatranim primjerima, koristili smo uglavnom tfi 'tipa iSkaza: iskaz eitanja (pasHie se pomocu naredbi read iii readln), iskaz pisanja (postiie se pomo6u naredbi write iii w.dteln), i iskaz prJdruiivanja (postize se pomoGu operatora dodjele : ;;:). Svi ovi iskazi spadaju u tzv. proste iskaze, jer je sve sto iskaz nalate iskazano jednom naredbom. Posto su iskazl Gitanja i pisanja detaljno razmotreni u prethodnom poglavlju, recimo ios nekoliko rijeci 0 iskazu pr"idrui:ivanja. Kao sto sma vee vidjeli, ovaj iskaz ima sljedeCi oblik:

3.8.2 Siozeni iskazi (blok iskaza)


U programiranju testo posto)l potreba da grupu iskaza objedinimo u jednu cjelinu koju nazivamo
blok ;skaza. Blok lskaza, kao i lzvrsni dio programa, zapocinje navadenjem kljucne rijetl begin, a zavrsava navodenjem kljucne rijed end, iza koje se ne navodl ta6ka (kao na kraju programa) ne90

taekazarez (kojl se moze izastaviti u slueaju kada iza nje slijedi ponavo rijee end, 510 se ponekad maze dogoditi). Naredbe unutar bloka obicno se pisu 'uvuceno, da vizuelno lstaknu pocetak i kraj b!oka. Mogu6e je grupirati naredbe unutar programa u blokove. Taka je sljede6i program za raeunanje obima i povrsine pravougaanika, U kojem se javljaju blokovi iskaza, posve ispravan:
program Pravougaonik (input, output);

var StTanical, Stranica2, ObiIn, Pavrsina

integer;

promjcnljiva : '" izraz


Izraz sa desne strane znaka dodjele mora biti saglasan sa tipom promjenljive sa lijeve strane. Na primjer, nije mogu6e dodijeUti cjelobrojni izraz znakovnoj promjenljivoj. Dalje, vee smo rekU da sv! elementi u izrazu sa desne strane moraju prethodno imati definiiane vrijednosti, inace iskaz sadri] semantieku gresku, koju kompajler ne6e detektirati. Bitno je naglasiti da se kod iskaza dodjeljivanja prvo citav izraz sa desne strane izracunava, pa se tek nakon toga izracunata vrijednost smjesta u promjenljivu. Ovo je narocito bitno ukoliko izraz sa desne strane sadri! Istu promjenljivu koja je navedena Iljevo od znaka dodjele. Posmatrajmo na primjer sljedeCi na prvi pogled cudan iskaz:
a
!""

begin writeln (' Obim 1. povrsina pravougaonika'); begin write ('Unesite prvu .stranieu: ') i readln (Stranica:l); write ('Unesite dru(N stranicu: '); readln (Stran.ica2) end;

(Stranical + Stranica2); Ob.im : '" Povrs.ina ._ Strani.ca1 * Stranica2;


begin writeln ('Ohim pravougaonika je " Ob:im, '.') i wdteln (' Povrsina pravougaonika je " Povrsina,

')

end
end.

a + 5

U ovom iskazu se trenutna vrijednost promjenljlve a sabira sa 5, pa se nakon toga izracunata vrljednost smjesta ponovo u istu promjenljivu. Dak!e, navedeni iskaz treba shvatitl kao "nova vrijednost promjenijive a postaje siara vrijednost promjenljive a sabrana sa brojem 5'. Drugim rijeeima, ovaj iskaz uve6ava promjenljivu a za 5. Iskazi ovog tipa veoma se cesto susre6u u programlranju. Upravo radi ovakvih iskaza, za dodjeljivanje je uveden znak : '" umjesto obi6ne jednakosti. Mora se priznati da bi iskaz poput a a + 5 mogao izazvati zbrku, s abzirom da je matematieki nekonzistentan (podsjeUmo se da se upravo iskazi poput ovog susre6u u BASIC-u, -sto potetnicima nerljetko stvara probleme).
::0

U sustini, ovaj program je potpuna ekvivalentan programu za racunanje obima i povrsine pravougaonika iz prethodnog poglavlja, tako da se moze postaviti pitanje kakva je uopce svrha formiranja blokova. U upravo razmotrenom primjeru, upotreba b!okova nije ni imala nikakvu svrhu (osim elste Hustracije kako se definiraju blokavi), tako da je nisma marali ni koristit1. Razlog za primjenu blokova let! u cinjenici da se, u izvjesnim okolnostima, svi iskazi koji se nalaze unutar jednog bloka tretiraju kao jedan jedini iskaz. Iz tog razloga, b!ok iskaza se naziva i sloten! iskaz. Sa konkretnlm razlozima kada treba koristiti slozene iskaze, upazna6emo se u nastavku ovog pogJavlja,

3.8.3 Iskazi grananja sa jednostrukim izborom


Veoma se rijetko desava da se neki problem maze rijesitl samo prostom sekvencom iskaza. S!atenij! algoritmi tipieno sadrze mjesta (grananja) na kojima se razlicite akcije izvrsavaju u zavlsnosti da Ii je nekl uvjet ispunjen ill ne. U bosanskom jeziku, ovakve situacije prepoznajemo po pr!s~ ustvu karakteristicnih rijeel "akd' i "anda" (III "tadci'). Najjednostavniji slucaj grananja nastaje u s,lu6ajevir.n8 kada trebamo vrsiti neku akdju iii niz akcija samo ukoliko je uvjet tacan, a u suprotnom ..'ne trebamo r~diti nista -specijalno. U ovom slucaju se radi '0 jednostrukom izboru. Na primjer:

Svi programi kOje smo dosad koristili, ima!i su Hnijsku strukturu, tj. naredbe su se izvodile strjktno jedna za drugom, onim redom kako su navedene u programu. Ovakva algoritamska struktura naziva se sekvenca iskaza, i predstavlja najprostiju algoritamsku strukturu. Pogledajmo, na primjer, kako je izgledao algorltam za raeunanje i prikaz obima I povrsine kruga:
:::::> Wiest vr(;ednost.poluprdnika r;

""* ""*

izracunaJ obim po formuti 2 ' .1t r;


ispisi vrijednost obima i povdinc.

:::::> izra(unaj p()rr,~inu po fimnuli .1t '

r;

==> alw pad(j ki.~a onda:


':::::> uzmi ki.fn/;ran;
",*"

U nastavku ovog paglavlja vidjetemo kako se u jeziku Pascal realiziraju sloienije algoritamsl<e strul<ture. Za tu svrhu prvo je potrebno da se upoznamo sa pojmom slozenog iskaza (blaka fskaza).

flko je danas radni dan onda: :::::> usrani;


:::::> obuci se;
;:;;::(>

idi u skolu;
301

300

U jeziku Pascal, jednostruki izbor se realizira pomocu kljuenih rijeei if i then, koje se koriste na sJjedeci naein:
if Ovjet then Naredba

3.8.4 Iskazi grananja sa dvostrukim izborom


lskazi grananja sa dvostrukim izborom javljaju se u slueaju kada je predviden aftemativni tok ' akcija u slucaju kada uviel nije ispunjen. Ovakve situacije oblcno nastaju kada u opisu algoritina na bosanskom jeziku imamo potrebu da upotrjjebimo rijee "inace' (Hi frazu "u suprotnoni'). Na primjer:

Ovdje je Uvjet proizvoJjan logiaki izraz (tj. lzraz eija vrijednost mozebiti sarno true iii false), dok je Naredba profzvaljan iskaz (prosti iii sloteni). Jednostruko grananje cemo flustrirati programom koji od korisnika trazl da unese jedan eijeli brej. Ukoliko je broj veei iii jednak ad nule a manji od 10, program ispisuje kamentar "Broj je jednocifren!", a u suprotnom ne ispisuje nlsta. Nakon toga se ispisu]e pozdravna poruka "Dovidenja ... ", bez obzira da Ii je broj bio jednocifren iii nije:
program cTednocifreni (input, output); var Broj integer;
i

"'*"
:::::;>

ako je danas radni dan onda: ::::} us/ani, obuci se i idi u skala;

inace:
:=:>

i!>'kljtiL"i ZVOllO na budilniku i nt/stavi spm-'ati;

U Pascafu, dvostruki izbor se realizira na slican naCin kao i jednostruki izbor, uz dodatak kljuene rUeei else:
if Uvjet then Naredbai else Naredba2

begin ...'rite {'Unesite bro}: ') i readln (Brnj) if (Broj >'" 0) and (Bro]' < 10) then writeln ('Broj je jednocifr'en! '); writeln (' Dovidenj a ... ' ) end.

Naredbu koja slijedi lza kl]uene rijeei then dobro]e pisati u novom redu, i to malo uvuceno, da se vizualno ista~~e.da je ta naredba sastavni dio iskaza grananja. Naravno, ovakav stil pisanja nije obavezan, all Je Jako preporuCljiv. Takoder, obratite paznju da iza then ne stojl tacka zafez (zbog toga sto tu nije kraj iskaza). Ako je potrebno da S8 izvrsi vise iskaza u slueaju kada je neki uvjet ispunjen, tada je potrebno te iskaze objediniti u slatenl iskaz (blok iskaza), sto je jedan od najbitnijih razloga zbog cega su slozeni iskazi uopce i uvedeni. Ova situacija ilustrirana je u sljedecem programu, koii prvo trazi od korisnika da unese neki broi: Ukoliko je broj negativan, ispisuje se poruka da je broj negativan, i njegova vrijednost se mnoti sa 2. Zatim se vrijednost broja uvecava za 5 (bez obzlra da Ii je broj bic negativan iii ne). Na kraju programa, isplsuje se novodobijeni broj:
program Trans.Eonl1ac.ijaBroja. (input, output) var Broj integer;
i

Ovdje su Naredbaf i Naredba2 dva iskaza (prosta iii slozena) od kojih se prvi izvrsava ukoliko je uvjet tacan, a drugi ukoliko uvjet nije tacan. Dvostruko grananje cemo ilustrirati programom za rjesavanje kvadratne jednaeine. Program prvo trati od korisnika da unese koeficijente kvadratne jednaeine (A, B i c), a zatim raeuna diskriminantu D prema dobro poznatoj formuli D "" Jj - 4 A C. Ukoliko je diskriminanta veGa iii jednaka nuli, program raeuna i ispisuje rjesenja jednaeine po for~ mulama poznatlm iz matematike (obratite paznju na neophodne zagrade), a ukoliko je diskriminanta manja od nule, program ispisuje da jednacina nema realnih rjesenja. U oba slucaja, program na kraJu ispisuje kratku pozdravnu poruku:
program KvadratnaJednacina (input, output); var A, B, C, V f Xl, x2 real; ');

begin write ('Unesitebroj: '); readln (Em.1);


if Broj < 0 then

begin writeln ('Unesite koericijente A, B i C kvadrat.ne jednacine: readln (A, B, C); V :;;: sqr (B) 4 * A * C; i f V >"" 0 then begin A) ; xl , - (-B - sqrt (D) ) I (2 [-B A) ; sqrt (D) } I [2 X2 writeJ.n ( 'Xl Xl 0 5) i 5) 0 writeln ( 'X2 c X2

, .

end
"

begin writeln (' Un.ijeli ste negativan broj, ' ) i


Braj :'" Broj

end;
Broj :'" Broj + 5;

else writ.el.n ('J'ednacina nema realnih rjesenja!'); vn::iteln ('Program je zavrsen, zelim yam sreLan dan!') end,

writeln ('Novodobijeni broj je


~d,

Broj)

Obratimo paznju na slozeni iskaz koji je upotrijebJjen iza kljucne rijeci then, a prije kljucne rijeei else. Naravno, istl program se mogao napisati i na sljedeCl nacin:
program KvadratllaJcdnacina (input I output); var A,' B, C, D, Xl, X2

Unesite ~vaj program i isprobajte njegov rad na barem dva ulazna pOd~tka~j~~rifrO '~~gati~nim i jed:. nim. pozitivnim. Da smo Uovom programu izostavlll par kljuenih rljeei begi"i"L j ~;;'nd koje sr"ijeae nakon kljucne rijeel then, tada bi se smatralo da samo prvi iskaz' li&_ ~tJ..iskaz \6ji sadrzi naredbu wr i teln) pripada iskazu jednostrukog grananja, dok pi se sljade61 -iskaz (tj-. I$k.az pridruzlvanja EX'oj : "" Broj * 2) izvrsio bez obzira da Ii je uvjet ispunjen iii ne. r,ia"ovu Cinjenicu treba narocito obratiti paznju prilikom pisanja programa-kojl koriste iskazE:"grananj8:-" -

then:

real;
');

begin writ.eln ('Unesit.e koeficijente A, B 1. C kvadrat,ne jednacine: :readln (A, B, C); V :"-' Sql- (B) - 4 * A * Ci

302

303

ifv< else
begin
Xl

then

writeln ('Jednacina nema realnih rjesenja!')

:'"

(-B -

sqrt

(V))

J (2;' Al;
(2 ;, A)i

X2:

(-B

+ sqrt (D)) J

Ovdje je vrlo nejasno da Ii je ova iskaz jednostrukog izbora (if UvjetA then Naredba) u kajem je kao Naredba up0trebljen iskaz dvostrukog izbora (if UvjetB then NaredbaA else NaredbaB), ill se mozda radi 0 iskazu dvostrukag izbora (if UvjetA then Naredhal else Narcdba2) u kojem je kaaNaredhal upotrebljen iskazjednostrukog izbora (if UvjetB then NarcdbaA), a kaoNaredba2 iskaz NaredhaB. Ove dvije interpretacije shematski su prikazane na sljedecaj sliei: lnterprefacija 1 lrlterpretacija 2
if UvjetA then if Uvjet$ then

writeln ('Xl xl 0 writeln ('X2 ',X2 0 end; writeln (' Program je zavrsen,

5);
5)
~elim

Yam

sretan dan!')

if UvjetA then
if UvjetB t h e n } Naredba A NOl'cdbrr

end.

Naredba A else
NaredhaB
.

Naredhal

U ovom slueaju, slozeni iskaz upotrijebljen je iza kljuene rijeci else. Nekada se maze dogoditi da su i naredba kOja sHjedi iza then i naredba koja slijedi iza else slozeni iskazL Meciutim, vazno je naglasiti da se iza naredbe koja se natazi izmedu then i_else, bila ana prosti iii slazeni iskaz, niposto ne smije pisati znak -taeka-zarez. U suprotnom, kompaj!er ne bi prepoznao da se rad! 0 iskazu dvostrukog grananja, i gotovo sigurno bi doslo do prijavljivanja greske. Naredbe kOje se nalaze unutar iskaza grananja, tj. iza kljuenih rijeei then odnasno else, mogu i same bit! panavo iskazl grananja. U tom slueaju se ,radi 0 ugnijetdenim iskazima grana nja. 8ituacija kada se iskaz grananja nalazi iza rijeei else mnogo je jasnija i ne stvara nikakve nedoumice. Ovakva si1uacija javlja se u sljedeeem programu, koji traii braj sa tastature, a nakon toga ispisuje na ekran da Ii je broj pozitivan, negatlvan iii nula:
R

else NaredhaB

- - l',lrm!dba2

Jasno je da su abje interpretadje moguee, iako imaju pasve drugaciji smisao. Ovo je jedna od semantlckih nedosljednosti jezlka Pascal (ista nedosljednost javlja se i u modernijim jezicima kao 5tO su C, C++, Java ltd.). Po konvenciji je usvojena da se prihvata prva interpretacija, po kojaj se rijet else odnosl na bHiu ad dvije rijeCi then. Ukoliko je neaphodno da isprogramiramo drugu interpretaciju, tada je neophodna iskaz jednastrukog izbora uklopiti u sloteni iskaz pomo6u para rijeti begin i end, 61me on postaje neodvojiva cjellna. Drugim rijeCima, potrebno je napisati konstrukciju poput sljedece:
if UvjetA then

program IspitivaIljeZnaka (input, output); var Dr:oj


begin

integer;
i

write ('Unesite jedan broj: '); readln (Broi) if Broj > 0 then writeln ('Bra] je pozitivan!')
else if Bra] else
0 then

begin i f UvjetB then NaredhaA


end

else NaredbaB Situacija se maze dodatno zakompliciratl einjenicom da se i u ovakYim konstrukcijama kao svaka od upotrijebljenih naredbi (NaredbaA i NaredhaB) mogu upotrijebifi ponova iskazi grananja, itd. Na ovaj naCin dobijamo konstrukcije sa gemilom rijet! if, then i else, za koje je tesko adgonetnuti kaja je sa kojom povezana. Mada postoje pravlla kako se ovakve konstrukcije razrjesavaju, nji hovo pisanje nije dobra programerska praksa, i njima se ne6emo detaljnije baviti.

writeln ('Br'Oj je negativan!') writeln ('Broj je nula!')


end.

U ovakvim slueajevima se eesto kljuena rijee i f kaja s!ijedi rza else pise u istom redu iza else, tvoreci karakteristicnu else if strukturu (naravno, ovo je sarno stvar st1la pisanja):
if Broj > 0 then

3.8.5 Iskazi grananja sa visestrukim izborom


~izbora.

else i f Broj else

writeln {' Broj je pozitivall! ' <: 0 then writeln (' Broj je neg-ativanl')

. Uprethadnom adjeljku, vee sma se upoznali sa jednom od mogucnosti za formiranje vi5estrukog To je upotreba ugnijezdenih iskaza grananja. Na primjer, sljedeci.program trazi od korisnika da Uf)ese oejanu, a program ispisuje tu ocjenu rijetima ("odlican", "vrlo dobar", "dobar", "dovoljan" iii
~.n~d6volja~"):
program IspisOcjene (input, output);

writeln ('Broj je nula!')

Situacija u kojaj naredba kaja slijedi lza then predstavlja iskaz grananja moze biti veoma kenfuzna, pogotovo ukaliko se radi 0 iskazu sa dvostrukim izbarom. Na primjer, pogledajmo sljede6u konstrukciju:
if UvjetA then if UvjetB then NaredbaA else NarcdbaB

var

Ocjena : integ'er; '); madIn (Ocjena)i

begin
write ('Unesite ocjenu: ,if Ocjena 5 then writeJ.n ('Odlican!')

304

305

else
if Ocjena '" 4 then wri teln (' Vr10 dobar! ' )

writeln ('Nedovoljan!'); else,


writeln ('NeispravDa ocjena!') end

else
i f Ocjena '" 3 then

end.

writeln ('Dobar!')

else
i f ocjena "" 2 then writeln ('Dovoljan!')

else if Ocjena '" 1 then


writeln (' Nedovoljan! ' )

else
writeln ('Neispravna, ocjena! ')
end.

Nekada zelimo da izvrsimo istu akeiju za vise razli6itih vrijednosti izbornog izraza. To se postite pisanjem niza konstanti razdvojenih zarezom umjesto jedne konstante (njihov poredak nije bitan), iii pisanjem opsega vrfjednosti (sHeno kao pri!ikom deklarlranja intervalnog tipa). Na primjer, na faku!~ tetima su predvidene oejene ad 1 do 10, stirn sto Delene od 1 do 5 nisu prolazne (napomenimo da fakultetski profesori prilicno rijetko navode oejene koje su U opsegu od 1 do 5, tako da se svaka nepro!azna oejena najcesce pise kao "-petiea", lako postoje i nite oejene). Tako bismo iskaz grana~ nja sa visestrukim izborom, u slucaju fakultetskih oejena, mogli pisati na primjer ovako:
case Ocjcna of 1 5: writeln ('Veoma slabo!'); 6 : writeln ('Slaba!');
7,8 : writeln ('Prosjecna!'); 9 : writeln ('Dobro!'); 10: writ.eIn ('OdJicno!')

Mada ovaj program radi korekino, ne moze se reci da je previse e!'egantan. !skazi grananja u ovom programu "gnijezde" se previse duboko, zbog cega program dobija karakteristican "stepenast" izgled. To se maze izbjeCi pisanjem else i f konstrukcija u istom redu, ali problem neelegancije ostaje. Kako se ovakve situacije u programiranju javljaju veoma cesto, u jeziku Pascal uveden je poseban iskaz za ostvarivanje grananja sa visestrukim jzborom. Ovaj iskaz ima sljedeei oblik:
case lzbomiIzraz of

end;

Vr{icdnostl Vrijedllost2 VrijedrwstN


else

Naredbal; Naredba2; Naredba,1\l

Vrijedi napomenuti da u izvornom PascaJu kljuena rijee else nije bila predvidena za koristenje unutar case iskaza, nego je to jedan ad nestandardnih dodataka uveden u novijim verzijama Pasca/a. U izvornom Pascafu, izborni izraz mora biti jednak jednaj od konstanti pomenutoj u case iskazu, inaee se javlja greska. Standard Extended Pascalumjesto kljucne rijeci else unutar case iskaza koristi kljucnu rijee otherwise.

NaredbaE
end

3.B.6 Iskaz bezuvjelnog skoka


Ueenicima je vjerovatno 06tala u sjeeanju naredba GO'l'O iz programskog jezika BASIC, koja omogucava da se jzvrsavanje programa nastavi od proizvoljnog mjesta unutar programa. SHean efekat moguee je postici i u Pascalu, pomocu iskaza bezuvjetnog skoka. Ovaj iskaz treba po svaku cijenu izbjegavati, jer Pascal posjeduje znatno pogodnije iskaze kojima se moze postlei isti efekat, a koje cemo uskoro upoznatL Slicno kao u BASIC~u, iskaz bezuvjetnog skoka sastoji se od kljucne rijeei goto, iza koje slijedi eijel! broj koji predstavlja-oznaku mjesta od kojeg zelimo da se program nastavi. Medutim, za razliku ad BASIC-a, u Pascafu ne postoje linijski brojevi, tako da se mjesta u programu na koja ielimo vrsiti skokoye moraju posebno qznaCiti pomocu specijalnih oznaka koje nazivamo /abeJe. Labela se sastaji od djelog broja iza k6jeg-sHj~di _znak dvotacka. Svaku labelu koju ielimo koristiti u programu moramo prethodno- riaJav.iti (deklarirati)' u deklarativnom dijelu programa pom06u kljuene rijeci label: Por"ed toga:.. stand-*9nj Pascal zahtijev~ da labele budu deklarirane prije deklaraeija imenovanih konstanti i promjenijivih. Iskaz bezuyje1(iog~skoka.1J,0striraeerno na primjeru programa koji neprestano ra6una i ispisuje kvadratni korijen brojJ3._ 'yn-e?'$.D,()g s~ tastatur.e sve dok korisnik ne unese nulu, nakon cega program prestaje sa radom.P.rogramie pisan u_$tilu kako"se pisu BASIC programi, tako da bi ovakav progr'am 'vjerovatoo napis~o neki tvrdokorni BASIC programer ko]i S6 prvi put susrece sa Pascafom. Kasnije cemo v.idjeti da se'isti_pr,ogratn 'moZee ml)ogo elegantnije napravlti bez naredbe bezuvjetnog skoka.

Iskaz grananja sa visestrukim izborom omogucava izbor izvrsavanjajedne od nekoliko mogucih alternativa. Izbor je zasnovan na vrijednosti jednog izraza koji se naziva izborni izraz. Taj izraz mote biti bilo kojeg ordinalnog tipa (dakle, realni tip nlje dozvoljen), dok Vrijednostl, Frijednost2 itd. moraju biti konstante (neimenovane iii imenovane) istog tipa kao i tip izbornog izraza. Vrijednosti svih ovih konstanti moraju biti medusobno razlicite. Naredbe Naredbal, Naredba2, ltd, mogu bit! proizvoljni iskazi (prosti, slozeni, pa eak 1 iskazi grananja), lskaz grananja sa visestrukim izborom prvo izraeunava vrijednost izbornog izraza, a zatim izvrsava onu naredbu kOja sHjedi iza konstante Cija je vrijednost jednaka vrijednosti izbornog izraza. Ukoliko takve konstante nema, izvrsava se iskaz NaredbaE koji slijedi iza djeei else. Ova rijee, kao i pripadna naredba, mogu se iZQstaviti. U torn slueaju, ukoliko ne postoji konstanta cija je vrijednost jednaka vrijednosti izbornog iskaza, ne desav~ se niSta.
pToqram
Jsp.isOcjene

(input, output);

var Ocjena : integer;


-.'--

-begin write ('Unesite ocjenu:

');

. readln (Ocjena); case Ocjena of


5 4 writeln writeln writeln 2 : wr.i teln ('Odlican!'); ('Vrlo dobax-!'); ('Dobar!'); (' Dovoljan! 'J ;

306

307

program RacunanjeKorijena (input, output); label 10, 20, 3D; var Broj : real i begin writeln ('Racunanje korijena'); 10: writeln ('Unesite broj: '); readin (Broj); if Eraj '" 0 then goto 30; if Broj < 0 then gate 20; wr:iteln ('Njegov karijen je; sqrt (Broj) o 5) ; gato 10; 20: wrhein ('Greski'l: Korijen iz negativnog broja nije rea1an broj!'); goto 10; 30: writeln ('Dovidenja!') end.

program ProsjekOcjena (input, output); var 01,' 02, 03, 04, 05, 06, 07, 0/1, 09, 010 : integer;
Prosjek

real;

begin

writeln

'unesite 10 ocjena: '); readln (01, 02, 03, 04, 05, 06,
-I-

Prosjek :'" \01 + 02

03

-I-

04

-I-

w.riteln ('Prosjecna ocjena je:

07, oB, 09, o'](i); 05 -I- 06 -I- 07 -I- oB ',Prosjek 0: 2)

09 -1- 010)

10,.

end. Mada ovaj program nesumnjivo radi korektno, -zamislimo kako bj lzgledao isti program da smo umjesto 10 trebali obradit11 00 oejena! Stoga razmislimo kako bismo magli unaprijediti ovaj program. Kako je Pascal proeeduralni Jezik, pokusajmo racunaru objasniti sta mi zapravo radimo kada racunamo prosjek oejena "ru6no" (tj. bez pomo6i ra6unara). Na prvom mjestu, treba primijetiti da pri" likom racunanja prosjeka oejena, mi nikada ne pamtimo sve ocjene odjedanput (tako da nam nije potrebna gomila promjenljivlh za pamcenje svih ocjena), vee sarno pamtimo sumu do tada obradenih ocjena. Svaki put kada obradujemo novu oejenu, nju saberemo na dotadasnju sumu, nakon 6ega staru sumu "zaboravljamo" i pamtimo samo novu sumu. Ovo nas dovodi do sljedeceg algoritma:

U ovom primjeru labele su oznacene u rastucem poretku (10, 20, 30), mada taka ne mora bitL Modernije verzije Pascala (npr. Turbo Pasca~ dozvoljavaju da labele budu ne samo eijeli brajevi nego i rijeei (preeiznije, proizvoljni identifikatari). Za razliku od BASIC-a, Pasca/postavlja izvjesna ogranicenja gdje se maze a gdje ne moze vrsiti bezuvjetni skak. Taka, na primjer, nije moguce izvrsiti skok sa proizvoljnog mjesta na mjesto koje se nalazi negdje unutar slozen09 iskaza (tj. izmedu begin i end). Postoje i druga ogranicenja pri upotrebi gote naredbe, ali 0 njima necemo govoriti s obzirom da ovu naredbu ionako treba izbjegavati po svaku eijenu. Jezik Pascal posjeduje mnostvo drugih naredbi kojim se isti efekat moze postiCi na mnogo pregledniji nacln. Mada postoje situacije kada se naredba gote moze karisno upotrijebiti, nju je mogu6e izbjeci u prakticno svim situacijama. Osnovni razlog za njeno izbjegavanje je Cinjenica da ona omogucava potpuno nekontrolirane skokove sa kraja na kraj programa, sto dovodi do programa 6ijl je tok gotovo nemoguce pratitL Stoga je, na jednoj od medunarodnih konfereneija posve6enih metodologiji programiranja, izrecen stay da "naredba goto steti program!ranju barem onollko koliko pusenje stet] Ijudskom zdravlju".

'* Posfavi pocef11.u sumu ocjena na n.ulu; '* Za sve ocjene od pn1e do krajnje, radi sljedece akcije: '* Unesi o(jenu sa tasta/ure; '* Pndijeli sumu oejena sa brojem oejena; '* lspi/H rezultat.
=::> Doda) tlncsenu ocjenu 11.a
SUnJU

ocjen.a i zapamti nova sumu;

U prikazanom algorltmu primjecujemo pojavu rijeci "xli', "od' i "dd', koje su karakteristicne za ovakvu vrstu algoritama. U jeziku Pascal, algoritmi popu! ovog izvode se pomocu naredbe for, koja ima sljedeCi ob!ik:
for

Promjcnfjiva : '" Poc:etnaVrijednost to KrajnjaVrijednost do Naredha

3.8.7 Iskazi ponavljanja


:'j

PonavlJanje (odnosno petlja iii ciklus) je algoritamska .struktura koja nam omogucava da kreiramo algoritme koji ukljucuju ponavljanje -neke akcije (iii skupine akcija). Mada se algoritmi sa ponav!janjem mogu realizirati pom06u iskaza bezuvjetnog skoka, kao sto smo vidjeli u prethodnom primjeru, takva rjesenja nisu dobra i treba ih izbjegavati. U nastavku cemo vidjetl kako se algoritmi sa ponavljanjem realiziraju u _Pascalu bez upotrebe naredbe goto.

:.:.:1

3.8.7.1Iskaz for
Najjednostavniji alg~ritmi ~oji korlste PQnavljanje su algoritmi u kojima se neka akcija ili skupina akcija ponavlja tacna odredenF biot pula koj"i je poznat unapnjed. Na primjer, pretpostavimo da zeHmo da izracunamo prosjecn_u ocj~ntj" (n?' dvije decimale) nekog ucenika iz nekog predmeta. 06igledno je potrebno da saberemo SVe,'oejene" i da nadenu sumu podijelimo sa brojem oejena. Na prv! pogled moglo b-i- se: pomislm ,da n'am -je- potrebno onoliko promjenljivih koliko ima aejena. Pretpostavimo, na primjeT,'-_da ucenik [ina 10 oejena. Jedno, veoma lose rjesenje ovog problema, moglo bi, na primjer, izgledati ovako:
308
.
.- .
-

Ova naredba govori da se iskaz Naredba, koj! nazivamo tijefo petlje (a kojl moze bit! proizvoljan iskaz, ukljucujuci i slozene iskaze, i f iskaz, case iskaz, pa cak i panovo for iskaz), treba izvrsiti za sve vrijednosti promjenljive Promjenljiva od vrijednosti Poc-eff1aVr{jednost do vrijednosti Krajt(jaVrijcdnost. Preeiznije, ova naredba (koju cemo najcesee zvati prosto for petlja) prvo postavlja vrijednost promjenljive Promjrnljiva na vrilednost PocefnaVrijednosf. Nakon toga se provjerava da Ii je krajnja vrijednost veca iii jednaka od pocetne vrijednosti. Ukoliko to nije slucaj, petlja se ignorira (dakle, tijelo patlje se u tom slueaju neee lzvrsiti niH jedanput, sto for petlju svrstava u kategoriju uvjetnih petlj!). U suprotnom, izvrsava se iskaz Naredba, a zatim prelazi na sljedecu vrijednost promjenljive Promjenljiva (pozivom funkcije succ"st~ sa. u slutaju cjelobrejnih promjenljivih svodi na povecanje sadrzaja promjenljive za 1). Ukoliko je nova vri)ednast p"romjenljive manja iii jednaka od vrijednostl KrajnjaVrijcdnost, iskaz Naredba s~ izvrsava ponovQ,' Po-stupak se ponavlja sve dok vrijednost promjenljive Promjenfjiva ne postane veca od vrljednostrK?qjnjdVri}edno.~t Uz pom?c naredbe fer, predlozeni algoritam bi se u jeziku Pascal mQao D.apl~h Oy~.ko: '

se

program PTosjekOc.jena (input, output)


const BrojOcjena "" 10;

var

Ocjena, BrojacOcjena, SumaOcjeI}a PT'osjek real;

309

begin
SumaOcjena :'" 0;

Prosjek : = SunlaOcjena I BrojOcjena;

writyln ('Prosjecna ocjena je: ',Prasjek

2.)

writeln ('Unesite

BrojOcjena,' ocjena: ' ) ; for BrojacOcjena : = 1 to BrojOcjena do begin readIn (Ocjena) i


sumaOcjeno. :=- sumaOcjo1Jo. + Ocjena

end.

end;
P:msjek : '" SumaOcjena I B.rojOcjena;

U nekim slucajevim~ se brojacka promjenljiva mora upotrijebiti unutar petlje, jer sadrz1 informa dju kOja je neophodna za dio algoritma koji se nalazi unutar petlje, Analizirajte sami kako radi sljedeCi program koji raeuna i ispisuje sumu kvadrata svih brojeva od 1 do 100:
program SumaKvadrata (input, output);

writeln ('Prosjecna ocjena je: ',prosjek: 0: 2) end.

const
begin

Max:::: 100;

var Braj, Sumo.

integer;

U ovom primjeru, tijelo petlje saeinjava slazeni iskaz, kaji se sastaji od dva prosta iskaza (naredbe reo.dln i iskaza pridruzivanja), Da sma slucajno zaboravili da omedimo ova dva prosta iskaza sa p_arom begin i end, tada bi racunar smatrao da samo naredba readIn cini tijelo peUje. U tom slucaju, iskaz pridruzivanja bi se izvrsio tek nakon $to se citava petlja izvrsi, tako da bi rezultat bio pogresan (uracunala bi se sarno posljednja oejena). Ovaj-tip greaka je veoma eest kod poeetnika. Druga eesta greska prilikom koristenja naredbe for (ista primjedba vrijedi i za naredbu while koju cemo uskoro upoznati) je stavljanje tacka-zareza iza rijeei do. U tom slueaju ee raeunar sma~ tratl da je tijeJo petlje prazno (t]. da se unutar petlje ne izvr5ava nI51a), tako da ee se naredbe koje smo zeljeJi da budu unutar petlje izvrsiti izvan nje. Najgore je sto ni u jednom ni u drugom slucaju prevodilae neee prijaviti nikakvu gresku, nego ee program jednostavno raditl pogresno (ovo je jos jedan primjer semantickih gresaka)! Promjenljiva koja se javlja u naredbi for i koja upravlja radom petlje, naziva se upravfjacka promjenljiva (iii ponekad i brojacka promjenljiva). ces1i su slueajevi kada se brojacka promjenljiva ne koristi nigdje unutar tijela,petlje, nego samo sluti radi vodenja evideneije koliko puta je peUja izvrsena. Na primjer, ukoliko zelimo da ispisemo poruku "Pozdrav svimal" 10 puta, to mozemo uraditi pomoeu sljedeceg iskaza (uz pretpostavku da je deklarirana cjelobrojna promjenljiva Brojac):
for Brojac ::::: 1 to 10 do writeln (' Pozdrav svima! ');

Sumo.: 0; for Braj : '" 1. to Max do SWfld :'" Suma + sqr (Broj);

writ.eIn ('Sumo. kvadrata brojeva od 1 do end.

Max,

'

je

8l1ma)

Upravljacka promjenijiva ne mora blti sarno cjelobrojnog tipa, vee maze biti bilo kojeg ordinalnog tipa (dakle, realni tip nije dozvoljen), pri cemu se prelazak na sljedeeu vrijednost promjenljive uvijek ostvaruje pozivom funkelje suce. Na primjer, u sljedecem programu, koji ispisuje slijed slova ad 'A' do 'z' koristi se upravljacka promjenljiva znakovnog tipa:
program Sl.ijedSlova (input, output);

var Znak

char;

begin
for Znak := 'A' to 'Z' do write (Znak)
end.

U primjeru za raeunanje prosjecne oejene, upravljacka promjenljiva BrojacOcjena takoder sarno vodi evidenciju do koje smo oejene dosli pri unosenju, pri cemu se njena vrijednost ne koristi nigdje unutar petlje, Medutim, informacija koju sadrti ova promjenljiva maze se veoma korisno upotrijebiti unutar petlje da obavijesti korisnika kOja je oejena na redu. Na primjer, prethodni program samo ispisuje "Unesite 10 oejena:", nakon cega korisnik treba da unese 10 brojeva. Pri dugackim unosi rna, korisnik moze zaboraviti koliko je oejena unio. Sljedeci program predstav!ja poboljsanu verziju prethodnog programa, koji koristi informaciju sadrzanu u promjenljivoj BroJ'acOcjena za ispis poruka poput "Unesite 1. oejenu:", "Unesite 2. ocjenu: ", itd.
program ProsjekOejena (input, output);

Ukoliko zelimo da se uprav!jacka promjenljiva ne poveeava nego umanjuje za 1 pri svakom pro!azu kroz pet!ju (odnosno, umanjuje pozivom funkelje pred), tada umjesto kljucne rijeei to treba pisati kljucnu rljee downto. Na primjer, sJjedeci program ispisuje niz brojeva od 1 do 10 u obrnu~ tom poretku (poeev od najveceg ka najmanjem), pri cemu se svaki broj ispisuje u novom redu:
program ObrrlUtiPoredak (input, output);

var Braj : integer;

begin for Braj := 10.downto 1 do w.riteln (Braj)


~d.

const BrojOcjena :::: 10;


var Oejena, BrojacOcjena, SumaOcje.l1a PTosjek : real; begin
$tlmaOcjena : = 0; for BrojacDcjena : '" 1 to Bro)Ocjena do

integer;

Ukoliko smo korlstm klju"G:fl~- fijec - d.9wnto, tada pocetna vrijednost mora biti veea Hi jednaka' od krajnje, inaee Sfp~tija ignor[ra.
.
~

begin
wd_te ('Unesite " 13rojacOcjena, 1 . ocjcnu: SumaOcjena : '" SumaOcjena Oc]'ena '); readln (Ocjena);

Razmotrimo j6sieda'~_!~_rere:~ant-an primjer u kojem se jav!ja iskaz for. U matematici je paznato da su Fibof1.acije~i br6j?vi niz brojeva od kojih su prva dva jednaka jedinici, a svaki sljedeci jednak je zbiru'tlva prethodh<;l. (n? primjer, prvih nekoliko Fibonaeijevih brojeva su 1, 1, 2, 3, 5, 8, 13, 21,34, "5S itd.). Sljede~iJ?rogram_ ispisuje prvih 20 FibonaCijevih brojeva:

end;

310

311

program Fibcmaci (input, output); var i, Fl, F2, F3 : integer,


begin Fl :'" 1, F2 :"" 1; for :i :"" 1. to 20 do begin

Primijetimo da se U opisu ovog algoritma javlja karakteristicna fraza "sve dok ie'. U PascaJu, algo> ritmi poput ovog ,realizlraju pomo6u iskaza while, koji 1ma sljedeei oblik:

se

whi le Uvjet do Naredba

w:dteln (Pl); F3 :'" PI + F2; F'l


end

:= F2;

F2 :'" F3

Ovaj iskaz govori da ee se iskaz Narcdba (koji je najeesce slozeni iskaz) ponavljati sve dok je uvjet Uvjet ispunjen. Tako bi se, ,uz pomoe iskaza while, gore prikazani algoritam u jeziku Pascal mogao napisati na sljedeCi nacin:
program ,sumaBrojeva {input, output};

end.

Mada je ovaj program sasvim kratak, on nije posve jednostavan za razumijevanje. U nJemu -Je Koristena interesantna tehnika programiranja nazvana presipanje promjenfjivih unutar petlje sa ci~ Ijem da se omogu6i generiranje citavog niza FibonaCijevlh brojeva sa samo tri promjenljive Fl, F2 i F3. Na p06etku se F'l i F2 postavljaju na jedinicu. Nakon sto se izracuna F3 kao Fl + F2 (dakle, F'3 6e dobit! vrijednost 2), F'2 se "presipa" U Fl, a F3 U F2, tako da de Fl sadrtavati vrijednost 1, a F2 6e sadrzavati vrijednost 2. Postupak se dalje ponavlja, taka da u svakom prolazu kroz petlju Fl sadrzi teku6i Fibona6ijev broj, a F2 i F3 sadrze dva naredna Fibonacijeva broja, Preporucljivo je da sa papirom i olovkom prodete kroz svih 20 ciklusa i da analizirate kakve su vrljednosti pramjenljivih Fl, F2 i ,F3 U pojedinim ciklusima. Trud koji treba uloziti za razumijevanje ovog programa je isplativ, jer se na sliean naeln mogu rjesavati mnogi srodni problem!. Vazno je napomenuti da Pascal strogo zabranjuje bilo kakvo dodjeljivanje vrijednosti uprav~ Ijackoj promjen!jivoj unutar Ujela peUje. Ova zabrana nije uvedena u Turbo Pascalu, mada takva dod~ jeljivanja mogu dovesti do potpuno neocekivanog ponasanja. Na primier, sljedeea petlja
for i,
:=

var Broj ( Suma


begin

integer;

S111na :oc 0; write ('Unesite broj (negativdn \Jnos oznacava kraj): readIn (Bro j) ; while Broj >= 0 do begin

');

Suma : = Suma + Broj;


write ('Unesite broj readIn (Broj) (negi:l.tivan unos oznacava kraj): ,);

end;
writeJ.n ('Suma- unes0uih brojeva je:
Sl1ma) ,

end.

1. to 5 do

begin writeln (i);


i end;
:=

Primijetimo da SOlO istu naredbu za unos morali pisati dva puta, jedanput ispred peUje, a drugl put unutar petlje. Razlog je u cinjenici da se uvjet kod iskaza while ispiluje na pocetku petlje, tako da vee na pocetku moramo znati kakav je uneseni brej da bismo znan da Ii petlja treba uop6e da se izvl'Si iii ne. Tal' problem mozemo rijesiti sljedeCim, funkcionalno ekvivalentnim, ali logicki eiegantnijim programom:
program sumaBrojeva (input, output);
var Broj, Suma

i + 1

integer;

nije dozvoljena pO standardima Pascala. Turbo Pascal ee prihvatlti ovu petlju, ali ee se ona, pasve neocekivano, izvrsavati beskonacan bro) puta!

begin
Suma := 0, Braj ._ 0;

3.8.7.2 Iskaz while


U mnogim slueajevima ne znamo unaRrijed koliko se puta neka akcija treba ponovitL Na primjer, pretpostavlmo da zelimb izracunati.zbir svih brojeva koje korisnik unosi sa tastature. Prj tome, brojevi se unose sve dok Se ne uneSe negativan broi, nakon cega treba prekinuti unas i ispisati zbir (ne racunaju6i uneseni' negativi:!i proD. -9 --slucaju ne mozemo koristiti naredbu for, jer ne znamo unaprijed k6liko deorojevapnijetf KQrisnik, Algoritam za rj'esavanje ovog problema mogao bi izgledati ovako: .:.: -

while Bra j >= 0 do begin write ('Unesite broj (negativan unos oznacava kraj): readln (Broj) if Bro] >:.0 0 then 8uma := 8Ulna + Bro];

'};

end;
I"riteln ('Suma unesenih brojeva je;
s~ma)

ovom

end.
U ovom programu smo, na prvl pogled nepotrebno, inicija~~zirali l pibmjenljlv~ _.Broj ns. vrijednost O. Ovo je, medutim, neophodno IZ sljedeceg ra?!oga: akq_~pe-Jz~r.sirn.o -nLentf infcijaHzaciju"njena potetna vrijednost ee biti slucajna, (nepredvidiva). Ka~o. se- pfOmjenljiv~_.~~Brot p6javljuje u uvjetu iskaza while prije nego 5tO se njena vrijednost prvi put Une$~'9a't$.mture~ u sl~caiu d9- se dogodl da ie slucajna potetna vrijednost ove promjenljive .negativna;-~petrla. se neee.i'zvrsiti niti jedanput, jer 6e uvjet odmah na pocetku biti netaean. Ako se ovo dqgodi, kao P?s!jeclicu cemo imati potpuno neispravan rad programa: program nas neee pltat! ni za jedari broj, j ispisace kao .krajnji rezultat nulu! Da stvar bude jos gora, zavisno od slueaja, progr~m ee nek~da radit[, a n~kada neee!
313

=?

=-> Unesi broj;


:=>

Posravi.p6:2erm~,~imiu-br.ojeva na nulu; -. Sve-gokk Ul\csfni ttpj veei iii jednak od nule,

radi

sijedeec akcije:

"* U~csi.novt1Jr;;j; '* [spisi S(lmu.


312

=> p'oridj lmescnj-~roj fia SUnlU brojeva i zapamti novu swnu;

U prethodnom programu koristenaje i naredba if eiji je smisao jasan: ona spreeava da, kada unesemo negativan broj, on bude uraeunat u sumu. Pokusajte da razmislite kako bi se naredba if mogla izbjeei (uputa: zamijenite redosJijed sabiranja i unosa sa tastature - promjenljiva Broj je na pocetku postavljena na nulu, a nula sabrana sa bilo kojim brojem daje taj lsti broil. Radi bolje ifustracije koncepta while iskaza, naveseemo jos jedan karakteristican primjer. S!jedeci program racuna sumu cifara broja unesenog sa tastature:
program SumaCi,[ara (input, output); var Broj, Surna
integer;

Tako, uko!iko pretpostavimo da je deklarirana znakovna promjenljiva Opcija, gornji algoritam bi se u Pascalu reallzlrao sljedeClm iskazom: repeat
wdteln (o'E - Editor'); writeln (' s - snimanje'); writeln (' B - Brisanje'); writeln ('K - Kraj'); writeln; write~n ('Unesite opciju: !); readln (Opcija)

begin write {' unesite broj: readln (Broj);


Stmla :'" 0;

until
'};

(Opcija '" 'E')

or

(Opcija '" 'S') or (Opcija

'B')

or (Opcija '" 'K');

Sa aspekta strukture, iskaz repeat - until tretira $e kao slozeni iskaz, pri eemu kljucne rijeei repeat i until imaju slienu ulogu kao kljucne riieei begin i end. Mnogi algoritmi koji se mogu izvesti pomoeu while iskaza, mogu se izvesti i pomoeu iskaza repeat _ untiL Na primjer, sljedeCt program demonstrira raeunanje sume unesenih brojeva do unosa prvog negativnog broja pomoeu iskaza repeat until (ova] problem smo vee rijesil! pomoeu iskaza while):
program SumaBroj(,va (input, output);

while Broj > 0 do

begin Suma
end;

SUma + Braj lIIOd 10; Braj :'" Braj div 1.0


:=

writeln (Surna) end.

Rad ovog programa zasnovan je na sljedeeoj ideji: ostatak dijeljenja bilo kojeg broja sa 10 jednak je njegovoj posljednjoj cifrl, dok odgovarajuei cje!obrojni kO!ienik sadrii sve njegove cifre osim posljednje. Dakle, ukoliko sve dok je broj veei od nule vrsimo njegovo uzastopno dijeljenje sa 10 i pri tome na neku promjenljivu (u nasem primjeru promjenljivu Burna) cija je pocetna vrijednost nul a stalno dodajemo ostatak tog dijeljenja, dobieemo upravo trazeni rezultat.

var

Broj,

Suma

integer;

begin
Surna:

0; .Broj := 0;

repeat
SWlIa : '" Suma + Broj; write {'Unesi!=-e broj (negativan unos oznacilva kraj): readJn (Emj) until Broj < 0; writeln ('Swna unesenih brojeva je: Surna)

');

3.8.7.3 Iskaz repeat - until


Jos jedna karakteristiena vrsta ponavljanja Javlja se u slueajevima kada znamo da zelimo da pre~ duzmemo neku skupinu akcija barem jedanput, i da ih zelimo ponavljati sve do ispunjenja nekog uvjeta. Ovo se tipieno desava u situacijama kada trazimo neki unos od korisnika, i ponavljamo zahtjev sve dok unos ne bude ispravan. Na primjer, ovdje je dat algoritam koji prlkazu}e na ekranu izbor opcija (men]) sa 4 opcije, i trazi unos od korisnika sve dok korisnik ne da korektan odgovor:

end.

POllavljaj sljede(e akcije: "'* IspiSi ;;pisa1c opcija (E - Editor, S - Snimanje, B, -_Brlsmije, K - Kraj); ==> Ucitaj znak; ==> PonavljaJ sve dok ne bude znakJednak E, S, B tlt K
:::=:>

Vidimo da se isti problem moze rijesiti na vise razliCitih nacina. Strogo uzevsi, svi ponavljajuei algoritmi mogu se izvesti koristed sarno iskaz while. Ipak, koristeCi iskaze for i repeat until, program se cesto mote jednostavnije napisati i uciniti dtljivijim. Na primj~H, iskaz for je pogodniji od iskaza while ako unaprijed znamo broj ponavljanja, dokje repeat - until petlja pogodna u slueajevima kada znamo da ee se petlja izvrsiti barem jedanput, a pagatovo u slucaju kada uvjet sadrzi neku vrijednost koja 6e tek biti unesena Hi izracunata unutar tljela petlje.

U odjeljku 3.8.6 smo rekli da se iskaz gato u Pascalu uvijek moze izbjeci karlsteel Pascalove_ iskaze za grananje ! ponavljanja. Kao ilustraciju, prikazimo kako bi mogao izgledati_ pro-gram Ra.cunanjeKorijena koji smo prikazali u odjeljku 3.8.6, ali ova] put bez upotrebfJ gota- nafedb-e:
program
var Bra j
RacunanjeKorijena

U opisu ovog algoritma javljaju se karqkteristiene fraze "ponavljaj' L~_~ok na btJqe". U Pascalu, ovaj tip ponavljanja realizira se pomoeu iskaza repeat - un~~:,-koji _i~a:SljedBc'i 'oblik:.
repeat Naredbal;

(input, output.);

: real;

Naredba2;
Naredbal-l until Uvjet

begin writeln ('Rac;unaflje korijena');

repeat
writeln ('Unes.Lte broj;

'); readln (Broj);

314

3~5

.~

if Broj < 0 then writeln ('Greska: Korijen iz negativnog broja nije real an broj!'); else i f Broj > 0 then writeln ('Njegov korijen je: r, sqrt (Broj) : 0 : 5) until Broj '" 0;
writeln ('Dovidenja!') end.

Pitanja i zadaci
1. Sta su prosti a sta slozeni iskazi? Sta je sekvenca iskaza? 2. Kako bisma u Pascalu razmijenili sadriaj dvije promjenljive x i y? Uputa: potrebno je uvesti treGu (pomoenu) promjenljivu, jer iskaz x :;;;; y; y : "" x neee raditi ispravno (za8to?). 3. Kakve vrste iskaza grananja pastoje u jeziku Pascan 4. Kakvi iskazi pastoje u Pascalu za realizaciju struktura panavljanja, I kada treba koristiti svaki ad tih.iskaza? 5. Za svaki od sljede6ih isjecaka IZ Pascal programa odredite bez pomoci racunara rezultat koj! ce biti prikazan na ekranu, uz pretpostavku da su sve koristene promjenljive prethodno propisno dek!arirane kao cjelobrojne promjenljive: d) p:",l; n:",,100; a) x:",3; b) s:",o; i:=l; .1:"'1; c) s:=l;
y:;-;:5; if x<2 then x:o::x*2; y:"'y+3; writeln{x+y);

Izlaganje 0 iskazima ponavljanja zavrsicemo primjerom minijaturne igrice "Pogadanje broja". R~cunar ce da zamisli jedan broj od 1 do 1000, a vi treba da ga pogodite. Prj svakom pokusaju racunar nam govorl_da Ii je zamisljeni broi veel iii manji od unijetog broJ,,L Nakan otkrivanja broja, racunar lspisuje u koliko ste pbkusaja otkrili zamisljen] braj. U ovom programu je interesantno analiziratl kako racunar "zamislja" bra). Za tu svrhu iskoristena je predefinirana funkcija random, koja kao rezultat vraca s!ucajni broi U opsegu od a do x - 1, gdje je x argument funkcije random, Da bi se UOpee omogu6ilo generiranje slucajnih brojeva, potrebno je prethodno naredbom randomize aktivirati generator slucajnih brojeva:
program PogadjanjeBroja (input, output);

var ZamisljeniBroj, Broj, Brojpokusaja

integer;

repeat s:=s+i*.1; i:=i+l; .1:=j*2 until i*.1>"'100; w.t'iteln{s) i

for i =3 downto 1 do for .1: ",2 to 4 do

s:=-s*i+j;
8:"'1 div 2;

while n> 1 do begin n:=n-p; p:=p~-2


~..nd;

writeln(s) ;

writeln{n);

begin randomize; ZamisljeniBl"oj :'" 1 + random (1000); BrojPokusaja :'" 0; write]n ('Zami,sllo sam broj od 1 do 1000. Pokusaj ga pogoditi.. .. ');

repeat
readln (Broj); BrojPokusaja : = BrojPokusa.ia + 1; i f ZamisljenJ:Broj < Braj then writeln ('l1oj broj je manj].,.') else if ZamisljeniBroj > Broj then writeln (' Mo:j broj j e veCi. ') until Zamis]jeniBroj '" Broj! write.Ln ('Bravo, pogodio si iz BrojPokusaja, end.

' pokusajal ')

Naredba randomize i funkcija random doduse ne postoje u izvornom Pascalu, ali su zastupljene u svim modernijim verzijama Pascala kaje se danas ko'riste,

.r

Odgovore pravjerite na ra6unaru. Oprez: u primjeru a) odgovor nije one sto eete vjerovatno pomisHti u plVom trenutku! 6. Napisite program koji za broj unesen sa tastature ispituje da Ii je prirodan broj ill nije, a ukoliko jeste prirodan, da Ii je paran iii nije. Uputa: braj je prirodan ukoliko je veei od nu!e i ukoliko je jednak svom djelom dijelu. Za odredivanje ciialog dijela moze se koristiti funkcija trune. Braj je paran ukoliko je ostatak dijeljenja sa 2 jednak nu!i. 7, Dvije firme nude usluge priklju6enja na Internet, pri 6emu prva firma traii fiksnu pretplatu od 10 KM plus 50 teninga po svakom potrosenom satu, dak druga firma ne traii fiksnu pretp!atu, ali trazi 80 feninga po svakom potrosenom satu. Napisite program koji ad korisnika trazi da unese zeljenl broj sati a nakon toga da mu preporuci koja je firma isplatnija za njegove potrebe. 8. Naplsite program koji ispisuje sve brojeve od 300 do 60 unazad u koraku po 3, Pri ispisu, brojeve treba razdvojiti jednim razmakom. Uputa: koristite iskaz while. 9. Napisite program koji trail da se sa tastature unese deset brojeva, a nakon toga ispisuje najveei i najmanji ad unesenih brojeva. Uputa: koristite for iskaz i ideje iz poglavlja 3.2. 10. NapiSite program koji trazi da se sa tastature unesu cijeli brojevi min, a zatim iscrtava na ekranu pravougaonik sastavljen od zvjezdica cija je sirina m a vislna n zvjezdica. Upula: koristite jedan for- iskaz koji iscrtava jedan red zvjezdica unutar drugog for iskaza. 11. Napisite program koji na ekranu ispisuje tablicu mnotenja za brojeve od 1 do 10 u vidu tablice brojeva farmata 10 10. Uputa: koristite dvostruku for petlju (kao u prethodnom zadatku) i 10rmatirani izlaz za podesavanje zeljene sirine ispisa svakog polja. 12. Napisite program koji trazi da se sa tastature unese 10 brojeva, a koji zatim ispisuje da Ii su svi uneseni brojevi bili pozitivni iii nisu. Uputa: postavite na pocetku neku logicku promjenljivu na truer. a zatim unutar for petlje uci1avajte brojeve. Ukoliko se ucita negativan broj iii 0, odmah . postavite tu logicku promjenljivu na false. Ukoliko je njena vrijednost ostala true nakon izvrsene petlje, to je siguran znak da ni jedan od unesenih brojeva nije bio negatlvan nit! nula. 13. Napis"ite program koji za broj unesen sa tastature ispituje da Ii je prost iii nije. Uputa: aznacimo posmatrani broj sa N. Ako je N djeljiv makar sa jednim brojem iz opsega od 2 do N-1 (zapravo, dovoljno je ispitivati samo do kvadratnog korijena iz N - razmislite zasto), tada on nije prost broj. Dalje koristite ideju lZ prethodnog zadatka.

316

317

3.9 SLOZENE STRUKTURE PODATAKA


3.9.1 Jednodimenzionalni nizovi
Tipoyl podataka poput integer, real i char dozvoljavaju nam predstavljanje pojedinacnih vrijednosti. Na primjer, u jednu promjenljivu tlpa integer mazema zapamtiti jednu ocjenu za jednog ucenika. Medutim pri rjesavanju stvarnih problema, cesto trebamo zapamtiti cijelu skupinu vrijednos~ ti koje su sve i$tog tipa, na primjer Dejene Jz svih predmeta za jednog ucenika, iii Dejene iz jednog predmeta za sve ucenike u razredu (problem pamcenja oejena iz 8vih predmeta za sve ucenike u razredu razmotricemo malo kasnije). U jeziku Pascal, takve skupine vrijednosti mazema predstavlti pomo6u jednodimenzionalnih nizova. Promjenljive koje su nizovnog tipa imaju osobinu da je svaki element niza kojeg predstavljaju takoder sam za sebe promjen!jiva, odredena svojim indeksom. lndeksi elemenata niza zadaju se u uglastim zagradama. Tako, na primjer, ukoliko imamo promjenljivu Ocj ene koja je lipa "niz ejelobrojnih vrijednosti", tada se pojedinacni elementi tog niza nazivaju Dcj ene [11, Ocjene [2], itd. Ovi pojedinacni elementi ponasaju se kao zasebne promjenljive cjelobrojnog tipa, jer promjenljiva Dcjene predstav!ja niz cjelobrojnih vrijednosti. Jednodimenzionalni nizovi spadaju u korisnicki definirane tipove. 8toga se ani deklariraju pomocu naredbe type, ito na sljedeCi !latin:
type ImeTipa "" array [Opseglndek.w] of TipElemenala

Perinepcjene SafetoveOcje.ne

1 2 3 4 5 6 7 8 9 101112

Pojedinim clanovima ovih nizova pristupamo preko odgovarajucih indeksa (na primjer, PerineDcjene [3J, SafetoveOcje.ne [7), itd.). Promjenljive nizovnog tipa mogu se deklarirati j neposredno, bez prethodnog uvodenja nizovneg tipa, kao u sljedecem primjeru:
va!.'

Pel"ineOcjene, SafetoveOcjene : array [1

1.2 J

of integer;

Ipak, ovakve deklaraCije se, zbog smanjene preglednosti, ne preporucuju. Vaino je napomenuti da, prilikom upotrebe nizovnih promjenljivih, indeks ne mora biti konstanta, n6go moze biti bile koji cjelobrajni izraz. Upravo ova osoblna daje nizovnim promjenljivim veliku upotrebnu vrijednost, jer se na taj nacin moze iskoristlti for iskaz da obavimo neku operaciju nad svim elementlma niza. Na primjer, ukolike zelimo da svih 12 elemenata nizovne promjenljive perineOc.'iene postavimo na vrijednost 4, to mozemo uciniti sljedecim iskazom (uz pretpostavku da je prethodno promjenljiva i ispravno deklarirana kao ejelobrojna promjenljiva):
for i :'" 1. to 12 do PerineOcjene [il :'" 4;

Ovdje je ImeTipa ime koje dajerno novom tipu, Opseglndcksa je opseg u kojem se mogu kretati indeksi i zadaje se kao pri definiranju intervalnag tipa, dok je TipElemcnata tip pojedinacnih sleme~ nata niza. Na primjer, sljedeca deklaracija definira novi tip nazvan NizOcjena, koji opisuje tip niza koji moze prihvatiti 12 oejena (odnosno, 12 eijeHh brojeva):
type NizOcjena '" array [1
12] of integer;

Moguce je jednu nizovnu promjenljivu dodijsHti drugoj, pod uvjetom da su istog tipa. Taka je, na primjer, pridruzivanje
safetoveOcjene ::= PerineOCjene;

Opseg indeksa 1 .. 12 govori da su granice u kojima ~e maze kretati indeks niza u opsegu od 1 do 12. Donia granica je najeesce 1, all ne mora uvijek da bude. Alternativno, opseg indeksa moie biti i ime nekog intervalnog tipa, taka da smo mogli pisati i sljede6u deklaraciju:
type Opseg =- 1 .. 12; NizOcjena = array [Opseg] of integer;

sasvim korei<tno, i njime se svi elementi (oejene) iz niza PerineOcjene prenose U odgovaraju-6e elemente niza SafetoveOcjene. 8ve druge aperacije sa nizovima moraju se obavljati iskljuCivo nad pojedinacnim elementima, tako da iskazi poput
readln (SafetoveOcjene); write (PerincOc.jene); PerincOcjene :'" 3;

Vazno je naglasiti da deklaracija nizova samo uvodi novi tip, ne kreirajuCi pri tome ni jedan primje rak promjenljive tog tipa sa kojom mazemo obavljati neke konkretne operaeije. Da bismo zaista deklarirali neku konkretnu promjenljivu (npr. Ocj ene) koja i.e tipa "niz ad 12 oejena", moramo dodati deklaraciju: . .
M

nemaju nikakvog smisla u Pascalu, za razliku ad korektnih iskaza


readln (SafetoveOcjene [3J) i write (PerineOcjene [i + 2J); PerineOcjene [7J : '" 3;

var OcjeJIe

NizOcjena;

Upotrebu nizova ilustrira sljedeCi program, koji trazl ad korisnika da unese.1 0 brojeva,-..Cf zatim--' . ,'ih ispisuje u obrnutom redoslijedu: .,var perineOcjene, Safetoveocjene : lfizOCjena;.
program ObrnutiN.iz (input, output);
canst Nco 1.0;

Ova deklaracija definira dvije promjenijiv8, Pel.:illeOcjEme i. ~afetoveOciene,od kojih svaka predstavlja niz od 12 elemenata kojima se mote lndividualno" prlstupati:
318

type NizBrojeva

array [1 .. N] of integer;

319 .

var BroJevi : NizBrojeva; i : integer;


begin write1n (' Trebate unijeti for i :"" 1 to N do begin write (i, broj:'); readln (Brojevi [.i]);
end,
N,' brojeva.');

Za definiranje opsega indeksa u nizovima, mogu se koristiti ne samo cjelobrojne vrijednosti, ne90 i bilo kOje vrijednosti ordinalnog tjpa (npr. znakovne, pobrojane ltd.). cak se i eile!] pobrojani tip moze iskoristiti za definiranje opsega lndeksa. Na primjer, pretpostavimo da imamo s!jedece deklaracije:
type RadniDan '" (P011edjeljak, Utorak, Srijeda, Cetvrtak, Petak); Niz ~ array [RadniDan] of real;
Val:'

Dohodak

Niz;

write1n ('Uneseni hrojevi U obrnutom poretlcu glase: '); for i ::= N-downto ]. do write1n (Brojevi [i]) end.

Ovim je kreirana promjenljiva Dohodak nizavnog tipa kOja je sastavl)ena ad 5 realnih elemenata:
Dohodak [Ponedjeljakl, Dohodak [Utorakj, Dohodak [SdjedaJ, Dohodak [CetvrtakJ i Dohodak [Petak]. Ova promjenljiva moze, na primjer, pamtiti dohodak po danima ~oji je neko preduze6e ostvaril0 u taku jedne sedmiee, Ako pretpostavimo da je deklarirana promjenljiva Dan tipa RadniDan, tada se iskazom poput
for Dan :'" Ponedjeljak to Petak do nohodak [Dan] := 0;

U ovom programu smo upotrijebili imenovanu konstantu N za definiranje broja elemenata niza, tako da je, ukoliko zelimo da proniijenimo broj elemenata, izmjenu dovoljno izvrsiti na jednom mjestu. Ovdje se, medutim, postavlja pitanje sta raditi ukoHko ne znamo unaprijed braj elemenata. Za razliku od BASIC-a, ovaj problem u veCini izvedbi Pascala nije najbolje rijesen, posta gornja j danja graniea u opsegu indeksa moraju biti konstante, a ne promjenljive. Jedino rjesenje koje predvida standardni Pascal ie da za niz predvidimo prostor koj! moze primiti barem onalike elemenata koHke iznosi bra) elemenata u najgorem slucaju, a zatim da koristlmo same onolike elemenata koliko nam treba, pri cemu ostale elemente estavljamo neiskoristene. Ova ideja je upotrijebljena u sljedecem programu, ko)i je sli6an prethodnom, osim sto se ieljeni bra) elemenata niza unosi sa tastature:
program Obrnut.iNiz (input, output);

svi clanovi niza Dohodak postavljaju na nulu. Upotreba pobrojanih tipova za indeksiranje 61anova niza cin! program laksim za razumijevanje, jer se na taj nacin uspostavlja mnogo prirodniji model za predstavljanje pojmova iz stvarnog zivota, Moderne verzije Pascala koje posjeduju stringovni tip, stringovne promjenljive tretiraju slleno kao nizove Giji su elementl znakovi (tj. kao array... of char). Reeimo, ukoliko je Ime neka stringovna promjenljiva, tada je pojedinim znakovlma unutar tog imena mogude pristupati pomodu uglastih zagrada, na primjer Ime [11, Ime [2 J , itd. Ipak, za razliku od obicnih nlzova znakova, sa stringovnim promjenljivim su dopustene mnoge operacije kaje se ne mogu primjenjivati na obiCnim nizQvima. Taka je, na primjer, moguce eljeli niz znakova sa tastature procitati jednom readln naredbom u stringovnu promjenljtvu, sto nije mogu6e sa obicnim nizovnim promjenljivim. Ovo ilustrira sljedeGi program koji prva ucitava korisnikovo ime sa tastature, a zatim ga ispisuje naopako (znak po znak):
program IzvrtanjeImen3 (input, output); var Ime string i integer;

canst

MaxN = 1000; =

type NizBrojeva

array [1

Maxw1 of integer;

var Brojev.i : NizBr-ojeva; N,.i integer j begin write ('Koliko ::'.elite unijeti brojeva? '); readln for i : "- 1 to N do begin write (i, broj:'); readln (Brojevi [ill;
(N);

end;
writeln ('Uneseni brojevi for .i :'" N downto 1 do writeln (Brojevi til) end.
\l

obrnutom poretku glase:');

begin write ('Unesite svoje ime: ') j readln (Ime) i write ('Vase irne izgovoreno naopako gla5i; '); for i :'" length (Tme) do..mto 1. do write (lme UJ)

end.

U ovom programu smo predvidjeli da se moze unijeti najvise 1000 brojeva (sto je lako izmijEmiti promjenom vrijednosti imerlOvane konstante MaxN), Mana ovakvog rjesenja~je sto se .nepotrebno.-. zauzima vise memorije nego sto nam zaista treba Ger se rezervira prostor i za elemente koji se De koriste). Naialost, u ve6in! izvedbi Pascala, ovaj problem ne moze se jednostavno otkloniti. . Nizove treba koristiti samo u slucajevima kada neki problem ne mot.ema rijesiti bez potrebe ZEt memoriranjem eijelog mnostva.vrijednosti. Na primjer, ukoliko je potrebno sabrati 100 brojeva koji se unose sa tastature, nUe neophodno smjestati te elemente u niz, jer, kao sio sma vee vidje!i, 'ova:j" problem maze se rijesiti prostim nadodavanjem svakog unesenog elementa na teku6u sumu, bet potrebe za pam6enjem svih unesenih elemenata. . .
320

U ovom programu iskoristena je predefinlrana funkeija length, koja postojl u modernijim verzijama PCjscala, a koja vra6a stvarni broj znakova u stringovnom izrazu koji je proslijeden kao parametar.

3.9.2 Visedimenzionalni nizovi


Jednodimenzionalni nlzovi pogodni su za predstavljanje podataka koji se mogu urediti u neki s1i~ jed, poput troskova neke fabrike po mjeseeima za jednu godinu. Medutim, postoje situacije kada jednodimenzionalnr nizovi nisu pogadnL Na primjer, vee smo rek!! da je pomocu jednodimenzionalnih oejena lako zapamtiti oejene iz svih predmeta za jednog ucenika, iii oejene iz jednog predmeta
321

za sve ucenike urazredu. Ovi podaci mogu se zamisliti kaa jedan red iii jedna kalona tabele, eiji redovi predstavljaju ucenike, a kalone predmete (slicnu tabelu predstavlja skalski dnevnik). Sta ukoliko je, medutim, potrebno zapamtlti podatke 0 ocjenama iz svih predmeta za sve ucenike (tj. ukoliko je potrebno zapamtitl citavu tabelu)? Srecom, Pascal dozvoljava da elementi nizova budu bilo kojeg tipa, ukiju6ujuc; j same nizove. To nam omogucava da kreiranio visedimenzionalne nizove kao nizove nizova. Posebno uobieajeni su dvodimenzjonalni nizovi (koji se jos nazivaju i matrice), koji se cesto koriste za predstavljanje tabela podataka sa vise redova i vise kolona. Na primjer, pretpostavimo da imamo sljedece deklaracije:
type ,Red Tabela
~
=;

Prvi opseg indeksa odnosi se na dozvoljeni opseg indeksa redova, a drugi opseg indeksa na dozvo. Ijen! opseg indeksa kolona. Treba napomenuti da se svaki red dvodimenzionalnog niza sam za sebe ponasa kao jednodimenzionalni niz. Taka, na primjer, mozemo izvrsiti naredbu
Tab [2J :'-' l'ab [5];

da iskopiramo citav peti red promjenljive Tab

drugi red.

array [1 array [1

5) of integl':)r i 4J of Roo;

U ovom primjeru smo prvo definirali tip Red koji opisuje niz koji moze prihvatiti 5 cijelih brojeva (reeimo, jedan red tabele), a zatim tip Tabela koji oplsuje niz koji moze prihvatiti 4 reda (odnosno, tabelu koja maze prihvatiti 4 reda i 5 kolona). Napomenimo da sma ovim samo definirali novi tip, ali ne i konkretan primjerak promjenljive tog tipa sa kojom mozemo obavljatl neke operacije. Meautim, ukaliko nakon ovih deklaracija deklariramo i neku promjenljivu (npr. Tab) tipa Tabela pomocu deklaraclje
var Tab : Tabela;

Rad sa dvodimenzionalnim nizovima Hustriraeemo programom ko]i Irazi da se unesu ocjene za grupu u6enika iz nekoliko predmeta, a ko]i zatim ra6una i ispisuje prosjecnu ocjenu za svakog ueenika posebno. Za tu svrhu definirali smo tip Tabela i promjenljivu Dnevnik tipa Tabela, eiF redov! predstavljaju ucenike, a kolone predmete. Program demonstrira tipican nacin manipulacije sa dvodimenzionalnim nizovima, u kojem se kariste ugnjezdene for petrie (ti. jedna for petlja unutar druge). Unutrasnja petlja brojl kolone niza, a vanjska petlja broji redove.
program P.rosjeci (input, output);

const BrojUcenika = 3 i
Broj PredmetGl '" 4;

[}zmite maLi broj ucen __ika i predmeta da skJ:"aLite { lmos podataka pri, testiranju programiJ }

type opsegOcjena = 1 l'abela = array [1 var Dnevnik : J"abeJ.ai

5,
BrojUcenika, 1 BrojPredmetaJ of OpsegOcjenai

tada promjenljiva Tab predstavlja jednu konkretnu tabelu sa 4 re,da i 5 kolona. Redovi ove tabele nazivajuse Tab [1J, Tab [2], Tab [3J i Tab [4].Kakosu,poredtoga,redoviovetabe!e sami po sebi jednodimenzionalni nlzov] (tipa Red), to pojedninacnim elementima svakog reda motemo pristupiti navodenjem jos iednog indeksa. Na primjer, pojedinaeni elementi treceg reda tabele Tab glase Tab [3J [1], Tab [3) [2], Tab [3J [31 i Tab [3] [41. Ovo je ilustrirano sljedeeom sHkor)l, na kojaj je red Ta.b [3J osjencen, a pojedinaeni element Tab [3J [2J dvostruko osjeneen:
Tab

[Jcenik, Predmet, SumaOcjena

integer;

begin

for Uceuik : '" 1 to BrojUcenika do for Predmet : = 1 to BrojPredmeta do


begin wLite ('Unesit,e ocjenu i2 predmeta Ucenik, '. ueenika: '); readln (Dnevnik [Ucenik, Preamet]) end, for Ucenik := 1. to .BrojUcenika do
PredInet, '. za

2
3

begin

. 'I
1

indeks reda

indcks
5 ""--koione

<",1

".J

write (' Pt'Osjek " Ucenik, ucenika: '); SwnaOcjena ! '" 0; for Predmet : '" 1 to Broj Predmel~a do SumaOcjena : = SumaOcjena + DnevIl.ik [Ucenik, P.redmetJ i writeln (SlllnaOcjena / .B.cojPredmeta : 0 2) end

end.

Umjesto navodenja indeksa u dva odvojena para uglastih zagrada (sto ie, na primjer, u jezieima C, c++ j Java obavezna), Pascal doputa i navodenje oba indeksa unutar istog para uglastih zagrada. Na primjer, umjesto Tab {3] [2J, dozvoljeno je pisati -Tab [3! 2], ~ jeziku Pascal, ovakav nacin obilje,zavanja se mnogo cesce susrece ad prethodnog. Tako, generalno, eiementima dvodimenzional_nih nizava pristupamo preko dva indeksa razdvojena zarezima - indeksa reda i indeksa kolone. Pascal takoder omogueava da se dvodimenzionalni nlzovi definiraju navodenjem dva opsega indeksa, bez prethodnog definiranja posebnog tipa ko]i predstavlja pojedinacne redove tabele. Tako sma, na primjer, tip 'I'abela mogli deklarirati i pom06u samo jedne deklaracije poput:
type Tabela '" array [1
4, 1
5]

Analogno dvodimenzionalnim nizovima, postoje i trodimenzionalni, cetverodimenzionalni i opeenifo visedimenzionalni nizovi, prj cemu se rijetko kariste vise od 3 dimenzije. Na primjer, ukoliko,imamo"skolu sa 1Q,odjeljenja, u kojoj u svakam adjeljenju ima po 36 ucenika, a svakl ucenik ima 12 -pr~dmeta, i}1o}.~mo definiratLsljedeei tip, koji predstavlja trodimenzionalni niz:
type "kkp~ :::-,_-a.r:ray: [1... 10, ~ ,. 36, 1 .. 12] of int.ege:r;

Promj~n!jijr~.6'v,"(;g~-ii~_a_-rJ(jstu-pa st;J sa tri indeksa. Prvi indeks predstavlja broj odjeljenja, drugi broj predstav!ja rednt:Oroj ueenika' unuta-r izabranog odjeljenja, a treei indeks predstavlja redni broj predmeta ?:a -iiab~iDo9 !Jcenik-a.

of real;

322

323

3.9.3 Slogovi
Nizavi se u Pascalu koriste za smjestanje skupine podataka od kojih su svi J'stag tjpa (na primjer, popis Dejena za nekog ucenika iii grupu ucenika). U prakticnim problemima se cesto pojavljuje i situaclJa kada treba Guvatt skupinu povezanih podataka razli6itog t{pa, na primjer, lme (sa prezimenom), odjeljenje, platn] bra] i Iznos plate nekog radnik8. Struktura podataka koja moze Guvati takvu skupinu raznovrsnih podataka naziva se slog ill zapis. Kada zelimo da kotistimo slogove u Pascal programu, prvo je potreb. no da deklariramo odgovaraju6i slogovni tip pomo6u kljucne rijed record. Iza ave kljucne rijeei sHjedi popis- dekJaracija promjenljivih koje saeinjavaju slog. Deklaraciju slogovnog lipa zavrsav8 kljucna rijee end. Na primjer, sljede6a deklaracfja uvodi slogovni tip Radnfk koji opisuje radnika u preduze6u:
type Radnik '" record lme, Odjeljenje string [50J PiatniEroj : integer; plata real
end;
i

druge operacije, ukljucujuCi Citanje sa tastature i ispis na ekran, moraju se obavljati iskljucivo nad individualnim poljima unut8r sfogova, Na primjer, nije mogu6e jednim iskazom postaviti sva polja u promjenljivoj Sekretar, vee Je to potrebno uciniti nizom iskaza poput:
Sekretar Sekretar Sekretar Sekretar nne: '" 'Ahmed HodZic' i Odjeljenje .~. 'Harketing'; P.tatniBroj:O'O 34; Plata:O'O 530;

Neprestano-navodenje imena slogovne promjenljive moze biti zamorno. Stoga je u Pasca/u uVe" den iskaz_ with, koji omogucava da S6 ime slogovne promjenljive navade samo jedanput, a da se nakon toga navode samo imena polja unutar sloga. Ovaj iskaz ima obllk wi th SlogovnaPromjl'n(jiva do Narcdba Iskaz Nnredba je gotovo uvijek slozen] iskaz, j predstavlja iskaz unutar kojeg se podrazumijeva prist" up poljima naznacene slogovne promjenljive bez navodenja njenog imena. Taka je prethodni primjer moguce preglednije napisati na sljedeci naCin:
with 8ekretar do begin Ime :~ 'Ahmed Hodzic'; Odjeljenje := 'Marketing'; PlatniBroj ;= 34; Plata 530 end;

Promjenljive lme, Odjeljenje, P.IatniBroj i Plata deklarirane unutar deklaracije sloga, nazivaju se polja sloga (iii atributi sloga). U ovoj deklaraciji, za deklariranje polja Ime i Odjeljenje upotrijebljen je tip string koji, doduse, ne posto)i u standardnom Pascalu, ali ga prakticno sve moderne verzije jezika Pasca/prihvataju. !za kljuene rijeei string moze se u uglas" toj zagradi navesti maksimalni bro] znakova koje odgovarajuca promjenljiva maze prihvatiti (u nasem slucaju 50, 5tO je sasvim dovoljno). Na taj nacin se stedi memorija, jer racunar ne zauzima vise prostora nego sto je zalsta neophodno za pamcenje odgovarajuce promjenljive. Slicno kao pri deklaraciji nlzovnih tipova, deklaracija slogovnog tipa samo opisuje odgovarajucl tip, ne definlrajuCi prj tome konkretne primjerke tog tipa. Tako, na primjer, tip Radnik samo opisu je koja karakteristicna svojstva (atribute) posjeduje bilo koji radnik. Tek nakon sio deklariramo odgovaraju6e promjenljive slogovnog tipa, na primjer,
var Sekretar, Sluzbe.nik, Monter, Portir

U prakticnim problemima, najcesce S8 javlja potreba za obradom ne 8amo jednog 810ga, nego Citave skupine slogova (npr. svih radnika u preduzecu, svih ucenika u razredu, itd.). Za opisivanje takvih podataka, mozemo koristlti nizove s/ogova, odnosno nizove ciji je svakf element t/pa slog. Na primjer, sljedece deklaracije nam omogucavaju da na prfrodan nacin predstavimo fedno preduzece:
const BrojRadnika '" 30;

Radnik;
type Radnik '" record lme, Odjeijenje string [50]; PlatniBroj : integer; Plata : real end; Preduzecc ~ array [1 BrojRadnika] of -Radnik;

imamo konkretne promjenljive Sekretar, Sluzbenik, Monter i Portir tipa Radnik sa kojima motemo manipulirati u programu. Pojedinacna polja unutar slogovnih promjenljivih ponasaju se kao samostalne promjenljive odgavaraju6eg tipa. Njima se prlstupa tako sto prvo navedemo lme slogovne promjenljive, zatim znak tacka (.) i, konaeno, ime polja unutar slagovne promJenljive. Na primjer, sljedeCi iskazi su korektni:
Sekretar 8ekretax
Ime;,~'

vax Radnici : Predllzece;


Ahmed Hodzic'
i

Plata ~ 530 i Sluzbenik 1me: '" '.Qnigan Kovacevic' writeln. {~gekr.fi:tar. '. plaLa) i r'eadln. "( Portir. .Ime);

Portir . ".Pl at)(

Sekr?tar

P.lata - 100;

Elementima nlzavne promjenljive Radnici pris1upa S9 na uoblc'ajen naein preko indeksa. Kako je svaki element ovog niza slogovnog tipa, za pristup' indlvldualnim poljima elemenata niza potrebno je pored indeksa koristiti i ime polja. Tako, na p'rimLer,:'uko!~o.te!imonavestj da se jedanaesti radnik zove Petar Andric, mozemo koristiti sljedecu 'dbdjetu:
Radrdd [11]
. Ime ; = 'Petclr Andri,c!;

Bilo Na primjer; dazvoljeno je_p'.i,s~li~


- Monte-r~ ":0.> Slu!illenik;

k~ja s!~o;m(ijt6rnj~n,i'tva :mot-e ~e_ citava dadijeliti drugoj slogovnoj promjenljivoj istog tipa.

Na ovaj."naein ~-e sV.a po~ajz-pr6mjenljive sluzbenik prepisuju u odgovarajuca polja promjenljive Monter. OV9je ujednQ ijedina. operacija koja se moze obavljati nad slogovima kao cjelinama. Sve

Polja unutar slogova mogu i sama biti sloz~nog o'ninibgi~ biti ni;~vn-og, pa cak i ponovo s!o~ govnog tipa. Tako, kombinirajuCi nlzove i slogove, m()z!rry~:sa:gra_ditl vr16 stozene strukture podataka koje susrecemo u problemima.lz realnog ii-voia. Na-prlnijer,-za-misllmo-da zelimo opisati jedan razred u skolL Razred se sastaji od ucenika-, a sva~l-,ueenlkopiSan je-imenom, prezimenom, datumom rodenja, spiskom ocjena, prosjekom i informacijom _-da JJ--je ucenik prosao iii nije. Spisak oejena pred~ stav!ja niz cijelih brojeva u ~psegu od 1 do 5, 90k se datUrri rodenja sastoji ad tri cje!ine: dana, mjese-

tip-a:-

324

325

ca i godine rodenja, koji su eijeli brojevi (u odgovarajucem opsegu). 8toga je najprirodnije definirati tip
Razred kao niz od nekoliko (reeimo 30) slogova tipa Ucenik, koji opisuju jednog ucenika. 8vaki slog ucenik sastoji se ad palja Ime, Prezime, DatumRodjenja, Oejene, Prosjek i Prolaz. Palja 1me i Prezime SU ocigledno tipa string, polje prosjek je realnog tipa, a polje Prolaz logickog tipa. Polje Ocj ene cemo definirati da bude tipa NizOcjena, ko]] opisuje niz koj] moze prihvatiti nekoliko (reeimo, 12) cijeJih brojeva U opsegu od 1 do 5, dok cemo polje DatUmRodjenja definirati da bude tipa Datum, pri 6emu'je Datum ponova slogovni tip koji se sastoji od tri polja: Dan, Mj esee i Godina. Na osnovu provedene analize mozemo napisati sljedece deklaracije:
const BrojUcenika ~ 3D, BrojPredmeta '" 12; type Opsegocjena '" 1 .. 5;
NizOcjena array [1 .. BrojPredmetal of OpsegOcjenai Datum '" record Dan 1 .. 31; Mjesec 1 12, Godina : integer end, Ueenik '" record Tille, Prezillie : string [20]; DatumRodjenja Datulll; Dejene NizOcjena; prosjek : n:al, Prolaz Boolean end; Razred '" array [1 BrojUcenika] of Ucen.ik;

Ucenik Janko Jankol'ic, roden 22.5.1989. mora poU(U'ljati razred


za one u6enike koji ~isu prosli. Program je nesto slozeniji od programa koje smo dosada razmatrali, medutim rad sa iDle slozenijim strukturama podataka nije mogu6e adekvatno ilustrirati kratkim i suvise jednos.tavnim programima:
program Oln-adaUcenika const BrojUcenika '" 3 i Broj Predmeta '" 4.; type OpsegOcjena '" 1 NizQcjena '" array [1 Datum eo record Dan 1 31; Mjesec 12, Godina integer 5,
BrojPredmeta] of OpsegOcjena,

(input, output);
Uzmite maH broj ucenika .i predllieta da skratite ( unos podataka p:d testiranju proqra,ma }

end;
r}cenik '" record lme, Prezime string [20J; DatumRodjenja Datum; Ocjene NizOcjena; Prosjek : rcal; Pro]az Boolean

end;
Razred '" array [1

.. BrojUcenikaJ of ucenik;
SumaOcjena

vaT ucenici
RedniBroj,

Razred;
Predme!:,

integer;

var [Tcenici

Razred;

begin
for RedniBroj : '" :1 to BrojUcenika do

Primijetimo da smo PIVO definirali tipove NizOcjena i Datum, a tek onda tip Ucenik kaji koristi ove tipove. Pascal, osim u rijetkim izuzeeima (koje necemo navoditi), ne dozvoljava koristenJe bilo kojeg pojma ko]i nUe bio prethodna definiran. POjedinim- dijeJovima ovakve slozene strukture pristupamo kombinacijom indeksa i imena po!ja na sasvim logi6an nacin. Na primjer, ukoliko treba postaviti godinu rodenja treceg u6enika na 1988, i devetu ocjenu istog ucenika na 4, mazema pisa!]:
with Ucenici [3J do

begin
writeln ('Une8ite podatke za " with Ucen.lc.i lRedniBroj] do
RedniBroj,

ucenika: ' ) ;

begin
write ('Ime: '); readln (lme); h'rite ('PrBzime: '); readln (Prezime); with DatwlIRodjenja do

begin
write ('Dan rodenja: '); readln (08n); write ('MJ'csec rodenJ'a: '); readln (/1jesec); write ('Godina rodenja: '); n:adln (God.ina) end; for Predrnet. 1 to BrojPrcameta do

begin
DatumRodjenja Godina::o. 1.988; OcjefJe [9J := 4

end;

. begin
write ('Ocjena iz ',Predmet, readln (Ocjene [PredInetJ) "end" predmeta:
'J;

iii, alternativno, neposredno bez iskaza wi th:


end
Ueeniei ueen.iei

[3J [31

DatumRodjenja
Ocjene [9)
:= 4;

Godina:'" 1988;

. _ for"f?edrliB;t:Qj :'" 1 to BrojUcenika do _-~iJ:;-l:t- uce~licr [Redn_lBroj) do


ehd~

Rad sa slogovima ilustriracemo programom ko]! PIVO zahtijeva unos osnovnih podataka 0 svim -uc"enieima u razredu, zatim racuna prosjek i utvrduje prolaznost za svakog ucenika, i na kraju, prikazuje na ekranu izvjestaj 0 svim ucenicima u razredu. Izvjestaj se sastoji od recenica poput
Ucenik Marko Mal'kol-'u, roden 17.3.1989. ima pro~;ek 3.89

begj.n:~uma08jena :'" 0; Prola~: :'" true; for' Predmet : = 1 to BrojPl"cdlneta do

begin . if Oc j ene [Predmet J '" 1 then


Ero]az ._ false; SumdOcjeIJa := SwnaOcjena + Ocjene -end;
[Predmetl

za one uenike koji su prosli, iii recenica poput


326

327

pJ:'Osjek .- SumaOcjena / BrojPredmeta

end; vnitelni

Kako je rezultat koji vraca operator in logickog tipa (true ukoliko navedeni element pripada nave~ denom skupu a false u suprotnom), on se maze koristiti unutar i f Hi while iskaza. Na primjer:
if Znak in '['A','E','I','O','U'l then writeln ('Razmatrani znak je samoglasnik ... ');

'for Redn.iBroj := 1 to BrojUcenika do with Ucenici [RedniBro.i] do begin


write ('lJcenik "
1me, Prezime,

,'rodeo

')i

with DatumRodjenja do write (Dan, '.', Mjesec, '.', Godina, , '); if Pro1a2 then writeln ('ima prosjek Prosjek 0: 2)
else writeln ('mo:ra ponavljat'i razred')

Ovakav iskaz je mnogo kraci i pregledniji od ekvivalentnog iskaza koji ne koristi skupove:
if (?,nak '" 'A') or {Zrlak'" 'E'} or: (Znak '" 'I') or (Znak '" '0') or (Znak ",' 'U') then writeln ('Razmatrani znak je samoglasnik ... ');

end
end.

Mada je ova] program oSjetno duzi od do sada razmotrenih programa, trud koji je neophodno uloziti za njegovu analizu visestruko se lsplati, jer je kroz njega ilustriran nacin na koji se trebaju pisati dobri program] koji obraduju slozene strukture podataka.

Ako se isti skup koristi vise nego jedanput, iii aka nam je potreban skup Ciji se ClanDvi mogu miJenjati, tada je potrebno definirati skupovni tip, zajedno sa skupovnim promjenlji'vim tog tipa. Skupovni tip se definira ad baznog tipa (to je tip elemenata skupa), koji maze biti pobrojani tip, znakovni tip, logickl tip, intervaln\ tip manjeg opsega izveden iz cjelobrojnog tipa, iii bilo koji intervalni tip izveden iz gore navedenih tipova. Primjeri ispravnih baznih tipova (pored ugradenih tipova char i Boolean) su:
type Mjeseci "'- (Januar, Febmar, Mart, April, Maj, Juni, Juli, August,
Septembar, Qktabar, NovembaJ:, Decembar); OpsegBodova :00 0 100; VelikaSlova '" 'A' MalaSlova '" 'a' , Z' ;
'Z'i

3.9.4 Skupovi
Za razliku od nizova, koji predstavljaju skupine elemenata koji su okarakterizlrani svojom pozicijom (jndeksom), Pascal dopusta i definiranje skupova, koji predstavljaju skuplnu elemenata kod kojih poredak ne igra nika/(vu uJogu. Skupovl se mogu sastojatl od proizvoljnog broja elemenata istog tipa. Skupovi sa konstantnim clanovima, nazvani skupovne konstante, mogu se formirati pomocu spiska elemenata iii opsega elemenata, koji su medusobno razdvojeni zarezom, i uokvireni unutar uglastih zagrada. Elementi mogu bitl konstate bilo kojeg ordinalnog tipa. Slijedi primjer nekoliko ispravnih skupovnih konstanti:
['1\', 'E',

Iz baznih tipova izvode S8 skupovni tipov! pom06u kljucne rijeci set, nakon koje slijedi kllu6na rijec of i Ime baznog tipa IZ kojeg se izvodi skupovni tip. Slljedi primjer nekoliko ispravnih definicija skupovnog tipa (koje su ispravne pod uvjetom da su prethodno deklarirani i gore navedeni tipovi):
type SkupMjesec,i .'" set of Mjesed; SJ...'l1pBodova '" set of OpsegBodova; SkllpZnakova = set of char; SkupVelikihSlova ~ set of VelikaSJO'Ja; SkupMalihSlova set of MalaSlova;

'I',
J

'0',

'U']

[0

9J

[' 0'
['A'
[0

'9'

'Z',
100]

'a'

'z' ]

[April, ,YUIJi, septemb8:r, Novemba[j

[I

Skllpsmnoglasnika Skup cifara Skup znakova koji predst01'fjoju cifre Skup velikfh i mafih slova Skiff m/cscci koji imaju 30 dana S~:up l110gudh beN/ova no ispitu Skup bez elcmenata (prazan. skup)

Kada smo definirali skupovne tipove, mozemo deklatirati i promjenljive odgovarajuCih tipova, na primjer:
var SviMjeseci, MjeseciSa30DaIJa : SkupMjeseci;
GranicniBodovi : SkupBodova; SvaMa.laSlova SkupMalihSlova; Slovo., Cifre ; SkupZno.kova;

Nazalost, standardni Pascal ne dozvoljava imenovane /(onstante skupovnog tipa, taka da nije moguce napisati nesto poput s!]edeceg:
const.:8kupsamogla"snj,ka_", ['A'

'E',

'I',

'0',

'U'];

Ovim promjenljivim mogu se dodijeliti skupovne konstante cHi e_lement! imaju tip koj! je saglasan sa baznim t!pom iz kojeg je izveden pripadni skupc.iVni tip, na pyimjer:
8viMjeseci :'" [Januar .. Decembar-l; MjeseciSa30Dana :'" [Apx.il, Junii _s~ptemh3j,. l\~011el1'barJ; G:ranicn.iBodov.i :'" [50, 60,_ 70, 80,_ 90J; Cifre ,.,." ['0' '9'],. Slova :'" []; SvaMalaS1.ova :'" ['a' .. 'z'];

Takoder; za- razliku -OQ.-s~upova u -matematici, svi elementi nekog skupa u Pascalu moraju obavezno bitUstog lipa.Taka, ~'p~imer,-slj~deca skupovna konstanta nije ispravna:
[3,:>';' ,

,prfpadnostl,koje.s~

Ubjedljivo najce~a~~-~eraciJa\oja se obavlja sa skupovima u Pascal programima ie tesi'iranje _obavija pom0cu kljucne rljeCi (operatora) in. Ovaj operator spada u loglcke ope~atore, aJ<orisfi se u oblik9__ ~

Element in Skitp
326

Nazalost, zbog nacina kako ,se skupovi intemq reaffziralt,i.u veCini kompaJlera za Pascal, obi6no pastoji ogranicenje na maksimalan broi razliCiti~Y.rijednostrk6e sniije poprimiti bazni tip. Na primjer, u Turbo Pascalu (a i u veCini drugih verzija Pascala): paznLtip izkojeg se .lzvodi skupovnl tip ne smije imati vise od 255 razliCihh vrijednosti. Zbog -toga, defi[licija poput
329

type SkupCijelihBrojeva '" set 0:1: integer;

for Bodovi : '" a to 100 do if BOf1vi in GranicniBodovi then


write(Bodovi);

neee bitl prihvacena. <?va cinjenica znatno ogranicava primjenu skupova u Pascafu. Skupovi u jeziku Pascal posjeduju vecinu svojstava I operacija koje posjeduju skupovi u mate" matiei. Vee sma se upaznali sa operatorom pripadnosti in, a pored njega postoje jos neki opera" tori koji su primjenljivi na skupove. Na pNom mjestu, to su cetiri relaeiona operatora eiji su operan" di skupovi, a rezultat- true ili false, i koji se mogu koristiti za formiranje logickih izraza:

U ovom primjeru pretposiavljena je da postaji i promjenljiva Bodovi tipa OpsegBodova. Jednos!avniji nacin od prikazanog nacina u Pascalu ne postolL Zapravo, da obavrmobilo koju operaciju nad svim clanavima skupa, potrebna je sliena kombinaeija for i if iskaza, pri cemu se u uvjetu i f iskaza javlja operator pripadnostl in. Na primjer, sljeded isjetak programa broji koliko ima elemenata u skupu MjeseciSa31Danom:
Brojac :'" 0; for Mjesec := Januar to Decembar do i f Mjesec in MjeseciSa31Danom then Byojac :~ Brojae + 1;

<>

jednakost skl/pora nejerinakost skupm'a podskufJ nadskufJ

Takoder, postoje tri operatora eiji su operandi skupovi, a rezultat takoder skup:

.,

unija s!rupova presjek skupova razlika skujJova

Nakon sto se izvrse ove naredbe, promjenljiva Brojae (naravno, pod uvjetom da je deklarirana kao cjelobrojna promjenljiva) sadrzavace trazeni broj elemenata skupa. Takoder, za ispravno funkcioniranje gornjeg primjera neophodno je da imamo deklariranu i promjenljlvu Mjesec tipa Mjeseci. Posljednji primjer kojim cemo ilustrirati rad sa skupovlma je kompletan Pascal program za nalazenje svih prostih brojeva u zadanom opsegu brojeva pomoGu algoritma ko]i je poznat pod nazivom "Erastotenovo sito". Na paeetku se PNO formira skup (tzv. "sito") ciji su elementi svi brojevi pacey od broja 2 do najveceg broja koji pripada zadanom apsegu. Zatim se broj 2 prebacuje iz sita u drugi skup, a svi njegovi umnosei se uklanjaju iz slta. Nakon toga se uzima sljedeci braj Iz 5ita i prebaeuje u drugi skup, a Bvi njegovi umnosci se uk!anjaju, Postupak se ponavlja sve dok se sito ne isprazni. Na kraju se stampa skup svih brojeva koji su izdvojeni iz sita i prebaceni u drugi skup. Nije tesko dokazati da su uprava ti brajevi trat:eni prosti brojevi:
program ErastotenovoSito (input, output);

Skupovnim promjenljivim se mogu dodijeliti skupovni Izrazi, korlstenjem gore navedenih skupovnih operatora. Na prlmjer, ako prethodnim deklaracijama dodarno i deklaraciju
var MjeseciSa31Danom : SkupMjeseci;

mazemo pisati sljedeGi iskaz:


MjeseciSa31Danom :'" SviMjesec.i
~

MjeseciSa30Dal1a - {Februarl; { Maksima.lna velie,ina s,kupa u TUri:xJ Pasca.lu i canst Maksimllm '" 255; type BazniOpseg = 0 ,. Maksimllm; SkupBrojeva '" set of BazniOpseg; var Sito, ProsUBrojevi SkupBrojeva; Braj, Umnozak integer;

Nazalost, skupovi se u Pascalu ne mogu cltati sa tastature pomoeu naredbi read iii readln. Zapravo, Pascal uopce nlje predvidio nikakvu naredbu za unos skupova sa tastature. Stoga, za unos vrijednosti sa ulaza I njihovo smjestanje u skup, moramo prvo inicijaliziratl skup na vrijednost "prazan skup", a nakon toga kOfistiti operaciju uniJe za pojedinacno dodavanje svake procitane vrijednosti. Na primjer, sljedeGi isjeeak programa ilustrira kako mazemo procitati 10 znakova sa tastature i smjestiti svaki znak posebno u skupovnu promjenljivu Slova (koja je ranije deklarirana kao skup znakova):
Slova := [1; for i:'" 1 to 10 do

begin
Sito : '" [2 Maksimum.l; ProstiBrojev,i : '" [J; Broj :"' 2;

begin read (Znak);


BloVd
;=

repeat
if Broj in Sito then

Slova + [Znak)

begin
p.mstiBrojevi := ProstiBYoj0vi + [Brojl; Umnozak :'" B.raj; while Umnozak <::0 Maksimum do

end,

Naravno, u ovom isjecku se podrazumijeva da Su,-deklanran~ cj~lobrojnRpromjenljiya i i znakovna promjenljiva Znak. Iz ovog isje6ka je takacter Yidljivo,da-e za. formiranje skupova pomocu uglastih zagrada mogu karistiti ne samo konstante, ~~fP i p~ornjenljive; :ZapraW), unutar .uglastih zagrada dozvoljenaje upotreba bilo kojeg izraza 6iji Ie tfp'sagla~an- _s.~.b~i:nim tipom.od kojeg je formiran skup. U PascaJu, natalost, nije predvictena .ni[<akvcl'i-lgradena naredba' niti za'ispis skupova (naredbe wri te i writeln nlsu primjen!jiv~ naskupove). Da l)ismo odstampal1 sve elemanfe nekog skupa, morama koristiti for petlju koja e. proe! kro cijeH-b<iwl tip-, pd _cem~ unutar peUje treba koristiti operator in za ispitivanje da Ii upravljacka promjenijiVa. petlje pripada skupu iii ne. Na primjer, sljedeei lsjecak programa ispisuje sve elemente skupa Granj:cniBodov:/" razdvojene po jednim razmakom:
330

begin
Sito :;;c: Sito [Umnozak]; Umnozak : '" Umnozak + Broj end

end,
Broj :'" Broj + 1 until s:ito '" lJ;

.....
Maksimum, .,_' su:~"' .) ;-,

"

writeln ('Nad~mi prosti brojevi ad 2 do for Braj : = 2 to Granica do


i f Braj in ProstiBr-ojevi then write (Braj, ' ' ) '

end.

331

Prikazani program ilustrira vecinu operacija sa skupovima koje se u prakticnom radu sa skupovima susrecu,

3.9.5 Datoleke
Svi do sada napisani programi imali su susti/!ski nedostatak da 'se sv! uneseni pod?ci gube on09 trenutka kada se program zavrsi. Datoteke su struktura podataka koja nam omogucava trajan smjeslaj informaclja na nekom od uredaja vanjske memorije (obicno disku), Sve primjene racunara gdje podaei moraju biti sa6uvani izmedu dva pokretanja programa zahtijevaju upotrebu datoteka. Na primjer, od programa za obradu teksta maze se zahtijevati da sacuva na disk dokument sa kojim radimo, tako da u buducnosti bilo kada mozemo ponovo pokrenuti program, otvoriti taj dokument (koji je bio saeuvan kao datoteka), i naslaviti raditi sa njim, U jeziku Pascal, za kreiranje i pristup datotekama koriste se datotecne promjenljive. Da10teke predstavljaju organiziranu skupinu podataka koja se moze sastojati od proizvoljnog broja komponenti istog tipa. Vrijednosti pojedinacnih komponenti mogu bin bilo kojeg tlpa, s izuzetkom da komponenta nake datoteke ne moze biti ponovo datoteka. Tip datoteke se deklarira veoma sl1cno kao skupovni tip, oSim sto se umjesto kljucne rijeei set koristi kljucna rijec file (uz napomenu da skupovi postavljaju mnogo stroza ogranicenja sta moze biti bazni tip, koji kod datoteka moze biti bilo koji tip osim panava datoteenag tipa). Na primjer, sljedece deklaracije
type Datoteka '" file of integer;

Ovdje je DatotdnaPromjenljiva ime datoteene promjen\jive, dok je Stl'nrnofmcDatotekc znakovna konstanta (iii znakovni izraz, npr. neka promjenljiva tipa string) koja sadrzi stvarno ime datoteke na vanjskoj memoriji. Ovo ime moze sadrzavati i cijelu putanju do zeljene datoteke. Na primjer, naredba
assign (Brojevi, 'A:\RADNI\BROJEVI.DAT');

povezuje datotecnu promjen!jivu Broj evi sa konkretnom datotekom koja se zove BROJEVI. DAT, a nalazi se u direktoriju (folderu) sa imenom RADNI na flopi disku (A:), U nekim verzijama i?ascala umjesto naredbe assign javlja se naredba ,open, Pored toga, vecina.verzija Pascala posjeduje i naredbu close koja zatvara datoteku kada ona vise nije potrebna. Ova naredba zahtijeva samo jedan parametar - ime datoteene promjenljive. Sve datoteke se automatski zat\(araju po zavrsetku programa, ali je veoma dobra praksa da se one zatl/0re eksplicitno. Prije upisa podataka u bHo kakvu datoteku, ona prethodno mora biti pripremijena za upis koristenjem naredbe rewrite. Na primjer, naredba
rewri.te (Brojevi.);

krejra praznu datoteku (koja 6e sadrzavati cijele brojeve) i priprema je za upis. Ako takva datoteka vee postoji, 5vi podaci koji su se u njoj nalazili biee unisteni, i kreirace se nova prazna datoteka! Za upis u datoteku koristi Se naredba write (mada se ista naredba korlsti i za ispis na ekran, ovdje je njena upotreba drugaciJa). Kao prvi parametar naredbe write zadaje se datotecna prom jen/jive, a kao drug] parametar promjenljiva koja sadri! komponentu koja de biti smjestena u datoteku, Nova komponenta se uvijek dopisuje na kraj datoteke, Taka ce, na primjer, naredba
write (Bm]'evi, X) i

var Brojev.i

Datoteka;

definiraju tip Datoteka koji opjsuje datoteku clje su komponente tipa eijeli brojevi, i promjenljivu koja predstavlja konkretnu datoteku eijelih brojeva, Datateke koje se deklariraju porTlOCU kljucne rijeei file nazivaju se binarne datoteke. Uskoro cemo vldjeti da postaji i druga vrsta datoteka (tzv. tekstualne datoteke), kao i u cemu je razlika izmedu ave dvije vrste.
Brojevi

Standardni Pascal zahtijeva da se sve datoteene promjenljive kOje predstavljaju trajne datoteke (tj. datoteke koje nece bit! automatski izbrisane nakon zavrsetka programa) pobroje u zaglavrju programa, kao tzv. datotecni parametri (verzija Turbo Pascal avo ne zahtijeva, ali je dobra praksa pridrzavati se ovog pravila, radi saglasnosti sa drugim izvedbama Pascala), Poredak datoteenih parametara nije bitan. Na primjer, zaglavlje programa koji koristi gore deklariranu datoteenu promjenljivu Brajev,i" moglo bi izgledati ovako:
program ObradaBrojeva (input, output, Brojevi);

doplsati sadrzaj promjenljive X (koja bi trebala biti cje!obrojnog tipa) na kraj datoteke opisane datotecnom promjenljivom Brojevi. 8itno je naglas!ti da kod upotrebe binarnih datoteka, drugi para~ metar u naredbi w:ri te obavezno mora biti promjenljiva, a ne konstanta fIi izraz, Tako, ako telimo da dopisemo broj 5 na kraj datoteke povezane sa datoteenom promjenljivom Brojevi, ne smijemo pisati
write (Brojevi, 5);

vee
X :'" 5;

Predefinirane rijeci input i output su takoder datotecni parametri kojt predstavljaju stan~ dardne ulazne i izlazne tokove za program (danas uglavnom povezane sa tastaturom i m6nitorom).Imena datotecnih promjenljivih predstavljaju samo fogicka imena, koja nemaju nikakvo:-zna6Emle izvan programa u kojem su deklarirani. Da bismo zaista koristili datoteke, mi jos moramo'"povezatf''' . te promjenJjive sa stvamim vanjskim datotekama e]ja stvarna imena (fizicka imena) odgovaraju prav~,~ ilima za davanje imena datoteka na odgovarajucem operativnom sistemu. Zacudo, standard6i Pasca'l ,-,nije precizno propisao nika~av konkretan naCin da se to uradi, tako da razne fzvedbe jezika pasa.L~ imaju svoje nacine za ostvarivanje tog povezivanja. U vecini verzija Pascala (uklJueuju6i i najras.rro9-~::' . tranjenlju verziju Turbo Pasca~, za tu svrhu koristi se naredba assign koja ima sljeded.oblik '
assign (DntotccnaPrmnjenljiva, StrarnofmeDatotcke) i 332

w:rite (Brojevi, Xl;

podrazumijevajuCi da postoji cjelobrojna promjenljiva x, Naredba reset. koristi se za pripremu datoteke za dtanje. Njen parametar je Ime datotecne ,pl'Omjenljive, na primjer:
reset (Brojevi)
i

,.- "

Da bismo bolje shvatili prlncip upisivanja i citanja iz datoteke, korisno je da zamislimo da uvijek imamo "pokazivae" pridruzen datoteci, koji oznaeava mjesto u datoteci gdje de 5e izvrsiti sljedeca operacy'a upfsivanja iii cftanja. Naredba ,reset postavlja pokazivac na pocetak datoteke, kao 6tO je prikazano na sljedecoj slieL Pri tome, datoteka mora da postojl, inace ce biti prijavljena greska.
333

Datotcka

,,,
Komponcntc datoteke .

program KreiranjeDatoteke (Brojevi);


type Datoteka '" file of integer;

var Brojevi

Datoteka; Braj, Kvadrat integer;

reset postavlja pokazivac na po(clak dalolde

begin assign (Brojevi, 'BROJEIJI.DA'1')i rewrite (Brojevi); for Broj := 1 to 100 do

begin
Kvadrat !'" sqr (Broj); wri.te (Brojevi, Kvadrat) end;

Citanje podataka iz datoteke vrsi se pomoGu naredbe read, koja eila jednu komponentu datoteke jz datoteke, i pomjera pokazivac datoteke na sljedecu komponentu. Prvi parametar naredbe read mora biti ime datotecne promjenljlve, dok Ie drugi parametar ime prornjenljive u koju se smjesta procitana komponenta. Tako, na prirnjer, naredba
read (Brojevi ,. Xl;

close (Brojevi 1
end.

Drugi program cita sve vrijednosti iz tako kreirane datoteke i ispisuje ih na ekran, razdvojene jednim razmakom:
program CitanjeDatoteke (output, Brojev.O;

cita sljedetu komponentu iz datoteke povezane sa datotecnom promjenljivom Brojevi, smjesta je u promjenljivu x, i pomjera pokazivac datoteke za jedno mjesto unaprijed.

type Datoteka

file of integer;

LLllr '-,-,-,-,-,-,-,-

var Brojevi Datoteka; Broj i.nteger;

Pozicija poka::.ivaca nakull


nekofiko operacija tilanja

begin
assign (Brojevi, 'BROJ'E:I.iT.DAT'l; reset (Brojev,i); while not eof (.Brojevil do

Kod upisivanja i Citanja iz binarnih datoteka, vrijedi pravi!o da se same jedna komponenta u jednom trenutku smije zadati u naredbama write iii read. Na primjer, nije dozvoljeno pisati:
write (Brojevi, X, y);
~d.

begin
read (Brojevi, Broj); wdte (Broj, ') end;

close (Brojevi)

Umjesto toga, treba pisati:


write (Brojevi, X); write (BrojelTi, Y);

Da bi ovaj program radio ispravno, prethodno je prvo morae biti pokrenut ptvl program, jer u suprotnom datoteka BROJEVI. DAT neee biti ,kreirana! U mnogim primjenama potrebno je koristiti datoteke cije su komponente slogovi. Na primjer, ako ze!imo da cuvamo podatke 0 svlm ucenicima u razredu u datoteci, tada bismo trebali definirati slog koji opisuje jednog ucenika, j formirati datoteku dje su komponente takv! slogovL U sljede6em prlmjeru, koji ilustrira ovakav pristup, definiran je slog ucenik koji sadrii polja lme, Frezime, Godina.Rodjenja. i Prosjek (broj polja je namjerno smanjen da program ne bude preduga(:a~). Program cita podatke 0 ucenicima sa tastature i smjesta ih u datoteku UCENICI -. DAT:
program Kre.i.ranje.DatotekeUcenika (input, output,

Naredbe readln i writeln ne koriste se (i ne mogu se koristiti) pri radu sa binarnim datotekama. Prllikom citanja iz datoteka cesto ne znamo unaprijed koliko elemenata ima datoteka. U takvim slucajevima, potrebno je koristiti ugradenu funl<ciju eof. ,Ov~ funkcija ima kao parametar ime datotecne promjenljive. Ona vraea rezultat logikog tipa"i to true ukoliko je pokazivac datoteke na samom kraju datoteke, a false u suprotnom slucaju. Ova, fUf)kcija se veoma cesto koristi za upravljanje petljom koja neprekidno (:ita podat~e i.i~da1b-teke-}3ve 90k"Se kraj datoteke ne dostigne. U ovakvim situacijama koristi se konstnikcija' p6p_ut slj~~ce: .
while not eaf (DlltuieCflaPromje;lljiv"a) _ g~"'

type Ucenik '" record 1m2, Prez.ime string [20J;

Naredbe(:ilunja;

'-

--

,
!

God,inaRodjenja : integer; Prosjek : real

Kao primjer rada sa datotekama, dacemo dvo?progrnma.kOji\Qrjste datofeku cijelih brojeva. Ptvi program kreira datoteku BRO,TEVLDAT' koJ~.sadrzi kVadrate.cijelih brojeva ad 1 do 100:

end;
Datoteka = file of uceni.k;

var Uce.n.ici

Datoteka; NekiUcenik Uceniki Redn.iBroj, lirojUceni.ka

integer;

334

335

begin
write (' KoUko imo. ucenika? ') readln (BrojUcenikaJ; assign (Ucenici, 'UCENICI.DA'l")i rewrite (Ueenici); for RedniBro.] : = 1. to Broj(Jcenika do begin with NekiUeenik do begin ucenika: ' ) ; writeln ('Unesite podatke za " RedniBroj, write ('lrue: 'J; readln (Tme); write ('Prezime: '); readln (Prezime); write ('Godina rodenJ'a: '),. readln (Godi-naRodjenja); write ('pYosjek: 'j; readln (Prosjek)
i

grama NotePad), Za razliku od njih, postoje i datoteke ciji je sadrzaj zapisan iskljucivo pomocu znakova. Takve, datoteke nazivaju se tekstualne datoteke (ponekad i ASCII datoteke). One se obicno kreiraju i pregledaju uz pomoc tekstualnih editora (u principu, cak i proizvoljan program pisan u Pascalu ne predstavlja nista drugo nego jednu tekstualnu datoteku).
!,""

Datotecne promjenljive kOje predstavljaju tekstualne datoteke ne deklariraju se pomocu kljucne rijeCi fils, nego pomo6u predefinirane r]jeci text (u jzvornom PascaJu tip text je bio sinonim za konstrukciju file of char, medutim u modernim verzijama Pascala izmedu ova dva tipa pos~ toje znacajne razlike). Na primjer, sljedeca deklaracija definira datotecnu promjenljivu Datoteka, koja predstavlja tekstualnu datoteku:
vax: Datoteka ;

end; write (Ueenici, NekiUcenik) end; close (Ueeniei)

text;

end.

l\Iakon sto smo sa prethodnim programom kreirali datoteku ucenika, sljedeCi program se moze iskow ristitl za citanje kreirane datoteke i ispisivanje izvjestaja na ekranu 0 svim ucenicima:
program C.itanjeDatotekeueenika (output, [J'cenici); type ucenik
00'

Naredbe assign, reset, rewrite i close kao i funkcija eof koriste se na isti naCin i sa binarnim i sa tekstualnim datotekama. S druge strane, upis i citanje podataka obavljaju se na posve drugaclji nacin u odnosu na rad sa binarnim datotekama. Za upis u tekstualne datoteke koriste se naredbe wri te j wri teln, a za citanje lz tekstualnih datoteka naredbe read i readln. Pri tome je sintaksa ovih naredbi potpuno ista kao prilikom ispisa na ekran iii citanja sa tas~ tature, osim Sto se kao plVi parametar zadaje ime odgovaraju6e datotecne promjenljive. Tako, ukoliko je, na primjer, Brojac cjelobrojna promjenljiva, R realna promjenljiva, a Datoteka prom~ jenljiva koja predstavlja tekstualnu datoteku, mozemo pisati naredbe peput:
writdn (Datotf::',ka, 'Qbim:', 2 * .Pi * R 3, Povr,sina: write (Datoteka, Brojac, Brojac + 1, sqr (Brojac) + -1);
pi

record

I1ne, Prezime string [20],. Godi,naRodjenja : integer; Prosjek real

* R

0: 3);

end;
Datoteka '" file of Ueonik;

vaT [leonici :
NekiUeenik

Datoteka; Ucem:k;
i

Pri tome se podrazumijeva da je datoteka predstavljena promjenljivom Datoteka prethodno bila otvorena za upisivanje (pomocu naredbe rewri te). SHeno, ukoliko je datoteka otvorena za citanje, i ukoliko su A, E, C, DiE neke promjenljive (npr. cjelobrojne), sljedece naredbe su smislene:
read (Datoteka, A, B);

begin assign (Ueen.i_c.l, 'UCENICI.DAT') while not eof (Ueeniei) do

reset (Ucenici);

readln (Datoteka,

C,

D, I);

begin read (Ueeni.ci, NekiUcenik); with NekiUcenik do


writeln ('Ucenik ',.Ime, ',Prozime, roden', GodinaRodjenja, '. godinG, ima prosjek ',p.ro.sjek 0: 2)

end;
C10gB

U tekstualnu datoteku se moze upisati vrijednost bilo kakvog cjelobrojnog, realnog, znakovnog iii logickog tipa (uk!jucujuci i poddomenske tipove izvedene iz njih), dok se iz tekstualne datoteke mogu citati sarno vrijednostl promjenljivih cjelobrojneg, rea!nog iii znakovnog tipa. Treba obratiti patnju da se, za razliku od binarnih datoteka, slozeni tipovi (poput slogova) ne mogu upisivati u tekstua!nu datoteku nit! Citati iz nje kao jedna cjelina. Umjesto toga, podatke je neophodno upisivati i citati polje po polje. Na primjer, umjesto naredbe
write (Ueenici, NekiUeen.ik)

(Ueen:iei)

end.

Primijetimo da se za upis i Citanje iz datoteka koriste iste naredbe (w:r:i te i read) kao i za ispis na ekran i Citanje sa tastature, mada se, u ovom slu6aju, one kOriste na sasvim drugaeiji na.c!n (npr. kod datoteka secitav slog upisuje u datoteku odjedanput, dok tako nesto nije mogu6e prillkom ISpJS':i' na ekran). Ova moze djelovati pomalo konfuzno. Izvorni Pascal je za upis u dat,oteku koristio na red bu put, a za citanje iz datoteke naredbu get (koje su se koristile na nesto drugacijf naqin negef write i read). Medutim, ovakav pristup je u tnodernitn iJerzijama Pascala napusten,'--"' ""Opisane datoteke predstavljale sLi binarne datoteke. Njihov sadrzaj je zapisan na isti nac~n"-~~(f"" sto su podaci sadrzani u njima zapisani u racunarskoj memoriji, odakle i potite naziv "bin!:l"rne datoteke. Bitno je naglasiti da podaci u njima nisu zapisani u vidu znakova" (npr. broj, 23712" nlj~- zapisan kao niz od pet znakova '2', '3', 7', '1' i '2'). Stoga se takve datoteke ne mogu niti kreiratrnitl pregledati pom06u tekstualnih editora (npr. pom06u DOS-ovog programa ED/Till WilJdowsovog.pro
336

koju smo koristili u programu KreiranjeDatotekeUcenika, pri radu sa tekstualnim datotekama morali bismo koristiti niz naredbi
writeln writeln writeln writeln
(Ueenici, NekiUeenik (Ueenici, NekiUcenik (Ueeniei" NekiUeenik (Ueenici , NekiUeenik
Ime);

Prezime) ;

GodinaRodj enj a) ;
Prosjek) ;

Analogna primjedba vrijedi i za citanje iz tekstualnih ciatoteka. Vazno je napomenuti da se svi podaci u tekstualnim datotekama cuvaju iskljucivo kao slijed znako~ va, bez obzlra na stvarnu vrstu upisanih podataka. Tako se, prilikom upisa u tekstualne datoteke, u njih
337

upisuje tacna onaj niz znakova koji bi se pajavio na ekranu prilikom ispisa istih podataka, SHena, prilikom eitanja podataka iz tekstualne datoteke, racunar 6e se ponasati isto kao da je niz znakova od kojih se datoteka sastoji unesen putem tastature. 8toga je moguce, uz izvjesnu dozu opreza, u tekstualnu datoteku upisatl podatak jednog tipa (npr. cijeli broD, a zatim ga i56itati iz iste datO,teke kao podatak drugog tipa (npr, kao niz znakavnih promjenljivih). Mozema reCi da za razliku od binarnih datoteka, tekstualne datoteke nemaju precizno utvrdenu strukturu, vee je njihova struklura, kao i nacin interpretacije vee kreiranih tekstualnih datoteka, iskljucivo pod kontro!om programa koji ih obraduje. Ova cinjenfca omogueava veliku fleksfbilnost pri radu sa tekstualnim datotekama, ali predstavlja i cest-uzrok gresaka, pogotovo ukoliko se njihov sadrzaj ne interpretira na pravi nadn prilikom citanja. Na primjer, ukoliko u tekstualnu datoteku upisemo-zaredom prvo broj 2, a zatim broj 5, u istom redu i bez lkakvog razmaka izmedu njih, prilikom Gitanja ce isH podaci biti interpretirani kao jedan broj - broj 25! Pri radu sa tekstualnim datotekama, pored funkcije eaf moze se koristiti i funkcija eo1n, koja vraea true kao rezultat uko!iko smo prilikom citanja lz tekstualne datoteke kOja je navedena kao parametar dosli do kraja reda u datoteci, inace vraea false. Treba obratiti paznju da i sam Pascal program nije nista drugo nego jedna tekstualna datoteka. Tu Cinjenicu cemo iskoristiti u s!jedecem programu, koji ce analizirati sam sebe, i ispisati informaciju 0 tome koliko se u njemu nalazi znakova, a koliko linija teksta (ne zaboravite da se i svaki razmak broji kao znak).
program Brojanje (output, Datotekal;

Surna :'" 0;

repeat read (Bmj);


Suma : '" Sllma + Bmj

until ealc; writeln (Burna);

Moze se primljetiti da je rad sa tekstua!nim datotekama veoma s!iean radu sa tastaturom i ekranom. To nije slucajnost: Pascal posmatra standardni ulazni i izlazni uredaj (npr. tastaturu i ekran) kao dvije fiktivne tekstualne datoteke, nazvane -input i output. Tako naredbe poput read (Broj) i i wri te1n (, Surna j e Suma) i ne predstavljaju nista drugo nego skraeeni zapiszanaredbe read (-input, Broj) i write1n (output, 'Burna je " Buma).

var

Datoteka

text;
integer;

Zllak : char ; BrojacZnakova, Brojacl.inija

begin
assign (Datoteka., 'BROJANJE. PAS 1 ) ; reset (Datoteka); BrojacZnakova := 0; Bro]'aCIJinija := OJ while not Gof (Datoteka) do begin while not Goln (Datoteka) do begin

read (Datoteka, znak);


BrojacZVakova :'" BrojacZVakova + 1 enrl; BrojacI,.inija :'" BrojacLin _ ija + 1;

readln (Datoteka)
end;

writeln ('Bra] znakova: " BrojacZnakova); writeln (' Broj linija: " BrojacLinija); close (Datote.ka)
enrl.

Prije nego sto pokrenete i isprobate ovaj_ program, obavezno ga morate snimiti na disk pod imenom BROJANJE. PA8. Ime mazete i promijeniti, ali u tom slucaju moraie promijeniti i drugi parametar u naredbi assign. Obratite paznju i'na naredbu read1n, kojom vrsimo prelaz na Citanje novog reda datoteke. Funkcija eo1n moze se koristiti i bez parametara. U tom slu6aju ana vraea true ukollko je dostignut kraj reda prilikom citanja sa tastature, Na primjer, sljedeci isjecak programa trazi da se sa tastature unese niz brojeva razdvojenih razmacima u jedn"om redu, i ispisuje njihov zbir (naravno, pretpostav!ja se da su deklarirane odgovarajuce promjenljive). Napomenlmo da smo u ovom slucaju morali upotrijebiti naredbu read, a ne readln (razmisiite za5to).

!-

338

339

Pitanja i zadaci
1. Sta s~ jednodimenzionalni, a sta visedimenzionalni nlzovi? 2. U camu su bitne razlike' izmedu nizova i skupova? 3. Kada treba koristiti nizove, a kada slogove? 4. Sta su datoteke i kada sa koriste? 5. Kakva je razlika izmedu binarnih i tekstualnih datoteka? 6. Opisite razlike u radu sa binarnim j tekstua!nim datotekama. 7. NapiSlte program koji tratl da sa sa tastature unesa 10 brojeva, a zatim ispisuje koUka fma bro~ java u nizu koji su vaGi od aritmeticke sredine svih unesenih brojeva. Uputa: koristite trf for iskaza: prvi za unos brojeva, drug! za ra6unanje aritmeticke sredine, a treei za brojanje elemenata koji su veei od aritmeti6ke sredine. 8. Napisite program koji traii da se sa tastature unese 10 brojeva, a zatim ispisuje koliko puta se u nizu unesenih brojeva ponavlja najveci broj. Uputa: osnovna ideja je ista kao u prethodnom zadatku. Za nalazenje najveceg broja iskoristite ideju iz poglavlja 3.2. 9. Napisite program koji traii da se sa tastature unese 10 brojeva, a zatim ispisul'e u jednom redu unesene brojeve koji su pami, a u drugom redu bral'eve koji su neparni. Brojev! trebaju bit] medusobno razdvojeni jednim praznim mjestom. 10. Napisite program koji traii da se unese recenica sa tastature, a koji zatim ispisuje koliko u tOj recenici ima razmaka, velikih slova, malih slova, samoglasnika i suglasnika. Uputa: koristite skupove za definiranje pojedlnih kategorqa znakova. Za detekciju kraja recenice motete koristitl funkciju length (uko!1ko ste citali recenicu kao string tip) Hi funkciju eoln (ukoliko ste citali recenicu znak pO znak read naredbom). 11. Definirajte slogovni tip koji predstavlja nogometni tim. Potrebno je voditi informacije 0 imenu tima, broju odigranih utakmica, brol'u datih i primljenih golova, broju bodova, itd. 12. Definirajte slogovni tip koji opisuje robu u skladistu za potrebe inventure. Potrebno je cuvatl naziv robe, braj skladista, kolicinu u skladistu, minimalnu kolicinu (ako ie kolicina robe jednaka iJi manja od minimalne kolicine, to znael da treba pozvati dobavljaca da se obezbijede efikasne za!ihe robe), jedinicnu cijenu robe, i Ime dobavljaca. 13. Prepravite programe KreiranjeDatotekeUcenika i CitanjeDatotekeUcenika taka da koriste tekstualne umjesto binarnih datoteka. Provjerite sadrzaj kreirane tekstualne datoteke uz pomo6 tekst editora (npr. NotePada).

3.10 PROCEDURE, FUNKCIJE I REKURZIJA


3.10.1 Pojam procedure
Procedura je samostalan dio programa kojl izvrsava odredeni zadatak, Svrha procedura je da poboljsaju strukturu programa taka da oni budu modu!arni, tj. da budu nacinjeni od manjih jedinica kOje su neovisne jedna od druge kollko god je to mogu6e, Modularni program! su jednostavniji kako za pisanje, tako i za citanje, razumijevanje i vrsenje naknadnih izmjena. Veoma cesto se dobro napisana procedura koja je definirana i koristena u jednom programu moze upotrijebfti bez ikakve lzmjene u drugom programu, sto stedi vrijeme i trud programera, Razvoj programa po etapama, koristenjem metadologije razvoja sa vrha nanize, najlakse se obavlja upravo pomocu procedura. Pri tome, raz!icite procedure obavll'aju razlicite etape u procesu razradivanja programa. Svakoj proceduri se daje ime, koje bi trebalo da bude vezano za zadatak koji ona izvrsava. Kako su imena procedura idenHfikatori, pravila za imenovanje procedura su potpuno ista kao za imenovanje promjenljivih, tipova, ltd. Pozivanje procedure po njenom imenu daje na!og procedurl da obavi svoj zadatak. Na primjer, ovdje je data jednostavna procedura kOja Cita dva broja sa tastature i ispisuje na ekranu njihov zbir:
procedure SaberiUlaze; var Prvi, Drugi integer;
begin readln (,p.rvi, Drugi); w:ri teln (Prvi + Drugj.) end;

Da bismo pozvali ovu proceduru,


Saber.iUlaze;

I~oristimo

naredbu koja se sastoji samo od imena procedure:

Ova naredba 6e uzrokovati da se naredbe sadrzane u tijelu procedure SaberiUlaze izvrse. Procedura se moze smatrati kao mal! potpragram unutar drugog programa. 8toga je njena struktura veoma sliena kao i struktura programa. Ona obavezno mora imati svoje zaglavlje (koje poeinje sa kljucnom rijeci procedure umjesto program). Procedura, poput programa, maze imati svoje parametre (0 temu cemo detaljnije govoriti malo kasnije), moze imati svoje vlastite imenovane konstante, tipove, promjenljive, pa cak i vlastite pod-procedure, Tijelo procedure, kao i tljelo programa, sadrii skupinu naredbi omedenih sa begin i end. Za razliku od programa, tijelo procedure zavrsava se tacka~zarezom, a ne tacKom. Moze se postavitl pltanje kakva je'-korist Qd-procectura. Na prvom mjestu, one nam omogu6avaju da sloienije progmme iscjepkamo n~ rrianje,neovisne oij"elove koje je lakse pratiti i odrzavati. Dall'e, procedura se moze u programu pozv-?ti proli~o.!ja:n broj puta. -Pr~tpostavimo, na primjer, da ielimo da nam program ispise tekst neke 'pj,esme-ko-ja irna-tri strofe, i refren nakon svake strafe. Bez pomaci procedura, mi bismo tekst. reffena mora1[ ispislv.at! ttl puta,-nakon sVake-strofe. Uz pomo6 procedura, mag Ii bismo napisati prograrrl. kOlt 'b~prlnclpY-t?JnQ'izqledao ovako:
program pj esma procedure begin
writ(,.~ln

!ou t:pu t} j

(iTekst prve strofe' ... ')


~

eno,;
~

procedure begin

DrugaStrofa;

writeln (''l'ekst druge strofe ... ' j end;

procedure 'I'recaStrofa;

begin
write ('Tekst trece strafe ... ' j

end;
procedure Refren;

begin
wri te. (' 'l'ekst refrena ... ')

end; begin
PrvaStrofa; Refren; DrllgaStro[a; Refren; TrecaSt.rofa; RefTen { Ovdje zapraVQ po6inje glav:ni p:r:ogram }

Razlika izmedu lokalnih i globalnih promjenljivih, kao i pojam vldokruga identifikatora, ilustrirani su na sljede60j slici, kOja prikazuje jedan program (koji, u sustini, ne radi nista korisno) i vidokruge upotrijebljenfh promjenljivih. U prikazanom primjeru, promjenljive a, b i c su globalne prom~ jenljive, i mogu se u nacelu koristiti u citavom programu. Medutlm, procedura Proc2 sadrti lokalnu promjenljivu b eije se lme poklapa sa imenom globalne promjenljive b. Lokalne promjenljive imaju prioritet u odnosu na globa!ne, tako da S9 globalna promjenljiva b ne mote koristiti unutar ove pro~ cedure. Kate se da je globalna promjenljiva ,b skrivena lokalnom promjenljivom b unutar ave pro~ cedure. Globalna promjetiljiva b i lokalna promjenljiva b u ovom slueaju predstavljaju dva pot~ puna razlicita objekta (u smislu da bilo kakva izmjena lokalne promjenljive -b ne utjece na vrijednost istoimene globalne promjenljive). Promjenljiva d je lokalna promjenljiva koja se moze koristi ti same unutar procedure Proc1., dok postoje dvije lokalne promjenljive nazvane e, od kojih se jedna moze koristiti samo unutar procedure Frocl, dok se druga moze koristit! sarno unutar pro cedure Proc2 (mada su im imena ista, to su dvije razliCite promjenljive).

program DemonstX'acijaVidokruga (input, output);

vat: a, b, c : integer;
procedure FTocl;

end.

U ovom primjeru, umjesto da tri puta pisemo tekst refrena pjesme, mi smo tri puta pozvali procedu ru Retren, 3to dovodi do kra6eg i jasnijeg programa (naroCito ukoliko ie tekst refrena dugacak). Sve procedure moraju biti definirane prije p06etka izvrsnog dijela programa (tj. glavnog progra rna). Standardni Pascalzahtijeva da procedure budu definirane nakon deklaracija promjenljivih, dok modernije verzije Pascala dozvoljavaju mijesanje redoslijeda definicija procedura i ostalih dek!araci ja. Unutar tijela procedure mogu se pozivati i druge procedure, ali sarno one kOje su prethodno definirane u programu, tj. nije dozvoljeno pozivati proceduru cija se definicija u programu nalazi nakon mjesta poziva (ovai' nedostatak se doduse moze otkloniti upotrebom kljucne rijeci forward, ali 0 tome necerno govoriti). U svim drugim aspektima, poredak u kojem se procedure definiraju nije bitan, jer rezultat izvrsavanJa programa zavisi od redoslijeda kojim se procedure pozivaju, a ne od poretka u kojem su definirane, kao sto je uostalom vidljivo i iz prethodnog primjera.

:;:":; wteger,}
e;""' 10; 1t.cr-iteln (d), wnteln {ej end; procedure Proc2;

Vldokrug
oddle
-)l>-

Vidokrug od (gluballlc) b

var b, e : integer; - } begin


b '" a , c; e :'" 20; w.dteln (b); Vidokrug
_

Na Ol'OIll mjcstu
lokalna pronyenljiva b

Vidokrug od a i c

skriva globalllu prom


jellljivlt bprekidlYliCi

od e i (lokalnc) b

writeln (e)

njen vidokrug

3.10.2 Lokalne i globalne promjenljive


Promjenljive deklarirane unutar procedure (tj. izmedu zaglavlja procedure i tijela procedure) predstavljaju Iqkaine promjenljive: one se mogu koristiti sarno unutar procedure u kojoj su dektarifane (lsto pravilo vr~'edi i za ostale fdentifikatore, tj. za deklaracije imenovanih konstanti, tipova i pro cedura). Lokalne promjen!jive se automatski krefraju kada procedura zapocne izvrsavanje, a nesta ju odmah po zavrsetku procedure u kojoj su koristene. S druge strane, promjenljive koje nisu deklarirane unutar neke od procedura predstavljaju globaJne promjenljive. Globalne promjenljive vrijede od mjesta na kojem su -deklarirane, va sve do kraja programa. U standardnom Pascalu, globalne promjenljive moraju se definirati na samom po6etku programa, tako da one vrijede u citavom programu. U modernijim verzijama Pasca/a, opseg u kOjem vrljede glo~ ba!ne promjenljive moze da bude i manji,- posto S8 deklaracije promjenljivih i deflniclje procedura mogu mijesati). Dio programa u kojem se ime nekog identifikatora (npr. promjenljive) moze legalno koristit! naziva se vidokrug (iii doseg) identifikatora.
342

end; be.gin

{ Glavni program }
1;

a
b C

;= ;= ;=

2;

3; Proe2; Procl eruk"

.:lJ.kotik9 $te isprayno razumjeli izlozene principe, neee yam biti tesko odrediti koje ee brojeve {sFitsa.fi prikazani program (odgovor: 4, 20, 2, 10).

343

3.10.3 Prenos parametara u procedure


Pretpostavimo da zelimo da napravimo program u kojem cerno definirati proceduru koja raGuna obim i povrsinu kruga. Sa dosada stecenim znanjem to mazerna uraditi kao u sljedecem programu:
program ProracunKruga (input, output); var Poluprecn.i.k real;

Forma~ni parametri (iii forma/nf argumentf) SU, zapravo, vrsta lokalnih promjenljivih clju je poc:t~u ~~iJe?nos.~ mogu6e zad~t! prilikom poziva procedure (za razliku od obicnih lokalnih prom JenlJlvlh GIJa Je vriJednost nedeflnlrana sve dok im se eksplicitno ne dodijell vrijednost). Prilikom

deklaracije procedure, njeni forma/ni parametri se navade u popisu parametara keji se nalazi unutar zaglavlja procedure:

~amm"tam
procedure, Krug (r : real)
p:i
PoJupr.ecnik} ; sqr (Poluprecnik))
i

procedure Krug i
const pi = 3.1.41:;92654;
begin writeln ('Obim: r, 2 writeln ('Povrina: end;

lonna/nl pammctar

pi

begin readln (Poluprecn.i.k);


Krug

Glavn.i. program }

Vrijednosti koje se navode priltkom poziva procedure i koje se prenose u formalne parametre sa svrhom njihove inicijalizacije, nazivaju se stvami parametri (iii stvarni argumentl).
Krug (Poluprecnik) ;

end.

stvarni pa/"mllctar

Ovaj program nesumnjivo radi, ali se moze napisati i mnogo bolje. Osnovni problem lezi u cinjenici da je procedura Krug previse ovisna od ostatka programa, jer se oslanja na globalnu promjenljivu Poluprecnik. Aka se Ime ave promjenljive U ostatku programa promijeni, procedura vise neee raditi. Stoga ovu proceduru nije moguce bez izmjene upotrijebiti u nekom drugom programu u kojem se promjenljiva koja cuva vrijednost poluprecnika zove drugacije. To nije ono s10 zelimo - procedura bi trebala bitl neovisna ad ostatka programa koliko god je to mogu6e. Rjesenje ovih problema je da dozvolimo proceduri Krug da koristi svoje vlastito fokafno fme za poluprecnik kruga, kojem na neki nacin trebamo prenijeti vrijednost poluprecnika iz glavnog programa. Ovo se moze ostvariti upotrebom procedura sa parametrima. Ovu tehniku cemo Hustrirati na sljedecem primjeru, koji prestavlja poboljsanu verziju prethodnog programa:
program proracunKruga (input, output);

U ovom prirnjeru vrijednost stvarnog parametra Poluprecnik se prenosi u formalni parametar r, taka da r dobija vrijednost promjenljive Poluprecnik. Zbog toga, svaki stvarni parametar mora odgovarati po tipu odgovaraju6em formalnomparametnJ. U nasem primjeru, formalni parametar r i stvarni parametar Poluprecnik su tipa real.

Broj stvarnih parametara koji se prenose u proceduru mora biti jednak broju formalnih parametara (u nasem primjeru imamo jedan formalni i jedan stvarni parametar). Formalni i stvarni parametar u principu mogu Imatl Ista imena, ali treba vodl!i racuna da se cak i u tom slucaju radi ,0 posve razlicitim objektima. Drugim rije6ima, cak 1ako formalni i stvarni parametar imaju isto lme (npr. x), formalni parametar x je potpuno neovisan od stvarnog parametra x, mada se pri pozivu procedUre vrljednost stvarnog parametra x kopira u formalni parametar x. Stvarni parametar ne mora biti samo lme promjenljive, nego bilo koji izraz odgovarajuc':eg tipa. Tako SU, na prlmjer, sv! sljede6i pozlvi procedure Krllg dozvo!jeni (uz pretpostavku da postoji i propisno deklarirana promjenljiva precnik):

var Poluprecnik

real; real) ;

procedure Krug (r const Pi

3.141592654;
2
pi

begin write1n_ ('Obim:


writeln ('Povdina: end;

pi

r) i sqr (r))

Knlg (Poluprecnik); Kmg (3.5); Kmg (Precnik / 2);

begin
to"?adln (-Poluprecnik); l\.rug -"( poJuprecT!j.k) 811d".-

Gla vni program

S druge strane, sasvim je ocigledno' da formalni "parametar moze biti sarno lme promjenljive, a ne konstanta iii izraz. . . U slucaju kada procedura ima v'ise 'pararfwta;a;'o"ni s,e deklariraju na isti nacin kao sto se deklari ra i bilo kOja druga promjen1fiva, osim sto se, d~l!araCija pararnetara Qbavlja unutar zag!av!ja procedure (1 to unutar zagrada). Na priiiiJer, :slje'q8.6a'.proc.edura, nqzvana PisiZnakove, ispisuje na ekran odredeni broj odredenih zriakova, pri t~rD-(J56 broj znakova zadaje preko prvog parametra, a sam znak preko drugog parametra~ _ . procedure Pisi2'J'J.aJ::0ve f.BrojZnakova
i?_~eger;

u .Gvo~.pl'ill}i~u," p~~6~d~ra Krug kodsti svoje vlastito lokalno ime, r, za imenovanje poluprecnika -kruga._To im_~ p_~e~stavJja ojen parametar (preciznije, formalni parametar). Prilikom poziva procedure Krug ..iz glft~fiog pr-ogrania, "U zagradama se navodi vfijednost koju je potrebno prenijeti u formalni 'parametar.~r,D navedenom primjeru, prenosl se vrijednost promjen!jive Poluprecnik. Na taj I')ain p'rocedura .he mora znati niSta 0 tome kako se zove promjenljiva koja cuva vrijednost poluprecnTka -u glavnom programu, jer se njeno ime navodl prilikom poziva procedure (dakle, u _glavnom prcigramu), a ne unutar same procedure.
344

Znak

char};

var i : .integer;

345

he;Jin for i
end;

:~

1 to BrojZnakova do

write (Znak)

U ovom primjeru je global.na promjenljiva Pol uprecnik deklarirana nepasredna prije pa6etka Kako nJen.vidokru9 zapocinje od mjesta na kojem je deklarirana, na ovaj nacin Je spnJeceno da se ona nehotlce upotrijebi bilo gdje osim unutar glavnog programa.
~Iavn?g programa.

Tako 6e, na primjer, pozlv procedure


PisiZnakove (5,
'*');

3.10.4 Vrijednosni i promjenljivi parametri


For~alni parametri koje sma do sada koristlli biB su vrijednosni parametri. Oni su prenosHi neku vrlJedn~st u proceduru. Promjenljivi (iii vart7abiln~ parametri dozvoljavaju da se podaci pre~ nesu nazad IZ procedure u .blok koji je pozvao prdceduru. Nairne, dok se vrijednosni formalni para metri "gube" nakon zavrsetka procedure ne osfavljaju6i nikakav '1rag" na odgovaraju6im stvarnim para:n~.trima, pr?mjenljivi formalni parametri dozvoljavaju proceduri da promijeni vrijednost odgo varajuclh stvarnih parametara. Zbog toga, u tom slueaju, odgovarajuCi stvarni parametri moraju bltl prof~jenljive. Drugim rijecima, kod promjenljivih formal nih parametara, odgovarajuCi stvarni para metn ne smiju biti konstanle iii izrazi (za raziiku od vrijednosnih formalnih parametara).

ispisati na ekranu pet zvjezdica, Pisanjem procedura sa parametrima mi zapravo prosirujemo jezik Pascal, jer se svaka napisana procedura prilikom poziva ponasa kao nova naredba. Taka sma, na primjer, u prethodnom primjeru jeziku Pascaf"dodali" novu naredbu PisiZnakove. U sustini, mnoge od naredbi koje sma do sada koristill, poput read, write, reset, assign, clrscr itd, nisu nista drugo ne90 predefinirane procedure kOje su vee implementirane kao sastavni dio jezika Pascal. Prenos parametara u procedure nam omogueava metodologiju programiranja koja se naziva sakrivanje informacija, i ana predstavlja jedan od osnovnih princlpa dobrog modularnog pro" gramiranja. Sakrivanje informacija znati da nl jedan dio programa ne bi trebao da ima pristup onim promjenljivim koje ne trebaju da se koriste u tom dijelu programa. Procedure sa gledista glavnog programa treba da djeluju kao "crna kutija": glavni program 1m sarno predaje ispravne parametr8 i prepusta 1m da odrade svoj posao, ne ulazeCi u to kako ce one to uraditi. Procedure s druge strane sarno primaju parametre od glavnog programa, i ne treba da brlnu a tome sta radi ostatak prograrna; one se brinu sarno kako da obave zadatak koji im je povjeren. Konkretno, u Pascalu sakrivanje informacija zapravo znad da bi svaka promjenljiva trebala imati sio je god moguce manji vidokrug. Kako je vldokrug globalnih promjenljlvih prakticki cljeli program, upotrebu globalnih promjenljlvih treba svest! na minimum. Umjesto upotrebe globalnih promjenljivill treba intenzivno koristiti prenos informacija preko parametara. Takoder, u dobro napisanom modu" larnom programu, nl jedna procedura ne treba da radi vise razlicitih poslova (odnosno, svakom poslu treba dodijeliti posebnu proceduru). Jedna od poteskoca vezana za sakrivanje informacija u jeziku Pasca/lezi u einjenici da programi ipak moraju imati i poneku globalnu promjenljivu, jer se u glavnom programu mogu korlstlti samo glob alne promjenljive. Ovim je otvorena rnoguenost da, slucajno iii namjerno, upotrijebimo neku od global nih promjenljivih i unutar neke od procedura, time narusavamo dobar dizajn i neovisnost procedura od glavnog progr;3.ma. Modernije verzije Pascafa dopustaju da se promjenljive deklariraju i nakon deflni cija procedura, eime ,.efektivno suzavamo njihov vidokrug. Na primjer, pogledajmo sljedecu modifikaciju programa za proracun obima i povrsine kruga, ~oji radi u svim modernijim verzijama Pascala:
program ProracunKruga' (input, output);

D.a bismo. naznacili da je ~eki for~aln! parametar promjenljivi parametar, stavljamo kljucnu rijee vaT, Ispred nJ:9?Ve deklaraclj8. U slJedecem programu upotrijebljena je procedura Krug kOja pri" hvaca poluprecnlk kruga kroz prvi parametar (koji je vrijednosni parametar), a vraea izracunatu jednost obima i povrsine kruga kroz drugi i tred parametar (ko]i su promjenljivi parametri):
program ProracunKruga .(input, output);
var PolupTecnik, Obim, Povrsina real; real); procedure Krug (r : real; var 0, P
vri~

const
begin

Pi

3 . .141592654;
Pi'k
Y;

o : '" 2
[' . ~ Pi

sqr (T)
{ G1av'ni program )

end;
begin

readln (Poluprecn.ik),Krug

(Polupn?cnik,

obi.m,

Povrsina),-

writeln ('Obim: Obim); writeln ('Povrsina: " Povrs.ina)

end.
~rili~?m poz!va procedure Kr.ug prvi stvarni parametar maze biti proizvoljan realan izraz, dok drugi I treci stvarnl parametar moraJu bit! promjenljive koje 6e da prihvate lzracunate vrijednosti.

U sustini, postoje dva mehanizma na koji se parametri prenose, Uproceduru. Prvi mehanizam je
kopira~je vrjje~nosU ~ ne~~ o.d lokalnih promjenljivih procedure. OVE!i mehanizam se naziva-prenos po ~flJedn?sb. Dru~1 nacm J~ da se ~roceduri dostavi mjesto-'u-f!1emo!ij!'raunara gdje se odgo

procedure KYug .'( r .:

const p.i '" 3.141.5-92654;


begin

writeln ('Obim:.,.-,I,"2.:'i; writeln ('Po,{!"s'i.na:

-Pi'
.. sqr (r))

end;
var poluprecnil\ "
begin

.G)avrii pTogram }
(Po.luprecnik) .

read+:o"" (I'o.Tuprcnlk) ;
Krug

end.
346

varajuca vnJednost cuva. OVaj mehanlzam se naziva prenos-PQ'referencLlli.-prenos po imenu. Posto'U ovom. dr~.go,:, slu~.aju pro0~dur~ "zna~' ~dje se odgovaraju'ca vri~e.dn9st 'nala~j u memoriji, ana moze da IzmlJem tu vnjednost, sto nlJ8 slucaJ u prvom naCinu": Nairne,. Uprvom rl.ocinu pmcedu~a ~~mo dobija vrijednost, ali "ne zna" gdje se nalazi stvami parametar, pa 9.8. iato ne.mozeni RromiM' Jen~tl< Zbog toga S8. u Pas~a.lu.vnIednosni parametri prenose'po vrijednos:tl,"~'JYromienljivi parametri ~o Ime.n~ (referencl). U sustlnl, kod prenosa po vrijednosti, forma~t"!i i'stv8.f!]i.'paramBtar predsta'lllja~ JU razfl6Jt? .ob{ekte c~k i kada. imaju isto ime, dok u prenosu po:ime~Li"formalnr.i styarni parametar pre.dstavl!a!u !ste objekte cak I kada !maju razficito ime. Na _ovu einjeniCii (koja .u.p06!tku moze djelovatl zbunJuJuce) treba dobro obratiU paznju, jer je ana jedan od najeescHrfuzfOcnika. greaka u programima kOje koriste procedure!

347

3.10.5 Funkcije
Programske jedinice koje nam dozvoljavaju razvoj modularnih programa nazivaju se potpro gram/. Jedan tip potprograma sma vee upoznali: to su procedure, U jeziku Pascal postaji i druga vrsta potprograma, \<oji se nazivaju funkcije, Funkcije su zapravo potprogrami koji daju kao rezultat neku vrijednost koja se moze koristiti unutar izraza, Pascal poznaje velik] broj predefiniranih (ugradenih) funkcija, poput sqr, sqrt, round, sin, cos itd. od kojih sma neke vee koristill. Na primjer, ugradenu funkciju sqrt mazema koristiti u iskazima poput sljedeCih (naravno, uz pret~ostavku da su deklarirane odgovarajuce promjenljive):
H

bilo kojeg prostog tipa, ordinalnog iii realnog (rezultat funkcije ne mote biti niz iii slog, koji su sloien! tipovi). Moderneyerzije Pascala dopustaju da funkcija vrati i rezultat tipa string.
Vee sma rekl! da se funkcije koriste iskljuejvo unutar izraza. Poziv funkcije je sam za sebe izraz, i maze se koristiti na bile' kojem mjestu gdje je dozvoljeno koristiti izraz onog tipa kojeg vraca funkcija. S druge strane, poziv funkcije, za raz!iku cd poziva procedure, sam za sebe ny'e iskaz, tako da je naredba poput Kub (5) i sama za sebe besmislena u s!ucaju da je Kub funkcija a ne procedura. U sljedecem prlmjeru upotrijebljena je funkcija Minimum koja vraca kao rezu!tat najmanji od njena tri cjelobrojna parametra. Prvo se porede prva dva parametra, i nalazi manji izmedu njih. Zatim se nadeni rezultat poredi sa treCim parametrom da bj se odredio konaeni minimum.
program Na1azenjeMinirrnlmEl (input, output);

Korijen :'" sqrt (Broj); Hipotenuza '" sqrt {sqr (1(atetal) + sqr (Kateta2)) i writeln (sqrt (3) 0 5);

Odavde vidimo da funkcija sqrt ima svoju vrijednost (koja je jednaka kvadratnom korijenu njenog argumenta), dime je omoguceno da se ona maze koristiti unutar izraza. Pokusajma sada da sami napravima potprogram ko]i kio rezultat vraea kub broia koji je zadan kao argument. Sa dosadasnjim znanjem, sve sta mazema da uradimo ie da napravimo proceduru kOja na ekran ispisuje kub svog argumenta, na primjer na sljedeCi naCin:
procedure Kub (X begin write (X end; integer) ;

var A, B, C

integer;

function Minimum (A, B, C ; integer) : integer;

var

NaJ'manji : integer;

begin
ifA<Bthan Najmanji :'" A

else
Najmanji :'" B; if C < Najmanj i then N'ajmanji :;= C; Mininrurn :'" Najmanji end;

X)

lako ovaj potprogram mozemo upotrijebiti da ispisemo kub nekog broja, pozivirna poput
Kub (3); Kub(2*A+5};

begin
writeln (' Unesi tri broja');

readln (A, B, C);


writeln ('Najm.2mji od ava tri broja je broj end.

"

M.i,nimum

(A, B, C)}

i sHena, ovakav patprogram mazemo upotrijebiti sarno sam za sebe, a ne i unutar nekog izraza. Razlog je u tome sto je procedura objekat bez vrijednosti, tj. ona ne vraca nikakvu vrijednost nazad na mjesto poziva koja bi mogla da bude upotrijebljena unutar nekog izraza. Zbog toga SU sljedeee konstrukcije potpuno besmislene, i kompajler ce prijavlti gresku pri pokusaju da napisemo nesta slicno:
c :'" Kub (a + b); writeln. (Kub (5)); write (Kub (a) - Kub (b)

Kub (c

2});

Da bi ovi izrazl postali korektnl, odnosno da bismo omoguci!i upotrebu potprograma tlnutar ;zraza, umjesto procedura morama upotrijebiti funkcije. Deklaracija funkcije vrsi sepomoeuklju9ne rijeei function umjesto procedure, i po formi ie sliena deklaraciji procedure, Qsim Slo. se n~ kraju"deklaracije navodi I tip vrijednostl (rezultata) kOf; funke/fa vraca. -U sljedtl,cerrfprjmJer,u'deklarj. rana je funkcija -Kub koja vraea kao rezultat cijeli broj: _.~_ ..
function Kub (X

Obratimo paznju da smo, U ovom primjeru, forma!ne parametre funkcije A, B i C Ilazvali isto kao i globa!ne promjenljive A, B i C, iako se radi 0 razlicitlm objektima (priHkom poziva funkcije gfobafne promjenljive A, B i c, koje predstavljaju stvarne parametre, kopiraju se u istoimene formaine parametre). Kao i kod procedura, stvarni parametri se moraju slaga!i sa formalnim par~. metrima i po broju i po tipu. Napomenimo da su parametri funkcija pretezno vrijednosni parametri. Principijelno je moguce i unutar funkclja korlstiti promjenljive parametre, ali je to zbunjujuce, i nije dobra programerska praksa. Bitno je naglasiti da u funkcijama treba po svaku cijenu izbjegavati upotrebu globalnih promjenljivih, jer one mogu da dovedu do nezeljenih pojava poznatih pod nazivom bocni efekti (to su situacije kada izraeunavanje nekog izraza dovodl do izmjene sadriaja objekata koji nisu direktno spomenutl unutar izraza).

3.10.6 Rekurzijll
integer)

integer;

beginKub := X

end;

:.

Vee smo rekli da jadna procedura ili funkcija moie pozivafi druge procedure iii funkcije. Medutim, procedure iii funkcije mogu pozivati eak i same sebe. Pojava da neka procedura iii funkcija pozlva samu sebe naziva se rekurzija. Rekurzija spada u prilicno mocne, ali i dosta komplikovane programerske tehnike. Rekurziju cemo ilustrirati na jednom sasvlm jednostavnom primjeru. lz matematike ie poznata funkcija faktori~
349

Barem jedna naredba unutar tijela funkcije (tipieno posljednja) mora "b"lti nareClDa 'd~djeijji;anja kaja funkciji dodjeljuje vrijednost kOja ce bitl vra6ena kao nJen rezultaLFunkcija mo"ze'vratiti-rezultat
348

jel (faktorijel ad /1 obiljezava se sa n1) koja je definirana kao produkt svih prlrodnih brojeva od 1 do n uklju(;ivo:
n! = 123 ... n

Mectutim, ista funkcija moze se definirati i na drugaciji nacin, prekoformule


n l -:

n,(n-I)!

.- (

zan,O zan=O

bacimo jedan preostali (najveci) disk sa stapa x na stap Y, i na kraju da nekako prebacimo N - 1 diSkova sa stape, z na stap Y (koristeci stap x kao pomocni). Ovim problem nije rijesen, mada je ovim problem prebacivanja N diskova sveden na dva problema prebacivanja N - 1 diskova. Dakle, broj diskova je umanjen za 1. Slicnim rezonovanjem problemi prebacivanja N - 1 diskova svode se na probleme prebacivanja N - 2 diskova; itd. Ocigledno problem! prestaju kada broj diskova dostigne nulu, jer tada nemamo sta prebacivatL Ovo rezonovanje dovodi nas do sljedeceg aJgoritma, koji je rekurzivan jer se poziva na samog sebe:
:::::::>

Ova formula definira funkciju faktorijel preko same sebe, 1predstavlja primjer rekurzivne definicije. Pokazimo, na primje(u, kako teee postupak izraeunavanja faktorijela broja 4 pomocu ave formule:

4!

= 4 3! ~ 4, (3 2!) = 4 [3 (2 I!)] = 4 (3 [2 (I . Oil]) = = 4.{3.[2.(1.1)]) = 4[3(21)] = 4(32) = 46 = 24

Prebacivanje N diskova sa stapa X na .*tap Y koristeCi stap Z kao pumuc,-:ni: "* AkQ N nyc nula onda: ""*' Prebaci N 1 diskova sa stapa X na Jtap Z koristdi Jtap Y kao pOlfwcni; ""*' Prebaci jedan disk sa Jtapa X no /;tap Y :::>- Prehoci N - 1 diskova sa stopa Z na Ktap Y !wristecH stap X kao pomocnL

Ova] algoritam !ako ie pretoCiti u konkretan Pascal program, koji ispisuje redoslijed poteza neophodan za rjesavanje problema Hanojskih kula:
program HanojskeKule (input., output); var]lf integer;
,

Prikazanu formulu sasvim je lako prevesti u Pascal, eime dobijamo rekurzivnu verziju Pasca/funkcije za racunanje faktarijela:
function faktorijel
begin if N <> 0 then faktorijel ,'" N
(N

int.eger)

integer;

procedure Prebaci (N, X, begin if N <> 0 then begin


Prebaci (N Prebaci
(N

integer);

* faktorijel (N' 1)

else
faktorijel := end;

1,
1,

X,

Z,
Y,

y);

writeln (' P:r.ebaci disk sa stapa "


Z,
Xl

X,

na st.ap

Y) i

Postoje problemi koje je jako tesko rijeMi bez primjene rekurzije. Ova tehnika je naroClto efikasna u slucajevima kada se rjesavanje nekog problema moze svesti na rjesavanje problema istog tipa samo manje velieine. Posto smanjivanje veliCine problema ne maze iei unedogled, jednom cemo naiti na trivijalan problem, koji znamo rijesiti. Efikasnost rekurzlvnog pristupa ilustrira6emo na primjeru rjesavanja Igre pozna!e pod imenom Hanojske kule. Na jednom od tri stapa (reeimo, pIVom) nalazi se niz diskova razli6lte velicine, poredanih po ve!iCini od najmanjeg ka najvecem, Potrebno je sve diskove prebaGiti sa plVog na drugi stap, eventualno koristeCi treei stap kao pomocni, ali tako da S8 nit] u jed nom potezu ne smije veci disk stavlti na manji. Na sljedecoj slici prikazana ie situacija sa tri diska:

end
end; begin write {'Koliko ima dlskova? readln (N); Prebac.i (N, I, 2, 3) end,

'l;

Za slucaj tri diska-nije teskp p-rona6i"ispra,!~n.redos!ijed poteza da se diskovi prebace sa stapa 1 na stap 2 postujuCi pravila-igre (najkra6i roo,oslijed poteza.ie' 1-.,.2, 1-3,2-3,1 ....... 2, 3-1, 3,.....2 j 1-2). Medutim, situacija-se znat~o _kompliCira sa porastom broJa diskova. Pokusajmo napisati program za racunar koji bi rjesavao 9V8j pr~bTe'm, Na prY! pogled, ne vidimo nikakav oeigledan algoritam kako bi se ova] prQblem mogao riiesi!!. Ipak, ako m?llo razmislimo, lako cemo doci do zak!jucka da ne postoji nikakav na6in da prebacimo N-- diskova sa stapa x na stap Y osim da nekako prebacimo N ':.. 1 diskova sa stapa x rfa stap "z (koristeci stap y kao pomocni) zatim da pre
350

Vidimo da je rezultujuci program veoma kratak. To medutim ne znad cia je on jednostavan. Naprotiv, izuzetno je tesko pratitl tok ovog programa, sto je tipieno za sve rekurzivne programe. Mnogo je lakse razumjeti kako ovaj program radi u cjelini nego odgonetnuti kojim zapravo redoslijedom racunar izvrsava instrukcije ovog programa. 8toga, rekurzivno rjesavanie problema leii -negdje na granici pro~ ceduralnog i neproceduralnog programiranja, jer se rekurzivna rjesenja nekada vise svode na opis prob lema iskazan u formi svodenja na jednostavnije probleme, nego na konkretan postupak rjesavanja. ReGimo jos i da rekurzije predstavljaju osnovnu metodologiju progrqmiranja_u nekim oeproceduralnim jezidma kao sto su LISP] PROLOG, i nezamjenljive su za programiranje-_metoda_,koje_spadaju ~ domen vjestaeke inteligencije. Razlog za to leii u einjenici da su definicije mrtogm pojmova', koji se susrecu_ u realnom iivotu zapravo rekurzivne prirode (na primjer, definicijE! "Vas predak]e._osob,a.~f;Jja je iii vas roditelj, iii je predak nekog od vasih roditelja." predstavlja tipican primje:reku.r:zjvn~_d~fl~iojje). . Bifno je nag!asiti da je uvjet N <> 0 koji se nalazi unutar procedure' PY.ebacl ;d izuzetne vatnosti za rad programa, mada na prvi pog!ed ne djeluje -narocito. bitan. -rvie"dutlm, -ukoliko bismo zaboravili ovaj uvjet, racunar bi problem sa 0 diskova pokusao sV!3'sli ria problem sa :1 diskom (tj. na besmislicu), problem sa -1 diskom na problem sa 2 dfska, i tako unedogled. ~zostavljanje nekog od kljucnih uvjeta koji garantiraju da 6e se rekwzija zavrsiti u konaenom vreliJehu (tj. da SEl neee pro351

tezati unedogled) predstavlja ubjedljivo najeescu gresku koju neiskusni programeri cine prilikom programiranja rekurzivnih algaritama.

Pitanja I zadaci
1. Sta su procedure a sta funkcije? U Gemu je glavna razlika izmedu njih? 2. Sta su globalne, a sta lokalne promjenljive? 3. U Cemu ie razlika izmedu formalnih i stvarnih parametara, a u cemu izmedu vrijednosnih i promjenljivih parametara? 4. Sta je rekufzija, i kakva je korist od nje? Predlozite rekurzivnu definjciju za pojam "potomak" jz svakodnevnog zivota. Napisite proceduru koja ispisuje na ekran N praznih linija, gdje js N formalni parametar. 7. Napisite proceduru koja razmjenjuje vrijednosti dva cjelobrojna parametra. Uputa: morate koristiti promjenljive parametre, i jednu pomocnu loka!nu promjenljivu. 8. Napisite funkciju kOja kao rezultat vraca faktorijel svog formalnog argumenta, bez koristenja rekurzije.
5.
6.

Na kraju izlaganja 0 rekurzijama reeimo jos i adakle problem -Hanojskih kula potice. Prema jedno] budistickoj legendi, Bog je nakon stvaranja svijeta zadao grupi sve(;enika da rjesavaju upravo ovaj problem sa 64 zlatna diska, i rekao je da (;e smak sYijeta nastupiti onog trenutka kada zavrse sa rjesavanjem. Izracunajmo kolfka nam je vreinena ostalo do smaka svijeta po Oyoj legendi. Matematitkom lndukcijom se laka moze dokazati da broi poteza neophodan za slaganje N diskova iznosi 2N - 1, sto za N :;: 64 Iznosi 2M .- 1 = 184467440737095516.15 poteza. Ukollko bi - sve6enicl u svakoj sekundi obavljali po jedan potez, i pri tome ne bi ni jednom pogrijesili, za obavIjanje ovog posla bilo bi im potrebno 584942417355 godina. Dakle, smak svijeta nece nastupiti tako brzo, bar ne sto se tice ove legende ...

9.

Napisite funkciju koja pretvara brzinu izraienu u kilometrima na sat u brzinu lzrazenu u metrima u sekundi.
[\I

10. Napisite rekurzivnu funkclju koja vraca kao rezultat N-ti Fibonacijev broj, gdje je ment.

formalni argu-

U zadacima 6-10 obavezno napisite i kratak testni program u kojem cete testirati napisanu procedUru iii funkeiju.

352 353

3.11 SAMOSTALNA IZRADA PROGRAMA


3.11.1 Primjer modularnog razvoja programa
Programiranje predstavlja jednu od naucnih disdplina koje se ute pretezno kroz praktican rad. 8toga S8 programiranje, bez obzira na stepen usvojenog teorijskog znanja, ne maze savladati bez samostalne izrade programa. Medutim, sastavljanje iole slozenijih programa cesto predstavlja za pocetnika nepremostivu prepreku, jer se nerijetko javlja pitanje adakle uopce pacetL U ovom odjeljku
dacoma osnovne smjernice kako bi trebalo pristupiti razvoju slozenijih programa karistedi

var Cijf?.1le
Kolicdne

NizCijena;

NizKolicina;

begin
PostaviCije.ne (Cijene); ObradiNarudzbe (eijene, Kolicine); Prikazilzvjestaj {Kolicinel
~d,

Ovdje smo za svaki od koraka algoritma predvidjeli posebnu proceduru. Procedura


PostaviCijene trebala bi da inicijalizira cljene u nizu Cijene- kaji je prenesen kaa parametar. Procedura ObradiNarudzbe trebala bi da vrsi obradu svih narudtbi na osnavu djena koje su pre-

metodologiju modularnog dizajniranja. lzlaganje cemo zapoeeti primjerom konkretnog problema iz prakse za koji se trail racunarski program:
",/":,,,:"
,

",":,

,"

,',

Neka kompallija pradaje I'ife razliCitih vrsta hrane za zivotinje~ Poljopri~'rednici mogu telefonom izvrsiti narudibu i podiCi je sljedeCi dall:, Kompanija trenutno ima 5 proizl'oda no lageru, a cijene su sljedece:
1 - Co;;,'f~e-""..!a:Cp"'ro::iC:zv"ocd'a~(u-..K~"M~p-o-cto-n-i)c--+~/5~1I""'1-200 1

nesene kao prvi parametar, ] da smjesti u drugi parametar infarmaciju 0 narucenim koliCinama. Procedura Prikaz.iIzvjestaj trebala bi da prikaze izvjestaj na osnovu informacija koje su proslijedene kroz njen parametar. Naravno, ovako prikazan program jos uvijek ne moze da radi, jer procedure PostaviCijene, ObradiNarudzbe i PrikaziIzvjestaj nisu ugradene u jezik Pascal. Nas sljedeCi zadatak je da napisemo ove procedure. Procedura PostaviCijene je sasvim trivijalna, i za nju nema potrebe raspisivati nikakav algoritam (obratite paznju da njen formalni parametar mora da bude pramjenljivi a ne vriJednosnl parametar):
~pecific~n

rl~s-~-m-p-r-o'-Z-VO-d-a~----"-------'~---r2-----3~-+i.-4
400

325_' 'I ,250- ~

"'1. 5 . j

Kompalliji je potrehan program za raeutlar koji ce operaieru omoglldti dd iinese J10datke 0 sl'akoj nar/alibi: sifru svakog proizvodq, kojeg poljoprivrednik zeli kupili, i braj na1'llf.:enih tOfla. Program treba na osnovu toga izracunati llkuPIIU cijcnu narudibe, tako da se ta iIlJ~r l1lacija moze odmah dati kupcu. No kraju dana; kada l'iSe nemanaril~Zbi"prr!gnlm..tref.Ja do prikaie sllmami izvjei'ilaj k/~ii prlkazuJ( ukupan broj nll,rtlcclIih t(Jiw zQ,sJ'(I.kiJ.' ..r{h.'Zv.o. d ...., -" "-'" -: '-,:',
'

procedure postaviCijene (vax C.ijene

NizCijena);
[3]
:=

begin Cijene [1] 150; Cijene [2] :'" 200; Cijene Cijene 141 :'" 325; C.ijene [5] :'" 250

"--'

.-',,,

-;

400;

Prlkazacemo kaka bi trebao izgledati sistematican razvoj programa koji rjesava ovaj problem. Na prvom mjestu, treba osmisliti kako bi program trebaa da izgleda i kako bi trebao da komunicira sa korisnikom, Radi jednostavnosti, odlucimo se za varijantu programa koji ce nakon svake narudtbe postavljati pitanje DNNE tipa da Ii operator tell unijeti novu narudtbu. Aka je odgovor DA, program ce cekati unos sljedece narudzbe, a ako je odgovor NE, on ce prikazati sumami izvjestaj. Pri unosu narudzbe, program ee neprekidno traiiti uhos sifre narucenog proizvoda i narueenu kalieinu (u tanama). Posto ne postoji proizvod eija je sifra 0, to se unos sifre 0 moze koristiti kao sig~ nal da je narudiba gotova. Na osnovu predlozenog apisa slijedi gruba skiea algoritma programa:

Procedura ObradiNarudzbe je znatno slozenija i predstavlja srZ cijelog programa. Razmislimo ova profedura treba da uradi. Prije prve narudzbe, sve narucene kolicine sigurno treba da budu Jednake nul!. Proc~d~ra zatim ~re.ba da p~ihvata je~nu po jednu narudzbu, sve dok karisnik (aperater) ne kate da ne teli vise narudzbl. Da pOjednostavlmo unos komande, pretpostavimo da unos slova 'N' iii 'n' predstavlja odgovor NE, dok svaki drug] znak predstavlja odgovor DA. Uz ovakve pretpostavke, algoritam ko]i obavlja proeedura ObradiNarudzbe maze se prikazatl ovaka:
~ta

"

"'* Poslav! ukupne koliCine na nulu;


""'*

"'* Postavi spisak cijena na zadane vrijednosti;


""'*' Obradi narudibe; ""'* Prikaii iZlljeStaj.
Dalje je potrebno osmislili strukture podataka ka]i ee se koristiti u programu. OCig!edna ce nam trebati niz koji ce Guvati cijene za nqvedenih pet prolzvoda. Pored njega, biee nam potreban jos jedan niz za Guvanje ukuprie narucene kolicine za svaki od proizvada, taka da na kraju mazem'o prikazati sumarni izvjestaj. Na osnovu provedenih razmatranja, programa:
const BrojProizvvda ~ S; type NizCijena '" array [1 NizKolicina '" array [1 354

"'*

Ponavljaj sljedeec akcije: "'* Obradi jednu narlldt.hll; => Cekaj na unos korisnikove lwmWldc Ponavljaj .I've dok ne bude korisnikova komanda 'iV' iIi 'n'.

~reyedena u sintaksu je.zika Pascal, ova praeedura magla bi se napisati ovako:


procedure ObradiNarudzbe (Cijene : NizC.ijena; var Koli_cine
var Komanda : char;
Nizl{ohcina);

begin

mazemo napisati kako bi mogao da izgleda kostur naseg

'f!ostaviKol.ic.ineNaMl.1u (Kolicine);

r!3peat
Ohrad.icTednuNarudzbu (C.ijene,

program Narudzbe (input, output);


BrojProizvoda] of real; BrojProizvoda] of real;

write ('Da li zelite JOB narud2bi readln (Komanda) until Komanda in ['0', 'N'j; end;

Ko.licine); (DiN)?

');

355

Drugi tormalni parametar ove procedure treba da bude vracen izvan procedure, stoga je on deklariran kao promjenljivi parametar. Unutar procedure ObradiNarudzbe pozvali smo se na procedure PostaviKOlicineNaNulu i ObradiJednuNarudzbu koje realiziraju slozenije korake algoritma ove procedure, mada one jos nisu napisane, Ovo je tipicna ilustracija metodologije programiranja "odozgo na dolje". Naravno, da bi program bio funkciona!an, ove procedure se moraju napisati, '510 je nas sljedeci korak. Procedura PostaviKolicineNaNulu fe sasvim jednostavna, j moze se opisati sljedecim algoritmom:

repeat
write ('unesi sihu proizvocla (0 za kraj): if' Sifra <> 0 then

'); readln (S.ifra);

begin
'); readln (Kohcina); Kolicine [Sifra] :'" Kolic.ine [Sifra] + Ko1.icina; Cijena := KoJ.icina * C.ijene [SifraJ; writeln ('Ta .stavka ce kostati I , Cijena 0 : 2, KM'l; Ukupno Ukupno + C.ijena
end;

write ('Unesi fteljenu kolicinu:

"* Za sve proizvodc od prvog do pelog, radi sUedece stvari:


"*
Post(/\!i 1l1mpnu koliCinu za taj proizvod na nulu.
Kako se postavljanje ukupne ko!icine za jedan proizvod na nulu moze obaviti jednim Pascal iskazom, ova procedura ne trazl dalju razradu, i mogu6e ju je direktno prevesti u Pascal:
procedure PostaviKolicineNaNulu (var KoJicine : NizKolicina);

until SUra '" 0; writeln ('lJkupna cijena narud~be i.znosi. "


end;

Ukupno

o : 2,

' KM')

Ostaje jos da razvijemo proceduru PrikaziIzvj estaj, jedinu koju jos nismo razradili. Sre60m, ova procedura je takoder jednostavna i moze S8 prikazati sljedeCim algoritmom:
~

var

pr-oizvod

integer;

begin for Proizvod : = ), to BrojProizvoda do


KoJ.icine lPro,izvod]

[spiii zaglavlje izvjdtaja; Za sve proizvode od prvog do petog, radi sljedece stvarL' "* lspi,5i ukupnu koliCinu n{frui'enu za tal jJroizvod.

:'" Oi

I ova procedura je neposredno prevodiva u Pascal:


procedure pri,k'aziIzvjestaj (Koli,cjne var Proizvod
NizKoJ..icina) ;

end;

Procedura ObradiJ'ednuNarudzbu sastoji se od nesto veceg broja koraka, koji se mogu opisati s!jedecim algoritmom:

integer;

* Postal'i ukupnu cijenu norl.ldzbe na nulu; "* PorwvTjaj sljedde akcije: "* UCitaj .qru proizvoda;
proiZl'Oda razlicita od nule, (lnda: "* UCita) zahtijevanu kolii"inu.; "* Dodo} zahtlJcvanu kolicinu no ukllpnu lwlif/:nu za tal proizvrd,' "* Izracunaj cUenu stavke kao proizvod koliCine i cijene po toni; "* l.l'pW cijenu stavke; "* Dodaj izraclIllotu cijenu no ukupnu eijelllf ilOrudthe; => PonavUaj sve dok ne bude ullesena 111/1a umjesto Jifre; ~ IspUN ukupnu cijen!! !larudmc.
Mada je- ovaj algoritam nesto duzi nego do sada raspisani algoritmi, svi njegovi koraci direktno se mogu iskazati kao iskazi jezika Pascal, tako da ovaj algoritam ne trazi dalju razradu i moze se direk:tnq prevesWu Pascal bez potrebe za uvodenjem dodatnih procedura. Odavde neposredno slijedi pri~ ,feyod'ovog algoritma u jezik Pascal, ko]! realizira proceduru Ob!'adiJednuNa~udzbu:
.. lirocedu:r:e Obrc:dicTecllJuNarudzbu (Cijene
var __ Kolicine NizKo},i_cina); NizCijena;

=> Ako je

,~ijl'a

begin writeln; wri teln (' Proizvod Pl'odata kolicina (tona}'); write1n ('----- __ _ --- ); for Proizvod 1 to BrojPr-oizvoda do writeln (Proizvod 8, Kolicine [.t'roizvod] 28 end;

-------------------

3)

Preostalo je jos jedino da uklopimo napisane procedure u jednu cje!inu, 5tO je sasvim jednosta~ van zadatak. Nakon toga, dobijamo konacnu verziju programa:
program Na_l:l1dzbe (input, output);

canst Bro.iPro_izvoda

5;
B.rojl'ro.i,zvoda] of real; BrojProizvoda] of reaL

type N.izCijena '" array [1 NizKolicina array- [1

var Cijene
Kolicine

NizCijell~';

N.i.zKoli~i1Ja;

prpcedure begin
CiJ'eIle Cijene

(var Cj.:i('4je : NizCijena);

.---

'.

vai' Sifra:: inte9'er;


Ko)ic~l:na', C.ijena,
UkupJJO

UJ [4f

[2)

20q,,. J-'ijene [3J


:=

4-00;

[51

250

real,'

end;

begin
Ukupno ,_ 0;

procedure Ol;irai;;J1Nai-iJdZbe '(Cijene- : -NizC.ijena,' var -KOl.J0:_1n.e' ,N;i..zKol~cJfia); var Komanc'la chq":c;

.356

357

procedure postav,iKo.licineNaNulu (var Kolicine : NizKoJicina) ,i

3.11.2 Poredenje modularnih i nemodularnih rjesenja


Program koji smo upravo razvili dizajniran je metodologijom modularnog programiranja. Medutim, bitno je naglasiti da modularno rjesenje nije i najkrace rjesenje. Poredenja radi, ovdje je dat i prim~ jer Istog programa, napisanog nemodularno:
program Narudzbe (input, output);

var Proizvod

integer i

begin for p.ro_izvod : '" 1 to BrojProizvoda do Kolicine [Pro,izvod] :'" 0;

end;
procedure ObradiJednuNarudzbu (Cijene var Ko1i.cine : NizKoLie.iIla);
var si..fra : integer;
KoJ.ici.na, Cijena, Ukupno : real; NizCijena;

canst BrojProizvoda '" 5;

var

begin
Ukupno : = 0; repeat write ('Unesi sirru proizvoda if Sifra <> 0 then

array [1 BrojProi.zvoda] of real; Cijene, Ko.2icine integer; Proizvod, Sifra real; Kolicina, C.ijena, Ukupno char; Komanda

begin
(0

za kraj):

'); readln (Sifra);

C.ijene [.1] :'" 150; Ci.jene i2l := 200; Cijene [3J : 400; C.ijene [4J ._ 325; Cijene [5] := 250i for Proizvod := 1 to BrojProiz'I1oda do Ko1.icine r,P,ro.lzvodJ

~oo.

0;

begin

\~rite ('Unesi zeljenu kolicinu: '); readln (Kolicina); Kolic.ine {S.ifra] :,,; Kolicine [S.ifra] + [(ohcina; Cijena ;:0 Kolicina * C.ijene [S.iiraj i o : 2, ' KM'); writeln ("1'a stavka ce kostati " c.ijena ukupno :'" Ukupno + C.ijena

repeat
Ukupno: 0;

end;
until S.iira = 0; wrj toln ('Ukupna cij ena narudzbe iznosi
ukupno
2, ' KM')

repeat write ('Unesi sifru proizvoda (0 za kraj): '); readln (S.ifl'a); if Sifra <> 0 then begin write ('unesi zeljenu kolicinu: ,); readln (KoJ..icina);
Ko.I.ic.ine [gifraJ := Ko1.icine [S.i ira j -+ .i<o1.ic,ina; C.ijena := Kol.icina * Cijene [SifTa]; writ.eln ("ra stavka ce kostati " Cijena : 0 2 Ukupno : = Ukupno -+ Cijena

ener;
begin
postav.iKolicincNaNulu (Ko,lic.ine);

'KM');

repeat
Obn,d.iJednu.Narudzbu (Cijene, Ko.lie,inc);

write ('Da li zelite jail narudtbi (DIN)? '); readln (Komanda)

until Komallda in ['nt, end;


var Proizvod
int.eger;

'N'];

procedure p.r.ikaz,ilzvje5taj (KoLie.tne : NizKol idna);

begin
"IIlriteln; Prodata koliCina (tona)'); writeln, (' Proizvod ----------,,- .,,"--------, 1 , writeln (' -------for Proizvod : '" 1 to BrojPro.izvoda do 28 ; 3) 8, Ko]. i cine I Proi zvodl writeln (Proizvod

end; until Sifra '" 0; writeln ('Ukupna cijena narudzbe iznosi [lkupno o 2, write ('Oa li ielite jos narudzbi (DIN)'? '); readln (Komanda) until Komanda in l 'n', 'N']; writeln; Prodata koliCina (tona)'); writeln (' Proizvod writeln (' -----------------------'1, for Proizvod :"' 1. to Hrojp.roizvoda do writeln (Pro.lzvod : 8, Kolicine [Proizvod] : 28 : 3) end.

KM' )

Mada je priki3zani program krad, on je znatno teii za razumijevanje, i znatno tezi za izmjene, jer ne _prati prirodan tok misli. Bitno je naglasiti da su modularnost i kratkoca medusobno suprotstavljeni zahtjevi. Nekada, djene memorija bile presudan faktor prj razvoju programa, duzina programa je bila od _ izuzetne- VaznostL U danasnje vrijeme presudan faktor je zapravo cijena jednog radnog sata pro. gramera, tako da je potrebno smanjiti vrijeme utroseno za razvoj, izradu j odrzavanje programa, cak . "[- po djenu da on postane dut) i manie efikasan. Cilj modularnog dizajna je upravo olaksavanje .razvoja, izrade, razumijevanja i odrtavanja programa. Pri tome se ponesto gubi na duzini i efikas.. :nosti.samih.programa, medutim stete koje time nastaju su daleko manje od ostvarene koristi.
k~da' su

end;
begin
Postav,iCijene (Cije11e); ObradiNarudzbe (Cijene, Kolidne); prj.iwzilzvjestaj (Kolicine)

end.

Ovim je razvoj programa zavrsen. Preostaje JOS da ga testlramo i dokumentiramo, a cemu cerna govoriti u narednom poglavlju.

358

359

Pilanja i zadaci
, b~enknOovvncOamnar~;~~~. 1. Napisite program koji omogucava korisniku da obav!ja n(iZ ope) raelial na Korisnik treba da ukuca jedna SIOVD, na primjer slovD 'u' unes ~a s avlJa~J ... slovD 'P' (podizanje) za uzimanje novea sa racuna, iii slovD 'K', (kr,ap za pr,ekld,rada: Aka ,se trazi stavljanje iii uzlmanje novea sa racuna, program uCltava zeIJ~~1 lZ,nos, ,I zatlm pnkaz~Je. nD~o stanje na racunu. Nakon izvrsene jedne operacije unos~ III uZlmanja, n?vca, konsmku, J~ omogu6en izbor nove operacije, s tim da se program zavrsav~ ~ada ~O.rlSnl~ ukuc~ sloVD, K. Pocetno stanje na racunu je .nula. Komande se mogu za~av.atl ?liO vel.1klm bile m~hm slovlma. U slueaju da korlsnik unesa nepostojecu komandu, treba Isplsat! poruku upozorenja 2. Napisati program koji treba da ponudi korisniku 3.opcije.: r!eksavanje linearpn~J.Jedp~~gt~:~ rjesavanje kvadratne jednacine i kraj pragrama. Ukohko .~on~1l! . u~es.e prvu o. ' _ treba da pita za vrljednosti koeficijenata a I b i da izra(;un~ Ilsplsa.~JesenJ~ jedn.a~me a x + b -:- 0: Ukoliko korisnik unese drugu opciju, program treba da pita za v.nJedno.stl .koehcljenata, a, b I da izracuna i ispise rjesenja jednaCine a x~ + b x + C :::: O. U~ohko konsnlk unes: t:ec~ OPCIJU, program treba da zavrsi sa radom. Ukallko korisnik unese bllo sta dr~go, tr~.ba Isp~sa~1 poruku da je unos pogresan. Nakon sto se obavi proracun pomocu prv~ d~lle opclje, ~ons.ntku treba panovo ponuditi izbor, pri cemu se postupak ponavlja sve dok kon~ll!k ~e }atrazi. k~aJ. pro~ra~ treba realizirati iskljucivo koristenjem modularnog pristupa ..D~ug.lm fljeClma, Cjellne za !Sp:~ menija rjesavanje linearne i kvadratne jednacine treba reahZlratl kao posebne procedure 111 funkCij~ kaje 6e se pazivati iz glavnag programa. Funkcija za ispis menij~ .treba da kaa rezultat vrati br~j koji odgovara rednom braju opcije koju je korisnik izabraa (1, 2 Ih 3).

3.12 DOKUMENTIRANJE I TESTIRANJE PROGRAMA


3.12.1 Dokumentiranje programa
Veoma vaino je shvatiti da nijedan program nije sam sebi svrha, taka da nije dovolino samo uradlti Imrektan program. Programi se pisu radi korisnikakoji ce koristiti program. Zbog toga, program, kao i svaka roba, mora podUjegati izvjesnim standardima kvaliteta, te mora bit] prapisna testiran i dokumentiran. Tako, u svim velikim sistemima, prakticno ne postoji konacan program, nego se on u fazi eksploatacije neprestano dotjeruje, pre6iscava od uocenih gresaka, i prllagodava realnim zahtjevima korisnika. Ooradivanje i dopuna programa mogut1 su sarno ukoliko je prije toga program kvalitetno dokumentiran. U suprotnam, nakon veoma kratkog vremena, ni sam autor programa neee biti u potpunasti siguran kaka njegavi pojedini dijelovi rade, naraCito ukoliko je program veoma slozen. Pisanje dakumentacije pocinje vee u fazi pripreme programa, i proteze se kroz sve faze razvojs programa. Kao $to smo vidjeU u poglavlju 3.2, na pocetku je neophodno pazljivo sagledatl program koji se rjesava, i rasclaniti ga na potprobleme kaji S6 mogu nezavisna rjesavatL Nakon toga, za svaki potprablem potrebno je sklcirati algoritam. Pasebnu paznju treba posvetiti specijalnim slucajevima. Na primjer, u poglavlju 32 imali smo cinjenlcu de se, na asnovu ustaljene prakse u abrazovnim sistemima, prosjek ucenika koj! lma makar jednu slabu ocjenu ra6una kao 1, bez obzira na ostale aejene. Veoma je vazno da predvidimo i ovakve s!ucajeve. Vidimo da je i za relativno jednastavan problem potrebno razmotriti eitav splet okalnosti, i predvidjeti reakcije na svaku mogucu situaciju. Tek kada razradimo sve situacije kOje mogu nastupiti, mozema pristupiti razvoju kompietnag algoritma. Konaeni algoritam treba da bude iskazan u takvoj formi da se njegovi iskazi mogu manje iii vise direktno prevesti u iskaze programskog jezika koji 6emo koristiti. Ovako napisan algoritam, koji smo nazvali apstraktni program iii pseudo kod, predstavlja obavezan sastavni dio dokumentacije svakag ozbiljnije'g programa. U dokumentaciju bi takoder trebalo uklju6iti sve skice, crteze, dijagrame i verbalne opise koje smo koristili prilikom razrade algorltma. Kreiranje dokumentacije se nastavlja i prilikom prevodenja apstraktnog programa u kmikretan programski jezik. Nairne, dobra napisan pragram u konkretnom jeziku moze sam seb! biti dokumentacija. To se posUze na ptvom mjestu ubaclvanjem kamentara u programe. Korist od kamentara je visestruka, jer ce se u slucaju potrebe program moci mnogo lakse prepravljati ukoliko su u programu prisutni komentari koji opisuju sta rade pojedini dije!ovi programa. Ne smijemo zaboraviti da eak i autori programa nakon izvjesnog vremena zaborave na koji nacin rade pojedini njegovi dijelovi. Naravno, sa komentarima ne treba pretjerivati, ali bi se u dobrom programu morali nalaziti barem komentari koji" opisuju kakva je svrha upotrijebljenih promjenljivih, i kakvu ulogu obavljaju pajedini potpragrami (procedure j funkcije). Na Cltljivost programa takader utjecu i duzine upotrijebljenih potprograma. U dobro napisanom programu, niti jedan potprogram niti glavni program ne bi smjeli da budu duzi od 20-30 redova, jer je dugacke potprograme jako tesko pratiti. Uko!iko je potprogram predugaeak, to je dobar znak da ga trebamo.podijeliti na vise manjih potprograma koji abavljaju jednastavnije zadat~e. Ja1<.C?der,-njtl jeden dobro napisan potprogram ne bi trebao da obavlja vise razlititih funKcija, vee _sarno jedDu, . Za potrebe kaSnij~.g-Ddrt~v.anla~ prog~~ma, izuzetna 'je-vazno da svi identifikatori u programu imaju smislena imena,"'koja'-Odrazayaju niJhovu stvarnu namjenu u programu. Zamislite kako bi izgledao program iz pog!aYljp,.3,i:Lda-:sm'o umjestQ imena promjenljivlh Cijene, KoJ.icine, Sifra itd. koristili imena_ X, .r; '.z itd. ada smo procedure nazvali Pi, P2 itd. Dobra odabrana imena promjenljivih znC!inodapf(nose. titljiVosti programa, dok losa imena magu uciniti nerazumljivim i najbolje napisan program .. Zamisunio, na primjer, da je u programu za racunanje obima i povrsine kruga neko proinjen~ivu koja .&~va vrijednos~ poluprecnika nazvao Povrsina, a promjenljivu koja
361

!.?

3.

Realizirati program za rjesavanje kvadratne jednaCine na mo.d~la~an natin, taka sto 6e se cj~line za unos podataka, nalazenje rjesenja i ispis rezultata reallzlratt kao za.~ebne pr?cedure kOje 6e se pozivati IZ glavnog pragrama. Pri tome, napisane procedure. ne smlJu da konste globaln,e promjenljive. Umjesto njih, svo kamuniciranje izmedu procedura I glavnog programa treba aa bude ostvareno putem prenosa parametara. skom jeziku Pascal.

4. Pokusajte apstraktni program razvijen u paglavlju 3.2 prevesti u konkretan program u program-

360

cuva vrijednost obima nazvao poluprecnik. Tada bi se u tak~om pro,gra~u sigurno ~orala p?ja~ viti naredba poput Pol uprecnik ::;;: 2 * pi * Povra:ma, kOja bl, bez sumnje, zbuntla ! iskusnog programera, jer se ne uklapa u logi~u ,koj~ nan: je poznata iz el~mentarne rnat~m,atike, 8 druge strane, raeunaru ovakva ~aredba ne bl. n~ naJmanje s~etal~. Ovo Je ekstreman pnmJer kako lose izabrana imena promjenljivitl mogu da utJecu na razumlJevanJe programa. Nakon Mo je program uspjesno preveden iz apstraktne u konkretnu formu, i nakon njegovog prevodenja na raeunaru uz pamoc ko~pajlera, dokumenti,ra~je programa Se dalje nastavlja kroz fazu testiranfa programa, 0 cemu govonmo u narednom odjelJku,

3.12.2 Testiranje programa


Posao programera ni u kom slucaju nije zavrsen onog trenutka kada se kompletan program napise i prevede. Nakan te faze, ?ola.zi faz~. testiranja !,rogram,~' ,koja je ,~ozd~ ,j jos teza nego sama faza izrade programa (kodlranja). Gil) ove faze Je pronael I otklonltl greske u programu. S'mtaksne i gramaflcke greske (po put pogresne deklaracije promjenljivih, itd.) ne predslavljaju oso, bit problem, s obzirom da 6e njih detektirati prevodilac, taka da 6e.one biti otklonjene vee u fazi kodl" ranja. Sustlnski problem zaprava. p~~dst~vljaju semanti6ke gresk~, k~o i g.r~ske. prjne~pijelne prirode u samom algoritmu koji sma konstlli za Izradu programa. Otklanjanje sustlnsklh gresaka u progra~ mu moze da oduzme i preko 50% ukupnog vremena predvidenog za razvoj programa. . Kako je testiranje programa slozen i mukotrpan posao, on se obieno odvija u tri faze. U prv~j fazi, koja se naziva rucno testiranje (iii te~tiranje na stolu): al~orita~ (apstr~ktni pro~ram) ~e testl~ ra rueno, sa papirom i olovkom. To znaci da se za predlozenl algontam rueno zadaJu nekl. ulaznl podaci (obi6no male velicine), i izvrsi provjera dva, Ii predl,ozeni algorit,am daj~, oeeki~a~e 1~lazne rezultate. Ova faza moze otkrlti mnoge greske sustlnske pnrode u algontmu, all je nepnmjen!jlva za testiranje kako 58 algoritam ponasa sa veeom kolicinom ulaznih podataka. Druga faza testiranja naziva se testiranje po princ~?u erne kutl!e (iii testir~.nje na osno~~ pO~m natih uJaza; izlaza). U teori]i sistema S9 pod crnom kutlJom smatra slstem za kO]1 se zna funkclJa kOJu obavlja, all ne i, naGin na koji sistem obavlja tu funkciju (mnoge uredaje kOje koristimo u svak~" dnevnom zivotu, npr. televizor, veGina korisnika posmatra upravo kao erne kutije). U ovoj fazi, testlH ranje izvodimo na programu koji je vee napi~an i preved~,n, tako ?a je sprema~ za, izvrsenj.e n~ racunaru. Pri tome pretpostavljamo da nam nlje poznat nacm na kO)1 program radl, vee samo sta bl on trebao da radi, Stogaje neophodno pripremltl skup pazljivo odabranih ulaznih vrijednosti koje treba unijeti u program, i provjerlti da Ii su rezultati. lzvrsenja u skladu sa oeekivanjima. Pri tome je naroCito vazno obratiti paznju na testiranje granienih vrijednosti ulaznih podataka, jer mnogi programi "padaju" upravo na nekom od ~ranici1ih slueaj~va. Recin:o, neki pr.ogram koji obraduje datote~u u6e~ik~ moze da pravi problema. ukoliko je qatoteka ucenlka na poeetku prazna (sto predstav!Ja granlcnl sluca]), mada radi sC):svim k9rektno.'ukoliko. mp se ponudi datoteka kOja vee sadrzi unesene po~atk~. Smatra se da ako 3Q%.svih .greSaka. ,u. 'pmgramima nastaje upravo zbog neadekvatnog tretlranja granicnih slueajeva. f':lB primjer, Ri~po$tayimo ,da Sm? ~apl~ali program k?ji :ra~i da.se u~osj njz b.ro" jeva sa tastature, pri c?mu nula-oznacavl!\. !<raj unosa, I kOjl oakon toga IsplsuJe antmetlcku sredmu unesenih brojeva (ne rgGunaj~Ci ('lulu koja::sanio sluzi kao grani6nik). Ukoliko pokusate da napiset~ ovaj program, on.ce vjerovatno:-rctditr.:kore~no,osim u jednom speclficnom slueaju - kada je prY! uneseni broj upravo nula (prograQ'Fs:.e vjerov'atno tada pokusati da podije!i sumu unesenih brojeva s~ brojem unesenih ..broiera".od.nos~c: nu!u sa lJylom, sto dovodi do ~~eske). ~,riz.najte ~ami sebi da Ii bl se sjeWi da ovaj granlcni slucartreba da- razmatrate possbno. NaJvjerovatnlJe ]e da Je odgovor ne ...
. -.

liko je to ikako mogu6e, obaviti i trecu fazu testlranja, poznatu pod nazivom testiranje po principu bije/e kutije (Hi glabalno testiranje). U ovoj fazi pretpostavljamo da nam je funkcionalnost progra" ma poznata u potpunosti, i eilj nem je da odaberemo takve ulazne vrijednosti koje nam garantiraju da (:e se svaki, pa i naj8itniji ogranak algoritma izvrsiti barem jedanput. Tek nakon provodenja jove faze testiranja, program j9 spreman za upotrebu. Nazalost, trecu fazu testiranja je, osirn u rijetkim slucajevima, gotovo nemogu6e u potpunosti prove_sii, narocito u slucaju ako je program veoma kornpleksan i razgranat, iii u slucajevima kada nam nije poznato kaka funkcionira djeli program (sto moze biti slutaj ukoliko je program razvijaa tim sastavljen od velikog broja Ijudi). 8toga, nikada ne postaji garaneija da je program u'potpunosti ociscen ad gresaka. 6ak i cuvene programerske firme cesto izbaeuju na trziste programe sa mnostvom gres,aka (bagova) koji se otkriju tek u fazi eksploa~ taeije programa. Pesimisti bi rekU da se najozbiljnije greske uoce tek kada 'se gotov program vee pojavi na trzistu, Naveseemo jedan veoma poznat primjer [z racunarske historije. Jedna ad letjelic8 iz Apolo serije, prilikom lansiranja, umjesto na Mjesecu zavrsila jeu Tihom okeanu (sreeam, bez Ijudskih zrtava). Letjetieom je upravljao program pisan u jeziku FORTRAN, dug ako 200000 Bnija koda. Na jednom mjestu u programu, programer je napisao naredbu
DO 10 I "" 1. '3

Umjesto toga, naredba js trebala da glasl:


001010::1,3

Dakle, razJika je u jed nom jedinom znaku (zarez umjesto tacke), Problem je u tome sto je i neispravna naredba bila sintaksno ispravna u jeziku FORTRAN, tako da kompajler nije mogao da prijavi gres!<u. Program je testiran mjesecima, medutim greska nije uocena, jer u fazi testiranja kobna naredba nije bHa nikada izvrsena. Greska je otkrivena tek naknadno, kada je formirana komisija za utvrdivanje uzroka havarijeJ Cilj testiranja nije samo utvrditi kako se program ponasa prj unosu ispravnih ulaznih podataka, vee i sta se desava kada su u!azni podaci neispravni. Naime, moze, se desiti da program radi korektno dok su ulazni podaci korekni, ali da se ponasa potpuno haoticno ukoliko mu se ponude pogresni podaci. Pri duzem radu sa bilo kakvim ozbiljnijim programom, prije iii kasnije ee dod do zadavanja pogre,snih podataka, najcesce ustjed nenamjeme greske operatera, Dobro napisan program ne bi smlo da "potu" dl" u takvim situacijama, vee da obavijesti korisnika a tome da podaei nisu ispravni. Na primjer, program iz poglavtja 3,11 radi posve korektno sve dok su unesenl podacJ koreictni, medutim on ne posje duje apsotutno nikakvu zastitu ad pogresnih ulaznih podatakal Tako je, na prlmjer, moguce unijeti negativnu koli6inu, iii unijeti sifru proizvoda koja nije u opsegu od 1 do 5, sto se u realnosti lako moze dogoditi usljed omaske operatera. Ukoliko u navedenom programu unesemo recimo sifru 10, program ce pokusati da pristupi nepostojecem desetom elementu niza. Zavisno od upotrijebljenog kompajlera, ovakav nedozvoljen pristup moze da uzrokuje prekid rada programa uz prijavu greske (eime gubimo sve unesene podatke), a nije isk!juceno 6ak i da dode do kraha, cita\log 'sistema (ukoliko ra6unar pokusa da podatke smjesti u neki die. memorije koji mu ne: 'bi' $f!1io d~ qude qostupan). Uglavnom, U svakom sll/caju, posljedice su nepredvidive. -6ak 'postoli j'prilicriO vjerovatna mogucnost'da se U poeetnom trenutku, odmah nakon unosa pogresnih podafaka,,~b.e oosi . nita posebno, a da se posljedice pojave tek nakon duzeg rada (ponekad i nakor\nekollko Si;l.tQl Kate se da.ovakav, program nile stabifan na unos pogresnih podataka, ProfesionaJilo riapi~ao-'program nikada se ne bi smio ovako ponasatL Sto je najgore, greske koje nastaju usljed pOgres['~~i. (lnesenih podataka, obicno se otkriju tek u fazi eksploatacije programa. Najveci ~io v~em~!1a'~d~ razvoja ozbiljnih programa utrosi se upravo na zatitu programa od pogresnih ulaznih podala.kal, Naza!9st, pra~sa'je pokazala da u iole veeim programima, koliko god se trudili da zastiti.te program od unosa pogresnih ulaznih podataka, nekome ipak nehotiee "pode za rukohl" da unese pogresne poda.tke tr program.:.
363

U drUg~j",faZi testiranja mogu -se d?tektir~ti greske koje su posljedica pogresno upotrijebljenih elemenata programa. Medutim~ mnqge gres.ke nije moguce otkrili u ovoj fazL 8toga je poteljno, uko"
362

Jasno je da ie gresKe koje se otkriju u fazi eksploatacije programa mog~6e otklonit] tek u nare?: noj verzljl programa. Medutim, 8vaka sljedeca verzlja nekog pr?grama ?b\6n~ sa so~om dono~\ I nove greske. Ovaj proces se ponavlja unedogled. Zbog toga se cesto moze 6utl duhovlta.. doskot!C~ koja kate da osnovni aksiom racunarske egzistencije gla~i lOU .~vakom prog:am~ UVI!~k postO}1 barem jedan bag." (po analogiji sa osnovnim aksiomom egzlstenclJe u matematiCkoJ teonll skupova koji 91a8i "Postoji barem jedan skup."). Na kraju je neophodno napomenuti da k6mpletan izvjestaj 0 obavlje.no~ testir~njU,.~oj~ u~lju6u!e opis strategije testiranja, popis u\aznih podataka koji su koristeni za testlranje kao I dobljenlh Izlaznlh podataka, treba neizostavno uk!ju6iti u dol<umentaCiju programa.

Pitanja i zadaci
Zbog 6ega je izuzetno vazno dokumentirati program? Napravite kompletnu dokumentaciju za program razvijen u poglavlju 3.11. Opisite faze testiranja programa. Razmotrite kako bi izg!edao postupak testiranja programa iz poglavlja 3.11 po principu erne, i po princlpu bijele kutije. 5. Modificirajte program iz poglavija 3.11 tako da postane stabilan na unos pogresnih podataka. 6. Pripremite dokumentaciju i razradite strategiju tesUranja za preostale programe iz o"og udzbenika, 'kao i za programe koje ste samostalno uradili. 7. Razmotrlte kako bi se !walitetno obavilo testiranje po principu erne kutije programa koj! ispisuje na ekranu kalendar za godinu unesenu sa tastature. Uputa: postoli svega 14 mogu6ih tipova kalendara za jednu godinu, jer bilo kOja godina mora po6eti sa jednim ad 7 dana u sedmici, a pored toga godina moze da bude prestupna iii ne,
1, 2. 3. 4.

364

365

SADRZAJ
PREDGOVOR ............................................................................................................5 1 OPCA INFORMATIKA ......................................................................................7 1.1 Uvod u iniormatiku kao nauku ............................................................7 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.() 1.1.7 1.1.8 1.1.9 1.1.10 1.1.11 Staje informatika? ......................................................................7 Podaci i informacije .....................................................................7 Kol.icina informacije i entropija ..................................................... 9 Obrada informacija ....................................................................10 Analogne i digitalne velicine ...................................................... 12 Brojni sistemi ............................................................................. 13 Binarna aritmetika ..................................................................... 15 Bulova algebra .......................................................................... 16 Diskretizacija i digitalizacija .......................................................20 Informacioni sistemi ...................................................................21 Utjecaj racunara na drustvo i okolinu ........................................ 23

1.2 Arhitektura racunara ...........................................................................27


1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 Historijski razvoj racunara ......................................................... 27 Von Neumannova arhitektura racunara ....................................30 Pojava mikroprocesora ..............................................................34 Vrste racunara ...........................................................................35 Hardverska struktura PC racunara ............................................36 Organizacija softvera PC racunara ......................................... .42

1.3 Osnovni principi rada racunara .........................................................46


1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 Mjere bezbjednosti pri radu sa racunarom ............................... .46 Instaliranje racunara ................................................................. .46 BIOS i proces pokretanja racunara ........................................... .49 Odnos hardvera, BIOS-a, operativnog sistema i aplikacija ....... 52 Minimalna hardverska i softverska konfiguracija PC racunara .54

1.4 Komunikacija korisnika sa racunaro l11 ......... ,.... :... :.;........................58 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 Opca struktura komunlkacion'og pmcesa.c ................................ 58 Metoda komunikacije covjek-racunar .:; ...... 59 Komunikacija sa racunarom'pomoclI:k<lmandnelinije .... :......... 61 Komunikacija sa racunarom pomocLtJ(Qmandnih Ijuski ............ 63 Komunikacija sa racunarorn jlomocu'grafitkog okruz'enja ........ 64 Napredne metode komunikaGijecO\/jek-racunar ....................... 67 Integracijainteraktivnog okruzenja'racunarskog sistema ......... 68

c,: ....... ,......... ,.........

366

367

1.5 Primjena racunara .................................................. .... ................ .... 71 1.5.1 Klasi6ne primjene ra6unara ..................................................... 71 1.5.2 Programi za obradu teksta ........................................................72 1.5,3 Tabela:.ni prora6uni ,i poslovna grafika ....................................... 75 1.5.4 F,nans'jsk, programl ..................................................................77 1.5.5 Programi za upravljanje bazama poda!aka ...............................78 1.5.6 Grafi6ki programi .............. ,.........................................................80 1.5.7 Programi za stolno izdavastvo ..................................................81 1,5,8 Komunikacioni programi .. "., .... " ......... ,............. ,. .. ,', .. " ....... 82 1.5.9 Interaktivni multimedijski obrazovni programi ........................... 83 1.5.10 Oslale primjene ra6unara ..........................................................84
1.6 Prenos podataka i racunarske mreze ...............................................87

2.3 Raunarska grafika i graficki paketi ...............................................170

2.3'.1 2.3.2 2,3,3 2,3.4 2,3,5

Uvod u racunarsku grafiku ...................................................... 170 Struktura grafi6kih sistema ........................................ ,...... ,...... 171 Manipuliranje elementima slike ............................................ ,.. 177 Grafi6ki paketi, ...... ,........ ,...... ,............................ ,...... ,...... ,.... ,.. 179 Virtualna stvarnosL ...... ,........... ,............................ ,.... ,.. " .. ,.... 182

2.4 Modeli i baze podataka. i sistemi za upravljanje bazama podataka ....185


2.4,1 Osnovni pojmovi 0 bazama podataka .. ,...................... ,...... ,.... 185 2.4,2 Centralizirane i distribuirane baze podataka .................. ,........ 186

1.6,1

Osnovni principi prenosa podataka ...........................................87 1.6.2 Prenos podataka kroz telefonsku mretu i modemi ...... " ........... 89 1.6.3 Ra6unarske i terminalske mrete .............. " ............................... 90 1.6.4 Topologije racunarskih mreza i telekomunikaciona oprema ..... 93 1.6,5 Internet kao najrasprostranjenija racunarska mreza " ............... 95 1.7.1 Uvod u problematiku rjesavanja problema .............. " ........ " ...... 98 1.7.2 Tipovi problema ......................................................... .... " .. .... 100 1 ,7.3 Metodologija rjesavanja problema .............. " ........................ .. 101 1.7.4 Pojam algoritma ,....... " .............. " ................................... " ....... 104 1,7,5 Konstrukcija algoritama ....... "" ...................... " ......... " .. " ........ 109 1.7.6 Put od algoritma do programa ................................................. 113

2.4.3 Organizacija baza podataka ...................... " .............. ,............. 187 2.4.4 Relacione baze podataka .......... ,...... ,.......................... ,........ ,.. 189 2.4,5 Aplikacije baze podalaka ............. ,.................................... ,.. " .. 192 2.4.6 Jezici za manipulaciju bazama podataka ............................... ,194 2.4.7 Kratak uvod u SQL ........................................,.. ,.. " ...... ,...... ,.... 195 2.5 Integrirani program ski pake!; .... ,.....................................................209 Integrirani pake!i za uredsko poslovanje ................................ ,209 Integrirani paketi za elektronicku trgovinu ; elektroni6ko poslovanje ..211 2.5.3 Inlegrirani pakeli za slolno izdavastvo ....................................212 2.5.4 Integrirani paketi za dizajniranje i projektiranje ....................... 214 2.5,5 Integrirani pake!i za brzi razvoj aplikacija ............................... 216
2.5.1

2.5.2

1.7 Rjesavanje problema uz pomoc racunara ......................................98

2.6 Multimedija

otvorenim i zatvorenim sistemima ..........................220

2.6.1 Osnovni pojmovi 0 multimediji .................................................220 2,6.2 Neophodna hardverska podrska multimedijskim sistemima ... 221

2 KORISNICKA INFORMATIKA ......................................................................117

2,6,3 Neophodna softverska podrska multimedijskim sistemima ..... 223 2.6.4 Hipertekst i hipermedija ................ ,", .. ,.................... ,..... ,.. ,... ,..227
2.7 Racunarske komunikacije ................................................................231

2.1

Sistemi

za obradu teksta .............................,..................................117

2.1.1 Razvoj sistema za obradu teksta na PC racunarima ............... 117 2.1.2 Kratak pregled osnovnih operacija u programu Microsoft Word ... 118 2.1.3 Ubacivanje tablica u tekstualne dokumente ...........,... " .. " ........ 134 2.1.4 Ubacivanje ostalih netekstualnih elemenata u tekstdalne dokumente ... 137 2.1.5 Provjera pravopisa i gramatike, i aulomatskoispravljanje gresaka .. " ... 142 2.2 Sistemi za tabelarne proracune .., .......... :............ ;;,;........................... 147 2.2.1 2.2.2 2.2:3 2,2.4

2.7.1 2,7.2 2.7,3 2.7.4 2.7.5

Komunikacija u lokalnim racunarskim mrezama ..................... 231 Osnovni koncepti global nih ra6unarskih mreza .......................232 Upotreba Interneta i WWW servisa ........................................236 Elektronicka posta ................................................................... 240 Oslali Internet servisi .... ,....... "., .......... ,.................................... 243

3 OSNOVE PROGRAMIRANJA ...............................................................:...... 247


3.1

Razvoj sistema za tabelarne proracyne na .f'C.raCtlnarima ... 147 . Organizacija dokumena!a u programuMicrosQfIExcel ...... ,... 148 Unos podataka u radne stranice ........;.: .. :.~;;c.:; .... :.. :: ... ,.......:. . 151 Uredivanje i oblikovanje radnih strahica,: .'.. ",.: .....:... ,.......... ,.. 152 2.2.5 Obavljanje proracuna u radnim stranicarrla ........ :, ....... ,........... 157 2.2,6 Kreiranje grafikona ...... ,",: ........... ,... ,.. :.. ::....... ,....:...... ,:...... ,.... ,164

Osnovne karakleristike programsklh jezika...................................247 . 3.1.1 3.1,2 3,1,3 3.1,4 3.1.5 Nedostaci govomih jezika za potrebe komuniciranja sa racunarom ...i47 Programski jezici niskog nivoa ................................................248 Proceduralni programski jezici ..........................................,.... :249 . Karakteristike najraspros!ranjenijih proceduralnih jezikiL ...... .249 Objektno orijen!irani programski jezici .................................... 250
.369

366

3.1.6 Neproceduralni programski jezici ............................................ 251 3.1.7 Kompajleri i interpreteri ...........................................................252

3.8 Elementarne programske strukture ................................................300 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.8.6 3.8.7 Prosti iskazi i sekvenca iskaza ................................................ 300 Siozeni iskazi (blok iskaza) .....................................................301 Iskazi grananja sajednostrukim izborom ................................ 301 Iskazi grananja sa dvostrukim izborom ................................... 303 Iskazi grananja sa visestrukim izborom .................................. 305 Iskaz bezuvjetnog skoka .........................................................307 Iskazi ponavljanja ........................................................, ...........308 3.8.7.1 Iskaz for ............................................................ 308 3.8.7.2 Iskaz while ........................................................ 312 3.8.7.3 Iskaz repeat - until .................................... 314

3.2 Metodologija programiranja .............................................................255


3.2.1 Proceduralno i neproceduralno komuniciranje sa racunarom.255 3.2.2 Metodologija razvoja proceduralnog komuniciranja ................ 257 3.2.3 Struktuirani pristup razvoju programa ..................................... 261

3.3 Elemenli.programskog jezika Pascal ..............................................265


3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 Zasto Pascal? ..........................................................................265 Sintaksa, gramatika i semantika .............................................265 Mabel jezika Pascal ...............................................................266 Konstante kao elementi jezika Pascal .....................................266 Rijeci jezika Pascal .................................. ...... . ............... 268 Iskazi i komentari ......................... .... ... .. . .....................269

3.9 Siozene struklure podataka .............................................................318


3.9.1 Jednodimenzionalni nizovi ......................................................318 3.9.2 Visedimenzionalni nizovi .........................................................321

3.4 Struktura Pascal programa ..............................................................271


3.4.1 3.4.2 3.4.3 3.4.4 Uporedivanje BASIC i Pascal programa .................................271 Zaglavlje programa ............................................... ............. 271 Deklaracijski dio programa ...................................................... 272 Izvrsni dio programa ................................................. .............. 273

i:H~~:i~~::
3.10.1 3.10.2 3.10.3 3.10.4

. : : .::: . : : :. : : :. :: . .: .: : :. . : : : :.: .:. . . : .: . .:.:J~i

3.10 Procedure, lunkcije i rekurzija .........................................................341


Pojam procedure ...................................................................341 Lokalne i globalne promjenljive .............................................342 Prenos parametara u procedure ........................................... 343 Vrijednosni i promjenljivi parametri .......................................347

3.5 Elemenlarne slrukture podataka .....................................................276


3.5.1 3.5.2 3.5.3 3.5.4 3.5.5 3.5.6 Cjelobrojni tip ............................................ .. ...................... 276 Realni tip .................................................................................276 Znakovni tip .............................................................................277 Logicki (Bulov) tip ....................................................................277 Pobrojani tip ............................................................................278 Intervalni tip .............................................................................278

~: ~ ~:~ ~~~~~~~~:::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::~:~


3.11 Samostalna izrada programa ...........................................................354 3.11.1 Primjer modularnog razvoja prograrna .................................. 354 3.11.2 Poredenje modularnih i nemodularnih rjesenja ..................... 359 3.12 Dokumentiranje i lestiranje programa ............................................ 361 3.12.1 Dokumentiranje programa .....................................................361 3.12.2 Testiranje pr?grama ..............................................................362

3.6 Konstanle, promjenljive i izrazi u Pascalu ..................................... 281


3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 Imenovane konstante ..............................................................281 Promjenljive .............................................................................282 Cjelobrojni izrazi ......................................................................283 Realni izrazi .............................................................................285 Pretvaranje lipova u izrazima ..................................................288 Znakovni izrazi ..........................................................:.... ,:...... i89 Logi6ki izrazi ............ ,""', .......... " ................ .................. :", ... ::.290.

.",

3.7 Ulaz i izlaz podataka ..........................................................................

293 :.

3.7.1 Naredbe ulaza i izlaza .................................................. ,.... , .. ,2.93 .. 3.7.2 Formatirani izlaz .............................................................. :: ... :.. 295 3.7.3 Koristenje lekstualnih datoteka za ulaz i izlaz ................; ........ :297

370

371

SARAJEVO PUBLISHING d.d. Sarajevo, Obala Kulina bana 4 Za izdavaca Mustafa Alagic, dipt oec.

You might also like