232
Dr Srÿan Damjanoviü Mr Predrag Katani ü PROGRAMSKI JEZIK VISUAL BASIC ZBIRKA ZADATAKA FAKULTET POSLOVNE EKONOMIJE BIJELJINA, 2O13.

Programski Jezik Visual Basic Zbirka Srdjan Damjanovic Radni Materijal Za Studente 8

Embed Size (px)

DESCRIPTION

visal basic

Citation preview

  • Dr Sr?an Damjanovi?Mr Predrag Katani?

    PROGRAMSKI JEZIK VISUAL BASIC

    ZBIRKA ZADATAKA

    FAKULTET POSLOVNE EKONOMIJEBIJELJINA, 2O13.

  • Recenzenti:Prof. drProf. dr

    Izdaje:FAKULTET POSLOVNE EKONOMIJE

    Bijeljina

    Za izdava?a:Prof. dr Sr?an Damjanovi?

    ?tampa:GRAFIKA GOLE

    Bijeljina

    Tira?:200 primjeraka

    ISBN: 978-99938-624-7-5

    2013.Sva prava su zadr?ana. Nijedan dio ove publikacije ne mo?e bitireprodukovan niti smje?ten u sistem za pretra?ivanje ili transmitovanje ubilo kom obliku, elektronski, mehani?ki, fotokopiranjem, snimanjem ilina drugi na?in, bez predhodne pismene dozvole autora.

  • Posveta

    Ovu knjigu posve?ujem bakama Go?i i Vukici.

    Zahvaljujem se supruzi Slobodanki, bogatstvu na?eljubavi Teodori i Mihailu, koji su sa puno razumjevanjaomogu?ili moj rad na ovoj knjizi.

    Sr?an Damjanovi?

  • Programski jezik Visual Basic Zbirka zadataka 5

    S A D R ? A J

    UVOD........................................................................................................ 9

    1. OSNOVE PROGRAMIRANJA ......................................................... 111.1. H A R D V E R ....................................................................................... 12

    1.1.1. Osnovne komponente ra?unarskog sistema ........................................ 121.1.2. Centralni procesor ............................................................................. 151.1.3. Primarna memorija ............................................................................ 16

    1.2. S O F T V E R......................................................................................... 171.3. PISANJE PROGRAMA......................................................................... 20

    1.3.1. Definisanje problema......................................................................... 201.3.2. Izrada algoritma ................................................................................ 211.3.3. Pisanje i uno?enje programa u ra?unar ............................................... 301.3.4. Testiranje programa i ispravke gre?ke................................................ 301.3.5. Distribucija va?ih aplikacija............................................................... 331.3.6. Implementacija programa i obuka korisnika....................................... 371.3.7. Odr?avanje i nadogradnja programa .................................................. 38

    1.4. RJE?ENI PRIMJERI PRAVLJENJA ALGORITMA......................... 41

    2. UVOD U PROGRAMSKI JEZIK VISUAL BASIC .......................... 552.1. PREDNOSTI PROGRAMIRANJA U VISUAL BASIC-U................... 562.2. INSTALIRANJE VISUAL BASIC PROGRAMA ................................ 562.3. POKRETANJE VISUAL BASIC PROGRAMA .................................. 602.4. SIMBOLI U PROGRAMU VISUAL BASIC ........................................ 622.5. OBJEKTI I NJIHOVE OSOBINE U PROGRAMU VISUAL BASIC. 642.6. SKRA?ENICE U PROGRAMU VISUAL BASIC ............................... 682.7. PRAVLJENJE PRVOG PROGRAMA................................................ 70

    2.7.1. Izbor potrebnih objekata za rje?avanje postavljenog zadatka ............. 712.7.2. Definisanje osobina objekata ............................................................ 722.7.3. Me?usobno povezivanje objekata ..................................................... 732.7.4. Testiranje programa i pravljenje izvr?ne verzije programa................. 74

    3. TIPOVI PODATAKA ....................................................................... 773.1. LOGI?KE PROMJENJIVE (BOOLEAN)........................................... 793.2. CIJELI BROJEVI (INTEGER) ............................................................ 80

  • Programski jezik Visual Basic Zbirka zadataka 6

    3.3. REALNI BROJEVI............................................................................... 823.4. TEKST (STRING) ................................................................................. 833.5. NOV?ANE VRIJEDNOSTI (CURRENCY)......................................... 863.6. DATUM (DATE) ................................................................................... 863.7. NEODRE?ENI TIP (VARIANT) .......................................................... 883.8. STATI?KI NIZOVNI TIP (ARRAY).................................................... 88

    4. NAREDBE SELEKCIJE I ITERACIJE .......................................... 934.1. NAREDBE SELEKCIJE ....................................................................... 93

    4.1.1. If Then Else struktura....................................................................... 934.1.2. Case struktura ................................................................................. 98

    4.2. NAREDBE ITERACIJE...................................................................... 1034.2.1. For ... Next struktura...................................................................... 1034.2.2. Do While ... Loop struktura............................................................ 1084.2.3. Do ... Loop While struktura............................................................ 1104.2.4. Do ... Loop Until struktura.............................................................. 111

    5. FUNKCIJE I PROCEDURE........................................................... 1135.1. FUNKCIJE.......................................................................................... 1135.2. PROCEDURE ..................................................................................... 1165.3. MATEMATI?KE FUNKCIJA........................................................... 1225.4. FINANSIJSKE FUNKCIJA ............................................................... 1235.8. INPUTBOX FUNKCIJA ..................................................................... 1265.9. MESAGEBOX FUNKCIJA................................................................. 1295.10. REKURZIVNE FUNKCIJE I PROCEDURE.................................. 130

    6. OBJEKTNO ORJENTISANO PROGRAMIRANJE .................... 1336.1. OBJEKTNO ORIJENTISAN NA?IN MI?LJENJA.......................... 1336.2. OBJEKAT ............................................................................................ 1346.3 METODE I KOMUNIKACIJA ME?U OBJEKTIMA....................... 1366.4. ENKAPSULACIJA I INTERFEJSI .................................................... 136

    7. OBJEKTI VISUAL BASIC-A.......................................................... 1397.1. OBJEKAT FORM ............................................................................... 139

    7.1.1. Program sa vi?e formi...................................................................... 1407.1.2. Odre?ivanje po?etne forme i prikaz uvodne slike............................. 142

    7.2. OBJEKAT LABEL.............................................................................. 1457.3. OBJEKAT TEXTBOX......................................................................... 1457.4. OBJEKAT COMMANBUTTON ......................................................... 1477.5. OBJEKTI CHECKBOX I OPTIONBUTTON .................................... 148

  • Programski jezik Visual Basic Zbirka zadataka 7

    7.6. OBJEKAT FRAME............................................................................. 1507.7 OBJEKTI LISTBOX I COMBOBOX ................................................... 1517.8. OBJEKTI KLIZNE TRAKE HSCROLLBAR I VSCROLLBAR........ 1537.9. OBJEKAT TIMER.............................................................................. 1557.10. OBJEKAT DRIVELISTBOX ............................................................ 1607.11. OBJEKAT DIRECTORYLIST BOX ................................................. 1617.12. OBJEKAT FILELISTBOX ............................................................... 1617.13. OBJEKTI LINE I SHAPE................................................................. 1637.14. OBJEKTI IMAGE I PICTUREBOX ................................................. 1647.15. OBJEKAT DATA .............................................................................. 1657.16. OBJEKAT OLE................................................................................. 1687.18. OBJEKAT MSFLEXGRID ZA TABELARNI PRIKAZ.................. 1717.19. OBJEKAT COMMONDIALOG ZA STANDARDNI MENI............ 177

    7.19.1. Dijalo?ki okviri Open i Save As ..................................................... 1797.19.2. Dijalo?ki okvir Color..................................................................... 1797.19.3. Dijalo?ki okvir Font ...................................................................... 1807.19.3. Dijalo?ki okvir Print...................................................................... 1807.19.3. Dijalo?ki okvir Help ...................................................................... 181

    7.20. IZRADA SOPSTVENOG MENIJA ................................................. 1817.21. IZRADA SOPSTVENOG TOOLBAR-A........................................... 1857.22. AVTIVEX OBJEKATI ...................................................................... 188

    7.22.1. Kori?tenje objekata drugih aplikacija ............................................. 1897.22.2. Tipovi ActiveX sastavnih dijelova .................................................. 1907.22.3. Stvaranje pokaziva?a na objekat .................................................... 1927.22.4. Otpu?tanje ActiveX sastavnog dijela............................................... 1957.22.5. Rukovanje gre?kama tokom rada u ActiveX sastavnim dijelovima .. 196

    7.23. NIZ OBJEKATA............................................................................... 1977.24. KRETANJE KROZ OBJEKTE SA TAB TASTEROM.................. 199

    8. PRIMJERI VISUAL BASIC PROGRAMA.................................... 2018.1. PRIMJERI IZ HELPA VISUAL BASIC PROGRAMA..................... 2018.2. ADO PRISTUP BAZAMA PODATAKA ........................................... 2038.3. SQL UPIT U VISUAL BASIC-U ......................................................... 2068.4. PRISTUP EXCEL DOKUMENTU .................................................... 2158.5. ZADACI ZA SAMOSTALNI RAD .................................................... 217

    8.5.1. Zadaci sa grananjem........................................................................ 2178.5.2. Zadaci sa upotrebom gotovih funkcija ............................................. 2188.5.3. Zadaci sa petljama........................................................................... 2198.5.4. Zadaci za pristup Excel dokumentu i Access bazi ............................. 221

  • Programski jezik Visual Basic Zbirka zadataka 8

    9. PROIZVODNJA I PRODAJA PROGRAMA ................................ 2239.1 PRODAJA PROGRAMA .................................................................... 2239.2. PRAVO KOPIRANJA PROGRAMA ................................................ 2249.3. GARANTNE OBAVEZE.................................................................... 2259.4. ODR?AVANJE PROGRAMA ........................................................... 2279.5. OZNA?AVANJE VERZIJA I MODIFIKACIJA PROGRAMA...... 2289.6. SPECIFIKACIJA PROGRAMSKIH PROIZVODA......................... 229

    L I T E R A T U R A............................................................................. 231

  • Programski jezik Visual Basic Zbirka zadataka 9

    UVOD

    Visual Basic je objektno orjentisani programski jezik, koji je kao programskijezik pre?ao dug razvojni put od programskog jezika Basic. Zahvaljuju?iMicrosoft-u postao je profesinalni razvojni alat i standard za razvoj aplikacija uWindows okru?enju. Zbog svoje jednostavnosti u pisanju programa i lakompra?enju toka izvr?enja programa, ovaj programski jezik mo?e da poslu?ipo?etnicima u programiranju za savladavanje prvih koraka u programiranju. Ciljovog izdanja je da se prilagodi potrebama studenata u po?etnoj fazi u?enjaprogramiranja, kao i svima onima koji su se ranije bavili programiranjem ali unekom drugom programskom jeziku. Izdavanjem ove knjige nadomje?tena jeliteratura, koja nedostaje za izvo?enje predavanja i vje?bi iz predmeta Uvod uprogramiranje i Programski jezici na Fakultetu poslovne ekonomije u Bijeljini.

    Knjiga je napisana zbog nedostatka na tr???tu literature na srpskom jeziku saprakti?nim primjerima za programski jezik Visual Basic. Naime, postoje samouputstva za rad sa raznim verzijama programskog jezika Visual Basic, koja sunapisana na engleskom jeziku i dostupna su u elektronskom obliku. To su,uglavnom, obimne dokumentacije izlo?ene na vi?e stotina, ?ak i oko hiljadustranica, a uglavnom se odnose na jedan segment problema, koji se obra?uje. Narelativno skromnom broju stranica izlo?ena je jedna konzistentna cjelina pogodnaza edukaciju u obrazovnim ustanovama. Knjiga je posebno aktuelna za studente i?itaoce, koji se samostalno bave programiranjem u programskom jeziku VisualBasic. Ponu?eni primjeri su, zbog konciznosti izlaganja, djelimi?no upro??eni, alise nevelikim trudom mogu brzo i efikasno dovesti do profesionalne aplikacije.Obra?ene oblasti su raznovrsne i bri?ljivo birane, kako bi ?itaoci mogli da uvidevi?estruke primjene obra?enog materijala u praksi.

    Tako?e je evidentan nedostatak literature, koji se odnosi na pravljenjealgoritma. Autori su, uvidjev?i tu prazninu, bri?ljivo razradili primjere algoritama.Na osnovu toga su studentima i ostaloj stru?noj javnosti ponudili jedan ovakavnastavni sadr?aj. Knjiga je u osnovi podijeljena na devet poglavlja, koja ?ine tri zasebne cjeline.Prvu cjelinu ?ini poglavlje jedan, u kome su date osnove za nastanakprogramiranja. Drugu cjelinu ?ine poglavlja dva do osam, u kojima su date osnoveprogramskog jezika Visual Basic, kroz terijska razmatranja i prakti?ne primjereprograma. Tre?u cjelinu ?ini deveto poglavlje u kome su opisani pravni iekonomski aspekti proizvodnje i prodaje programa. Za svakog programera je bitno da poznaje kako funkcioni?e hardver na kome senjegov program pokre?e. To je razlog za?to su u prvom poglavlju predstavljeneosnovne hardverskih komponente ra?unara. Zatim je ukratko opisan pojamsoftvera. Dati su osnovni koraci, koji ?ine proces pisanja programa. Na kraju ovog

  • UVOD 10

    poglavlja opisan je postupak i zna?aj pravljenja algoritma, kroz nekoliko prakti?nihprimjera. Postupak instaliranja programa Visual Basic predstavljen je u drugompoglavlju. Na kraju je opisano, kako mo?e izgledati postupak pravljenja prvogprograma u ovom programskom jeziku. U tre?em poglavlju opisani su osnovni tipovi podataka, koji se koriste prilikompisanja programa u programskom jeziku Visual Basic. Uz svaki tip podatkaprikazan je primjer programa, kaji opisuje kako se on koristi.

    Naredbe selekcije i iteracije u Visual Basic-u opisane su u ?etvrtom poglavlju.Detaljno su opisani razni postupci pravljenja grananja u programu kroz primjere,kako bi se ?to lak?e mogli koristiti za pisanje programa. Predstavljen je i na?invi?estrukog ponavljanja nekih naredbi, kako da se zna?ajno smanjio broj kodnihlinija u programu. Dati su primjeri sa rje?enim ispitnim zadacima.

    U petom poglavlju predstavljene su funkcije i procedure, koje omogu?uju daprogram bude konstruisan od ranije napravljenih dijelova. Predstavljen je samojedan mali dio gotovih funkcija koje postoje u Visual Basic-u, ali je opisano i kakose mogu isprogramirati nove. Navedene su vrste procedura, na?in pravljenja novihi na?in njihovog pozivanja iz glavnog programa

    Objektno orijentisano programiranje opisano je u ?estom poglavlju. Objektnoorijentisano programiranje je, kao ?to ime ka?e, orijentisano ka objektu, koji jeosnova ovakvog programiranja. Obezbje?ena je jednistvena kontrola pristupapodacima, po?to objekat nije prost tip podatka, poput cijelog broja ili niza znakova,ve? skup primitivnijih vrsta podataka, kojima je, po potrebi, dodato odre?enopona?anje. U sedmom poglavlju predstavljeni gotovi objekti, koji postoje u standardnojpaleti objekata u programskom jeziku Visual Basic. Za svaki objekat su datiprimjeri programa za kori??enje ovih objekata.

    Primjeri programa napisanih u programskom jeziku Visual Basic predstavljenisu u osmom poglavlju. Prvo su predstavljeni primjeri programa, koji se mogu na?iu Help-u programskog jezika Visual Basic. Zatim su predstavljeni prakti?niprimjeri kodova programa, koji slu?e za komunikaciju sa Access bazom podataka iExcel dokumentom. Dati su i zadaci za samostalan rad studenata.

    Pravni i ekonomski aspekti proizvodnje i prodaje programa opisani su udevetom poglavlju. Ovo poglavlje je dodato u knjigu, kako bi studenti dobiliodgovaraju?u literaturu iz ove oblasti, koja nagla?ava da je i program proizvod kojise prodaje kupcima. Program ima odre?ene specifi?nosti prilikom proizvodnje, ali iprilikom prodaje kupcu. Te specifi?nosti ?e biti obja?njene u ovom poglavlju.

    Nadamo se da ?e ova kniga biti od koristi svima onima, koji se baveprogramiranjem u programskom jeziku Visual Basic. Sugestije i pitanja mogu seslati na adresu [email protected] i [email protected].

  • Programski jezik Visual Basic Zbirka zadataka 11

    1. OSNOVE PROGRAMIRANJA

    Svjedoci smo da ?ivimo u informati?kom dobu i najjednostavnije odluke se nemogu donijeti, ako se ne posjeduje prava informacija1. Za rje?avanje kompleksnihproblema neophodno je obraditi ogromnu koli?inu podataka, kako bi se do?lo dopravih informacija. Svi ovi poslovi oko dobijanja informacije (prikupljanje,??uriranje, obrada, preno?enje podataka, itd.) su nezamislivi bez upetrebera?unarskih sistema.

    Ra?unari su ma?ine za obradu podataka. One na osnovu odre?enog skupaulaznih podataka koje zadaje korisnik generi?u odgovaraju?i skup izlaznihpodataka. Ulazni podaci redovno predstavljaju veli?ine na osnovu kojih se obavljarje?avanje nekog problema, a izlazni podaci predstavljaju rezultate obrade datogproblema. Stoga se podrazumijeva da svaki ra?unar posjeduje jedinicu za ulaz(u?itavanje) podataka i jedinicu za izlaz (prikazivanje) rezultata. U slu?aju kadakorisnik ra?unara interaktivno komunicira sa ra?unarom onda je naj?es?e ulaznajedinica tastatura, a izlazna jedinica ekran. Naravno, postoje i brojni drugi ulazni iizlazni ure?aji.

    U svakodnevnom ?ivotu ljudi upotrebljavaju cifre i slova, koje jednim imenomnazivamo alfanumjeri?ki znaci, za me?usobno sporazumijevanje. Za prenosinformacija ljudi koriste slike i zvuk, kao i neke posebne znakove. Ra?unar ne radis decimalnim brojevima. To su uobi?ajeni brojevi s kojima ra?unamo i brojimo. Ura?unaru ne postoje elektronska kola i sklopovi, koji mogu raditi s tim brojevima.Da bi se u ra?unaru moglo manipulisati informacijama, koje su opisane pomo?ucifara, slova, slike, zvuka itd. potrebno ih je binarno predstaviti. Binarni brojevi su,barem na prvi pogled, ?udni. Oni postaju uobi?ajeni i razumljivi tek onda kada senau?i brojanje sa njima i kada se zna njihovo pretvaranje u decimalne brojeve.

    Binarni brojni sistem ima bazu dva, ?to zna?i da koristi samo skup cifara 0 i 1.Stoga se ?esto naziva i "dualni" sistem brojeva. Koliko god je decimalni brojnisistem zna?ajan i uobi?ajen za na? svakodnevni ?ivot, toliko je i binarni brojnisistem zna?ajan za predstavljanje i shvatanje principa rada ra?unara. Ovo dolaziotuda ?to elementarne elektronske i magnetne komponente ra?unara u stvari moguprikazati (tj. zauzeti) samo dva mogu?a stanja, uklju?eno (On) ili isklju?eno (Off).Primjeri funkcionisanja u binarnom obliku prisutni su i u na?em svakodnevnom?ivotu kod elektri?nog zvonca na vratima, sijalice u ku?i itd. ?ak i samo porijeklorije?i ( "bis" - dva puta, "binaris" - dvojni) upu?uje na bazu dva.

    Da bi korisnik mogao da komunicira sa ra?unarom kao ma?inom, potrebno je dapostoje programi koji to omogu?uju. Dana?nja situacija je takva da iste hardverskekomponente mogu izvr?avati programe pisane na razli?itim programskim jezicima,

    1 Sr?an Damjanovi?, Predrag Katani?, Borislav Drakul, Zbirka zadataka iz poslovneinformatike, Fakultet spoljne trgovine, Bijeljina, 2008, str.17.

  • 1. OSNOVE PROGRAMIRANJA 12

    da mogu raditi u razli?itim re?imima kori??enja i pod razli?itim operativnimsistemima. Ovo je dovelo do toga, da pojam ra?unar nedovoljno opisujekompleksnost ovakvog sistema, pa se ?esto pojam ra?unara uop?tava pojmomra?unarski sistem. Pod pojmom ra?unarski sistem podrazumijevamo slo?en ure?aj-ma?inu, ?ije su mogu?nosti u obradi podataka rezultat jedinstvenog djelovanjanjenog hardvera i softvera. Ovakav pristup ra?unarskom sistemu nas dovodi dogrubog ras?lanjenja ra?unarskog sistema tj. ra?unarski sistem se sastoji iz:

    - hardvera,

    - softvera.Druga?ije re?eno, jedinstveno djelovanje hardvera i softvera defini?e uslove

    rada i kori??enja ra?unarskog sistema, odnosno defini?e okru?enje u kome korisnikradi.

    Osnovni cilj ovog teksta je da defini?e osnovne principe i mehanizme pomo?ukojih se jedno takvo okru?enje stvara i kako ono funkcioni?e. Bolje razumijevanjeokru?enja, omogu?ava i efikasnije kori??enje mogu?nosti koje ono pru?a.

    1.1. H A R D V E R

    Pod hardverom podrazumijevamo fizi?ke komponente ra?unarskog sistema kao?to su: sistemska jedinica (ku???te ra?unara u koje su smje?teni: mati?na plo?a,procesor, memorijski ure?aji, napojna jedinica, itd) i periferni ure?aji (ulazni iizlazni). Ulazni periferni ure?aji su oni ure?aji preko kojih sistem dobija naredbe ilipodatke. U ra?unarskom sistemu sre?emo ulazne periferne ure?aje kao ?to su:tastatura, mi?, skener, mikrofon, olovka za crtanje i sl. Izlazni periferni ure?aji suoni ure?aji putem kojih sistem proslije?uje informacije o izvr?enoj naredbi,obra?enim podacima i sl., korisniku sistema. U ra?unarskim sistemima sre?emosljede?e izlazne ure?aje: monitor, ?tampa?, ploter, zvu?nik, projektor, raznikompjuterski kontrolisani ure?aji i sl.

    U ovom tekstu ?emo se zadr?ati samo na sistemskoj jedinici i njenimkomponentama koje su ujedno i osnovne komponente ra?unarskog sistema.

    1.1.1. Osnovne komponente ra?unarskog sistema

    U cilju definisanja osnovnih hardverskih komponenti ra?unarskog sistema injegovog funkcionisanja, po?i ?emo od pore?enja ru?ne i automatske obradepodataka.

    U op?tem slu?aju, ru?na obrada podataka odvija se tako ?to se prethodno napapiru pripremi uputstvo (opis postupka obrade, instrukcije) i podaci sa kojima sepo?inje obrada. U samom izvr?avanju obrade, ?ovjek ?ita jednu po jednuinstrukciju (korak obrade) sa papira i potom obavlja dvije radnje. Prva radnja je

  • Programski jezik Visual Basic Zbirka zadataka 13

    vezana za upravljanje, odnosno tuma?enje instrukcije i dono?enje odluke ooperaciji koja ?e se izvr?iti. Druga radnja je samo izvr?avanje operacije, pri ?emuse naj????e podaci potrebni za njeno izvr?enje ?itaju sa papira, a rezultat operacijese tako?e zapisuje na papir. Blok dijagram koji predstavlja opisani postupakprikazan je na slici 1.1.

    UPRAVLJANJE INSTRUKCIJA

    ULAZNIPODACI

    REZULTATI

    IZVR?AVANJE

    ??EPNI KALKULATOR

    PAPIR

    Slika 1.1. Ru?na obrada podataka

    Na slici 1.1. tako?e je prikazana i uloga kalkulatora u obradi podataka, pri ?emuse mo?e uo?iti da kalkulator mo?e zamijeniti ?ovjeka samo u izvr?enju operacija, ane i u upravljanju obradom. Naime, ?ovjek mora da unese podatke u kalkulator i damu zada operaciju koju treba izvr?iti sa tim podacima. Po izvr?enju jedne zadateoperacije i dobijanju rezultata, kalkulator miruje. Da bi se obrada nastavila, ?ovjekmora da unese nove podatke u kalkulator i da mu zada novu operaciju itd.??igledno, kalkulator nije automat, odnosno ma?ina koja mo?e da po izvr?enju

    jedne operacije, automatski, bez intervencije ?ovjeka, pre?e na izvr?avanjesljede?e operacije. Automatska ma?ina bi o?igledno morala da zamijeni ?ovjeka, nesamo u izvr?avanju operacija sa podacima, ve? i u upravljanju obradom. Takvaautomatska ma?ina jeste sistemska jedinica ra?unara sa komponentama ra?unarakoje imaju specijalna zadu?enja, tj. takva ma?ina je ra?unarski sistem ili kra?era?unar.

    Slika 1.2. Osnovna blok ?ema ra?unara

  • 1. OSNOVE PROGRAMIRANJA 14

    Kako je to prikazano na slici 1.2., osnovna komponenta hardvera ra?unarskogsistema je centralni procesor (central processing unit) ?iji je zadatak da uzimainstrukcije iz memorije, analizira ih i potom izvr?ava. Memorija ra?unara (memory)?uva (pamti, skladi?ti) instrukcije i podatke (po?etne podatke, me?urezultate irezultate obrade). Ulazni i izlazni ure?aji omogu?avaju komunikaciju ra?unara snjegovom okolinom. Ulazni ure?aji vr?e pretvaranje podatak i instrukcija iz formerazumljive ?ovjeku u formu prilago?enu skladi?tenju u memoriji ra?unara. Izlazniure?aji pretvaraju rezultate obrade iz forme u kojoj su zapisani u memorijira?unaru, u formu razumljivu za ?ovjeka.

    Ne?to detaljnija konfiguracija ra?unarskog sistema prikazana je na slici 1.3., nakojoj se mo?e uo?iti, da su u cilju bolje preglednosti razdvojeni ulazni i izlazniure?aji, dok su, sa druge strane prikazana i dva nova memorijska ure?aja -magnetni diskovi i magnetne trake kao eksterne memorije.

    Naime, kapacitet memorije, odnosno, kako se ?esto naziva, operativnememorije, uprkos tome ?to se stalno pove?ava, nije dovoljno veliki da uskladi?tisve programe i podatke, koji se koriste u automatskoj obradi podataka. Usljed toga,prakti?no svaka konfiguracija ra?unarskog sistema posjeduje i dodatne memorijskeure?aje, koji se nazivaju sekundarnim memorijama i na kojima se trajno ?uvajuprogrami i podaci. Kako u toku rada centralni procesor pristupa samo oniminstrukcijama i podacima, koji se nalaze u primarnoj memoriji, programi koji setrenutno izvr?avaju i podaci nad kojima se vr?i obrada, prebacuju se po potrebi izsekundarnih memorija u primarnu memoriju.

    U nastavku izlaganja, kako bismo lak?e shvatili su?tinu funkcionisanjara?unarskog sistema za ?ta je zadu?en operativni sistem, ograni???emo se naosnovni opis strukture i funkcije dvije klju?ne komponente: ra?unarskog sistema -centralnog procesora i primarne memorije.

    Slika 1.3. Detaljna konfiguracija ra?unarskog sistema

  • Programski jezik Visual Basic Zbirka zadataka 15

    1.1.2. Centralni procesor

    Tipi?na, iako jo? uvijek nedovoljno detaljna struktura centralnog procesora, ilijednostavnije procesora, prikazana je na slici 1.4. Osnovna funkcija upravlja?kejedinice je da uzima instrukcije iz memorije, analizira ih i i ?alje odgovaraju?ekomande za njihovo izvr?avanje ostalim komponentama. Cikli?ni proces uzimanja,analize i izvr?avanja instrukcije, tako?e je prikazan na slici 1.4. On se ?esto nazivauzmi-izvr?i ciklus (fetch-execute cycle).

    UPRAVLJA?KAJEDINICA

    A/L JEDINICA

    R 0

    R 1

    R 16

    PROCESOR

    Uzmi instrukciju

    Analiziraj instrukciju

    Izvr?i instrukciju

    Slika 1.4. Struktura centralnog procesora

    Aritmeti?ko-logi?ka (A/L) jedinica, kako samo ime govori, sastoji se odelektronskih kola koja obavljaju razli?ite aritmeti?ke, logi?ke, kao i neke drugeoperacije nad podacima. Za A/L jedinicu se ka?e da je jedina aktivna komponentara?unarskog sistema, u smislu da je jedina komponenta koja mo?e da stvara novepodatke. Jedna od bitnih karakteristika procesora je skup instrukcija koje on mo?eda izvr?i. Detaljniji opis tipova intrukcija prevazilazi ovaj kurs.

    Pored navedenih komponenti, centralni procesor sadr?i i skup posebnihhardverskih jedinica, registara, obi?no 8 do 16, koji igraju ulogu interne, brzememorije samog procesora. Kako je brzina pristupa registrima pribli?no za redveli?ine ve?a od brzine pristupa memoriji, procesor u toku izvr?avanja programa uovim, kako se ?esto nazivaju op?tim registrima, ?uva podatke kojima mora ?esto dapristupa.

    Napredak u razvoju ra?unara je na po?etku tekao sporo, a zatim je do?lo dopostepenog ubrzavanja razvoja, da bi danas imali takvu situaciju da se razvojra?unarske tehnike ne mo?e ni pratiti tj. gotovo svakodnevno se pojavi novorje?enje u cilju napretka ra?unarskih sistema. Razvoj tehnologije posebno se ogledana polju razvoja procesora, tako da pojedine komponente procesora poprimajunove oblike, kao npr. registri procesora koji sada predstavljaju internu memorijutakvih memorijskih dimenzija da omogu?avaju mnogo rje?e pristupe sporijoj RAM

  • 1. OSNOVE PROGRAMIRANJA 16

    memoriji ?to drasti?no pove?ava brzinu rada procesora (interna memorijaprocesora se naziva ke? memorija). Dana?nji ra?unarski sistemi imaju i podesetak mikroprocesora (srce ra?unara), koji rade brzinama reda GHz.

    1.1.3. Primarna memorija

    Primarna (operativna) memorija, ili kra?e memorija, je pasivna komponentara?unarskog sistema, ?ija je funkcija da skladi?ti programe i podatke. Memorija sesastoji od velikog broja ?elija (memorijskih lokacija) jednake du?ine, pri ?emusvaka ?elija ima svoj redni broj u okviru memorije. Numjerisanje memorijskih?elija po?inje od 0 (nule). O?igledno je da redni broj ?elije predstav1ja njenujedinstvenu adresu. Uvedimo sada predpostavku da jedna memorijska ?elija mo?ada sadr?i jednu i samo jednu instrukciju ili samo jedan podatak. Tada mo?emo daizvedemo zaklju?ak da svaka instrukcija, odnosno, svaki podatak ima sopstvenuadresu - adresu lokacije u kojoj je smje?ten.

    Uvo?enjem koncepta adresa i adresiranja stvoren je bitan mehanizam zafunkcionisanje ra?unara, stvorena je mogu?nost da se svaka instrukcija i svakipodatak smije?ta u odre?enu memorijsku adresu, da bi mu se kasnije, posredstvomte adrese moglo pristupiti. Pri tome su nad memorijom mogu?e dvije operacije -upisivanje i ?itanje sadr?aja neke adrese. Realizacija ovih operacija omogu?ena jeposredstvom dva registra, od kojih se jedan naziva adresnim registrom memorije(ARM), a drugi prihvatnim registrom memorije (PRM). Operacija ?itanja sadr?ajaodre?ene memorijske lokacije, obavlja se tako, ?to se adresa lokacije kojoj se ?elipristupiti, upisuje u ARM, a zatim se inicira izvr?enje same operacije, da bi se kaorezultat njenog dejstva sadr?aj posmatrane lokacije upisao u PRM.

    Operacija upisivanja podatka u odre?enu memorijsku lokaciju odvija se nasli?an na?in. Podatak koji treba da se upi?e unosi se u PRM, a adresa lokacije ukoju se vr?i upisivanje unosi se u ARM, a zatim se inicira operacija upisivanja.Rezultat operacije upisivanja je da se podatak iz PRM upisuje u posmatranu ?eliju,pri ?emu se, naravno, njen prethodni sadr?aj uni?tava.

    Vrijeme koje protekne od trenutka iniciranja jedne operacije nad memorijom,bez obzira da li je u pitanju ?itanje ili upisivanje, do zavr?etka posmatraneoperacije, naziva se vremenom memorijskog ciklusa. Jednostavnije re?eno, vrijemememorijskog cilusa je vrijeme koje mora da protekne izme?u dva uzastopnapristupa memoriji. Pri tome, treba napomenuti da je vrijeme pristupa jednako zasve lokacije operativne memorije, ?to se razlikuje od situacije kod sekundarnihmemorija, gdje vrijeme pristupa nekoj lokaciji zavisi ne samo od fizi?ke pozicije telokacije, ve? i od toga kojoj se lokaciji prethodno pristupilo. Zbog toga se primarnamemorija ?esto naziva memorija sa slu?ajnim pristupom. Ovaj naziv je zapravodoslovan i pomalo nespretan prevod originalnog izraza (random access memory -RAM).

  • Programski jezik Visual Basic Zbirka zadataka 17

    1.2. S O F T V E R

    Softver (eng. software) ra?unara predstavlja skup programskog koda - programai podataka, smje?tenih u memoriju ra?unara, koji kao cjelina, povremeno ili stalno,kontroli?e i upravljanja radom ra?unara. Ovdje se pod memorijom podrazumijevasva dostupna memorija ra?unaru. Kompjuterski programi se prave sa ciljem da sepomo?u njih re?avaju kompjuterski rje?ivi problemi. Pretra?ivanje baza podataka,izra?unavanje plata, upravljanje ma?inama, samo su neki primjeri uobi?ajeneprimjene kompjutera. Broj kompjuterski rje?ivih problema je beskona?an, a brojprakti?nih primjena ra?unara je ograni?en samo na?om ma?tom, znanjem ivje?tinom. Grubo softver mo?emo podijeliti na:

    - softver operativnog sistema (OS),- aplikativni softver.

    Operativni sistemi su se razvijali sa razvojem ra?unarskih sistema tj. potrebama?ovjeka za sve ve?om koli?inom informacija. Sa stanovi?ta OS-a, hardverskakomponenta ra?unarskog sistema grubo se mo?e podijeliti u dva dijela, sistemskidio hardvera (procesor, memorija i dr.) i dio hardvera koji ?ini interfejs sakorisnikom (monitor, tastatura, mi? i dr.). Za vrijeme pionirskog razvojara?unarskih sistema, a samim tim i pionirskog razvoja OS-a, cijena sistemskekomponente je bila neuporedivo ve?a od interfejsa (terminal) tj. rad ma?ine jebio daleko skuplji od rada korisnika. Iz ove ?injenice nastaje ideja da prvioperativni sistemi budu tako koncipirani kako bi se omogu?ilo 100% iskori?enjeprocesora. Iz ovog ugla OS se posmatra na njegovom najni?em nivou, kada poputnadzornika pazi na disk, procesor, memoriju, ?tampa?e i dr.

    Upravljanjeprocesima (Jezgro)

    Upravljanjememorijom

    Upravljanje U/I ure?ajima

    Upravljanje podacima (fajlovima)

    Planiranje i evidencija poslovaInterpretacija komandnog jezika

    Slika 1.5. Struktura ra?unara Slika 1.6. Struktura operativnog sistemaSa razvojem tehnologije izrade hardvera dolazi do pada cijene sistemskog

    hardvera, te rad korisnika ra?unara dobija na vrijednosti, pa se ovoj ?injeniciprilago?ava i operativni sistem tj. u prvi plan dolaze odgovornosti OS-a na nivou

  • 1. OSNOVE PROGRAMIRANJA 18

    korisnika. Iz ovog se jasno vidi, da OS ima ulogu posrednika izme?u korisni?kihprograma i sredstava potrebnih za njihovo izvo?enje (hardvera). Ovakva filozofijara?unarskog sistema je prikazana na slici 1.5., gdje se jasno mo?e vidjeti mjesto izadatak operativnog sistema.

    Kompleksnost operativnog sistema ote?ava preciznu definiciju. Sa zadr?anomuop?teno??u, mo?e se re?i, da pod operativnim sistemom podrazumijevamo skupsistemskih programa koji djeluju kao posrednik izme?u hardvera i korisnika. Pritome pru?a korisniku usluge, koje olak?avaju projektovanje, implementaciju iodr?avanje programa, a istovremeno, upravljaju dodjeljivanjem (alokacijom)resursa ra?unarskog sistema u cilju njegovog efikasnog rada.

    Kra?e re?eno, operativni sistem je organizovan skup sistemskih programa kojiupravlja radom razli?itih komponenti ra?unarskog sistema, sa ciljem da omogu?iefikasan rad korisnika i efikasno kori??enje resursa samog sistema. Pri tome seposlovi (funkcije) operativnog sistema mogu grubo podijeliti u ?etiri grupe:

    - Upravljanje procesima,- Upravljanje memorijom,- Upravljanje ure?ajima,- Upravljanje podacima.

    Resursi ra?unarskog sistema o kojima OS mora voditi ra?una su: procesori,memorija, ulazno-izlazni ure?aji i podaci. Operativni sistemi mogu biti struktuiranina razli?ite na?ine: kao monolitni sistemi, kao hijerarhija slojeva, kao virtuelnema?ine i kao klijent server model. Jedna od mogu?ih struktura operativnog sistemaprikazana je na slici 1.6. Navedimo neke od poslova koje obavljaju ovekomponente operativnog sistema:

    1) Jezgro (kernel ili nucleus) operativnog sistema obezbje?uje realizaciju sljede?ihfunkcija:

    - upravljanje sistemom prekida ra?unara i obradu prekida,- planiranje procesa,- manipulaciju nad procesima,- sinhronizaciju procesa,- komunikaciju me?u procesima.

    2) Upravljanje memorijom podrazumijeva upravljanje operativnom memorijomra?unara. Obuhvata sljede?e funkcije:

    - realizaciju odre?ene strategije dodjele memorije,- dodjelu memorije,- realizaciju odre?ene strategije osloba?anja memorije.

    3) Upravljanje ure?ajima obuhvata sljede?e funkcije:- obezbje?enje nezavisnosti ure?aja,- obezbje?enje efikasnosti rada ure?aja,

  • Programski jezik Visual Basic Zbirka zadataka 19

    - realizaciju odre?ene strategije dodjele ure?aja,- dodjelu ure?aja,- realizaciju odre?ene strategije osloba?anja ure?aja.

    4) Upravljanje podacima treba da obezbijedi softverska sredstva za organizovanjei pristup podacima na na?in koji odgovara korisniku ra?unarskog sistema. Funkcijekoje se realizuju na ovom nivou su:

    - kreiranje i brisanje fajlova,- otvaranje i zatvaranje fajlova,- ?itanje i upisivanje,- upravljanje prostorom na sekundarnim memorijskim jedinicama,- obra?anje fajlovima po imenu,- za?tita podataka od namjernog i nenamjernog uni?tenja,- za?tita podataka od neovla??enog pristupa i kori??enja,- zajedni?ko kori??enje fajlova.

    5) Planiranje obuhvata aktivnosti u vezi sa uvo?enjem novih poslova u sistem iodre?ivanje poretka u kojem ?e se oni izvr?avati. Funkcije koje se realizuju naovom nivou su:

    - izbor novog posla za izvr?enje,- dodjela prioriteta poslovima,- realizacija strategije dodjele resursa.

    6) Evidencija obuhvata vo?enje evidencije kori??enja resursa sistema pokorisnicima i izdavanje ra?una korisnicima za potro?ene resurse.

    ??igledno je da akcenat na rije?i upravljanje u navo?enju funkcija operativnogsistema nije slu?ajan. Naime, u situaciji, kada se u ra?unaru odvija vi?e aktivnihprocesa (programi koji se izvr?avaju), jasno je da ?e ti procesi konkurisati jedandrugom u pogledu kori??enja resursa ra?unara (procesora, memorije, razli?itihure?aja, datoteka tj. podataka itd.). Zadatak operativnog sistema je da omogu?ineometano odvijanje svih procesa na takav na?in, da se svi resursi sistema ?toefikasnije iskoriste. Aplikativni ili korisni?ki programi koriste se na ra?unaru za obavljanje nekihspecifi?nih poslova. Danas postoji veliki broj aplikativnih programa, koji serazlikuju po namjeni i po veli?ini. Recimo Word se koristi za pisanje i ure?ivanjeteksta, Excel za razne matemati?ke prora?une i grafi?ki prikaz podataka, Access zapravljene baze podataka itd. Aplikativni programi se mogu pisati u raznimprogramskim jezicima, ali se svi prepoznaju, u odnosu na druge podatke nara?unaru, po tome ?to imaju ekstenziju .EXE.

  • 1. OSNOVE PROGRAMIRANJA 20

    1.3. PISANJE PROGRAMA

    Programi se pi?u, kako bi pomogli ?ovjeku da pomo?u ra?unara rije?i nekiproblem. Instrukcije i programi zahtjevaju neki redoslijed kojim ?e ih kompjuterizvr?avati, a to je zapravo element za projektovanje. Projektovanjem programaodre?ujemo koje su programske instrukcije i kakva struktura podataka je potrebnada bi ma?ina-kompjuter obavila neki ?eljeni zadatak. Najzna?ajnije je to ?toprojektant programa odre?uje redoslijed kojim ?e se instrukcije izvr?avati u ciljuuspje?nog odvijanja i zavr?etka programa. Postoje dva pristupa u razvojuprograma2:

    - od ra?unara ka problemu i- od problema ka ra?unaru.

    U prvom pristupu se polazi od toga da korisnik najprije upozna ra?unar injegove mogu?nosti, a zatim pristupi rje?avanju problema uz pomo? ra?unara. Udrugom pristupu se prvo nastoji dobro razumjeti problem, zatim napravitiodgovaraju?i model kako da se taj problem rije?i, a tek zatim se pristupa pisanjuprograma u odgovaraju?em programskom jeziku na ra?unaru. Programiranje u u?em smislu predstavlja proces pisanja programa za ra?unar. U?irem smislu to je proces pripreme, razrade i pisanja programa radi rje?avanjanekog problema na ra?unaru. Proces programiranja zavisi od problema koji serje?ava. Me?utim, mogu se uvesti neki tipi?ni postupci koji se odvijaju u tokurazvoja programa. U programiranju uo?avamo sljede?e faze: - Definisanje problema, - Izrada algoritma, - Pisanje i uno?enje programa u ra?unar, - Testiranje programa i ispravke gre?ke, - Implementacija programa i obuka korisnika i - Odr?avanje i nadogradnja programa. Sve ove korake mora da prati odgovaraju?a dokumentacija, u vidu tekstualnihzapisa, grafi?kih prikaza i slika.

    1.3.1. Definisanje problema

    Prva i najbitnija faza u procesu pisanja programa je definisanje problema.Preskakanje ove faze zna?i sigurno velike probleme u svim narednim fazama kojeslijede. U ovoj fazi treba da se uo?i problem, odre?uje se na?in rje?avanja, vr?i seanaliza postoje?eg stanja, analiziraju se iskustva u radu sa ovakvim i sli?nimzadacima, biraju metode rada. U ovoj fazi rada ?esto je neophodno definisati fizi?ki

    2 Dr Tihomir Latinovi?, Osnove programiranja (Visual Basic), Biblioteka Informacionetehnologije, Banja Luka 2007, str. 2.

  • Programski jezik Visual Basic Zbirka zadataka 21

    i matemati?ki model sistema ili procesa ?ije pona?anje se ?eli implementirati nara?unaru. Fizi?ki model uvijek predstavlja model realnog sistema ili procesa, kojise odvija u prirodi. Matemati?ki model je skup matemati?kih postupaka i relacijakao i puteva njihovog rje?avanja, koji moraju egzaktno odrediti postavljeni fizi?kimodel. Matemati?ki model zapravo predstavlja skup matemati?kih relacija, kojedovoljno ta?no opisuju pojavu ili proces, koji ?elimo da opi?emo programom.Naj????e se pri tome koristimo jedna?inama i sistemima jedna?ina, nejedna?inamai sistemima nejedna?ina, razli?itim transformacijama, funkcijama, vektorima,matricama i drugim matemati?kim iskazima.

    1.3.2. Izrada algoritma

    Ljudi se svakodnevno nalaze u situaciji da rje?avaju razli?ite, manje ili vi?ekompleksne, probleme (zadatke). To mogu biti zadaci na radnom mjestu, u ku?i iliu ?ivotnoj sredini, ?ovjeka uop?te. ?ovjek ne bi dorastao ni najobi?nijemproblemu, da ne koristi razna pomagala tj. alate, ma?ine ure?aje itd. Jedno odpomagala jeste i ra?unar sa svim svojim prednostima. Me?utim, iako je ra?unarmo?na ma?ina, jo? uvijek ne posjeduje razum, tj. ne mo?emo se potpuno osloniti nanjegov automatizam u obavljanju razli?itih poslova.

    Zna?ajna sposobnost ljudi jeste da uo?e zadatak, da ga dobro postave, a zatimda ga rije?e. Zadatak sadr?i skup informacija na osnovu kojih treba izvesti izvjesnezaklju?ke, koji predstavljaju rje?enje zadatka. Ovakav skup informacija ?ini ulazneveli?ine zadatka, a rje?enja zadatka zovu se izlazne veli?ine zadatka.

    Izbor informacija koje ?ine ulazne veli?ine zadatka, kao i ta?no formulisanjesamog zadatka mo?emo zvati postavka zadatka. Jasno je da prije nego ?to sepristupi rje?avanju, mora se izvr?iti ta?na postavka zadatka. Rad na postavcizadatka zahtijeva dobro poznavanje oblasti kojoj pripada zadatak.

    Kada je izvr?ena postavka zadatka mo?e se pristupiti rje?avanju istog. Ure?enskup pravila koja se formuli?e u cilju rje?avanja zadatka zove se algoritam. Ulazneveli?ine zadatka zovu se ulazne veli?ine algoritma, a izlazne veli?ine zadatka zovuse izlazne veli?ine algoritma. Svako pravilo, iz skupa pravila formulisanih u ciljurje?avanja zadatka, zove se algoritamski korak. Prema tome, algoritam se sastoji odniza algoritamskih koraka, kroz koji se vr?i transformacija ulaznih veli?inaalgoritma, sve dok se ne do?e do izlaznih veli?ina algoritma tj. rje?enja. Uovakvom nizu algoritamskih koraka mora se znati prvi i zadnji algoritamski korak,a za sve ostale algoritamske korake jednozna?no je odre?en sljede?i algoritamskikorak. Veze izme?u algoritamskih koraka odre?uju strukturu algoritama.

  • 1. OSNOVE PROGRAMIRANJA 22

    1.3.2.1. Grafi?ki zapis algoritma

    Algoritmi za rje?avanje pojedinih problema mogu da budu veoma slo?eni3. Utakvim slu?ajevima algoritmi sa tekstualnim opisom pojedinih koraka dosta sunepregledni. Zato je za zapis algoritama pogodno koristiti njihovo grafi?koprikazivanje. Kod ovakvog prikazivanja algoritama svaki algoritamski korak jeprikazan grafi?kim simbolom, koji su izme?u sebe povezani linijama saglasnostrukturi algoritma. Oblik grafi?kog simbola za algoritamski korak ukazuje nafunkciju koju obavlja odre?en algoritamski korak. U tabeli 1.1. dati su grafi?kisimboli za pojedine algoritamske korake i opisana njihova funkcija.

    Tabela 1.1. Grafi?ki simboli algoritamskih koraka

    Grafi?ki simbol algoritamskihkoraka Funkcija algoritamskog koraka

    Ukazuje na prvi ili zadnji algoritamski korak

    Defini?e ulazne veli?ine algoritma

    Defini?e izlazne veli?ine algoritma

    Defini?u obradu podataka

    Uslovni algoritamski korak

    Defini?e vi?estruku odluku

    Povezivanje ili konektor

    Tok algoritma

    Dvosmjerni prenos podataka

    3 Dr Lazar Mili?evi?, Mr Lazar Radovanovi?, Programiranje (Visual Basic), Ekonomskifakultet, Br?ko, 2005, str.11.

    po?etak/kraj

  • Programski jezik Visual Basic Zbirka zadataka 23

    Grafi?ki zapis algoritma zove se blok-?ema algoritma. Ovakav zapis algoritmaodlikuje se sljede?im osobinama:

    - preglednije pra?enje toka algoritma,- omogu?uje zapis algoritma na na?in, koji obezbje?uje lako otkrivanje

    gre?aka u strukturi algoritma,- omogu?uje kra?i i jasniji zapis algoritma, nego pisanim jezikom,- daje preglednu vezu izme?u detalja i cjeline algoritma, i- algoritam zapisan u obliku blok-?eme nezavisan je od kasnijeg kori??enja

    algoritma u odnosu na hardversku podr?ku i programski jezik u kome ?eprogram biti pisan.

    Posljednja osobina je posebno zna?ajna, jer grafi?ko prikazivanje algoritma nijeorijentisano na preno?enje algoritma na ra?unar, ?to omogu?uje da algoritam uobliku blok-?eme mogu koristiti i osobe koje ne poznaju ra?unare i programiranje.Detaljisanje algoritma, pri grafi?kom prikazivanju mo?e biti razli?ito i zavisi odnamjene blok-?eme algoritma. Blok-?ema algoritma treba da je toliko detaljna, dasvaki algoritamski korak bude razumljiv za onog ko ?e koristiti algoritam. Zaslo?enije algoritme pogodno je koristiti i blok- ?eme razli?itog nivoa detaljisanjaalgoritamskih koraka.

    Ako se za prikaz algoritma koriste razli?iti nivoi detaljisanja algoritma, onda sekoristi op?ta blok-?ema i detaljna blok-?ema algoritma. Op?ta blok-?ema algoritmasadr?i algoritameke korake koji predstavljaju ve?e funkcionalne ili logi?ke cjelineu slo?enom algoritmu. Detaljna blok-?ema algoritma sadr?i algoritamske korake ukojima je jasno nazna?ena funkcija svakog algoritamskog koraka. Op?ta blok-?emaslu?i za uvid u logi?ku strukturu slo?enog algoritma, a detaljna za uvid u svedetalje algoritma sa gledi?ta njegovog izvr?avanja.

    1.3.2.2. Struktura algoritma

    Veze izmedju algoritamskih koraka u algoritmu defini?u strukturu algoritma.Strukture algoritama, na koje se mo?e razlo?iti proizvoljna struktura algoritma,zovu se elementarne strukture algoritama.

    Elementarne strukture algoritama su:- linijska struktura,- cikli?na struktura.

    Ove strukture se me?u sobom bitno razlikuju sa gledi?ta izvr?avanja algoritma.

    Linijska struktura algoritmaNiz algoritamskih koraka u kojem se svaki algoritamski korak mo?e izvr?iti

    najvi?e jedanputa, u toku jednog izvr?avanja algoritma ?ini linijsku strukturu.Prema tome, karakteristika linijske strukture algoritma jeste da se poslije izvr?enogjednog algoritamskog koraka mo?e pre?i samo na algoritamski korak koji nije

  • 1. OSNOVE PROGRAMIRANJA 24

    prethodno izvr?en, u toku jednog izvr?avanja algoritma. Linijska strukturaalgoritma mo?e biti prosta ili razgranata.

    Prosta linijska strukturaProsta linijska struktura algoritma je ona linijska struktura kod koje se svaki

    algoritamski korak izvr?ava samo jedanput u toku jednog izvr?avanja algoritma.Algoritmi sa prostim linijskim strukturama, sastoje se isklju?ivo od

    algoritamskih koraka ulaza, obrade ili izlaza. U ovakvim algoritamskimstrukturama redoslijed izvr?avanja algoritamskih koraka ne zavisi od ulaznihveli?ina, niti od me?u rezultata u procesu izvr?avanja algoritma. Primjer ovestrukture prikazan je na slici 1.7.Razgranata linijska struktura

    Razgranata linijska struktura je ona linijska struktura algoritma, kod koje sesvaki algoritamski korak izvr?ava najvi?e jedanput u toku jednog izvr?avanjaalgoritma. To zna?i da u razgranatoj algoritamskoj strukturi postoje algoritamskikoraci koji se jedanput izvr?e, ali postoje i algoritamski koraci koji se ne izvr?e utoku jednog izvr?avanja algoritma. U razgranatim algoritamskim strukturama morapostojati barem jedan uslovni algoritamski korak, koji omogu?uje grananjealgoritma.

    Po?etak

    Kraj

    Z

    P 1

    P 2

    xRy

    P 3

    Ne

    Da

    Slika 1.7. Prosta linijska struktura Slika 1.8. Razgranata linijska struktura

    Elementarna razgranata struktura mo?e se sastojati od minimalno 3 prostelinijske strukture i jednog uslovnog algoritamskog koraka. Na slici 1.8. prikazanaje elementarna razgranata struktura sa prostim linijskim strukturama P1, P2 i P3 i

  • Programski jezik Visual Basic Zbirka zadataka 25

    uslovnim algoritamskim korakom xRy, gdje su x i y prethodno definisane veli?ine,a R relacija pore?enja izme?u veli?ina x i y. Relacija R mo?e biti ispunjena (Da) itada se prelazi na prostu linijsku strukturu P3 ili neispunjena (Ne) i tada se prelazina prostu linijsku strukturu P2. Va?no je uo?iti da se pri izvr?avanju algoritma, naslici 1.8, izvr?ava uvijek samo jedna od prostih linijskih struktura P2 ili P3, uzavisnosti od relacije xRy.

    Veli?ine x i y mogu biti definisane sa ulaza ili to mogu biti me?u rezultatiodre?eni u prostom linijskom programu P1. Relacija izme?u veli?ina x i y odgovaraprirodi ovih veli?ina. Ako su x i y brojne veli?ine mo?e se ispitivati da li sujednake ili koja je od ovih veli?ina manja, odnosno ve?a. Kasnije ?emo vidjeti daove veli?ine mogu biti i nizovi.Cikli?na struktura algoritma

    Niz algoritamskih koraka u kojem se jedan ili vi?e algoritamskih koraka mo?eizvr?iti vi?e od jedanput, pri jednom izvr?avanju algoritma, predstavlja cikli?nustrukturu ili ciklus.

    Cikli?na struktura mo?e biti konstantna i promjenljiva cikli?na struktura. Svakaod ovih, cikli?nih struktura u najop?tijem obliku sastoji se od dvije proste linijskestrukture P1 i P2 (slika 1.9.) i uslovnog algoritamskog koraka xRy. Ako je relacijanavedena u uslovnom algoritamskom koraku ispunjena (Da) vr?i se izlazak izciklusa i prelazi se na prostu linijsku strukturu P3, koja vodi do kraja cijelogalgoritma. Ako uslov xRy nije ispunjen prelazi se na prostu linijsku strukturu P2,poslije ?ega se ciklus ponavIja. Relacija koja defini?e izlazak iz ciklusa zove seizlazni kriterijum ciklusa. Naravno, da se mo?e ciklus organizovati i tako da seizlazak iz ciklusa vr?i ako uslov, koji defini?e izlazni kriterijum, nije ispunjen, aciklus nastavlja ako je uslov ispunjen.

    Slika 1.9. Konstantna cikli?na struktura Slika 1.10. Izra?unavanje stepena

  • 1. OSNOVE PROGRAMIRANJA 26

    Konstantna cikli?na strukturaCikli?na struktura algoritma u kojoj ne dolazi do promjene zakona obrade u

    algoritamskim koracima koji ?ine ciklus, zove se konstantna cikli?na struktura.Izlazni kriterijum kod konstantnih cikli?nih struktura naj????e je broj ponavljanjaciklusa ili dostignuta ta?nost pri ra?unanju po interativnim postupcima. Uka?imosamo da kod iterativnih ciklusa broj prolazaka kroz ciklus nije unaprijed poznat.

    Primjer 1.1: Sastaviti algoritam za izra?unavanje stepena y = xngdje je x nepoznata, a stepen mo?e imati vrijednosti n =0,1,2,...

    Ovdje su x i n ulazne veli?ine, a y izlazna veli?ina. Po?to je eksponent cio broj,stepen se mo?e izra?unati uzastopnim mno?enjem. Prema tome, algoritam zarje?avanje ovog zadatka sadr?i ciklus u kojem ?e se vr?iti n - 1 mno?enje osnove x,a izlazni kriterijum je broj izvr?enih mno?enja (slika 1.10.).

    Va?no je uo?iti da je u ovom zadatku vrijednost n promjenljiva (zadaje se kaoulazna veli?ina) te je nemogu?e algoritam za ovaj zadatak sastaviti kao linijskualgoritamsku strukturu. U ovom zadatku kori??en je simbol, koji predstavljaoperaciju dodjeljivanja vrijednosti promjenljivoj. Uo?imo da ovaj simbol odre?ujeproces izra?unavanja vrijednosti na lijevoj strani, a zatim ovako izra?unatavrijednost se dodjeljuje promjenljivoj na desnoj strani simbola. Zapis " y = x " ?itase "vrijednoet x dodjeljuje se promjenljivoj y ''. Treba imati u vidu da ovaj simbolopisuje proces formiranja vrijednosti x, a zatim dodjeljivanje ove vrijednostipromjenljivoj y. Ovo zna?i da na mjestu x mo?e stajati i aritmeti?ki izraz, ?ijiargument mo?e biti i vrijednost y.

    Tako je u ovom algoritmu kori??en zapis n = n - 1,? ?to zna?i da se vrijednostpromjenljive n umanjuje za jedan i tako formirana vrijednost dodjeljuje kao novavrijednost promjenljive n.

    Algoritam na slici 1.10 ima konstantnu cikli?nu strukturu, jer zakon obrade usvim algoritamskim koracima, koji se nalaze u ciklusu, ne mijenja se za vrijemeizvr?avanja algoritma.

    Promjenljiva cikli?na strukturaCikli?na struktura u kojoj dolazi do promjene zakona obrade, u jednom ili vi?ealgoritamskih koraka, koji se nalaze u ciklusu zove se promjenljiva cikli?nastruktura. Promjena zakona obrade mo?e se odnositi na promjene operacija, kojevr?e obradu informacija ili na promjene promjenljivih koje u?estvuju u pojedinimalgoritamskim koracima.

    Primjer 1.2. Sastaviti algoritam koji izra?unava sumu

    y ==

    n

    i 0(-1)ixi ( 1.1.)

  • Programski jezik Visual Basic Zbirka zadataka 27

    Slika 1.11. Promjenljiva struktura

    Rje?enje: Ovdje su ulazne veli?ine ualgoritam n, x0, x1, x2, ..., xn , a izlaznaveli?ina y. Razvijanjem, suma ( 1.1.) semo?e zapisati u obliku

    y = x0?? x1 + x2 - ...

    Ovo izra?unavanje sume je rije?eno ualgoritmu sa slike 1.11, tako da seoperacija dodjele znaka z mijenjanaizmjeni?no (+ ili -). Prvo je tooperacija sabiranja (+ z), a zatimoperacija oduzimanja ( - z), pa opetsabiranja itd. Prema tome, u ovomalgoritamskom koraku zakon obrade semijenja u toku izvr?avanja algoritma,naizmjeni?no sabiranje i oduzimanje.Pored toga, u istom algoritamskomkoraku dolazi do promjenapromjenljivih koje u?estvuju u obradi, tosu redom promjenljive x0, x1, x2, ... , xn.Ciklusi u kojima postoje algoritamskikoraci sa ovakvim vrstama promjena, utoku izvr?avanja algoritma, supromjenljive cikli?ne strukture.

    1.3.2.3. Struktuirani dijagrami toka

    Standardni dijagrami toka su definisani me?unarodnim standardom ANSI X3.5.Dosta su zastarjeli, ali se jo? uvijek ?esto koriste za prikazivanje algoritama.Me?utim, problemi kod standardnih dijagrama toka nastaju kada treba da se shvatiglobalna struktura predstavljenog algoritma.

    Na primjer:- koliko ima ciklusa (zatvorenih putanja) u dijagramu,- u kakvom se odnosu nalaze ti ciklusi,- kom ciklusu pripada koji blok, itd.

    Struktuirani dijagrami toka su novijeg datuma i podr?avaju moderne principestruktuiranog programiranja. Struktuirano programiranje se zala?e za algoritme iprograme sa jasno definisanom i lako razumljivom strukturom. Pored struktureprograma, posebna pa?nja se posve?uje i strukturi obra?ivanih podataka. Jedan odva?nih elemenata struktuiranog programiranja je i razvoj algoritma ili programa ukoracima preciziranja. Osnovni cilj je u?teda programerskog truda u sastavljanju,

  • 1. OSNOVE PROGRAMIRANJA 28

    USLOV-1 USLOV-1

    USLOV-21

    USLOV

    ispitivanju i prepravljanju kako sopstvenih tako i tu?ih programa. Ovaj cilj seponekad posti?e ve?im utro?kom potrebnog memorijskog prostora za podatke iprograme, a ponekad i sporijim izvr?avanjem dobijenog programa. Smatra se da je,u dana?nje vreme sve mo?nijih i relativno jeftinijih ra?unara, ?ovjekov trudnajskuplji i da to treba najvi?e da se ?tedi. Na slici 1.12. prikazane su osnovne vrsteelemenata struktuiranog dijagrama toka. Svi elementi su pravougaonog oblika saulazom na vrhu i izlazom na dnu. To omogu?uje laku dekompoziciju bilo kogbloka dijagrama na preciznije korake.

    T F BLOKBLOK

    BLOK-1 BLOK-2USLOV

    Slika 1.12. Elementi struktuiranog dijagrama toka

    Elementi struktuiranog dijagrama toka predstavljaju logi?ke cjeline, koje senazivaju osnovnim upravlja?kim strukturama. Tako, selekcija predstavlja vrlo ?estustrukturu, uslovno izvr?avanje jednog od blokova BLOK-1 ili BLOK-2 zavisno odtoga da li je USLOV ispunjen (T) ili nije (F). Pored ove osnovne selekcije, postojei druge vrste selekcija. One su prikazane, zajedno sa kori??enim oznakama ustruktuiranim dijagramima toka. Druga ?esta upravlja?ka struktura je ciklus,? ?topodrazumijeva izvr?avanje BLOK-a sve dok se ne ispuni USLOV. Postoje i drugevarijante ciklusa.

    F FBLOK-

    111 BLOK-121

    BLOK-1BLOK-11 BLOK-12 BLOK-

    112 USLOV-12

    F

    BLOK-21BLOK-

    211BLOK-

    212

    BLOK

    BLOK-2

    USLOV-2 USLOV-2

    Slika 1.13. Pravljenje slo?enog struktuiranog dijagrama

  • Programski jezik Visual Basic Zbirka zadataka 29

    Na slici 1.13. prikazan je primjer formiranja slo?enog struktuiranog dijagramatoka. U prvom koraku cio dijagram je jedan blok, koji predstavlja cio algoritam. Udrugom koraku taj blok je podijeljen na dva uzastopna bloka BLOK-1 i BLOK-2. Utre?em koraku BLOK-1 je pretvoren u selekciju sa uslovom USLOV-1 i uslovnoizvr?avanim blokovima BLOK-11 i BLOK-12. Istovremeno BLOK-2 je pretvoren uciklus sa sadr?ajem BLOK-21 i uslovom zavr?etka USLOV-2. Na kraju, u ?etvrtomkoraku BLOK-11 je podijeljen na dva uzastopna bloka, BLOK-12 je pretvoren uciklus, a BLOK-21 je pretvoren u selekciju.

    Dobra osobina struktuiranih dijagrama toka je spre?avanje sastavljanjanepreglednih algoritama. Pored toga, struktuirani dijagrami toka su kompaktniji.Na istoj povr?ini mo?e da se iska?e vi?e informacija nego pomo?u standardnihdijagrama toka. Mana im je, ako to smije da se uzme kao mana, ?to se koristi vi?erazli?itih elemenata nego kod standardnih dijagrama toka i za njihovorazumjevanje nije dovoljna samo intuicija.

    Na slici 1.14. a) prikazan je standardni dijagram toka, koji se sastoji od dvauklopljena ciklusa, a na slici 1.14. b) prikazan je ekvivalenti struktuirani dijagramtoka. Standardni dijagram toka na slici 1.14. c) se, na prvi pogled, neznatnorazlikuje od dijagrama na slici 1.14. a). Me?utim, kada se bolje pogleda, uo?ava seda dva ciklusa u dijagramu vi?e nisu uklopljena jedan u drugi. Oni se djelimi?nopreklapaju. Ovakva struktura algoritma ne mo?e da se iska?e struktuiranimdijagramom toka.

    BLOK - 1

    BLOK - 2

    USLOV - 2

    USLOV - 1

    a) b) c)Slika 1.14. Pravljenje struktuiranog dijagrama

  • 1. OSNOVE PROGRAMIRANJA 30

    1.3.3. Pisanje i uno?enje programa u ra?unar

    Algoritam zapisan u obIiku blok-?eme ne mo?e biti prihva?en i izvr?en odstrane ra?unara. Da bi algoritam bio prihva?en i izvr?en od strane ra?unara morabiti zapisan na na?in, koji obezbje?uje odre?en nivo detaljizacije algoritma, ?to nemora biti u blok-?emi algoritma.

    Algoritam zapisan tako da je prihvatljiv od strane ra?unara zove se program, aproces pisanja programa zove se programiranje.

    Da bi program mogao da se izvr?i na ra?unaru mora biti zapisan na ma?inskomjeziku ra?unara. Me?utim, pisanje programa na ma?inskom jeziku predstavljatakvu detaljizaciju algoritma, da je to vrlo te?ak posao za ?ovjeka, a uz to i vrlopodlo?an gre?kama. Pored toga, pisanje programa na ma?inskom jeziku zahtijevapoznavanje konstruktivnih osobina ra?unara, ?to tako?e onemogu?uje da se ve?ibroj ljudi obu?i za ovaj posao.

    Da bi se omogu?ilo efikasnije pisanje programa po?eli su se stvarati posebnijezici za komunikaciju izme?u ?ovjeka i ra?unara. Tako su razvijeni simboli?ki iprogramski jezici. Programi zapisani na ovim jezicima mogu se pomo?u posebnihprograma za prevodjenje tj. prevodioca, prevesti na ma?inski jezik i zatim izvr?itina ra?uaru.

    Programski jezici su vje?ta?ki jezici konstruisani za pisanje progama, pri ?emu,po pravilu nije potrebno poznavanje konstruktivnih osobina ra?unara. Va?no jeuo?iti da su programski jezici algoritamski orijentisani, tj. oni omogu?uju korisnikuda zapi?e algoritam za rje?avanje odre?enog zadatka pomo?u ra?unara. Prematome, da bi jedan zadatak rije?ili na ra?unaru moramo prije svega sastavitialgoritam, koji opisuje rje?enje zadatog problema.

    1.3.4. Testiranje programa i ispravke gre?ke

    Kada se program napi?e potrebno je prvo uraditi njegovo testiranje. Dokaziti daprogram obavlja zadatak ili rje?ava problem koji je postavljen nije nimalo lakzadatak. Iako postoje matemati?ke metode za takvo dokazivanje (koje se nazivajuverifikacija programa) u praksi se naj????e takve metode ne primjenjuju. Umjestotoga pristupa se testiranju programa. Izuzev za veoma jednostavne programe,testiranjem se ne mo?e dokazati 100% ispravnost programa. Testiranjem sepoku?avaju prona?i gre?ke u programu. No, bez obzira koliko se gre?aka prona?e,uvijek postoji mogu?nost da ih ima jo?. I pored toga ?to testiranje ne garantujeodsustvo gre?aka, testirani programi su bolji nego netestirani. Cilj testiranja je da seprona?u okolnosti pod kojima program daje pogre?ne rezultate ili za?to se uop?tene dobija nikakav rezultat kada se program pokrene. Ako ne mo?emo daprona?emo takve okolnosti, tada mo?emo imati razumno vjerovanje da programispravno funkcioni?e. Pravljenje dobrog test plana, kojim se potr?uje ispravnostprograma, je veoma te?ak zadatak. Kada programi imaju hiljade linija koda te?ko je

  • Programski jezik Visual Basic Zbirka zadataka 31

    testirati svaku mogu?u putanju pri njegovom izvr?avanju, kako bi se provjerilo daprogram ispravno radi u svim mogu?im slu?ajevima.

    Gre?ke u programu mogu da budu sintakti?ke i logi?ke. Sintakti?ke gre?kenastaju prilikom kucanja naredbi u programu. U programskom jeziku Visual Basic,to su naredbe koje se kucaju u kodu programa nad gotovim objektima od kojih sesastavlja program. Naj????e gre?ke su izostavljanje nekog slova ili da se nekoslovo otkuca dva puta. Ove gre?ke se puno lak?e otkrivaju od logi?kih gre?aka.Logi?ke gre?ke nastaju zbog pogre?nog rasporeda objekata u programu, tako daprogram ne mo?e da se zavr?i do kraja ili se na kraju dobije rezultat koji nije dobar.Da bi se otklonile ove gre?ke, prvo treba dobro razmotriti napisani algoritam. Aupravo jedna od velikih gre?aka programera je da su po?eli da pi?u program, a danisu prije toga napravili algoritam. Drugi na?in otklanjanja logi?kih gre?aka je dase u programu postave kontrolne ta?ke. Primjer koda programa u kome supostavljene kontrolne ta?ke prikazan je na slici 1.15.

    Slika 1.15. Kontrolne ta?ke

    Kontolne ta?ke se postavljaju ukodu programa, tako ?to se mi?emklikne lijevo do radne povr?ine zakucanje koda. Nakon toga selijevo od kodne linije pojavicrveni krug, a pozadina izabranekodne linije postaje crvena. Ujednom programu mo?e sepostaviti kontrolna ta?ka na svakukodnu liniju.Kada se program pokrene nadugme Start, on se izvr?ava samodo kontrolne ta?ke. Dalje izv?enjeprograma je mogu?e ponovnimklikom na dugme Start.

    Kada se program zaustavi na kontrolnoj ta?ci, mogu se provjeravati trenutnevrijednosti svih promjenljivih, koje se nalaze u kodu programa. Ova jednostavnaprovjera se vr?i postavljanjem kursora mi?a na ?eljenu promjenjivu u koduprograma, nakon ?ega se odmah prika?e trenutna vrijednost te promjenjive (uprimjeru na slici 1.15. prikazana je vrijednost promjenjive BB). Na ovaj na?in senajlak?e dolazi do otkrivanja gre?aka, a zatim i ispravljanja gre?aka u koduprograma.

    Postoji nekoliko test strategija koje ?e pove?ati ?ansu za pronala?enje gre?aka(bagova) u programima, a najbitnije su:

    - testiranje "bijele kutije",- testiranje "crne kutije".

  • 1. OSNOVE PROGRAMIRANJA 32

    Testiranje "bijele kutije"4 mo?e da obavlja ili programer koji je napisao programili neko drugi kome je specijalnost testiranje softvera. Testiranje se naziva bijelakutija zato ?to je onom ko testira poznat algoritam ili programski kod. Po?to osobakoja testira program mo?e da vidi kod programa onda je u stanju da provjeri sakidio programa, tako ?to ?e testirati program za razne vrijednosti ulaznih podatka. Zatestiranje programa pored uobi?ajenih biraju i takozvane grani?ne vrijednsoti.Grani?ne vrijednosti su one vrijednosti podataka kod kojih se mogu o?ekivatipogre?ni rezultati (nula, ekstremne vrednosti itd.)

    Testiranje crne kutije se tako naziva jer je programski kod ili algoritamnevidljiv osobi koja vr?i tetsiranje. Test se sprovodi tako ?to se programu (crnojkutiji) daju razli?iti podaci i posmatra pona?anje programa. Da bi se postigaoefekat testiranja, kod ove vrste testova se test podaci pripremaju prije izradeprograma, imaju?i na umu samo programske zahtjeve date u psecifikacijiprograma. Za ovu vrstu testa se obi?no planiraju tri vrste testnih podataka:

    - ispravni podaci,- neispravni podaci (recimo ako umesto cifara damo slova),- grani?ne vrijednosti podataka.

    Softver mo?e biti testiran bilo kojom od predhodne dvije metode. Uobi?ajeno jeda se nakon testiranje progrem prije pu?tanja u prodaju, da na upotrebuograni?enom broju (obi?no programera) u istoj kompaniji. Ova metoda testiranja senaziva Alfa testiranje. Oni simuliraju?i krajnjeg korisnika koriste?i programpronalaze eventualne gre?ke koje su zaostale posle testiranja, a tako?e mogu dadaju i sugestije za unapre?enje programa.

    Nakon alfa testiranja uobi?ajena je procedura da se softver da na upotrebuograni?enom broju spola?njih korisnika i da se od njih dobije odgovor. Odgovormo?e da sadr?i prona?ene greske ali tako?e sugestije za funkcionalno ili nekodrugo unapre?enje softvera. Ova metoda testiranja se naziva Beta testiranje.Pravljene izvr?ne verzije programa

    Kada se program u potpunosti istestira, potrebno je napraviti izvr?nu verzijuprograma preko opcije Make imeprograma.exe u glavnom meniju File. Na ovajna?in se od razvojne verzije programa koja ima ekstenziju ".VBP", pravi izvr?naverzija programa koja ima ekstenziju ".EXE". Korisnik bi trebalo da radi samo saizvr?nim verzijama programa. Ako korisnik radi sa razvojnom verzijom programatada vrlo lako mo?e da pokvari program pomjeranjem ili brisanjem samo jednogslova u kodu programa. Sa druge strane pisac programa ?titi svoj autorski radisporu?ivanjem korisniku samo izvr?ne verzije programa.Kompajleri i interpreteri

    Postoje dva na?ina kako se programi napisani u programskijm jezicima moguizvr?avati u ra?unarima. To su kompilacija i interpretacija. Kompilacija se obavljakompajlerima. Kompilacija je postupak u kome se program napisan u izvornom

    4 Dr Milan Popovi?, Osnove programiranja, BSP, 2007, str.75 do 77.

  • Programski jezik Visual Basic Zbirka zadataka 33

    obliku prevodi u ma?inski kod datog ra?unara. Interpretacija se obavljainterpreterima. Interpretacija je postupak u kome se program napisan u izvornomobliku prevodi u neki "me?ukod", to jest neki jednostavniji jezik sli?an ma?inskomjeziku. Ra?unar zatim izvr?ava (intrepretira) naredbe me?ukoda. Time se posti?e dase isti me?ukod mo?e izvr?avati na razli?itim ra?unarima, jer nije zavistan odma?inskog jezika nekog specifi?nog ra?unara. Za me?ukod bi se moglo re?i dapredstavlja neki univerzalni ma?inski jezik. Kompilirani programi obi?no radebr?e. Prednost interpretera je ?to su obi?no iteraktivni i nije potrebno prolaziti svefaze kao kod kompilacije da bi se program izvr?io.

    1.3.5. Distribucija va?ih aplikacija

    Nakon ?to napravite Visual Basic aplikaciju, mo?ete je distribuirati drugimkorisnicima. Mo?ete slobodno distribuirati svaku aplikaciju, koju stvorite sa VisualBasicom, svakome ko upotrebljava Microsoft Windows. Va?e aplikacije mo?etedistribuirati pomo?u CD-a, USB-a, putem intraneta ili Interneta.

    Kad distribuirate aplikaciju, postoje dva koraka kroz koje morate pro?i: Pakovanje morate zapakovati datoteke va?e aplikacije u jednu ili vi?e

    datoteka tipa .cab koje mogu biti raspakovane na mjestu koje odaberete, i moratestvoriti aplikaciju pode?avanja za odre?ene tipove pakovanja. Datoteka tipa .cab jesa?eta datoteka koja je dobro opremljena za distribuciju na diskovima ili putemInterneta.

    Raspore?ivanje (raspakivanje) va?u zapakovanu aplikaciju morate premjestitina mjesto sa koga je korisnici mogu instalirati. To mo?e zna?iti kopiranje paketa nalokalni ili mre?ni disk, ili postavljanje paketa na Web stranicu.

    Mo?ete koristiti dva alata za pakovanje i raspore?ivanje va?ih aplikacija.?arobnjaka za pakovanje i raspore?ivanje (Package and Deployment Wizard, uopciji Add-Ins Visual Basica), ili alat za pode?avanje (Setup Toolkit), koji dolaze sava?om instalacijom Visual Basica. ?arobnjak za pakovanje i raspore?ivanjeautomatizuje puno postupaka uklju?enih u distribuiranje aplikacija predstavljaju?ivam mogu?nosti sa kojima mo?ete oblikovati va?e .cab datoteke. Alat zapode?avanje dopu?ta vam prilago?ivanje dijela onog ?to se doga?a tokom postupkainstalacije.?arobnjak za pakovanje i raspore?ivanje (Package and Deployment Wizard)

    Visual Basica poma?e vam pri stvaranju .cab datoteka za va?u aplikaciju, njihovomgrupisanju u cjelinu, ili paket, koji sadr?i sve informacije potrebne za instalaciju, teisporuku tih paketa krajnjim korisnicima. ?arobnjaka za pakovanje iraspore?ivanje mo?ete upotrijebiti za stvaranje paketa, koji se distribuiraju nadisketama, CD-ima, lokalnom ili mre?nom disku, ili Internetom. ?arobnjak zapakovanje i raspore?ivanje automatizuje ve?inu posla upletenog u stvaranje i

  • 1. OSNOVE PROGRAMIRANJA 34

    raspore?ivanje tih datoteka. ?arobnjak za pakovanje i raspore?ivanje nudi sljede?emogu?nosti:

    Opcija Package poma?e vam pri pakovanju datoteka projekta u .cab datoteku,koja zatim mo?e biti raspore?ena. U nekim slu?ajevima ova opcija stvara programpode?avanja koji instalira .cab datoteke. ?arobnjak ustanovljava koje datoteketrebate pakovati i vodi vas kroz izbore, koji trebaju biti napravljeni kako bi sestvorila jedna ili vi?e .cab datoteka za va? projekt.

    Opcija Deploy poma?e vam pri isporuci va?ih zapakovanih aplikacija napogodan medij distribucije, kao ?to su diskete, dio mre?e, ili Web stranica.

    Opcija Manage Scripts omogu?uje vam pregled i upravljanje skriptima kojeste snimili u prethodnim radovima pakovanja i raspore?ivanja s ?arobnjakom.Svaki put kad koristite ?arobnjaka, snimate skript koja sadr?e sve izbore koje stenapravili. Taj skript mo?ete ponovno upotrijebiti u kasnijim upotrebama?arobnjaka, ako ?elite upotrijebiti sli?ne postavke i napraviti iste izbore kao ipro?li put.?arobnjak za pakovanje i raspore?ivanje vodi vas kroz stvaranje i distribuiranje

    profesionalnih programa pode?avanja za va?e Visual Basic aplikacije. Osimstvaranja .cab datoteka za va?u aplikaciju, ?arobnjak tako?e stvara programpode?avanja aplikacije prevo?enjem projekta alata za pode?avanje (Setup Toolkit)instaliranog sa Visual Basic-om. Program pode?avanja se naziva setup1.exe.

    Pokretanje ?arobnjaka za pakovanje i raspore?ivanjeMo?ete ga pokrenuti iz Visual Basica kao dodatak. Ako pokre?ete ?arobnjaka

    kao dodatak, prvo morate postaviti potrebna uputstva u kreatoru dodataka kako bi??itali ?arobnjaka. Kad upotrebljavate ?arobnjaka kao dodatak, Visual Basicpretpostavlja da ?elite raditi sa projektom koga trenutno imate otvorenog. Ako?elite raditi sa drugim projektom, morate otvoriti taj projekt prije pokretanja?arobnjaka, ili morate upotrijebiti ?arobnjaka kao samostalan dio.

    Nakon ?to pokrenete ?arobnjaka, niz ekrana ?e od vas tra?iti informacije ova?em projektu i omogu?i ?e vam biranje opcija za pakovanje. Svaki ekranobja?njava kako se upotrebljava, uklju?uju?i neobavezne informacije, teinformacije koje moraju biti upisane prije nego ?to se mo?ete pomaknuti na idu?iekran. Ako trebate vi?e informacija o bilo kom ekranu, pritisnite tipku F1 ilikliknite dugme Help. Posebno napominjemo da bi trebali snimiti i prevesti svojprojekt u EXE verziju prije nego ?to pokrenete ?arobnjaka za pakovanje iraspore?ivanje.

    Pokretanje ?arobnjaka za pakovanje i raspore?ivanje iz Visual Basic-a vr?i se usljede?im koracima:

    1) Otvorite projekt koji ?elite zapakovati ili rasporediti kori?tenjem ?arobnjaka.(Napomena: Ako radite u projektnoj grupi ili imate vi?e istovremeno u?itanihprojekata, projekat koji ?elite zapakovati ili rasporediti mora biti trenutan projektprije nego ?to pokrenete ?arobnjaka.)

  • Programski jezik Visual Basic Zbirka zadataka 35

    2) Upotrijebite menad?era dodacima (Add-In Manager) za u?itavanje?arobnjaka za pakovanje i raspore?ivanje. U izborniku Visual Basica Add-Insodaberite stavku Add-In Manager, odaberite stavku Package and DeploymentWizard sa popisa, i kliknite OK.

    3) Odaberite stavku Package and Deployment Wizard iz menija Add-Ins zapokretanje ?arobnjaka.

    4) Na glavnom ekranu odaberite jednu od sljede?ih opcija: Ako ?elite stvoriti standardno pakovanje, pakovanje za Internet ili datoteku

    zavisnosti za projekt, kliknite Package. Ako ?elite rasporediti projekt, kliknite Deploy. Ako ?elite pregledati, mijenjati ili obrisati skript, kliknite Manage Scripts.5) Nastavite kroz ekrane ?arobnjaka.

    Pokretanje ?arobnjaka za pakovanje i raspore?ivanje, kao samostalan dio vr?i sena sljede?i na?in:

    1) Ako je projekt koji ?elite zapakovati otvoren, snimite ga i zatvorite VisualBasic.

    2) Kliknite glavno dugme Start, pa kliknite stavku All Programs pa MicrosoftVisual Studio 6.0, pa zatim Microsoft Visual Studio 6.0 Tools, pa zatim iz listeopciju Package and Deployment Wizard.

    3) U popisu Project na uvodnom ekranu, odaberite projekt koji ?elitezapakovati. (Napomena: Mo?ete kliknuti dugme Browse ako va? projekt nije napopisu.)

    4) Na glavnom ekranu, odaberite jednu od sljede?ih opcija: Ako ?elite stvoriti standardno pakovanje, pakovanje za Internet ili datoteku

    zavisnosti za projekt, kliknite Package. Ako ?elite rasporediti projekt, kliknite Deploy. Ako ?elite pregledati, mijenjati ili obrisati skripte, kliknite Manage Scripts.5) Nastavite kroz ekrane ?arobnjaka.

    Mo?ete slobodno distribuirati svaku aplikaciju ili sastavni dio koji ste stvorili saVisual Basicom. Uz izvr?ne (.exe) datoteke, va?a aplikacija mo?e zahtijevati drugedatoteke, kao ?to su dinami?ke biblioteke (DLL), ActiveX kontrole (.ocx datoteke)ili slike (.bmp, .jpg, .ico ... datoteke).

    Nezavisno o tipu pakovanja koji stvarate ili alatu koji upotrebljavate kako bi gastvorili, postoje neki koraci koji moraju biti preduzeti.

    1) Odredite tip paketa koji ?elite stvoriti. Mo?ete stvoriti standardni paket zaaplikacije temeljene na Windows-ima koje ?e biti distribuirane na disketama, CD-ima ili putem mre?e. Umjesto toga, mo?ete stvoriti Internet paket za aplikacije koje?e biti distribuirane putem Weba. Mo?ete tako?e odabrati stvaranje samo datotekezavisnosti.

  • 1. OSNOVE PROGRAMIRANJA 36

    2) Odredite datoteke koje trebate distribuirati. ?arobnjak mora odreditiprojektne datoteke i datoteke zavisnosti za va?u aplikaciju prije nego ?to mo?estvoriti paket. Projektne datoteke su datoteke koje su uklju?ene u sam projekt naprimjer, .vbp datoteka i njezin sadr?aj. Datoteke zavisnosti su datoteke ili sastavnidijelovi izvo?enja, koje va?a aplikacija zahtijeva za izvo?enje. Informacije ozavisnosti su spremljene u datoteci VB6dep.ini, ili u raznim .dep datotekama, kojeodgovaraju sastavnim dijelovima va?eg projekta.

    3) Odredite gdje na ra?unaru korisnika instalirati datoteke. Programskedatoteke i datoteke pode?avanja se obi?no instaliraju u poddirektorij direktorijaProgram Files, dok se sistemske datoteke i datoteke zavisnosti obi?no instaliraju udirektorije \Windows\System ili \Winnt\System32. Va? program pode?avanja tomora uzeti u obzir i odrediti gdje instalirati svaku datoteku.

    4) Stvorite svoj paket. ?arobnjak stvara paket i program pode?avanja(setup1.exe) za njega, ukazuju?i na sve potrebne datoteke. Krajnji rezultat ovogkoraka je jedna ili vi?e .cab datoteka i sve potrebne datoteke pode?avanja.

    5) Rasporedite svoj paket. Postupak raspore?ivanja sadr?i stvaranje va?egmedija distribucije i kopiranje svih potrebnih datoteka na mjesto gdje mu korisnicimogu pristupiti.

    Postoji nekoliko datoteka koje su uvijek dio va?ih standardnih paketa. Tu suuklju?eni:

    Datoteka setup.exe. Ova datoteka djeluje kao izvr?na prije instalacije.Datoteka setup.exe je prva stvar koja se izvodi na ure?aju korisnika u postupkuinstaliranja, i izvodi potrebne obrade, koje se moraju pojaviti prije po?etka glavneinstalacije.

    Datoteka setup1.exe. Ova datoteka djeluje kao glavni program pode?avanjaza va?u aplikaciju.

    Kad korisnik instalira va?u aplikaciju, program pode?avanja kopira uslu?nidodatak St6unst.exe za uklanjanje aplikacije u direktorije \Windows ili \Winnt.Svaki put kad upotrijebite Visual Basic program pode?avanja za instalisanjeaplikacije, stvara se evidencijska datoteka za uklanjanje aplikacije (St6unst.log) udirektorijumu u kome je aplikacija instalirana.

    Datoteka tipa .log sadr?i unose koji ukazuju na: Direktorije koji su stvoreni tokom instalacije. Instalirane datoteke i njihove polo?aje.Ovaj popis sadr?i sve datoteke u programu pode?avanja, ?ak i ako neke datoteke

    nisu instalisane na korisnikov ra?unar, jer je ve? postojala novija verzija istedatoteke. Evidencijska datoteka ozna?ava je li datoteka djeljiva te ako jeste, je lizamijenila postoje?u datoteku.

  • Programski jezik Visual Basic Zbirka zadataka 37

    1.3.6. Implementacija programa i obuka korisnika

    Tek kada se program u potpunosti istestira, on se daje korisniku na kori??enje.Prije nego ?to se program da korisniku na kori??enje, svaki programer bi trebao danapravi detaljno uputstvo za kori??enje programa. Uputstvo treba da sadr?i slikesvih ekrana, koji se mogu pojaviti u toku izvr?enja programa, a za svaki objekat naslici treba dati njegove funkcije, tip i raspon ulaznih (izlaznih) podataka. Uputstvomo?e biti napravljeno u papirnoj ili elektronskoj formi, ali najbolje i u jednoj idrugoj formi. Pored uputstva programer mora da korisniku pru?i obuku u kori?enjuisporu?enog programa. Proizvodnja programa5 za tr???te je djelatnost sli?na proizvodnji svih drugihvrsta proizvoda. Kupac obi?no o?ekuje sli?ne uslove kupoprodaje, kao uslu?ajevima kupovine uobi?ajenih tehni?kih proizvoda. Me?utim, program jeveoma specifi?an proizvod i njegova za?tita nije nimalo jednostavna. Pravniaspekti proizvodnje i kori??enja programa predstavljaju u op?tem slu?aju delikatnu,prilikom sporova komplikovanu i ponekad kontroverznu oblast. Klasi?na prodajaprograma je dosta rijetka pojava. Pod "klasi?nom prodajom" programapodrazumijevamo u stvari kupovinu programa i prava na njegovu preprodaju.Drugim rije?ima kupovina programa je "klasi?na kupovina" onda kada je sli?nakupovini nekretnina ili automobila. Tada kupac ima potpuno pravo raspolaganjasvojim vlasni?tvom i mo?e zatim da ga po volji proda, pokloni, ili uni?ti. Kupovinuprograma praktikuju dr?avne organizacije i/ili kompanije (vlada, vojska, policija,elektrane, banke, itd.) gdje program mo?e bitno da uti?e na sigurnost rada iliposlovanja, a za njih je jeftinije da kupe programe nego da ih sami razvijaju. U pravnim dr?avama piratsko kopiranje programa je jednako te?ak prekr?aj kaoi povreda patentnih prava ili piratsko kopiranje i distribucija knjiga, muzi?kih ivideo diskova. Ako bi neko neovla??eno lice uzelo na primjer neku knjigu i bezodobrenja izdava?a i autora po?elo da tu knjigu samostalno kopira i kopije stavlja uprodaju, onda bi to bio prekr?aj i pravno i moralno. Treba razumjeti da zakon koji?titi izdava?a i autora ?titi u stvari najvi?i dru?tveni interes. Ako bi proizvo???uknjige, ili programa, njegov proizvod bio neka?njeno piratski ukraden, onda bi kaodirektna posljedica toga opao interes za proizvodnju tako riskantnog proizvoda.Dru?tvo bi neminovno bilo suo?eno sa usporenim razvojem ili nazadovanjem. Toje razlog ?to neovla??eno kori??enje softvera nije samo pravno nedopustiv akt, ve?predstavlja i ozbiljno kr?enje profesionalnog morala jer potkopava temelje zdravihodnosa u okviru programerske profesije.

    5 Dr Jozo J. Dujmovi?, Programski jezici i metode programiranja, Akademska misao,Beograd, 2003, str 3.98 do 3.104.

  • 1. OSNOVE PROGRAMIRANJA 38

    1.3.7. Odr?avanje i nadogradnja programa

    ? ?aljiva izreka ka?e da svi programi sadr?e gre?ke dok se ne doka?e suprotno,?to je ina?e nemogu?e. Imaju?i u vidu da u svakoj ?ali ima i po malo istine i?ale, dolazimo do toga da je veoma te?ko pri proizvodnji programa pru?iti bilokakvu garanciju. Ta?nije proizvo???i programa umjesto garancije za svojeproizvode naj????e daju izjavu da ne prihvataju bilo kakvu odgovornost zaprimjenu i posljedice primjene svog softvera.?ak i softveri koji slu?e za rje?avanje nekih matemati?kih problema, koji imaju

    izuzetnu vrijednost i mogu se koristiti sa visokim stepenom pouzdanosti dajuovakve izjave. Ipak, uvijek postoji mogu?nost da se, i pored vrlo malevjerovatno?e, desi slu?aj da se pri nekim ulaznim parametrima pojavi gre?ka unekom programu. I ako bi se taj program koristio u prora?unu ili u radu nekogveoma osjetljivog ure?aja (tipi?an primjer su letjelice i njihovi sastavni djelovi),moglo bi do?i do fatalnih posljedica za koje proizvo??? softvera ne mo?e prihvatitiodgovornost. Stoga se i daje izjava o ne prihvatanju odgovornosti.Izjave o ne prihvatanju odgovornosti postale su uobi?ajena pravna forma iprimjenjuje se ?ak i onda kada to, na prvi pogled, ne izgleda neophodno.

    Te?ko je zamisliti kakve bi to fatalne posljedice mogle da nastupe kao rezultatgre?ke u programu za obradu teksta, a da pri tome autor teksta ili njegov izdava? nebudu krivi, nego da svu krivicu snosi programer koji je pisao program ilikompanija koja program distribuira. Naravno, mo?e se dogoditi da zbog gre?ke uprogramu neki podatak u tekstu ne?eljeno promjeni vrijednost i da to ima nekeneprijatne posljedice, ali normalno bi bilo je da je kriv onaj ko je koristio no? nanaopak na?in, a ne proizvo??? no?a. Poenta je me?utim u tome da program zaobradu teksta ne mo?e da se izvr?ava u apsolutnoj izolaciji. On upisuje podatkepo disku i mo?e da gre?kom dovede do direktnog ili poslijedi?nog gubitka nekihkorisni?kih programa ili podataka, pa se proizvo??? softvera sa razlogom odlu?iona sli?nu formulaciju kao i autori numeri?kih programa.

    Imaju?i u vidu da ve?ina programa radi u okru?enju drugih programa i podatakai da se ?teta drugim podacima i/ili programima ipak mo?e dogoditi i pored najve?epa?nje u programiranju, slijedi da je u ovim slu?ajevima uputno koristiti izjavu onepriznavanju garancije. Tim prije ?to su korisnici softvera navikli da programskiproizvodi u odre?enom malom procentu sadr?e gre?ke, tako da potpunu garanciju ine o?ekuju. Garancija se stoga u ve?ini slu?ajeva odnosi samo na besplatnuzamjenu medijuma sa programima, koji nisu ?itki zbog gre?aka na medijumu. Druga forma garancije koju proizvo???i unikatnog ili maloserijskog softveraponekad nude kupcima, je garancija za interventno odr?avanje u ograni?enomperiodu. Ova garancija ima za cilj da obezbjedi da proizvo??? softvera uograni?enom periodu (naj????e godina dana) bude u obavezi da po reklamacijikupca izvr?i sitnije popravke i dorade isporu?enog programskog proizvoda.

  • Programski jezik Visual Basic Zbirka zadataka 39

    Sa druge strane, imaju?i u vidu izuzetnu lako?u i brzinu kojom se i veomaveliki programski proizvodi mogu neovla?teno iskopirati, proizvo???i programaredovno poku?avaju da svoj proizvod za?tite od toga. Pa pored pravne za?titeputem copiryght koriste i razne tehni?ke norme za?tite od neovla??enogkopiranja njihovih proizvoda. Postoji veliki broj metoda kako se to mo?e posti?i, aneke od njih se zasnivaju i na specijalnom hardveru. Jedan od oubi?ajenih na?ina jeda se obezbjedi da odre?eni program mo?e da radi isklju?ivo na odre?enomra?unaru. Ovaj na?in se sastoji u tome, da se serijski broj procesora (koji seprogramski mo?e o?itati) dostavi proizvo???u softvera, koji zatim taj broj upisuje(naj????e kriptografisano) u program koji treba da radi na tom ra?unaru. U tokurada programa, program povremeno testira da li je serijski broj procesora isti kao i??ekivani serijski broj, pa ako to nije slu?aj prestaje sa ispravnim radom. Naravno,u tom slu?aju pravni aspekt kori??enja je druga?ije koncipiran od uobi?ajenecopyright za?tite. Sada princip licence za kori??enje softvera nije vi?e jednakopija jedan korisnik (na bilo kom mjestu i na bilo kom ra?unaru), ve? jednakopija, jedan ra?unar. Pri tome broj simultanih korisnika takvog softvera mo?e, aline mora, da bude ograni?en. Osnovna ideja proizvo???a softvera je obi?no danjegova zarada treba da bude proporcionalna koristi, koju kori??enjem softveraostvaruje njegov korisnik.

    Proizvo???i softvera (naro?ito ako se radi o unikatnom softveru) ?estokorisnicima nude ugovorno odr?avanje softvera. Pod odr?avanjem se obi?nopodrazumijevaju popravke i dorade koje se rade na zahtjev korisnika, koji je otkriogre?ku ili nedostatak u softveru koji koristi, a za koje ima ugovorno odr?avanje.Ugovorom o odr?avanju se moraju precizno specificirati uslovi odr?avanja. Tonaj????e mo?e biti:

    1) vremenski rok u kome proizvo??? softvera treba da otkloni otkrivenegre?ke i nedostatke, ili

    2) obaveza da se na zahtjev kupca anga?uje odre?eni stru?njak proizvo???a,koji ?e odre?eno vrijeme provesti rade?i u pravcu pobolj?anja datogsoftvera, ali obi?no bez obaveze da se ispune neki specifi?ni zahtjevi.Budu?i da je proizvo??? softvera spreman na odre?ene intervencije usoftveru na zahtjev kupca, to se ponekad mo?e smatrati kao odre?enaforma garancije.

    Primjeri navedene forme odr?avanja softvera obuhvataju obi?no intervencije udva osnovna pravca. Korisnik u datom periodu (npr. u toku godine dana) mo?e dadetaljno ispita programski sistem sa mnogo ?irim spektrom kombinacija ulaznihpodataka od onoga ?to je mogao da uradi proizvo??? prilikom razvojaprogramskog proizvoda. Tom prilikom postoji mogu?nost da korisnik identifikujetakve kombinacije ulaznih parametara za koje programi daju neispravne rezultate.Obaveza proizvo???a se svodi na to da modifikuje program tako da se navedeneneispravnosti otklone. Drugi pravac se sastoji u tome, da se modifikuje korisni?kaforma, odnosno onih dijelova koji defini?u tip i formu unosa ulaznih podataka od

  • 1. OSNOVE PROGRAMIRANJA 40

    strane korisnika. Korisnik koji rutinski koristi program du?e vremena redovnootkrije sitne neprakti?nosti u na?inu komuniciranja, podatke koji se ponavljaju,nepotrebna ograni?enja, testove i sli?no. Tako da ima razloge da pokrene zahtjev zamanjim izmjenama programa. Treba naglasiti da pod ovaj vid modifikacije nespadaju su?tinske modifikacije algoritamske prirode, jer bi to iziskivalo pravljenjenove verzije programa. Druga vrsta ugovora o odr?avanju softvera, koja se primjenjuje u domenusistemskog softvera, ne obuhvata interventno odr?avanje, ve? periodi?nu isporukunovih verzija instaliranog softvera. U takvim slu?ajevima proizvo??? ima ekipuprogramera, koji permanentno dora?uju i usavr?avaju postoje?i softver. Kada sebroj intervencija u postoje?em softveru nakupi, tako da se nova verzije softvera posvojim osobinama u dovoljnoj mjeri razlikuje od predhodne, onda se ta novaverzija automatski distribuira korisnicima, koji imaju ugovor o odr?avanjusoftvera.

    Gotovo svaki program je do?ivio neke modifikacije, a razvoj programa imaobi?no svoju nomenklaturu u vidu oznake v.m koja ozna?ava:

    - verziju (v) i- modifikaciju (m) datog programa.

    Kada programer razvija prototip programa onda je to nulta verzija, koja mo?eimati veliki broj raznih modifikacija dok se ne dobije kompletan proizvod, kojipro?e zavr?no testiranje i spreman je za tr???te. Takav proizvod se naj????eozna?ava kao verzija 1.0 (skra?eno V1.0). Veoma je va?no da se u toku razvoja softvera vodi uredna i precizna evidencijao modifikacijama koje su u toku. Vremenom se nagomila veliki broj listingaprograma od kojih mnogi mogu biti zastarjeli, ali se to ne mo?e otkriti ako na njimane stoji odgovaraju?a oznaka. Prema tome, u toku razvoja i testiranja programapotrebno je poslije svake modifikacije programa unijeti na programima izmjenjenuoznaku. Po?inje se sa V0.1, pa zatim svaka modifikacija ima naredni broj (V0.2,V0.3, itd.) dok se ne do?e do izlaska na tr???te sa verzijom V1.0. Zatim se tokomrazvoja softvera distribuiraju verzije V1.1, V1.2, itd. Po pravilu poslije manje od10 modifikacija prelazi se na verziju V2.0. Podrazumijeva se, da se ovaj procesodvija saglasno sa potrebama tr???ta, pa V2.0 treba da obuhvati pored popravkigre?aka i pro?irenja, koja ?ine zna?ajnu razliku u odnosu na verziju V1.0. Zatim seisporu?uju modifikacije V2.1, V2.2 itd. Neki popularni programi do?ivjeli su ve?ibroj verzija, ali rijetko vi?e od 10. Lako je uvidjeti da ne postoji nikakva ?vrsta definicija i ujedna?eni pogled na tonakon koliko modifikacija treba da se pojavi nova verzija programa. Tako daozna?avanje brojeva modifikacija i verzija u prili?noj mjeri zavisi od mjere, ukusa itradicije koja je svojstvena nekom proizvo???u programa. Ipak, relativno visokibroj verzija i modifikacija programa predstavlja neku formu priznanja daposmatrani programski proizvod uspje?no ?ivi na tr???tu i da po svojoj prilici imarazvijenu korisni?ku bazu.

  • Programski jezik Visual Basic Zbirka zadataka 41

    1.4. RJE?ENI PRIMJERI PRAVLJENJA ALGORITMA

    U ovom poglavlju dati su zadaci za koje je potrebno napraviti grafi?kialgoritam. Za ve?inu zataka su predlo?eni grafi?ki algoritmi, koji predstavljajumogu?a rje?enja.

    Zadatak 1.1.Sastaviti algoritam koji izra?unava zbir (Z) dva realna broja A i B tj. Z = A + B.Rje?enje:Rje?enje ovog algoritma dato je na slici 1.15.

    Po?etak

    Kraj

    Z = A + B

    Z

    A, B

    Slika 1.15. Zadatak 1.1. Slika 1.16. Zadatak 1.2.

    Zadatak 1.2.Sastaviti algoritam koji izra?unava proizvod (P) dva realna broja A i B tj. P = A*B.Rje?enje:Rje?enje ovog algoritma dato je na slici 1.16.

    Zadatak 1.3.Sastaviti algoritam koji izra?unava vrijednost izraza Y=[(X1+X2)*X3-X4]*X5za zadate vrijednosti: X1 X2 X3 X4 i X5Rje?enje:Rje?enje ovog algoritma dato je na slici 1.17.

    Zadatak 1.4.Sastavi