Programski jezik Visual basic

197

Click here to load reader

description

Programski jezik Visual basic

Transcript of Programski jezik Visual basic

Page 1: Programski jezik Visual basic

Dr Sr an DamjanoviMr Predrag Katani

PROGRAMSKI JEZIK VISUAL BASIC

ZBIRKA ZADATAKA

FAKULTET POSLOVNE EKONOMIJEBIJELJINA, 2O12.

Page 2: Programski jezik Visual basic

Recenzent:

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

© 2012.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.

Page 3: Programski jezik Visual basic

PosvetaOvu knjigu posve ujem bri noj supruzi

Slobodanki, bogatstvu na e ljubaviTeodori i Mihailu, koji su sa punorazumjevanja omogu ili moj rad na ovojknjizi. Zahvaljujem se tako e mojimvoljenim roditeljima Miri i Mirku, za svunesebi nu ljubav koju su mi pru ili.

Sr an Damjanovi

Page 4: Programski jezik Visual basic
Page 5: Programski jezik Visual basic

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 SKRA ENICE U PROGRAMU VISUAL BASIC ................................ 642.6 PRAVLJENJE PRVOG PROGRAMA................................................. 67

2.6.1 Izbor potrebnih objekata za rje avanje postavljenog zadatka .............. 672.6.2 Definisanje osobina objekata ............................................................. 692.6.3 Me usobno povezivanje objekata ...................................................... 692.6.4 Testiranje programa i pravljenje izvr ne verzije programa ................. 70

3 TIPOVI PODATAKA ........................................................................ 733.1 LOGI KE PROMJENJIVE (BOOLEAN)............................................ 753.2 CIJELI BROJEVI (INTEGER) ............................................................. 763.3 REALNI BROJEVI................................................................................ 783.4 TEKST (STRING) .................................................................................. 793.5 NOV ANE VRIJEDNOSTI (CURRENCY).......................................... 823.6 DATUM (DATE) .................................................................................... 82

Page 6: Programski jezik Visual basic

SADR AJ 6

3.7 NEODRE ENI TIP (VARIANT)........................................................... 843.8 STATI KI NIZOVNI TIP (ARRAY)..................................................... 84

4 FUNKCIJE I PROCEDURE.............................................................. 894.1 FUNKCIJE............................................................................................. 894.2 PROCEDURE ........................................................................................ 924.3 MATEMATI KE FUNKCIJA.............................................................. 984.4 FINANSIJSKE FUNKCIJA .................................................................. 994.8 INPUTBOX FUNKCIJA ...................................................................... 1024.9 MESAGEBOX FUNKCIJA.................................................................. 1054.10 REKURZIVNE FUNKCIJE I PROCEDURE................................... 106

5 NAREDBE SELEKCIJE I ITERACIJE ......................................... 1095.1 NAREDBE SELEKCIJE ...................................................................... 109

5.1.1 If Then Else struktura...................................................................... 1095.1.2 Case struktura ................................................................................ 114

5.2 NAREDBE ITERACIJE....................................................................... 1195.2.1 For ... Next struktura....................................................................... 1195.2.2 Do While ... Loop struktura............................................................. 1235.2.3 Do ... Loop While struktura............................................................. 1255.2.4 Do ... Loop Until struktura.............................................................. 126

6 OBJEKTNO ORJENTISANO PROGRAMIRANJE ..................... 1296.1 PRIMJERI IZ HELPA VISUAL BASIC PROGRAMA...................... 1326.2 KOMUNIKACIJA SA PROGRAMABILNIM URE AJIMA........... 132

7 OBJEKTI VISUAL BASIC-A........................................................... 1357.1 OBJEKAT FORM................................................................................ 1357.2 OBJEKAT LABEL............................................................................... 1367.3 OBJEKAT TEXTBOX.......................................................................... 1377.4 OBJEKAT COMMANBUTTON .......................................................... 1397.5 OBJEKTI CHECKBOX I OPTIONBUTTON ..................................... 1397.6 OBJEKAT FRAME.............................................................................. 1417.7 OBJEKTI LISTBOX I COMBOBOX ................................................... 1427.8 OBJEKTI KLIZNE TRAKE HSCROLLBAR I VSCROLLBAR......... 1457.9 OBJEKAT TIMER............................................................................... 1477.10 OBJEKAT DRIVELISTBOX ............................................................. 1527.11 OBJEKAT DIRECTORYLIST BOX .................................................. 1527.12 OBJEKAT FILELISTBOX ................................................................ 1537.13 OBJEKTI LINE I SHAPE ................................................................. 154

Page 7: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 7

7.14 OBJEKTI IMAGE I PICTUREBOX .................................................. 1567.15 OBJEKAT DATA ............................................................................... 1577.16 OBJEKAT OLE.................................................................................. 1607.18 OBJEKAT MSFLEXGRID ZA TABELARNI PRIKAZ .................. 1627.19 OBJEKAT COMMONDIALOG ZA STANDARDNI MENI............. 168

7.19.1 Dijalo ki okviri Open i Save As ...................................................... 1707.19.2 Dijalo ki okvir Color...................................................................... 1717.19.3 Dijalo ki okvir Font ....................................................................... 1717.19.3 Dijalo ki okvir Print....................................................................... 1727.19.3 Dijalo ki okvir Help ....................................................................... 172

7.20 IZRADA SOPSTVENOG MENIJA .................................................. 1737.21 IZRADA SOPSTVENOG TOOLBAR-A............................................ 1767.22 NIZ OBJEKATA................................................................................ 1797.23 KRETANJE KROZ OBJEKTE SA TAB TASTEROM................... 182

8 PRIMJERI VISUAL BASIC PROGRAMA..................................... 1858.1 PRIMJERI IZ HELPA VISUAL BASIC PROGRAMA...................... 185

9 PROIZVODNJA I PRODAJA PROGRAMA ................................. 1889.1 PRODAJA PROGRAMA .................................................................... 1889.2 PRAVO KOPIRANJA PROGRAMA ................................................. 1899.3 GARANTNE OBAVEZE..................................................................... 1909.4 ODR AVANJE PROGRAMA............................................................ 1929.5 OZNA AVANJE VERZIJA I MODIFIKACIJA PROGRAMA....... 1939.6 SPECIFIKACIJA PROGRAMSKIH PROIZVODA.......................... 194

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

Page 8: Programski jezik Visual basic

SADR AJ 8

Page 9: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 9

UVOD

Visual Basic je objektno orjentisani programski jezik, koji je kao programskijezik pre ao dug razvojni put. Zahvaljuju i Microsoft-u postao je profesinalnirazvojni alat i standard za razvoj aplikacija u Windows okru enju. Zbog svojejednostavnosti u pisanju programa i lakom pra enju toka izvr enja programa, ovajprogramski jezik mo e da poslu i po etnicima u programiranju za savladavanjeprvih koraka u programiranju. Ovaj programski jezik do sada ima vi e uspje nihverzija. Cilj ovog izdanja je da se prilagodi potrebama studenata u po etnoj fazi

enja programiranja, kao i svima onima koji su se ranije bavili programiranjem aliu nekom drugom programskom jeziku. ak iako student nema namjeru da postaneprofesionalni programer, u ovoj knjizi moze na i neke korisne metode i tehnikekoje e pobolj ati njegovu op tu sposobnost rje avanja problema. Izdavanjem oveknjige nadomje tena je literatura, koja nedostaje za izvo enje vje bi iz predmetaUvod u programiranje i Programski jezici na Fakultetu poslovne ekonomije uBijeljini.

Tako e je evidentan nedostatak sadr aja koji se odnosi na pravljenje algoritma.Autori su, uvidjev i tu prazninu, bri ljivo razradili primjere algoritama. Na osnovutoga su studentima i ostaloj stru noj javnosti ponudili jedan ovakav nastavnisadr aj. Na relativno skromnom broju stranica izlo ena je jedna konzistentnacjelina pogodna za edukaciju u obrazovnim ustanovama. Knjiga je posebnoaktuelna za studente i itaoce, koji se samostalno bave programiranjem uprogramskom jeziku Visual Basic. Ponu eni primjeri su, zbog konciznostiizlaganja, djelimi no upro eni, ali se nevelikim trudom mogu brzo i efikasnodovesti do profesionalne aplikacije. Obra ene oblasti su raznovrsne i bri ljivobirane, kako bi itaoci mogli da uvide vi estruke primjene obra enog materijala upraksi.

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 su naengleskom jeziku i u elektronskom obliku. To su, uglavnom, obimnedokumentacije izlo ene na vi e stotina, ak i oko hiljadu stranica, a uglavnom seodnose na jedan segment problema, koji se obra uje. Knjiga je u osnovi podijeljena na osam poglavlja, koja ine tri zasebne cjeline.Prvu cjelinu ine poglavlja od jedan do est, u kojima su date osnove programskogjezika Visual Basic. Drugu cjelinu ini sedmo poglavlje u kome su predstavljeniprogrami za simulaciju laboratorijskih vje bi na ra unaru. Tre u cjelinu ini osmopoglavlje u kome je opisan postupak procjene mjerne nesigurnosti. 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 predstavljene

Page 10: Programski jezik Visual basic

UVOD 10

osnovne hardverskih komponente ra unara. Zatim je ukratko opisan pojamsoftvera. Na kraju ovog poglavlja su dati osnovni koraci, koji ine proces pisanjaprograma. 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 predstavljeni gotovi objekti, koji postoje u standardnoj paletiobjekata u programskom jeziku Visual Basic. Za svaki objekat su dati primjeriprograma za kori enje ovih objekata.

Primjeri programa napisanih u programskom jeziku Visual Basic predstavljenisu u estom 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.

U sedmom poglavlju su predstavljeni programi, koji se mogu koristiti zasimulaciju na ra unaru labaratorijskih vje bi iz predmeta Elektri na mjerenja.

Pravni i ekonomski aspekti proizvodnje programa opisani su u osmompoglavlju. Ovo poglavlje je dodato u knjigu, kako bi studenti dobili odgovaraju uliteraturu iz ove oblasti, koja nagla ava da je i program proizvod koji se prodajekupcima. Program ima odre ene specifi nosti prilikom proizvodnje, ali i prilikomprodaje 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].

Page 11: Programski jezik Visual basic

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 svakodnevnomivotu kod elektri nog zvonca na vratima, sijalice u ku i itd. ak i samo porijeklo

rije 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 da

postoje 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.

Page 12: Programski jezik Visual basic

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 kaoto 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

Page 13: Programski jezik Visual basic

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 enjujedne 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

Page 14: Programski jezik Visual basic

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 i

rezultate 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

Page 15: Programski jezik Visual basic

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

Page 16: Programski jezik Visual basic

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 memorijskihelija po inje od 0. O igledno je da redni broj elije predstav1ja njenu jedinstvenu

adresu. Uvedimo sada predpostavku da jedna memorijska elija mo a da sadr ijednu i samo jednu instrukciju ili samo jedan podatak. Tada mo emo da izvedemozaklju ak da svaka instrukcija, odnosno, svaki podatak ima sopstvenu adresu -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).

Page 17: Programski jezik Visual basic

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. potrebamaovjeka za sve ve om koli inom informacija. Sa stanovi ta OS-a, hardverska

komponenta 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

Page 18: Programski jezik Visual basic

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,

Page 19: Programski jezik Visual basic

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.

Page 20: Programski jezik Visual basic

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. Uirem smislu to je proces pripreme, razrade i pisanja programa radi rje avanja

nekog 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.

Page 21: Programski jezik Visual basic

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.

Page 22: Programski jezik Visual basic

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

Page 23: Programski jezik Visual basic

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

Page 24: Programski jezik Visual basic

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 prikazana jeelementarna razgranata struktura sa prostim linijskim strukturama P1, P2 i P3 i

Page 25: Programski jezik Visual basic

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

Page 26: Programski jezik Visual basic

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 = xn

gdje 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)

Page 27: Programski jezik Visual basic

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,

Page 28: Programski jezik Visual basic

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

Page 29: Programski jezik Visual basic

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

Page 30: Programski jezik Visual basic

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

Page 31: Programski jezik Visual basic

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".

Page 32: Programski jezik Visual basic

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.

Page 33: Programski jezik Visual basic

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, u

opciji 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

Page 34: Programski jezik Visual basic

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 upotrebamaarobnjaka, ako elite upotrijebiti sli ne postavke i napraviti iste izbore kao i

pro 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 biitali arobnjaka. Kad upotrebljavate arobnjaka kao dodatak, Visual Basic

pretpostavlja da elite raditi sa projektom koga trenutno imate otvorenog. Akoelite raditi sa drugim projektom, morate otvoriti taj projekt prije pokretanjaarobnjaka, 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 kojeg elite zapakovati ili rasporediti kori tenjemarobnjaka. (Napomena: Ako radite u projektnoj grupi ili imate vi e istovremenoitanih projekata, projekat kojeg elite zapakovati ili rasporediti mora biti trenutan

projekt prije nego to pokrenete arobnjaka.)

Page 35: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 35

2) Upotrijebite menad era dodacima (Add-In Manager) za u itavanjearobnjaka za pakovanje i raspore ivanje. U izborniku Visual Basica Add-Ins

odaberite 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 kojeg 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 kojeg 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 kojeg ste stvorilisa Visual Basicom. Uz izvr ne (.exe) datoteke, va a aplikacija mo e zahtijevatidruge datoteke, kao to su dinami ke biblioteke (DLL), ActiveX kontrole (.ocxdatoteke) ili slike (.bmp, .jpg, .ico ... datoteke).

Nezavisno o tipu pakovanja kojeg stvarate ili alatu kojeg upotrebljavate kako biga stvorili, postoje neki koraci koji moraju biti preduzeti.

1) Odredite tip paketa kojeg elite stvoriti. Mo ete stvoriti standardni paketza aplikacije temeljene na Windows-ima koje e biti distribuirane na disketama,CD-ima ili putem mre e. Umjesto toga, mo ete stvoriti Internet paket za aplikacijekoje e biti distribuirane putem Weba. Mo ete tako e odabrati stvaranje samodatoteke zavisnosti.

Page 36: Programski jezik Visual basic

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.

Page 37: Programski jezik Visual basic

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 kojititi izdava a i autora titi u stvari najvi i dru tveni interes. Ako bi proizvo u

knjige, 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, vepredstavlja 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.

Page 38: Programski jezik Visual basic

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 iale“, dolazimo do toga da je veoma te ko pri proizvodnji programa pru iti bilo

kakvu 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 imajuizuzetnu 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.

Page 39: Programski jezik Visual basic

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 ajene„copyright“ 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

Page 40: Programski jezik Visual basic

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.

Page 41: Programski jezik Visual basic

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.1Sastaviti 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.2Sastaviti 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.3Sastaviti 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.4Sastaviti algoritam za izra unavanje vrijednosti y po formuli

y = x1 + x2 ako je x1 < x2

y = x1 - x2 ako je x1 ≥ x2.Rje enje:Rje enje ovog algoritma dato je na slici 1.18.

Page 42: Programski jezik Visual basic

1 OSNOVE PROGRAMIRANJA 42

po etak

x1, x2, x3, x4, x5

y = ((x1+x2)*x3-x4)*x5

kraj

y

po etak

x1, x2

y = x1 + x2

x1< x2

y = x1 - x2

kraj

y

F

T

Slika 1.17 Zadatak 1.3 Slika 1.18 Zadatak 1.4

T

po etak

x

y = x

x < 0

y = - x

kraj

y

F

Slika 1.19 Zadatak 1.5 Slika 1.20 Zadatak 1.6

Zadatak 1.5Sastaviti algoritam za izra unavanje vrijednosti y po formuli y = -1 ako je x < 0 y = 0 ako je x = 0

y = 1 ako je x > 0.Rje enje:Rje enje ovog algoritma dato je na slici 1.19.

Page 43: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 43

Zadatak 1.6Sastaviti algoritam za izra unavanje funkcije y = | x |.Rje enje:Rje enje ovog algoritma dato je na slici 1.20.

Zadatak 1.7Sastaviti algoritam za izra unavanje funkcije y =|| x |-1|.Rje enje analogno prethodnom zadatku.

Zadatak 1.8Sastaviti algoritam za izra unavanje korjena kvadratne jedna ineY = a*X2 + b*X +c u skupu realnih brojeva (R).Rje enje:Rje enje ovog algoritma dato je na slici 1.21.

T

po etak

a, b, c

x1 = (-b-(D)1/2)/2aD < 0

kraj

y

D = b2 - 4ac

'nema realnihkorjena'

x2 = (-b+(D)1/2)/2a

Slika 1.21 Zadatak 1.8Zadatak 1.9Sastaviti algoritam za izra unavanje korjena kvadratne jedna ineY = a*X2 + b*X +c u skupu kompleksnih brojeva ( Z ).Rje enje:Rje enje ovog algoritma dato je na slici 1.22.

Zadatak 1.10Sastaviti algoritam za izra unavanje stepena y = xn gdje je n = 0,1,2,...Rje enje:Rje enje ovog algoritma dato je na slici 1.23.

Page 44: Programski jezik Visual basic

1 OSNOVE PROGRAMIRANJA 44

po etak

a, b, c

D < 0

kraj

R1, I1, R2, I2

D=b2-4ac

R1=(-b-(D)1/2)/2a

R2=(-b+(D)1/2)/2a

I1=I2=0

R1=R2= -b/2a

I1 = -(D)1/2/2a

I2 = -I1

Slika 1.22 Zadatak 1.9

po etak

x, n

T

n = n - 1

n = 0

y

krajy = y * x

y = 1

x1=1/2(x0+x/x0)

po etak

x, ε

T

x0 = x1

x0-x1<ε

y

kraj

x0 = x + 1

y = x1

Slika 1.23 Zadatak 1.10 Slika 1.24 Zadatak 1.11

Page 45: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 45

Zadatak 1.11Sastaviti algoritam za izra unavanje kvadratnog korena y = x po Njutnovojiterativnoj formuli xi+1 = 1/2 * (xi + x / xi), i = 0,1,2, gde je x0 = x+1. Procesra unanja prekinuti kada se dostigne zadata ta nost ε, tako da je xi - xi+1 < ε.Rje enje:Rje enje ovog algoritma dato je na slici 1.24.

Zadatak 1.12

Sastaviti algoritam koji izra unava sumu y = ∑=

n

i 1(-1)i+1xi tj. y = x1 x2 + x3 - ....

Rje enje:Rje enje ovog algoritma dato je na slici 1.25.

Zadatak 1.13Sastaviti algoritam za odre ivanje prestupnosti godine (godina nije prestupna akonije djeljiva sa 4 ili je djeljiva sa 100, a nije sa 400).Rje enje:Rje enje ovog algoritma dato je na slici 1.26.

T

y = 0

po etak

n, xi; i=1,2,...n

i = 0

T

i = i + 1

i = ny

krajy = y α x

α = +

α ← -

α ← +

po etak

G/4

t = 'Nije'

G/400

t = 'Jeste'

kraj

G

G/100

t

Slika 1.25 Zadatak 1.12 Slika 1.26 Zadatak 1.13

Zadatak 1.14Sastaviti algoritam za odre ivanje najve e vrednosti (max M) nekog niza Ai,i=1...N.

Page 46: Programski jezik Visual basic

1 OSNOVE PROGRAMIRANJA 46

Rje enje:Rje enje ovog algoritma dato je na slici 1.27.

Zadatak 1.15Sastaviti algoritam za ispisivanje niza u neopadaju em poretku.Rje enje:Rje enje ovog algoritma dato je na slici 1.28.

Slika 1.27 Zadatak 1.14 Slika 1.28 Zadatak 1.15

Zadatak 1.16Sastaviti algoritam za ispisivanje niza u nerastu em poretku.Rje enje analogno prethodnom zadatku.

Zadatak 1.17Sastaviti algoritam za ispisivanje broja lanova niza djeljivih sa 5.Rje enje:Rje enje ovog algoritma dato je na slici 1.29.

Page 47: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 47

Zadatak 1.18Sastaviti algoritam za izra unavanje faktorijel funkcije ( F = N! ).Rje enje:Rje enje ovog algoritma dato je na slici 1.30.

Slika 1.29 Zadatak 1.17 Slika 1.30 Zadatak 1.18Zadatak 1.19Algoritamski opisati kori enje telefonskog aparata, koriste i sljede e algoritamskekorake:

1 PREKID VEZE2 DA LI JE ZAUZETA LINIJA3 DA LI JE DOBIJEN TEL SIGNAL4 PODIZANJE SLU ALICE5 BIRANJE TEL. BROJA6 RAZGOVOR

Rje enje:Rje enje ovog algoritma dato je na slici 1.31.

Zadatak 1.20Ako je logi ki izraz L datog algoritma prikazanom na slici 1.32 ta an (L=TRUE),koje vrijednosti e na kraju poprimiti izlazi algoritma A i B?Rje enje:

1) Ciklus A= 10, B= 20, Uslov zadovoljen (T), A= 20, B= 122 Na kraju: A = 20, B= 122

Page 48: Programski jezik Visual basic

1 OSNOVE PROGRAMIRANJA 48

Slika 1.31 Zadatak 1.19 Slika 1.32 Zadatak 1.20 i 1.21

Zadatak 1.21Ako je logi ki izraz L datog algoritma prikazanom na slici 1.32 neta an(L=FALSE), koje vrijednosti e na kraju poprimiti izlazi algoritma A i B?Rje enje:

1) Ciklus A= 10, B= 20, Uslov nije zadovoljen (F), B= 10, A= 112 Na kraju: A = 112, B= 10Zadatak 1.22Ako je logi ki izraz L1 datog algoritma prikazanom na slici 1.33 ta an (L1=TRUE)i logi ki izraz L2 datog algoritma nije ta an (L2=FALSE), koje vrijednosti e nakraju poprimiti izlazi algoritma A i B?

Rje enje:1) Ciklus A= 10, B= 20, uslov L1 zadovoljen (T), uslov L2 nije zadovoljen

(F), A= 20, B= 122 Na kraju: A = 20, B= 122

Zadatak 1.23Ako je logi ki izraz L1 datog algoritma prikazanog na slici 1.33 ta an (L1=TRUE)i logi ki izraz L2 datog algoritma je ta an (L2= TRUE), koje vrijednosti e nakraju poprimiti izlazi algoritma A i B?

Rje enje:1) Ciklus A= 10, B= 20, uslov L1 zadovoljen (T), uslov L2 zadovoljen (T),

A= 90, B= 192 Na kraju: A = 90, B= 192

Page 49: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 49

T

F

A=10

B=20

L1

B = A

A = B + 102

A, B

A=B

B =B+102

Po etak

Kraj

L2

B= A - 10

T

FA=B+70

B =A+102

T

F

A=10

B=20

L1

A = B + 202

A, B

A=B

B =B+102

Po etak

Kraj

B= A - 10

T

FA=B+70

B =A+102

L2B= A - 10

Slika 1.33 Zadatak 1.22, 1.23 i 1.24 Slika 1.34 Zadatak 1.25, 1.26 i 1.27

Zadatak 1.24Ako logi ki izraz L1 algoritma prikazanog na slici 1.33 nije ta an (L1= FALSE) ilogi ki izraz L2 datog algoritma nije ta an (L2=FALSE), koje vrijednosti e nakraju poprimiti izlazi algoritma A i B?Rje enje:

1) Ciklus A= 10, B= 20, uslov L1 nije zadovoljen (F), uslov L2 nije vi euop te bitan, B= 10, A= 112, B= 102

Na kraju: A = 112, B= 102

Zadatak 1.25Ako logi ki izraz L1 algoritma prikazanog na slici 1.34 nije ta an (L1= FALSE) ilogi ki izraz L2 datog algoritma je ta an (L2= TRUE), koje vrijednosti e na krajupoprimiti izlazi algoritma A i B?Rje enje:

1) Ciklus A= 10, B= 20, uslov L1 nije zadovoljen (F), uslov L2 zadovoljen(T), A= 20, B= 122

Na kraju: A = 20, B= 122

Zadatak 1.26Ako logi ki izraz L1 algoritma prikazanog na slici 1.34 nije ta an (L1= FALSE) ilogi ki izraz L2 datog algoritma nije ta an (L2= FALSE), koje vrijednosti e nakraju poprimiti izlazi algoritma A i B?

Page 50: Programski jezik Visual basic

1 OSNOVE PROGRAMIRANJA 50

Rje enje:1) Ciklus A= 10, B= 20, uslov L1 nije zadovoljen (F), uslov L2 nije

zadovoljen (F), A= 222, B= 212 Na kraju: A = 222, B= 212

Zadatak 1.27Ako je logi ki izraz L1 algoritma prikazanog na slici 1.33 ta an (L1= TRUE) ilogi ki izraz L2 datog algoritma nije ta an (L2=FALSE), koje vrijednosti e nakraju poprimiti izlazi algoritma A i B?Rje enje:

1) Ciklus A= 10, B= 20, uslov L1 je zadovoljen (F), uslov L2 nije vi euop te bitan, B= 0, A= 70, B= 172

Na kraju: A = 70, B= 172

Zadatak 1.28Ako logi ki izraz L1 algoritma prikazanog na slici 1.34 nije ta an (L1= FALSE) ilogi ki izraz L2 datog algoritma je ta an (L2= TRUE) i logi ki izraz L3 datogalgoritma je ta an (L3= TRUE), koje vrijednosti e na kraju poprimiti izlazialgoritma A i B?Rje enje:

1) Ciklus A= 10, B= 20, uslov L1 nije zadovoljen (F), uslov L2 je zadovoljen(T), uslov L3 je zadovoljen (T), B= 0, A= 70, B= 172

Na kraju: A = 70, B= 172

Zadatak 1.29Ako logi ki izraz L1 algoritma prikazanog na slici 1.34 nije ta an (L1= FALSE) ilogi ki izraz L2 datog algoritma nije ta an (L2= FALSE) i logi ki izraz L3 datogalgoritma je ta an (L3= TRUE), koje vrijednosti e na kraju poprimiti izlazialgoritma A i B?Rje enje:

1) Ciklus A= 10, B= 20, uslov L1 nije zadovoljen (F), uslov L2 nijezadovoljen (F), uslov L3 nije vi e uop te bitan, A= 222, B= 0, A= 102

Na kraju: A = 102, B= 0

Zadatak 1.30Ako logi ki izraz L1 algoritma prikazanog na slici 1.34 je ta an (L1= TRUE) ilogi ki izraz L2 datog algoritma nije ta an (L2= FALSE) i logi ki izraz L3 datogalgoritma je ta an (L3= TRUE), koje vrijednosti e na kraju poprimiti izlazialgoritma A i B?Rje enje:

1) Ciklus A= 10, B= 20, uslov L1 je zadovoljen (T), uslov L2 i L3 nisu vi euop te bitni, B= 40, A= 110, B= 212

Na kraju: A = 110, B= 212

Page 51: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 51

T

F

A=10

B=20

L1

A=B+ 202

A, B

A=B

B =B+102

Po etak

Kraj

B= A -10

T

F

A=B+70

B =A+102

L2B= A + 30

L3

A=B +102

T

F

A=B

B =B+102

B= A - 10

Slika 1.35 Zadatak 1.28, 1.29 i 1.30 Slika 1.36 Zadatak 1.31

Zadatak 1.31Koliko ciklusa e se u algoritmu prikazanom na slici 1.36 izvr iti blok (B = A + B)i koje vrijednosti e na kraju poprimiti izlazi algoritma A i B?Rje enje:

1) Ciklus A= 3, B= 9, Uslov nije zadovoljen (F)2) Ciklus A= 4, B= 13, Uslov nije zadovoljen (F)3) Ciklus A= 5, B= 18, Uslov nije zadovoljen (F)4) Ciklus A= 6, B= 24, Uslov nije zadovoljen (F)5) Ciklus A= 7, B= 31, Uslov nije zadovoljen (F)6) Ciklus A= 8, B= 39, Uslov zadovoljen (T)

Broj ciklusa 6, A = 8 , B= 39

Zadatak 1.32Koliko ciklusa e se u algoritmu prikazanom na slici 1.37 izvr iti blok (B = A + B)i koje vrijednosti e na kraju poprimiti izlazi algoritma A i B?Rje enje:

1) Ciklus A= -1, B= 3, Uslov nije zadovoljen (F)2) Ciklus A= 1, B= 4, Uslov nije zadovoljen (F)3) Ciklus A= 3, B= 7, Uslov nije zadovoljen (F)4) Ciklus A= 5, B= 12, Uslov nije zadovoljen (F)5) Ciklus A= 7, B= 19, Uslov nije zadovoljen (F)6) Ciklus A= 9, B= 28, Uslov zadovoljen (T)

Broj ciklusa 6, A = 9 , B= 28

Page 52: Programski jezik Visual basic

1 OSNOVE PROGRAMIRANJA 52

Slika 1.37 Zadatak 1.32 Slika 1.38 Zadatak 1.33

Zadatak 1.33Koliko ciklusa e se u algoritmu prikazanom na slici 1.38 izvr iti blok (B = A - B) ikoje vrijednosti e na kraju poprimiti izlazi algoritma A i B?Rje enje:

1) Ciklus A= 8, B= 5, Uslov nije zadovoljen (F)2) Ciklus A= 7, B= 2, Uslov nije zadovoljen (F)3) Ciklus A= 6, B= 4, Uslov nije zadovoljen (F)4) Ciklus A= 5, B= 1, Uslov nije zadovoljen (F)5) Ciklus A= 4, B= 3, Uslov nije zadovoljen (F)6) Ciklus A= 3, B= 0, Uslov nije zadovoljen (F)7) Ciklus A= 2, B= 2, Uslov zadovoljen (T)

Broj ciklusa 7, A = 2 , B= 2

Zadatak 1.34Koliko ciklusa e se u algoritmu prikazanom na slici 1.39 izvr iti blok (A = A + 1)i koje vrijednosti e na kraju poprimiti izlazi algoritma A i B?Rje enje:

1)Ciklus A= 3, Uslov1 je zadovoljen (T), B= 3, Uslov2 nije zadovoljen (F)2)Ciklus A= 4, Uslov1 je zadovoljen (T), B= -1, Uslov2 nije zadovoljen (F)3)Ciklus A= 5, Uslov1 nije zadovoljen (F), B= 4, Uslov2 nije zadovoljen (F)4)Ciklus A= 6, Uslov1 nije zadovoljen (F), B= 10, Uslov2 nije zadovoljen (F)5)Ciklus A= 7, Uslov1 nije zadovoljen (F), B= 17, Uslov2 nije zadovoljen (F)6)Ciklus A= 8, Uslov1 nije zadovoljen (F), B= 25, Uslov2 zadovoljen (T)

Broj ciklusa 6, A = 8 , B= 25

Page 53: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 53

Slika 1.39 Zadatak 1.34 Slika 1.40 Zadatak 1.35

Zadatak 1.35Koliko ciklusa e se u algoritmu prikazanom na slici 1.40 izvr iti blok (A = A + 1)i koje vrijednosti e na kraju poprimiti izlazi algoritma A i B?

Rje enje:1)Ciklus A= 3, Uslov1 nije zadovoljen (F), B= 9, Uslov2 nije zadovoljen (F)2)Ciklus A= 4, Uslov1 nije zadovoljen (F), B= 13, Uslov2 nije zadovoljen (F)3)Ciklus A= 5, Uslov1 nije zadovoljen (F), B= 18, Uslov2 nije zadovoljen (F)4)Ciklus A= 6, Uslov1 je zadovoljen (T), B= 12,Uslov2 se vi e ne e ni jednom ispitivati i izlazi se iz petlje za ponavljanje.

Broj ciklusa 4, A = 6 , B= 12

Probajte i vidje ete da vam ne e po i za rukom da pomo u jedne IF THEN ELSEstrukture i jedne WHILE petlje u Visuel Basic-u realizujete zadnji algoritam. Togovori da zadnji algoritam nije struktuiran.

Page 54: Programski jezik Visual basic

1 OSNOVE PROGRAMIRANJA 54

Page 55: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 55

2 UVOD U PROGRAMSKI JEZIK VISUAL BASIC

Visual Basic je ve dugo jedan od najpopularnijih objektno orjentisanihprogramskih jezika. Napravila ga je kompanija Microsoft. Upravo zbog toga velikibroj korisnika Windows operativnog sistema, koristi Visual Basic za pisanjeprograma i pravljenje aplikacija. Pogotovo je olak ana dvosmjerna komunikacija sasvim Microsoft programskim paketima.

Visual Basic je nastao od programskog jezika Basic (Beginner's AllpurposeSymbolic Introduction Code). Kod programskog jezika Basic proces programiranjase prvenstveno svodio na pisanje koda. Svaki objekat koji se pojavljivao na ekranu,kao rezultat rada ovog programa, morao se posebno programirati u kodu.Komandno dugme kao jedan od najjednostavnijih objekata se morao svaki putposebno programirati crtanjem svake linije na dugmetu posebno. To je predstavljaoveliki napor za programere, jer su programi imali veliki broj kodnih linija koji su seponavljale.

Zato su kreatori objektno orjentisanih programskih jezika odlu ili da olak ajuposao programerima. Napravljen je odre en broj objekata, koji su se do tadanajvi e koristili u programiranju i koje su sada programeri samo postavljali naradnu povr inu za pravljenje programa. Na taj na in je proces programiranjazna ajno ubrzan i olak an. Tako e se promjenila i sama filozofija programiranja,jer je sada objekat postao centralno mjesto u programiranju. Kod je postao samoonaj dio programa, koji dodatno opisuje objekte i me usobno ih povezuje.Celokupni program je podjeljen na mno tvo djelova koji se izvr avaju kadakorisnik izvr i neku akciju. Na primer, akcija bi mogla biti klik mi a (click) nakomandno dugme. U tom slu aju komandno dugme je objekt. Dugme prepoznajedoga aj, kada korisnik klikne na njega i za taj doga aj (click) tog objekta(CommandButton) pi emo kod. Ovaj kod e se startovati i izvr iti samo kadakorisnik klikne mi em na komadno dugme. Programiranje vo eno doga ajima je ustvari manji ili ve i broj segmenata programa, koje korisnik aktivira svojimakcijama. Svaki objekat ima svoj set svojstava. Njih pode avamo u Propertiesprozoru koji dobijamo kada selektujemo eljeni objekat. Tako e, svaki objekatprepoznaje neke doga aje. Duplim klikom mi a na bilo koji objekat postavljen naradnu povr inu (Form), otvaramo prozor za pisanje koda (Code Window). U ovomprozoru pi emo program, koji elimo da se izvr i nad postavljenim objektima. Naslici 2.15 prikazan je prozor za pisanje koda, iznad koga se nalaze dvije liste(ComboBox). Lijeva lista daje spisak imena svih objekat, koji postoje na toj radnojpovr ini. U desnoj listi se nude svi mogu i doga aji, koji se mogu programirati nadselektovanim objektom. Prvo se bira eljeni objekat, a zatim i doga aj koji se eliprogramirati nad njim. Izborom odgovaraju eg doga aja, automatski se pojavljujeprocedura doga aja u prostoru za pisanje koda sa imenom doga aja i objekta.

Activex kontrole su jedna od osobina Visual Basic-a, koja je tako e napravilarevoluciju u programiranju. Activex kontrole su omogu ile direktno povezivanje

Page 56: Programski jezik Visual basic

2 UVOD U PROGRAMSKI JEZIK VISUAL BASIC 56

programa napisanog u Visual Basic-u sa drugim programima iz Windowsokru enja, ali i mnogim drugim programima koje nije proizveo Microsoft. Ono toje danas posebno aktuelno, je injenica da se pomo u Activex kontrola programimogu postaviti na internet, sli no kao i pomo u programskog jezika Java.

Visual Basic omogu uje pristup raznim bazama podataka, na vi e razli itihna ina. Na taj na in se mogu napraviti profesionalne aplikacije, pogotovo one kojese zasnivaju na relacionim bazama podataka.

2.1 PREDNOSTI PROGRAMIRANJA U VISUAL BASIC-U

Visual Basic kao objektno orjentisani programski jezik ima vi e prednosti, kojega izdvajaju od ostalih programskih jezika. Osnovne prednosti6 upotrebeprogramskog jezika Visual Basic su:

1) Jednostavnost kori enja je jedna od osobina, koja ga izdvaja od ostalihprogramskih jezika.

2) Lako u enje preko velikog broja ura enih primjera programa, koji senalaze u Help-u ovog programa.

3) Veliki broj gotovih i raznolikih objekata za upravljanje.4) Funkcionalan i raznolik grafi ki interfejs za unos i prikaz podataka.5) Sve to se vidi kao standard u Windows okru enju, mo e se programirati u

Visual Basic-u.6) Podr ava komunikaciju sa svim programima iz Windows okru enja, tako

da se ne gubi vrijeme na programiranje onoga to Windows ve sadr i.7) Programiranje u Visual Basic-u pru a mogu nost, da se isti problem rije i

na vi e razli itih na ina, uz upotrebu razli itih objekata. Pri programiranjudo izra aja dolazi kreativnost programera.

8) Masovno kori enje ovog programa u svijetu, dovelo je do toga da se nainternetu mo e na i veliki broj gotovih programa sa kodom, koji seslobodno mogu preuzeti. Na taj na in programer samo preuzima kodprograma, problema koji je neko prije toga rije io. Na taj na in je VisualBasic, kao programski jezik svakim danom sve bogatiji.

2.2 INSTALIRANJE VISUAL BASIC PROGRAMA

Za instaliranje programskog jezika Visual Basic 6.0 postoje tri instalacionadiska. Pored glavnog instalacionog diska postoje jo dva diska, na kojima se nalazeprate e biblioteke za ovaj program. Ove biblioteke je tako e po eljno da seinstaliraju, jer se na njima nalazi pomo ni dokumenti (Help), u kojima su detalno

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

Page 57: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 57

opisane sve komande, funkcije i procedure koje posjeduje Visual Basic. Za ve inunavedenih komandi su dati i prakti ni primjeri kori enja u kodu programa.Program Visual Basic 6.0 se mo e instalirati na ra unar automatski, kada se ubaciglavni instalacioni disk. Prvo se pojavi ekran prikazan na slici 2.1, na kome semogu saznati osnovni podaci o ovom programu.

Slika 2.1 Instaliranje Visual Basic 6.0 programa

Klikom na dugme Next prelazi se na naredni prozor End User LicenceAgrement, na kome se korisnik upoznaje sa uslovima pod kojima se ovaj programmo e koristiti. Da bi se nastavilo dalje sa instaliranjem programa, potrebno jeizabrati opciju I accept the agreement, a zatim pritisnuti dugme Next. Nakon togase pojavljuje prozor na kome se unosi ime korisnika i ime kompanije. Klikom nadugme Next prelazi se na naredni prozor Microsoft Virtual Machine for Java. Naovom prozoru korisnik mo e ekirati opciju Update Microsoft Virtual Machinefor Java, kojom se ako ve ne postoji, vr i instaliranje virtuelne ma ine za Javaprogramski jezik. Ako je ova opcija ekirana, klikom na dugme Next pojavi e seprozor prikazan na slici 2.2, a zatim klikom na dugme OK dolazi do resetovanjara unara.

Slika 2.2 Potvrda resetovanja ra unara

Page 58: Programski jezik Visual basic

2 UVOD U PROGRAMSKI JEZIK VISUAL BASIC 58

Slika 2.3 Izbor opcija koje se instaliraju

Ako ova opcija nije ekirana ili ako se ra unar resetovao, pojavi e se prozorVisual Studio 6.0 Enteprise Edition. Na ovom prozoru potrebno je izabrati jednuod tri ponu ene opcije: Costum, Product ili Server Applications. Ako se programinstalira na persobnalnom ra unaru potrebno je izabrati opciju Costum. Klikom nadugme Next prelazi se na prozor Choose Common Install Folder. Na ovomprozoru se bira direktorijum na kome e program biti instaliran. Inicijalno sepojavljuje putanja "C:\Program Files\Microsoft Visual Studio\Common". Ovaputanja se mo e promjeniti klikom na dugme Browse. Klikom na dugme Nextprelazi se na prozor Visual Studio 6.0 Enteprise Setup, za po etak insaliranjaprograma na hard disk ra unara. Izborom dugmeta Continue na ovom prozoru,nastavlja se sa postupkom instaliranja programa i pojavljuje se prozor prikazan naslici 2.3. Izborom dugmeta Exit Setup, odustaje se od daljeg postupka instaliranjaprograma.

Na prozoru prikazanom na slici 2.3 biraju se opcije programskog jezika VisualBasic 6.0, koje se ele instalirati. Ako na ra unaru imate dovoljno memorijepo eljno je ekirati sve ponu ene opcije, jer neznate kada vam neka opcija mo ezatrebati prilikom programiranja. Izborom dugmeta Continue na ovom prozoru,prelazi se na prozor Setup Environment Variables. Na ovom prozoru se mo eekirati opcija Register Environment Variables, koja omogu ava pokretanje

Visual C++ pomo i pri programiranju. Klikom na dugme OK pojavljuje se prozorprikazan na slici 2.4 na kome se vidi tok instaliranja glavnog programa.

Page 59: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 59

Slika 2.4 Instaliranje glavnog programa Slika 2.5 Instaliranje biblioteka

Slika 2.6 Restart nakon instaliranja Slika 2.7 Izor instaliranja biblioteka

Kada se zavr i postupak instaliranja svih fajlova glavnog programa, pojavljujese prozor prikazan na slici 2.6. Na ovom prozoru je potrebno pritisnuti dugmeRestart Windows, kako bi se omogu io restart ra unara. Kada se ra unar ponovopokrene pojavljuje se prozor Install MSDN, na kome je potrebno ekirati opcijuInstall MSDN, da bi se omogu ilo snimanje prate ih biblioteka za programski jezikVisual Basic 6.0. Klikom na dugme Next prelazi se na naredni prozor, prikazan naslici 2.8, koji pokazuje da treba ubaciti novi instalacioni disk 1. Kada se obacitra eni disk, pojavljuje se prozor MSDN Library - Visual Studio 6.0 Setup, kojinas obavje tava da po inje proces instaliranja pomo nih biblioteka na diskra unara. Za nastavak instaliranja potrebno je pritisnuti dugme Continue. Nakontoga se pojavljuje prozor Licence Agreement, na kome se korisnik upoznaje sauslovima pod kojima se ove biblioteke mogu koristiti. Da bi se nastavilo dalje sainstaliranjem biblioteka, potrebno je pritisnuti dugme I Agree. Nakon toga sepojavljuje prozor prikazan na slici 2.7, na kome se nude tri nivoa instaliranjabiblioteka: Typical (naj e kori ene), Custom (pojedina an izbor) ili Full (sveraspolo ive). Preporu ujemo da se izabere opcija Full, koja omogu uje kori enjesvih biblioteka koje posjeduje programski jezik Visual Basic 6.0. Nakon izbora

Page 60: Programski jezik Visual basic

2 UVOD U PROGRAMSKI JEZIK VISUAL BASIC 60

jedne od ove tri ponu ene opcije, otpo ine proces instaliranja ovih biblioteka nadisk ra unara, to je prikazano na slici 2.5. Kada je zavr eno instaliranje svihfajlova sa diska 1, pojavi e se poruka u kojoj se od korisnika se tra i da ubaci drugiinstalacioni disk sa bibliotekama. Kada se disk 2 ubaci, automatski se nastavljaproces instaliranja biblioteka. Kada je zavr eno instaliranje svih fajlova sa diska 2,pojavi e se prozor prikazan na slici 2.9, koji obavje tava korisnika da su bibliotekeuspje no instalirane. Time je zavr en postupak instaliranja programskog jezikaVisual Basic.

Slika 2.8 Disk 1 biblioteka Slika 2.9 Biblioteke instalirane

2.3 POKRETANJE VISUAL BASIC PROGRAMA

Aktiviranje programa Visual Basic 6.0 u Windows operativnim sistemima vr ise najlak e kroz Start meni (Start→Programs→ Microsoft Visual Studio 6.0→Microsoft Visual Basic 6.0). Naravno, da ovo nije jedini na in da se pokreneprogram Visual Basic. Kao i za bilo koji drugi program u Windows operativnimsistemima postoji vi e na ina za njihovo pokretanje npr. mo e se napraviti ikona-pre ica (Shortcut) pa preko nje pokretati program.

Pokretanjem Visual Basic 6.0 programa, odmah se uo ava da prozor programapripada grupi standardnih prozora u Windows okru enju, samim tim njegovo radnookru enje ini naslovna linija sa dugmadima za automatsko upravljanje veli inomprozora, linija menija, palete sa alatima, radni prostor, kliza i za vertikalno ihorizontalno listanje sadr aja dokumenta i statusna linija. Nakon pokretanja programa pojavljuje se prozor prikazan na slici 2.10. Nanjemu se mo e izabrati jedna od sljede ih opcija:

- New - za pravljenje potpuno novog projekta. Ponu eno je vi e opcija zapo etak pravljenja programa. Za po etnike je najbolje da izaberu opcijuStandard EXE. Iskusniji programeri mogu da izaberu neko ve ranijepripremljeno radno okru enje. Na taj na in ubrzavaju procesprogramiranja.

- Existing - ako se eli izabrati i otvoriti ranije napravljeni program.- Recent - ako se eli izabrati i otvoriti neki zadnje kori eni program. U listi

se programi sortirani prema datumu zadnje modifikacije. Ovo je naru itopogodno kada se zaboravi mjesto gdje je program snimljen.

Page 61: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 61

Slika 2.10 Po etni ekran nakon pokretanja programa Visual Basic

Izborom novog programa pojavljuje se prozor prikazan na slici 2.11. Tu jeprikazana radna povr ina (Form1) na koju se mogu dodavati objekti za na noviprogram. U slu aju da se eli otvoriti ve postoje i program dok se ve nalazimo urazvojnom okru enju programa, potrebno je oti i na paletu menija na File pa Openi iz ve poznatog okru enja (kao i kod ostalih programa Windows okru enja) izeksplorer menija izabrati program koji elimo da pokrenemo. U naslovnoj liniji uvijek stoji ime programa sa kojim se trenutno radi. Projektprozor (Project Explorer) se pojavljuje sa desne strane ekrana i u njemu seprikazuju: forme, moduli i klase koje postoje u aktivnom programu. Paleta alatki(ToolBox) se obi no nalazi na lijevoj strani ekrana. Prikazuje standardne objekte,koji programeru stoje na raspolaganju. Ova paleta se mo e obagatiti sa dodatnimobjektima, to e biti opisano u 5 poglavlju. Ako se gre kom zatvori ova paleta,

ponovo se postavlja na radni ekran preko ikonice , koja se nalazi u paleti alatki.

Page 62: Programski jezik Visual basic

2 UVOD U PROGRAMSKI JEZIK VISUAL BASIC 62

Slika 2.11 Radna povr ina za pisanje programa

2.4 SIMBOLI U PROGRAMU VISUAL BASIC

Visual Basic, kao i svaki drugi programski jezik, ima svoju gramatiku. Osnovnedvije grane gramatike Visual Basic jezika su sintaksa i semantika. Pod sintaksomse podrazumijeva skup pravila pomo u kojih se formiraju slo eniji jezi ki oblici odprostijih: rije i od simbola, re enice od rije i i vi i (slo eniji) oblici od re enica.Semantika prou ava zna enje onoga to je iskazano u nekoj jezi koj formi,odnosno ona se bavi smisaonim stranama jezi kih konstrukcija. Ako neki jezi kioblik nema svoga smisla i zna enja, onda ga nema potrebe ni pisati.

Simboli Visual Basic jezika pomo u kojih se grade slo eniji jezi ki oblici su:slova, cifre dekadskog brojnog sistema, interpunkcijski znaci, operatori i posebniznaci. U okviru ovog dijela knjige bi e razmotrena specifi na, nestandardnazna enja pojedinih simbola.

Ta ka (.) se upotrebljava za:1) razdvajanje cijelog od decimalnog dijela broja (npr. 55.2345),2) za povezivanje objekata sa njihovim svojstvima (npr. Dugme.Enabled = False) i3) povezivanje imena fajla sa njegovim tipoma (npr. Strana1.frm).

Znak za podvla enje ( _ ). Ako sadr aj komande ne mo e da stane u jedanprogramski red onda se na kraju toga reda upisuje znak za podvla enje "_", pa senastavlja unos sadr aja komande u sljede i programski red. Primjer:

Page 63: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 63

Set baza = DBEngine.Workspace(0).OpenDatabase _(App.Path & "\PodaciGorivo.mdb")

Ovaj simbol se koristi u procedurama doga aja za spajanje imena objekta idoga aja nad njim. Primjer:

Private Sub Command1_Click()Jednostruki navodnik (') (apostrof) u Visual Basic jeziku slu i za navo enje

komentara. Tekst komentara je u kodu obojen zelenom bojom. Primjer:Sub Command4_Click() ' dugme povratak

Komentar mo e da se napi e i sa komandom Rem. Primjer:Rem kraj programa

Dvostruki navodnici (") imaju ulogu definisanja tekstualnog stringa, koji senalazi izme u njih. Primjer:

Text1.Text = Unos tekstaSimboli (!) i (I) povezuju objekte sa kolekcijom, odnosno u listi filtera.Simbol (&) slu i za spajanje vi e stringova u jedan string i za definisanje slovne

tipke za aktiviranje potrebne opcije u meniju. Primjer:Text2.Text = Datum 2000 rezultat je Datum2000Text3.Text = Datum & 2000rezultat je Datum 2000

Ta ka-zarez (;) omogu ava da se dva podatka iska u u razmaku od jednogkaraktera.

Zarez (,) ima ulogu razmaka izme u prikazanih podataka veli ine, koja sedobija pritiskom na tabulator. Koristi se i za razdvajanje komandi. Primjer:

Odgovor1 = MsgBox(poruka, Stil, Naslov)Znak jednakosti (=) koristi se, pored standardnog relacijskog zna enja

pore enja dvaju izraza, u svojstvu operatora dodjele konkretne vrijednosti nekomsvojstvu objekta ili promjenljivoj. Primjer:

If A=B ThenHG = HG + 1Command1.Enabled = TrueMale zagrade () slu e za grupisanje vi e izraza u jednu cjelinu i za

postavljanje argumenata funkcija. Primjer:BETA1 = 2 * Atn(Sqr(1 - b1 * b1) / b1)Odgovor2 = MsgBox(poruka, Stil, Naslov)

Tri ta ke (...), u okviru nekog svojstva, najavljuju pojavu menija sa vi eponu enih opcija.

Matemati ki operator za oduzimanje (-) ima, istovremeno, i ulogu logi kognegatora.Znak plus (+) pored sabiranja slu i i za spajanje stringova. Primjer:

A= 2 + 3 daje broj 5, dokB="2" + "3" daje string "23", aC="Stefan"+" "+"Covic" daje string "Stefan Covic".

Page 64: Programski jezik Visual basic

2 UVOD U PROGRAMSKI JEZIK VISUAL BASIC 64

Simbol (*) posjeduje zna enje operatora za mno enje i znaka za popunuskrivenog teksta u TextBox-u.

Operator (^) slu i za stepenovanje. Primjer:x=a^2 ili x=a*ay=d^5 ili y=d*d*d*d*d

Kose crte (/ i \) koriste se u naredbama za dijeljenje (a/b), odnosno cjelobrojnodijeljenje (a\b). Primjer:

x=5/2 daje rezultat 2.5y=5\2 daje rezultat 2

Relacioni operatori: manje (<), manje ili jednako (=<) , razli ito (<>), ve e(>), ve e ili jednako (>=) imaju funkciju upore ivanja dva izraza i redovno sekoriste u naredbama selekcije i iteracije.

Rije i u Visual Basic-u, kao i u drugim programskim jezicima, predstavljajuskup simbola bez logi kih i relacijskih operatora. One su dvojakog karaktera. Nekesu propisane od strane autora doti nog jezika (tzv. obavezne ili klju ne rije i kojese u kodu programa pojavljuju pisane plavom bojom) i izvedene rije i koje defini eprogramer programa. Propisane rije i su rije i engleskog jezika ili njihoveskra enice i upotrebljavaju se doslovno. Pomo u njih su definisane klju ne rije i upojedinim naredbama i funkcijama. Izvedenim rije ima opisuju se imena pojedinihobjekata, procedura i funkcija, struktura podataka i njihovih atributa, promjenljivih,konstanti, polja u kojima su smje teni podaci itd.

2.5 SKRA ENICE U PROGRAMU VISUAL BASIC

U Visual Basic-u programiranje se vr i postavljanjem gotovih objekata naformu. Objekti se me usobno povezuju preko koda. U kodu se pi u naredbe, kojeomogu avaju da program izvr ava zami ljene funkcije. Da bi se olak alo izna ajno ubrzalo pisanje programa korisno je poznavati skra enice na tastaturi,koje se mogu koristiti u programu. Osnovne skra enice koje se koriste uprogramskom jeziku Visual Basic prikazane su u Tabeli 2.1.

Tabela 2.1 Skra enice u programu Visual BasicSkra enica Opis radnje

Kontrola dokumenataCTRL+N Kreiranje novog projekta. Dobije se potpuno isti efekat, kao

da se u glavnom meniju izabrala opcija File => New. Da sene bi izgubio predhodno aktivan program, pojavi e se dijalogprozor za spa avanje stare verzije programa.

CTRL+SHIFT+N Kreiranje novog fajla.CTRL+O Otvaranje ve postoje eg Visual Basic programa. Dobije se

potpuno isti efekat, kao da se u glavnom meniju izabralaopcija File => Open.

Page 65: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 65

Skra enica Opis radnjeCTRL+SHIFT+O Otvaranje ve postoje eg fajla, istog tipa kao onaj na kome se

trenutno nalazimo.CTRL+S Spa avanje trenutno aktivnog Visual Basic programa. Dobije

se potpuno isti efekat, kao da se u glavnom meniju izabralaopcija File => Save.

CTRL+SHIFT+S Spa avanje svih trenutno aktivnih fajlova, projekata idokumenata Visual Basic programa.

Alt+Print Screen Kopiranje trenutno vidljivog programa u druge programe.Dobije se potpuno isti efekat, kao da se u glavnom menijuizabrala opcija File => Print Scrin.

CTRL+D Prikaz prozora Add Item dialog box da bi dodali neki vepostoje i element u va projekat.

Alt+... Pristup glavnom meniju programa. F-File, E-Edit, V-View, P-Project, F-Format, D-Debug, ... , W-Windows, H-Help.

CTRL+A Selektovanje svih objekata u trenutno aktivnom programu.Alt+F4 Zatvaranje aktivne aplikacije.CTRL+P tampanje svih djelova dokumenta.

Izmjena u kodu nekog objektaEnter Prelazak u novi red za pisanje koda.Delete Brisanje karaktera u kodu, koji se nalazi desno od pokaziva a.CTRL+Delete Brisanje rije i u kodu, koja se nalazi desno od pokaziva a.Backspace Brisanje karaktera u kodu, koji se nalazi lijevo od pokaziva a.CTRL+Backspace Brisanje rije i u kodu, koja se nalazi lijevo od pokaziva a.CTRL+C Kopiranje objekta ili koda.CTRL+X Isijecanje objekta ili koda.CTRL+V Past objekta ili koda (postavljanje iskopiranog dijela).CTRL+Z Undo (korak unazad) zadnje transakcije.CTRL+SHIFT+Z Redo (korak unaprijed) zadnje transakcije.CTRL+Up Pomjeranje trenutne transakcije navi e.CTRL+Down Pomjeranje trenutne transakcije nadole.CTRL+F Prikaz prozora za pretragu teksta u kodu.CTRL+H Prikaz prozora za pretragu i zamjenu teksta u kodu.CTRL+U Obilje eni tekst pretvara u mala slova.CTRL+SHIFT+U Obilje eni tekst pretvara u velika slova.

Navigacija kroz programEnd Skok na kraj reda koda u kome se trenutno nalazi pokaziva .CTRL +End Skok na prvo slovo zadnjeg reda koda.Home Skok na po etak reda koda u kome se nalazi pokaziva .CTRL +Home Skok na prvo slovo prvog reda koda.Shift+End Selekcija teksta u kodu od trenutnog polo aja pokaziva a do

Page 66: Programski jezik Visual basic

2 UVOD U PROGRAMSKI JEZIK VISUAL BASIC 66

Skra enica Opis radnjekraja kodne linije.

CTRL + Shift +End

Selekcija teksta u kodu od trenutnog polo aja pokaziva a dokraja koda.

Shift+Home Selekcija teksta u kodu od po etka kodne linije do trenutnogpolo aja pokaziva a.

CTRL+Shift+Home

Selekcija teksta u kodu od po etka stranice do trenutnogpolo aja pokaziva a.

SHIFT+Strelica Selekcija teksta u kodu do po etka rije i u lijevu stranu.SHIFT+Strelica Selekcija teksta u kodu do kraja rije i u desnu stranu.Page Down/Up Kretanje kroz radnu povr inu programa za veli inu jednog

ekrana dole/gore.Shift+strelica Kretanje kroz kod programa lijevo/gore/dole/desno.

CTRL+PageDown

Kretanje kroz radnu povr inu programa za veli inu jednogekrana lijevo.

CTRL+Page Up Kretanje kroz radnu povr inu programa za veli inu jednogekrana desno.

CTRL +F Otvaranje prozora Find za pronala enje eljenog objekta.Tab Pomjeranje teksta koda za par karaktera u desnu stranu. Na

formi se koristi za prelazak sa jednog objekta na drugi.Shift +Tab Pomjeranje teksta koda za par karaktera u lijevu stranu. Na

formi se koristi za prelazak sa jednog objekta na drugi.Debaging programa

F5 Pokretanje programa. Potpuno isti efekat se dobije ako se uglavnom meniju izabrala opcija Run => Start.

Shift + F5 Zaustavljanje izvr enja programa. Potpuno isti efekat sedobije ako se u glavnom meniju izabrala opcija Run => End.

CTRL +F5 Pokretanje programa ali bez pronalaska gre aka.F11 Izvr enje programa korak po korak, od jednog do drugog

objekta. Dobije se potpuno isti efekat, kao da se u glavnommeniju izabrala opcija Debug => Step InTo.

F10 Izvr enje programa korak po korak, od jednog do drugogobjekta. Dobije se potpuno isti efekat, kao da se u glavnommeniju izabrala opcija Debug => Step Over.

Shift +F11 Izvr enje programa korak po korak, od jednog do drugogobjekta. Dobije se potpuno isti efekat, kao da se u glavnommeniju izabrala opcija Debug => Step Out.

CTRL+BREAK Zaustavljanje izvr enja programa.F1 Kada je objekat u programu selektovan, a zatim se pritisne

tipka F1 otvori e se prozor sa tekstom pomo i za taj objekat.

Page 67: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 67

Skra enica Opis radnjeF9 Dodavanje i uklanjanje kontrolne ta ke za teku u liniju koda.CTRL+SHIFT+F9 Uklanjanje svih kontrolnih ta aka u programu.CTRL+F9 Onemogu avanje rada kontrolnoj ta ci.

2.6 PRAVLJENJE PRVOG PROGRAMA

U ovom poglavlju opisani su osnovni koraci za kreiranje programa, kroz izradujednostavnog primjera. Programski jezik Visual Basic se najlak e u i krozrje avanje prakti nih problema. Kroz ovaj primjer po etnici u radu sa ovimprogramskim jezikom mogu da uo e veliku jednostavnost i lako u pravljenjaprograma. Zadatak opisanog primjera je sabiranje, oduzimanje, mno enje idijeljenje dva realna broja, koji se unose preko tastature. Potrebno je postaviti ikomandno dugme pomo u koga se program zavr ava.

Osnovni koraci za kreiranje programa u programskom jeziku Visual Basic su:1) Izbor i postavljanje na radnu povr inu potrebnih objekata za rje avanje

postavljenog zadatka.2) Definisanje osobina svakog postavljenog objekta.3) Me usobno povezivanje objekata.4) Testiranje programa.5) Pravljenje izvr ne verzije programa (Make Digitron1 .exe).

2.6.1 Izbor potrebnih objekata za rje avanje postavljenog zadatka

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. Kada je izvr ena postavka zadatka, mo e se pristupiti pravljenjualgoritma. Zatim je potrebno izvr iti izbor objekata, koji su nam potrebni zarje avanje postavljenog zadatka. Za pisanje programa u programskom jeziku VisualBasic, sa kojim elimo da rije imo postavljeni problem, potrebni su nam sljede iobjekti:

- 2 objekata za unos brojeva (Text Box),- 4 objekta za prikaz izra unate vrijednosti (Text Box),- 6 objekata koji opisuju objekte za unos i prikaz vrijednosti (Label),- 5 komandnih dugmadi za po etak i kraj programa (CommandButton).

Svi ovi objekti se biraju iz palete ToolBox i postavljaju na radnu povr inu(Form1) za pravljenje programa, a prikazani su na slici 2.12.

Page 68: Programski jezik Visual basic

2 UVOD U PROGRAMSKI JEZIK VISUAL BASIC 68

Slika 2.12 Postavljanje potrebnih objekata na radnu povr inu

Slika 2.13 Osobine objekta Slika 2.14 Kod programa

Page 69: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 69

2.6.2 Definisanje osobina objekata

Kada se objekti postave na radnu povr inu za pravljenje programa potrebno jeizvr iti pode avanje osobina svakog objekta. Na taj na in se objekti prilago avajunjihovoj namjeni. Pode avanje osobina objekata vr i se u prozoru Propertes. Doosobina svakog objekta se dolazi klikom mi a na objekat. Pojavljuje se prozorprikazan na slici 2.13. Svaki objekat u programskom jeziku Visual Basic imarazli ite osobine, pa samim tim i razli ite palete za pode avanje. Preko ovih paletase naj e pode avaju neke od sljede ih osobina:

- ime objekta,- natpis na objektu,- font, boja i veli ina slova,- boje pojedinih dijelova objekta,- dimenzije objekta,- vidljivost ili nevidljivost objekta,- dostupnost objekta.

2.6.3 Me usobno povezivanje objekata

Kada su objekti postavljeni na radnu povr inu i kada su im postavljene eljeneosobine, potrebno je izvr iti povezivanje svih objekata. Objekti se me usobnopovezuju pisanjem koda programa. Do prozora za pisanje koda programa se dolazitako to se klikne mi em na bilo koji objekat koji je postavljen na formu, ili desniklik mi a bilo gdje na radnoj formi i izbor opcije View Code. Izgled prozora zapisanje koda programa, koji omogu uje izvr avanje osnovnih matemati kihoperacija, prikazan je na slici 2.14. Na slici 2.15 prikazan je isti prozor za pisanjekoda, iznad koga su sada posebno istaknute dvije liste (ComboBox). Lijeva listadaje spisak imena svih objekat, koji postoje na toj radnoj povr ini. U desnoj listi senude svi mogu i doga aji, koji se mogu programirati nad predhodno selektovanimobjektom u lijevoj listi. Pri pisanju koda prvo se bira eljeni objekat, a zatim idoga aj koji se eli programirati nad njim. Izborom odgovaraju eg doga ajaklikom mi a u desnoj listi, automatski se pojavljuje procedura doga aja u prostoruza pisanje koda sa imenom doga aja i objekta. Procedura doga aja klik mi a nakomandno dugme (Private Sub Sabiranje_Click()) se automatski pojavljuje u kodui kada se na radnoj povr ini uradi klik mi a na eljeno komandno dugme. Sub jeklju na rije , koja zna i da se radi o proceduri. Dok rije Private ozna ava da seradi o lokalnoj proceduri, koja vrijedi samo na trenutno aktivnoj formi.

Za operacije sabiranja, oduzimanja i mno enja kod programa je gotovoidenti an. Prvo se vr i deklarisanje tri promjenjive realnog tipa. Zatim slijede dvijekodne linije u kojima se iz objekata TextBox preuzimaju unesene vrijednosti upromjenjive. Zatim slijedi kodna linija u kojoj se izvr ava eljena matemati ka

Page 70: Programski jezik Visual basic

2 UVOD U PROGRAMSKI JEZIK VISUAL BASIC 70

operacija. Zadnja kodna linija u svakoj proceduri je dodjela izra unate vrijednosti uTextBox, koji slu i za prikaz rezultata.

Operaciju dijeljenja je malo slo enije isprogramirati u odnosu na predhodne trioperacije. Dijeljenje sa nulom nije dozvoljena operacija u programskim jezicima.Zato se prije operacije dijeljenja mora ispitati da li je broj sa kojim se vr i dijeljenjerazli it od nule (y <> 0). Ovo ispitivanje se vr i preko If Then strukture grananja.Ako je uslov ispunjen vr i se matemati ka operacija dijeljenja. Ako uslov nijeispunjen mora se korisnik programa obavijestiti da se prilikom izvr enja programapojavila neka gre ka.

Slika 2.15 Lista postoje ih objekata i doga aja nad njima

2.6.4 Testiranje programa i pravljenje izvr ne verzije programa

Kada se program napi e, potrebno je prvo uraditi njegovo testiranje. Prilikomtestiranja programa otkrivaju se gre ke u pisanju programa. Gre ke mogu da budusintakti ke i logi ke. Sintakti ke gre ke nastaju prilikom kucanja naredbi u koduprograma. Naj e gre ke su izostavljanje nekog slova ili da se neko slovo otkucadva puta. Ove gre ke se puno lak e otkrivaju od logi kih gre aka. Logi ke gre kenastaju zbog pogre nog rasporeda objekata u programu, tako da program ne mo eda se zavr i do kraja ili se na kraju dobije rezultat, koji nije dobar. Jedan od na inaotklanjanja logi kih gre aka je da se u programu postave kontrolne ta ke, kao naslici 2.16. Kontrolne ta ke se postavljaju klikom mi a lijevo od linije koja sa lijevestrane ograni ava prostor za kucanje koda programa. Kontrolne take se ozna avajukao crveni krugovi, a kontrolne kodne linije bi e obojene crvenom bojom.

Page 71: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 71

Ponovnim klikom mi a na kontrolnu ta ku, ona se uklanja. Zatim da se programizvr ava postepeno od jedne do druge kontrolne ta ke. Pri tome se provjeravajuvrijednosti promjenljivih dolaskom mi a na pojedine promjenjive. U primjeru saslike 2.16 to je promjenjiva Y koja ima vrijednost 5,25 (y=5,25). Na ovaj na in se inajlak e dolazi do otkrivanja gre aka, a zatim i ispravljanja gre aka u programu.

Slika 2.16 Kontrolne ta ke u kodu programa

Kada se program u potpunosti istestira, potrebno je napraviti izvr nu verzijuprograma preko opcije Make Digitron1 .exe u glavnom meniju File. Na ovaj na inse od razvojne verzije programa, koja ima ekstenziju ".vbp", pravi izvr na verzijaprograma koja ima ekstenziju ".exe". Korisnik bi trebao da radi samo sa izvr nimverzijama programa. Ako korisnik radi sa razvojnom verzijom programa, tada vrlolako mo e da pokvari program pomjeranjem ili brisanjem samo jednog objekata.Sa druge strane pisac programa titi svoj autorski rad isporu ivanjem korisnikusamo izvr ne verzije programa. Na slici 2.17 prikazan je izgled izvr ne verzijeovog programa.

Slika 2.17 Izgled izvr ne verzije programa

Page 72: Programski jezik Visual basic

2 UVOD U PROGRAMSKI JEZIK VISUAL BASIC 72

Page 73: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 73

3 TIPOVI PODATAKA

Sve komande u ra unaru se izvr avaju u ma inskom jeziku. Ma inski jezik radisamo sa podacima predstavljenim u obliku nizova binarnog alfabeta, odnosno sanulama i jedinicama. Me utim, za obi nog ovjeka binarni zapis je te ko razumljivi te ak za izvo enje ak i osnovnih matemati kih operacija. Ljudi su nau eni darade sa slovima i decimalnim brojevima, sa kojima ve ina lako izvode raznematemati ke operacije. Zato su i nastali vi i programski jezici gdje se naredbe zakomunikaciju sa ra unarem pi u preko slova i brojeva.

Skoro svaki program sadr i podatke, a podaci se obi no smje taju upromjenjive. Tako promjenjivu mo emo shvatiti kao kontejner za vrijednosti, kojemogu da se mijenaju tokom izvr avanja programa. Uvijek treba da se trudite dapromjenjivim u programu date smislena imena, to e program u initi itljivijim irazumljivijim. To je posebno va no kod velikih i kompleksnih programa.

Pravila za davanje imena promjenjivim u Visual Basic-u su:- Ime promjenjive mora initi jedna rije .- Ime promjenjive mora po eti slovom (A-Z, velika i/ili mala). Iza prvogslova mo e da slijedi niz slova (A-Z, velika i/ili mala), cifre (0-9) i znak“donja povlaka” (_).- Specijalna slova kao to su ? - + * / \ ! @ # $ % ^ ( ) [ ] { } , ; : . ne smiju sekoristiti u imenu promjenjive.- Ime promjenjive ne smije da bude neka od slu benih rije i Visual Basic-a,kao to su re i Then, For, Public, itd.

Sljede a konvencija nije obavezuju a, ve predstavlja preporuku kako trebadavati imena promjenjivim:

- Ime promjenjive treba da bude sa zna enjem koje opisuje promjenjivu, anajbolje je da bude neka imenica.- Kod imenovanja uobi ajeno je ozna avanje gde je prvo slovo u imenuveliko a sva ostala mala.- Ime promjenjive po eljno je da ima vi e od jednog slova.

Da bi se olak alo programiranje i kontrolisala upotreba memorije ra unarauvedeni su tipovi podataka. Tip podataka je skup vrijednosti koje imaju izvjesnezajedni ke karakteristike prilikom izvr avanja programa. Najzna ajnija od ovihkarakteristika je skup operacija, koje su definisane nad vrijednostima tog tipa. Zasvaki tip podataka su definisane odre ene operacije, ali i gotove funkcije u svakomprogramskom jeziku. Kapacitet RAM memorije ra unara je uvijek bio jedan odglavnih ograni avaju ih faktora za brzinu rada ra unara. Razli iti tipovi podatakazauzimaju i razli it kapacitet memorije, pa zato pravilan izbor tipova podataka uprogramu mo e zna ajno da ubrza ili uspori rad ra unara. Ovo posebno dolazi doizra aja kod pisanja programa, koji imaju veliki broj promjenljivih.

Page 74: Programski jezik Visual basic

3 TIPOVI PODATAKA 74

Osnovni tipovi i strukture podataka se mogu se podijeliti na:- stati ki skalarni tipovi (elementarni podaci koji su skalari),- stati ki struktuirani tipovi,- dinami ki tipovi sa promjenljivom veli inom,- dinami ki tipovi sa promjenljivom strukturom.

Pod stati kim tipovima7 (ili tipovima sa stati kom strukturom)podrazumijevamo tipove podataka kod kojih je unaprijed fiksno definisanaunutra nja struktura svakog podatka, a veli ina (koliko memorije zauzima) fiksnose defini e prije (ili u vrijeme) izvr enja programa, koji koristi podatke stati kogtipa. Stati ki tipovi podataka obuhvataju skalarne i struktuirane podatke.

Pod skalarnim tipovima podrazumijevamo najprostije tipove podataka ije suvrijednosti skalari, odnosno takve veli ine koje se tretiraju kao elementarne cjelinei za koje nema potrebe da se dalje razla u na prostije komponente. Osnovniskalarni tipovi podataka koji postoje u Visual Basic-u dati su u tabeli 3.1.

Tabela 3.1 Tipovi podatakaRed.br.

Nazivtipa

Skra eninaziv

Vrsta podatka Vrijednosti

1. Boolean Logi ka vrijednost True ili False (1 bit)2. Integer % Cijeli brojevi -32768 do 32767 sa 16 bita3. Long & Cijeli brojevi -2147483648 do 2147483647 sa 32 bita4. Single ! Realni brojevi ±3.40282347E±38 sa 32-bita5. Double # Realni brojevi ±1.7976931348623157E308 sa 64 bita6. Decimal Realni brojevi +/-7.9228162514264337593543950335

sa112 bita7. String $ Karakteri 1 do 65400 znakova8. Currency @ Realni brojevi ±922 337 203 685 477,5808 sa 64 bita9. Date Datum i vrijeme Realni broj sa 64 bita10. Variant Svi tipovi Proizvoljna

Pod struktuiranim tipovima podataka podrazumijevamo sve slo ene tipovepodataka, koji se realizuju povezivanjem nekih elementarnih podataka u preciznodefinisanu strukturu. U ulozi elementarnih podataka obi no se pojavljuju skalari.Primjer struktuiranog tipa podataka je zapis (eng. Record). Na primjer zapisstudent mo e da se sastoji od polja: broj indeksa (tip Integer), ime i prezime (tipString), datum ro enja (tip Date), godina studija (tip Integer) i smjer (tipString). Skalarni tipovi podataka mogu biti linearno ure eni ili linearno neure eni.Linearno ure eni tipovi podataka su tipovi kod kojih se vrijednosti osnovnog skupapreslikavaju na jedan interval iz niza cijelih brojeva. Tada se za svaki podatak znaredni broj podatka. Stoga svaki podatak izuzev po etnog ima svog predhodnika unizu, odnosno svaki podatak ima svog slijedbenika izuzev krajnjeg.

7 Dr Jozo J. Dujmovi , Programski jezici i metode programiranja, Akademska misao,Beograd, 2003, str 2.3.

Page 75: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 75

Pod dinami kim tipovima podataka podrazumijevamo tipove podataka, kodkojih se veli ina i/ili struktura podataka slobodno mijenja u toku obrade. Koddinami kih tipova sa promjenljivom veli inom podrazumijevamo da je strukturapodataka fiksna, ali se njihova veli ina dinami ki mijenja tokom obrade. Saglasnotome se dinami ki mijenjaju i memorijski zahtjevi. Primjer dinami kog tipapodataka je niz (eng. Array), koji mo e da ima promjenljiv broj elemenata, ali svinjegovi elementi moraju biti istog tipa.

Kod dinami kih tipova sa promjenljivom strukturom unaprijed je fiksnodefinisan jedino princip po kome se formira struktura podataka, dok se samakonkretna struktura i koli ina podataka u memoriji slobodno dinami ki mijenjaju.

Sve promjenljive koje e se koristiti u programu, prije njihove upotrebe morajuse eksplicitno definisati i specificirati tip, osim za univerzalni tip podataka variant.Definisanje tipa promjenjive ima sljede u sintaksu

Public [Dim] ImePromjenjive As TipPodatka iliPublic [Dim] ImePromjenjive (Indeks) Skra eni naziv

Obavezna rije Public upotrebljava se kada se promjenjiva defini e u okvirustandardnog modula i dostupna je svim procedurama u programu. Klju na rijeDim pi e se onda kada se promjenjiva primjenjuje samo u procedurama u kojima jei definisana.

Dim A1 As Integer ili Dim A1%Public A2 As Double ili Public A2#

3.1 LOGI KE PROMJENJIVE (BOOLEAN)

Logi ke promjenjive (eng. Boolean) predstavljaju najjednostavnije promjenjive.One zauzimaju i najmanje memorijskog prostora prilikom pokretanja programa.Standarni identifikatori true i false ozna avaju dvije mogu e logi ke vrijednosti:istina (1) i la (0). Odnosno u elektrotehnici to su dva stanja uklju eno (On) iliisklju eno (Off). Primjenom relacionih operatora =, >, <, >=, <=, <> dobijaju seveli ine logi kog tipa. Osnovne logi ke operacije nad logi kim tipom podataka su:

1) NOT - negacija2) AND - konjukcija (i)3) OR - disjunkcija (ili)

Negacijom se dobija suprotna logi ka vrijednost i za nju vrijedinot(false) = truenot(true) = false.

Konjukcijom dva logi ka izraza se dobije ta na vrijednos, samo ako obadva (ilisvi izrazi ako ih ima vi e) izraza za rezultat imaju ta nu vrijednost i za nju vrijedi

false And false = falsefalse And true = falsetrue And false = falsetrue And true = true

Page 76: Programski jezik Visual basic

3 TIPOVI PODATAKA 76

Disjunkcijom dva logi ka izraza se dobije ta na vrijednos, ako bilo koji od dva(ili samo jedan izrazi ako ih ima vi e) izraza za rezultat imaju ta nu vrijednost

false Or false = falsefalse Or true = truetrue Or false = truetrue Or true = true

Izrazi u kojima se primjenjuju logi ke promjenljive nazivaju se logi ki izrazi.Primjer nekih ispravno napisanih logi kih izraza u objektu grananja If/Then/Else

(A=B And A>5) Or B<1000(A>B Or A>5) And B<1000(A=B Or A>5) And (A<100 Or B<1000).

Kada se upotrebljavaju logi ki operatori u slo enijim izrazima, evo emeprioriteta me u njima:

- NOT ima najve i prioritet me u operatorima.- AND ima srednji nivo prioriteta me u operatorima.- OR ima najni i prioritet me u operatorima.

Slijedi pregled prioriteta svih do sada spomenutih operatora:1) NOT ima najve i prioritet me u operatorima.2) /, *, div, mod, AND3) + , -, OR4) =, <, >, <=», >=, <>, ima najni i prioritet me u operatorima.

3.2 CIJELI BROJEVI (INTEGER)

Cjelobrojni tip podataka (eng. Integer) predstavlja najjednostavniji brojni tippodataka. On predstavlja podskup skupa cijelih brojeva. Definicija sadr i broj kojigovori sa koliko bita se predstavlja taj decimalni broj u binarnom obliku, toautomatski odre uje minimalni (po etni) i maksimalni (krajnji) broj, koji ovaj tippodatka mo e da uzme. U programskom jeziku Visual Basic postoje sljede edefinicije cjelobrojnog tipa podataka:

1) Integer je 16-bitno predstavljanje, a ovaj tip podataka sadr i pozitivne,ali i negativne cjelobrojne brojeve u rasponu (-32768 do 32767).

2) Long (long integer) je 32-bitno predstavljanje, a ovaj tip podataka sadr ipozitivne, ali i negativne cjelobrojne brojeve u rasponu (-2147483648 do2147483647).

Na primjer, cjelobrojne vrijednosti su: 1202, -2801, +802. Znak + je ispredbrojne vrijednosti proizvoljan. Ako ne postoji nikakav predznak pretpostavlja se daje konstanta pozitivna. Kada se pi e program za svaki objekat i promjenljivu, a naosnovu maksimalno o ekivanog broja koji se mo e pojaviti, treba izabratiodgovaraju i tip cijelog broja. Tip se bira na osovu predstavljenih raspona brojeva,kako se memorija ne bi nepotrebno tro ila i time usporavalo izvr enje programa.

Page 77: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 77

Kao i na svakom drugom standardnom tipu, tako je i na tipu Integer definisanta no odre eni skup operacija. To su u ovom slu aju uobi ajene cjelobrojnearitmetri ke operacije: sabiranje (+), oduzimanje (-), mno enje (*), cjelobrojnodijeljenje (DIV) i ostatak cjelobrojnog dijeljenja (MOD). Primjer:

7 DIV 3 = 2 7 MOD 3 = 1

U programskom jeziku Visual Basic postoji dosta gotovih funkcija koje rade saovim tipom podataka. Jednostavni izrazi dodjele vrijednosti se pi u:

X=55 (dodjela brojne vrijednosti)Y=X+3 (sabiranje vrijednosti promjenjive i broja)Z=X+Y (sabiranje vrijednosti dvije promjenjive)X=X+1 (uve anje trenutne vrijednosti promjenjive za brojnu vrijednost)Upotrebljavaju i jednostavne izraze mogu se ra unati i slo eniji izrazi, ali u vi e

koraka s vi e naredbi. Na primjer, ako elimo sabrati vrijednosti X, Y, Z te rezultatpridru iti cjelobrojnoj promenljivoj SUM, mo emo napisati:

SUM=X+YSUM=SUM+Z

no, logi nije je da se to napi e u obliku:SUM=X+Y+Z

i tako dobije isti rezultat koriste i samo jednu naredbu umjesto dvije. Redosljedpromenljivih u izrazu ne uti e na rezultat. Ako imamo izraz u obliku:

R=X+Y*Zmoramo biti puno pa ljiviji! Pretpostavimo da su promenljivama X, Y, Z

pridru eni podaci 2, 3, 5. Rezultat mo e biti razli it. Ako bi se prvo uradilosabiranje rezultat bi bio 25, a ako se prvo uradi mno enje rezultat bi bio 30. Zna ipotrebno je ista i pravila o prioritetu operatora. Prioritet aritmeti kih operatora uVisual Basic-u je da se prvo radie operacije: *, /, div, mod, a tek onda + , -.Evo nekoliko primjera za vje bu:

a) 7*7-4*3=?b) 9 * 5 + 7 div 3 =?c) 1.5*1.1+4.5/9.0-0.1 =?d) 3.6/1.2*3.0 = ?

Ukoliko je u izrazu nekoliko operatora iste grupe prioriteta, a elimo da se ipakizvr i mno enje prije dijeljenja, upotrebljavamo zagrade. Primer:

R=36/(12 * 3)R=3 * (8 + 56) * 2

O ovim izrazima se daje prednost pri izra unavanju operatorima u zagradama.Dozvoljena je upotreba vi e zagrada, kao na primer:

R=4 * (5 + 4 * (6 - 2))+ ((X+Y)/Z). Pri upotrebi vi e zagrada treba voditi ra una da se svaka otvorena zagrada morazatvoriti, da bi napisani izraz bio prihva en u programu.

Page 78: Programski jezik Visual basic

3 TIPOVI PODATAKA 78

3.3 REALNI BROJEVI

Realni tip podataka (eng. Real) predstavlja podskup skupa realnih brojeva. Kojije to ta no podskup, zavisi od konkretne definicije ovog tipa u programskom jezikuVisual Basic. Definicija sadr i broj koji govori sa koliko bita se predstavlja tajdecimalni broj u binarnom obliku, to automatski odre uje minimalni (po etni) imaksimalni (krajnji) broj koji ovaj tip podatka mo e da uzme. Za ovaj tip podatakaje bitno da se uvijek navede broj zna ajnih cifri. Zna ajna cifra predstavlja broj,koji pokazuje koliko e realni broj imati prikazanih cifri iza decimalne ta ke. Ovoje potrebno uraditi kako nam program ne bi automatski dodijelio 4, 8 ili 16zna ajnih cifri iza decimalne ta ke realnog broja. U programskom jeziku VisualBasic postoje sljede e definicije realnog tipa podataka:

1) Single (single-precision floating-point) je 32-bitno predstavljanje, a ovajtip podataka sadr i realne brojeve u rasponu (±3.40282347E±38), sapribli no 8 zna ajnih decimalnih mjesta).

2) Double (double-precision floating-point) je 64-bitno predstavljanje, aovaj tip podataka sadr i realne brojeve u rasponu(±1.7976931348623157E308), sa pribli no 16 zna ajnih decimalnihmjesta).

3) Decimal je 112-bitno predstavljanje, a ovaj tip podataka sadr i cijelebrojeve u rasponu (+/-79 228 162 514 264 337 593 543 950 335), realnebrojeve u rasponu (+/-7.9228162514264337593543950335), sa 28zna ajnih decimalnih mjesta). Pri tome je najmanja vrijednostpozitivnog/negativnog broja (+/-0.0000000000000000000000000001).

Na primjer, realne vrijednosti su: 8.5, -4.73, +3.777, -7.257. Obratite posebnopa nju da se kod realnih brojeva cjelobrojna crijednost, od decimalne vrijednostiodvaja sa ta kom ("."), a ne sa zapetom (","). Realna vrijednost ne smije po injatiili zavr avati decimalnom ta kom, na primer: "459." i ".357". Umjesto toga trebada se napi e "459.0" i "0.357". Za ovaj tip podataka definisane su osnovnearitmetri ke operacije: sabiranje (+), oduzimanje (-), mno enje (*) i dijeljenje (/). Uprogramskom jeziku Visual Basic postoji dosta funkcija, koje rade sa ovim tipompodataka. Neke od funkcija koje se koriste za konverziju realnog u cijeli broj su:

1) Round(expression[, numdecimalplaces]) - zaokru ivanje realnog broja iliizraza (expression) na bli u cjelobrojnu vrijednost, ako nije navedenopcioni parametar (numdecimalplaces). Ako je opcioni parametar naveden,onda se ulazni realni broj zaokru uje na realan broj sa brojem decimalnihmjesta navedenim u ovom parametru.

2) Int(number) - uzimanje samo cjelobrojne vrijednosti realnog broja, priemu se zaokru ivanje radi na manju vrijednost.

3) Fix(number) - uzimanje samo cjelobrojne vrijednosti realnog broja, priemu se zaokru ivanje radi na manju vrijednost, ali po apsolutnoj

vrijednosti za negativne brojeve.

Page 79: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 79

Primjer:Round([23.0, 23.1, 23.9, 23.5, (-23.5), 24.5]), daje [23, 23, 24, 24, -24, 24].Round(29.1234,2) daje 29.12; Round(29.1256,2) daje 29.13.Round(-29.1234,2) daje -29.12; Round(-29.1256,2) daje -29.13.Int([23.0, 23.1, 23.9, 23.5, (-23.5), (-24.9)]), daje [23, 23, 23, 23, -24, -25].Fix([23.0, 23.1, 23.9, 23.5, (-23.5), (-24.9)]), daje [23, 23, 23, 23, -23, -24].

3.4 TEKST (STRING)

Znakovni tip podataka (eng. String) predstavlja skup: malih i velikih slovaengleskog alfabeta, cifri od 0 do 9, specijalnih karaktera i kontrolnih znakova. UVisual Basicu promjenjive ovog tipa podatka mogu imati od 1 do 65400 znakova.Ovaj tip podataka je zna ajan, jer kada korisnik komunicira sa ra unarom prekoulaznih i izlaznih ure aja, vrlo je bitno da se podaci pojavljuju u formi koja jeitljiva za ovjeka. Da bi se tekst razlikovao od naziva promjenljivih, ulaza ili

izlaza iz objekata potrebno je da stoji izme u apostrofa ("tekst koji se navodi").ASCII kod (Amjerican Standard Code for Information Interchange8) je jedan

od najzna anijih na ina predstavljanja znakovnog tipa podataka. ASCII kod jepoznat u 7-bitnoj verziji sa 128 znakova i 8-bitnoj verziji sa 256 znakova. ASCIIkod sa 128 znakova prikazan je u tabeli 3.2.

U programskom jeziku Visual Basic postoji veliki broj gotovih funkcija kojerade sa ovim tipom podataka:

1) LCase (UlazniString) - vr i konverziju svih velikih u mala slova. [LCase("Mira%+#123"), daje "mira%+#123"]2) UCase(UlazniString) - vr i konverziju svih malih u velika slova.

[UCase("Mira%+#123"), daje "MIRA%+#123"]3) Left(UlazniString, BrojSlova) - od zadatog teksta izdvaja pod tekst

odre ene du ine (BrojSlova) sa lijeve strane od prvog znaka. [Left("Teodora je mala",6), daje "Teodor"]4) Right(UlazniString, BrojSlova) - od zadatog teksta izdvaja pod tekst

odre ene du ine (BrojSlova) sa lijeve strane od krajnjeg znaka. [Right("Teodora je mala",4), daje "mala"]5) Mid(UIazniString,Pozicija[,Du ina]) - od zadatog teksta izdvaja pod

tekst zadanog broja karaktera (Du ina), od startnog znaka (Pozicija). [Mid("Teodora je mala",0,6), daje "Teodor"] [Mid("Teodora je mala",9,2), daje "je"]6) Len(str) - daje broj znakova u zadatom tekstu.

[Len("Mihailo"), daje 7] i [Len("123456"), daje 6]

8 http://frank.harvard.edu/aoe/images/t10r3.pdf

Page 80: Programski jezik Visual basic

3 TIPOVI PODATAKA 80

7) InStr([start,] string1, string2 [, compare]) - Vra a poziciju prvoprona enog teksta (string2) u zadatom tekstu (string1). Pore enje po injeod karaktera koji je zadat preko opcionog parametra start.

[InStr("Mirko je ve i", "je"), daje 7] i InStr(7, "Mirko je ve i", " "), daje 9]

Tabela 3.2 ASCII kod

Page 81: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 81

8) Trim(string) - pravi tekst bez praznih karaktera na po etku i kraju teksta. [Trim (" Teodora je mala "), daje "Teodora je mala"]9) LTrim(string) - pravi tekst bez praznih karaktera na po etku teksta.

[LTrim (" Teodora je mala "), daje "Teodora je mala "]10) RTrim(string) - pravi tekst bez praznih karaktera na kraju teksta.

[RTrim (" Teodora je mala "), daje " Teodora je mala"]11) StrRev(str) - daje tekst sa obrnutim redoslijedom znakova.

[strRev("Mihailo") daje "oliahiM")]12) Chr(broj) - vr i konverziju broja u tekst, prema ASCII standardu.

[Chr(65), daje slovo A ] [Chr(97), daje slovo a][Chr(62), daje simbol > ] [Chr(37), daje simbol % ]

13) Asc(slovo) - vr i konverziju prvog slova teksta u broj, prema ASCIIstandardu.

[Asc(A), daje broj 65 ] [Asc (a), daje broj 97][Asc (aprl), daje broj 97 ] [Asc (Mirko), daje broj 77]

14) Riplace(expression, find, replacewith[, start[, count]])) - pravi zamjenuodre enih znakova (find) sa novim znakovima (replacewith) u zadatomtekstu (expression). Zamjena se u zadatom tekstu vr i od po etnogkaraktera (start), ali samo onoliko puta koliko je zadato preko parametracount. Ako parametar count ima vrijednost -1 onda se rade sve mogu ezamjene u zadatom tekstu.

[Riplace ("Mihailo je veliki.", "je", "nije"), daje "Mihailo nije veliki."] [Riplace ("Mihailo je veliki.", "i", "$",-1), daje "M$ha$lo n$je vel$k$."] [Riplace ("Mihailo je veliki.", "i", "$", 4, 3), daje "Miha$lo n$je vel$ki."]

Visual Basic ima mogu nost prikaza izlaznog stringa u eljenoj formi uzupotrebu funkcije Format koja ima sljede u sintaksu

Format(expression[, format[, firstdayofweek[, firstweekofyear]]])gdje je: - expression tekst koji se eli formatirati- format na in na koji se uneseni tekst eli formatirati.- firstdayofweek predstavlja dan u sedmici i mogu biti brojevi od 1 do 7, kodformatiranja teksta koji predstavlja datum.- firstweekofyear predstavlja ozna avanje prve sedmici, kod formatiranja tekstakoji predstavlja datum.

Primjeri kori enja funkcije Format:- < prikazuje sve malim slovimaAA = Format ("STUDENT", "<@@@@@@@") ; daje "student".

- > prikazuje sve velikim slovimaAA = Format ("Ilija Rosic", ">@@@@@@@@@@") ; daje "ILIJA ROSIC".

Page 82: Programski jezik Visual basic

3 TIPOVI PODATAKA 82

- prikaz broja sa odre enim brojem decimalnih mjestaAA = Format(5459.4, "##,##0.00") ; daje "5,459.40".AA = Format(334.9, "###0.00") ; daje "334.90".

- prikaz broja kao procentualna vrijednost (mno enje sa 100 i dodavanje znaka %)AA = Format(5.12, "0.00%") ; daje "512.00%".AA = Format(0.085, "0.00%") ; daje "8.50%".

- prikaz broja sa nov anom jedinicomAA = Format(6.268, "0.00 KM") ; daje "6.27 KM".AA = Format(12468.268, "$#,##0.00") ; daje "$12,468.27".

- prikaz vrijednosti vremena i datumaAA = Format(Time, "Long Time") ; daje trenutno sistemsko vrijemeAA = Format(#17:04:23#, "h:m:s") ; daje "17:4:23".AA = Format(#17:04:23#,, "hh:mm:ss AMPM") ; daje "05:04:23 PM".AA = Format(#January 28, 2003#, "dddd, mmm d yyyy") ;daje "Wednesday, ' Jan 28 2003".

3.5 NOV ANE VRIJEDNOSTI (CURRENCY)

Nov ani tip podataka (eng. Currency) predstavlja podskup skupa realnihbrojeva sa 4 zna ajna decimalna mjesta. Currency je 64-bitno predstavljanjebrojeva u rasponu (±922 337 203 685 477,5808). Definicija sadr i broj, koji govorisa koliko bita se predstavlja taj decimalni broj u binarnom obliku, to automatskiodre uje minimalni (po etni) i maksimalni (krajnji) broj, koji ovaj tip podatkamo e da uzme.

3.6 DATUM (DATE)

Datum (eng. Date) tip podataka se koristi za prikaz datuma i vremena u raznimformatima. Ovaj tip podataka u su tini predstavlja realni broj, koji se predstavlja sa64 bita. Ovaj realni broj predstavlja broj proteklih sekundi od 1. januara 1900.godine poslije Hrista, prema UTC (Universal Coordinated Time) vremenu. UTCvrijeme predstavlja korekciju lokalne vremenske zone, koja je pode ena nara unaru (Control Panel => Date and Time => Time Zone => (GMT +01:00)Belgrade, Ljubljana), u odnosu na GMT (Greenwich Mean Time) vrijeme. U na ojzemlji UTC vrijeme iznosi +1 sat, jer na a vremenska zona prednja i u odnosu naGreenwich kod Londona za jedan sat. Manje vremenske jedinice od dana (sati,minute i sekunde) predstavljaju decimalni dio realnog broja.

Page 83: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 83

Na primjer,- 1 sat iznosi 1/24 dijela dana, odnosno = 0,04166666667.- 3 sata iznosi 3/24 dijela dana, odnosno = 0,125.- 1 minuta iznosi 1/(24*60) dijela dana, odnosno = 0,00069444444.- 1 sekunda iznosi 1/(24*60*60) dijela dana, odnosno = 0,000015741.Vremenu 5 sati, 25 minuta i 35 sekundi, na dan 21. 07. 2002. godine pridru uje

se broj 37458, 226099537.Programski jezik Visual Basic ima gotove funkcije, koje omogu uju razne

operacije sa datumom i vremenom. Neke od tih funkcija su:1) now() - uzima sistemsko vrijeme sa ra unara, a na svom izlazu daje realni

broj u formatu Real64. Dobijeni realni broj predstavlja broj sekundi od1. januara 1900. godine, do trenutka aktiviranja ove funkcije u programu.

2) DateValue(string) - koja uzima string i od njega pravi datum.[DateValue("7/21/02 5: 25:35 PM"), daje #7/21/02# ]

3) TimeValue(string) - koja uzima string i od njega pravi vrijeme.[DateValue("7/21/02 5: 25:35 PM"), daje #5:25:35 PM#]

4) CDate(broj) - od realnog broja pravi datum.[CDate (37458.22610) = #7/21/02 5:25:35 AM#]5) Day(Datum) - daje broj dana u trenutnom mjesecu, kada je ulazna

vrijednost u ovu funkciju datum. Opseg vrijednosti izlaza ove funkcije jeod 1 do 31.

6) Month(Datum) - daje broj mjeseca u trenutnoj godini. Opseg vrijednostiizlaza ove funkcije je od 1 do 12.

7) Year(Datum) - daje broj godina u trenutnom datumu.8) Hour(Datum) - izdvaja dio datuma koji sadr i sat.9) Minute(Datum) - izdvaja dio datuma koji sadr i minute.10) Second(Datum) - izdvaja dio datuma koji sadr i sekunde.11) DateSerial(d,m,y) - formira datum od 3 ulazna parametra. Parametar d je

dan u mjesecu. Parametar m je mjesec u godini. Parametar y je godina.12) TimeSerial(h,m,s) - formira vrijeme od 3 ulazna parametra. Parametar h je

broj sati. Parametar m je broj minuta. Parametar s je broj sekundi.13) DateDiff ("Tip jedinice", Datum1, Datum2) - daje broj vremenskih

jedinica izme u dva datuma. Gdje je "Tip jedinice" predstavljen u oblikustringa koji simboli ki prikazuje vremensku jedinicu (godinu, mjesec, dan,sat, minut, sekund). Vremenske jedinice baziraju se na razlici izme u dvadatuma Datum2 - Datum1.

Primjer:tekst1 = DateSerial(2000, 2, 12)tekst2 = DateSerial(2003, 1, 28)Text1.Text = DateDiff("d", tekst1, tekst2), daje rezultat 1081 dana.Text2.Text = DateDiff("h", tekst1, tekst2), daje rezultat 25944 sati.Text3.Text = DateDiff("m", tekst1, tekst2), daje rezultat 35 mjeseci.

Page 84: Programski jezik Visual basic

3 TIPOVI PODATAKA 84

3.7 NEODRE ENI TIP (VARIANT)

Variant je neodre eni tip podataka, koji postoji u programskom jeziku VisualBasic, a vezan je za deklaraciju globalnih i lokalnih promjenljivih. Kada se nekapromjenljiva deklari e kao varijant, to zna i da ona mo e da poprimi bilo koji dosada opisani tip podatka. Promjenjva se prilago ava onom tipu podatka, koji do ena njen ulaz. Me utim, ne treba pretjerivati sa kori enjem ove promjenljive,pogotovo, kada smo sigurni da je promjenljiva ta no poznatog tipa podataka.Razlog le i u injenici to ovaj tip promjenljive zauzima najvi e memorije od svihostalih tipova podataka, a to je 128-bitno predstavljanje brojeva.

Ovaj tip podatka se posebno koristi kod deklarisanja promjenljivih koje sekoriste za povezivanje sa drugim programima instalisanim na ra unaru.

3.8 STATI KI NIZOVNI TIP (ARRAY)

Stati ki nizovi slu e za realizaciju jednoindeksnih i vi eindeksnih nizova. SkupS iz grupe srodnih elemenata naziva se niz. Srodni elementi su, uglavnom, onielementi koji posjeduju neku zajedni ku osobinu. Elementi niza mogu biti iobjekti, koji pripadaju jednoj formi i kojima se indeksi dodjeljuju redoslijedomnjihovog postavljanja na formu. Svaki element niza ima svoj indeks iz skupaprirodnih brojeva N0 (0,1,2,...). Dakle, niz obrazuju elementi S = f(n), gdje sebrojevi n nazivaju indeksi niza.

Nizovi su nastali radi smanjenja op irnih programa. Nizovi nastoje da grupnoopi u istorodne podatke, tj. da im se zajedni ke osobine istaknu samo jednom. Nataj na in se izbjegava posebno opisivanje svakog podatka. U tom slu aju cijelojgrupi podataka (nizu) daje se zajedni ko ime. Da bi se mogla izvr iti obrada ipristup podacima iz grupe, potrebno je prethodno izvr iti deklaraciju niza, odnosnonavesti ukupan broj lanova niza i identifikatore (indekse) pojedinih podataka.Prema tome, deklaracija niza promjenljivih sastoji se od: imena, broja elemenata itipa podatka i ima formu

Public [Dim] ImeNiza (Indeks) As TipPodatkaObavezna rije Public upotrebljava se kada se niz defini e u okviru standardnog

modula i dostupan je svim procedurama u programu. Klju na rije Dim pi e sesamo onda kada se niz primjenjuje u procedurama u kojima je i definisan. Za imeniza obi no se uzima rije ili skup rije i (pi u se sastavljeno), koje asociraju navrijednosti koje niz mo e da ima. Broj promjenljivih (Indeks) ili dimenzija niza je,u stvari, indeks posljednjeg lana niza. Budu i da je indeks prvog lana niza 0, akose druga ije ne defini e, to zna i da je ukupan broj lanova niza za jedan ve i odindeksa posljednjeg lana slika 3.1.

Dim Niz1(14) As Integer ' 15 elemenata.Dim Niz2(20) As Double ' 21 elemenata.

Page 85: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 85

Slika 3.1 Jednoindeksni niz

Me utim, u brojnim primjerima primjene postoji potreba da prvi indeks budebroj 1, pa je tada broj promjenljivih identi an indeksu posljednjeg lana niza.

Dim Niz3(1 to 20) As Single ' 22 elemenata.. Tip niza odre uje se pomo u simbola ili pomo u propisane rije i, onako kako

je to opisano u tabeli 10. zavisno od vrste podataka koji e biti locirani umemorijske promjenljive. U slu aju da ne postoji saznanje o tipu podatka ili dapromjenljive mogu da poprimaju podatke razli itih tipova, tada se za format tipapodatka uzima opcija As Variant. Radi br eg rada i efikasnijeg kori enjamemorijskog prostora, svrsishnodnije je da se dodijeli stvarni tip promjenljivim izniza, naravno, ako je to mogu e.

Nizovi mogu da budu stati ki (konstantni ili fiksni), ako je broj njihovihelemenata unaprijed poznat i dinami ki (varijabilni), ako se njihova dimenzijenaknadno odre uje. Me utim, prilikom odre ivanja statisti kih funkcija, kao naprimjer, odre ivanje srednje vrijednosti ili standardne devijacije za bilo koji uzorakslu ajnih promjenljivih (primjer - statisti ke funkcije), broj promjenljivih nijeunaprijed poznat, nego tek onda kada se pristupi izra unavanju konkretnog uzorka.Tada se u standardnom modulu niz defini e na sljede i na in

Public Promjenljiva1 () As VariantZagrade, bez navedenog sadr aja, imaju ulogu da ozna e da je niz dinami ke

prirode i da e njegova du ina, odnosno broj elemenata, biti naknadno odre eni.Podaci koji pripadaju promjenljivim, u okviru jednog niza, memori u se u susjednelokacije memorijskog prostora. Za vrijeme izvr avanja programa elementi nizanalaze se u sistemskoj memoriji (RAM-u). Zbog tih razloga, prilikom rada sanizovima, ne treba uzimati nizove sa ekstremno velikim brojem elemenata, jermo e do i do prezasi enja sistemske memorije i usporavanja rada ra unara.

Osnovna prednost u radu sa nizovima sastoji se u efikasnosti izvr avanjaprograma i u preglednosti izrade programskog koda. Promjenljive deklarisane kaoniz mogu se obra ivati grupno, obi no uz upotrebu petlji: For... Next i Do While(Until)... Loop. Dakle, umjesto da se naredbe navode pojedina no za obradu svakememorijske promjenljive, one se pisu samo jednom uz varijaciju indeksa i odnosese na sve promjenljive. Na in rada sa nizovima mo e se sagledati na primjeruunosa i prikaza niza slu ajnih brojeva upotrebom petlje For... Next.

Dim i As Integer ' Promjenjiva za brojanje.Dim Niz1(8) As SingleFor i = 0 To 8 Niz1(i) = 10*RndNext i

Page 86: Programski jezik Visual basic

3 TIPOVI PODATAKA 86

2,0,0 2,1,0 2,2,0 2,3,0

1,0,0 1,1,0 1,2,0 1,3,0

111

0,0,0 0,1,0 0,2,0 0,3,0

0,0,1 0,2,10,1,1 0,3,1

Slika 3.2 Dvoindeksni niz Slika 3.3 Troindeksni niz

U programiranju pored jednoindeksnih postoje i vi eindeksni nizovi. Naj ekori eni vi eindeksni nizovi su dvoindeksni nizovi, ija je struktura prikazana naslici 3.2. Dvoindeksni niz je najlak e shvatiti, kao dvodimenzionu matricu (tabelu)T2(i,j), koja se sastoji se od i- redova i j - kolona. Dvoindeksni niz se obi nopopunjava pomo u dvije For petlje. Jedna For petla (spoljna) se koristi zapromjenu redova tabele (i), a druga For petlja (unutra nja) za promjenu kolonatabele (j). Ukupan broj ciklusa izvr enja ove dvije For petlje se dobije, kaoumno ak broja ciklusa spoljne i broja ciklusa unutra nje petlje. Deklaracijadvodimenzionog niza se mo evr iti na sljede i na inDim Niz1(4,6) As Integer ' 35=5*7 elemenata.Dim Niz2(1 To 3, 4) As Double ' 15=3*5 elemenata.Dim Niz3(5, 1 To 4) As Double ' 20=5*4 elemenata.Dim Niz4(1 To 3, 1 To 4) As Double ' 12=3*4 elemenata.

Na in popunjavanja dvoindeksnog niza upotrebom dvije petlje For... Next, datje u sljede em primjeru.

Dim i, j As Integer ' Promjenjive za brojanje.Dim Niz2(2,3) As IntegerFor i = 0 To 2 ' Spoljna petlja za redove For j = 0 To 3 ' Unutrasnja petlja za kolone Niz2(i, j) = i * 10 + j Next JNext I

Struktura troindeksnog niza prikazana je na slici 3.3. Troindeksni niz je najlak eshvatiti, kao trodimenzionu matricu (kocku) T(i,j,k), koja se sastoji se od i- redova,j - kolona i k- dubina matrice. Troindeksni niz se obi no popunjava pomo u tri Forpetlje. Jedna For petla (spoljna) se koristi za promjenu redova tabele (i), druga Forpetlja (unutra nja) za promjenu kolona tabele (j) i tre a For petlja (unutra nja) zapromjenu dubine kocke (k). Ukupan broj ciklusa izvr enja ove tri For petlje se

Page 87: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 87

dobije, kao umno ak broja ciklusa sve tri petlje. Deklaracija trodimenzionog nizase mo evr iti na sljede i na inDim Niz1(4,5,2) As Integer ' 90=5*6*3 elemenata.Dim Niz2(1 To 3, 4,5) As Double ' 90=3*5*6 elemenata.Dim Niz3(5, 1 To 4,2) As Double ' 72=6*4*3 elemenata.Dim Niz4(1 To 3, 1 To 4,3) As Double '48=3*4*4 element.

Na in popunjavanja troindeksnog niza upotrebom tri petlje For... Next, dat je usljede em primjeru.

Dim i, j,k As Integer ' Promjenjive za brojanje.Dim Niz3(2,3,1) As IntegerFor i = 0 To 2 ' Spoljna petlja za redove For j = 0 To 3 ' Unutrasnja petlja za kolone For k = 0 To 1 ' Unutrasnja petlja za dubinu

Niz1(i, j) = i * 10 + j Next k Next JNext I

Va no je napomenuti da prilikom rada sa nizovima nije neophodno da sepopune svi elementi niza. Zbog toga je prilikom deklaracije nizova po eljno da seostavi nekoliko elemenata u rezervi, kako bi se niz naknadno mogao pro irivati.

Page 88: Programski jezik Visual basic

3 TIPOVI PODATAKA 88

Page 89: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 89

4 FUNKCIJE I PROCEDURE

Kad se gradi jedan slo eni sklop, kao to je na primjer automobil, konstruktorine e po eti od najosnovnijih sirovinskih materijala, kao to je ruda gvo a, ili naftaod koje se prave plasti ni materijali. Umjesto toga, automobil e se sklapati od(jednom) prethodno napravljenih dijelova, kao to su autogume, akumulatori,motori, automobilski hladnjaci. Svi ti dijelovi napravljeni su u razli itimfabrikama.

Funkcije i procedure su strukturni blokovi koji omogu uju da program budekonstruisan od ranije napravljenih dijelova. Kori enje takvih strukturnih blokovaima tri prednosti:1) Kada radimo na bilo kom, ali jednom, strukturnom bloku, mo emo usmjeritipa nju na samo jedan dio programa.2) Razli iti ljudi mogu raditi na razli itim strukturnim blokovima u isto vrijeme.3) Ako je isti strukturni blok potreban na vi e mjesta u programu, mo emo gajedanput napisati i koristiti vi e puta.

Procedure i funkcije su sastavni dio Visual Basic-a, tj. nalaze se u nekojbiblioteci jezika (npr. MSDN) ili ih defini u korisnici. Pomo u njih obi no seobavljaju slo eniji zadaci u odnosu na pojedine naredbe. Ako se pojedineprocedure i funkcije koriste u vi e razli itih formi, odnosno imaju op tu namjenu,onda se one defini u u posebnom, standardnom modulu zajedno sa javnimpromjenljivim. Iz modula, kao i iz drugih izvora pozivaju se po svome imenu.Standardni modul prepoznaje se po svome imenu koje je dao korisnik i poekstenziji bas, koja je od imena odvojena ta kom, npr. "Ime Modula.bas".

Da bi vrijednosti proslije ene procedurama i funkcijama ostale neizmijenjenedodaju im se klju ne rije i ByVal. Ina e bi, prilikom odre enih izra unavanja,takve rije i poprimile druga iju vrijednost. Upotreba propisanih rije i ByValilustrovana je na primjerima iz geometrije, koji slijede iza.

4.1 FUNKCIJE

Neke standardne funkcije, kao to su kvadratni korjen (Sqrt), zaokru ivanjerealnih brojeva (Round), su ve ugra ene u Visual Basic. Sada emo vidjeti kako sedefini u vlastite funkcije, koje su nam potrebne da bi rje ili postavljeni zadatak, anisu ugra ene u Visual Basic. Funkcija se defini e koriste i funkcijsku deklaraciju.Korisnici defini u funkciju pomo u sljede eg formata:

[Public|Private] Function ImeFunkcije ([argumenti] [As Tip]) [As Tip]Sekvencija naredbi

ImeFunkcije = izraz ili vrijednostEnd Function

Page 90: Programski jezik Visual basic

4 FUNKCIJE I PROCEDURE 90

Funkcija koja se programira po inje klju nom rije i Function. Prije ove klju nerije i opciono (sve navedeno u uglastim zagradama [ ] su opcioni parametri priprogramiranju) mogu da stoje rije i Public ili Private. Public zna i da je funkcijadefinisana na globalnom nivou i da se mo e koristiti na svim formama, kojepostoje u programu. Private zna i da je funkcija definisana na lokalnom nivou i dase mo e koristiti samo na jednoj formi. Iza kju ne rije i Function slijedi imefunkcije, koje mo e da bude samo jedna rije . Ime funkcije po eljno je da nasasocira na problem koji rje avamo. Iza imena funkcije u malim zagradama senavode argumenti i njihov tip. Argumenti su u stvari promjenjive preko kojih emou funkciju da unesemo neke vrijednosti iz glavnog programa. Ako imamo vi eargumenata funkcije, onda se oni me usobno razdvajaju sa zapetom. Iza malezagrade navodi se tip funkcije, odnosno kojeg tipa e biti vrijednost koju funkcijamo e da poprimi tokom njenog izvr avanja. Prva kodna linija u funkciji je obi nodeklaracija lokalnih promjenjivih, koje se koriste samo u toj funkciji. Zatim se pi eradni kod funkcije. Prije klju ne rije i End Function, koja ozna ava kraj postoje efunkcije, obavezno treba da stoji ime funkcije kome se pridru uje neka vrijednost.Ovo je posebno bitno jer funkcija vra a rezultat kroz svoje ime.

Definicije korisni kih funkcija obja njene su na primjerima izra unavanjapovr ina i obima nekih geometrijskih figura. Kao primjer defini imo funkcijuPovrsinaP, koja daje povr inu pravougaonika, ako su date njegove stranice a i b.Rezervisana re FUNCTION predstavlja funkcijski naslov. Zatim dolazi imefunkcije, PovrsinaP, slijede u zagradama formalni parametri. Formalni parametrimoraju se podudarati sa stvarnim parametrima, koji e se pojaviti kad se funkcijabude koristila. Formalni parametri su deklarisani kao

ByVal a,b as Singli ka e, da e funkcija uzeti dva parametra, koji moraju biti realni broj. Kona no,,,as Singl” na kraju naslova funkcije specificira, da e ova funkcija kao rezultatimati realnu vrijednost. Naredba deklaracije funkcije ima samo jednu naredbu

PovrsinaP = a*bkoja ra una vrijednost funkcije i ozna ava se imenom funkcije. Vrijednost, koja sedobija ra unanjem, uvijek se obele ava imenom funkcije. Bez obzira koliko postojinaredbi u funkciji koja se programira, kona no jedna od njih mora ozna avativrednost koja e se izra unati, a ta je uvijek ozna ena imenom funkcije.

Kako se funkcija koristi u programu? Neka se, na primjer, u programu pojavilanaredba koja koristi deklarisanu funkciju PovrsinaP

zid = PovrsinaP(2.16,4.71)Kada se pri izvo enju programa u ra unaru, do e do imena funkcije PovrsinaP

organizuje se podru je memorije, koje se dodjeljuje funkciji. To se podru je sastojiod tri lokacije, a,b i PovrsinaP. Zatim se dodjeljuje vrednost stvarnog parametraformalnim parametrima a,b:

a = 2.16 i b=4.71Sada e naredba biti izvr ena

Page 91: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 91

PovrsinaP = a*bi vrednost 10.1736 je sme tena u lokaciju nazvanu PovrsinaP. Kad je to izvr enosadr aj lokacije nazvane PovrsinaP bi e upotrebljen na mjestu funkcije uprogramu sa PovrsinaP. Mo e se re i, da je

zid = PovrsinaP(2.16,4.71)ekvivalentno sa

zid = 10.1736Slijedi primjer koda programa u Visual Basic-u u kome se ra una povr ina

pravougaonika, a na slici 4.1 prikazana je izvr na verzija ovog programa.Private Function Povrsina(ByVal a,b As Single) As Single Povrsina = a * bEnd FunctionPrivate Function Obim(ByVal a, b As Single) As Single Obim = 2 * a + 2 * bEnd FunctionPrivate Sub Povrsina1_Click()

Dim a, b As Singlea = Ulaza.Textb = Ulazb.TextTxtPovrsina.Text = Povrsina(ByVal a, b)

End SubPrivate Sub Obim1_Click()

Dim a, b As Singlea = Ulaza.Textb = Ulazb.TextTxtObim.Text = Obim(ByVal a, b)

End Sub

Slika 4.1 Primjena funkcija za izra unavanje povr ine i obima pravougaonika

U naredbi funkcijske deklaracije ime funkcije nalazi se na lijevoj stranidodjeljene naredbe i pona a se kao i svaka druga promjenljiva. Me utim, ako seime funkcije koristi u nekom izrazu ima druga ije zna enje! Ve je bilo spomenutoda parametar funkcije mo e biti i izraz. Na primjer:

y = 2.5soba = 2 + PovrsinaP (2.0 * y + 1.5, 4.5 - y)

Page 92: Programski jezik Visual basic

4 FUNKCIJE I PROCEDURE 92

ekvivalentno je say = 2.5a = 2.0 * y + 1.5b = 4.5 - ysoba = 2 + PovrsinaP (a,b)

U ovom primjeru vrednost 7.5 dodeljena je promjenjivoj a, a vrednost 2.0dodeljena je promjenjivoj b. Funkcija PovrsinaP je dobila vrijednost 15. Izrazsoba je na kraju poprimio vrijednost 17.

4.2 PROCEDURE

Procedure su takve strukture kojima se u programu izvr ava neki postupak i tojedanput ili vi e puta prema potrebi. To je vrsta potprograma u Visual Basic-u. Zarazliku od funkcija procedure ne vra aju izra unatu vrijednost u svome imenu,nego u nekoj promjenljivoj.

U zavisnosti od svrhe kojoj slu e procedure se dijele na:1) procedure doga aja,2) procedure svojstava i3) potprogramske procedure.Pomo u procedura doga aja obi no se vr i pokretanje nekih operacija u

programu. Doga aji se programiraju obi no nad objektima koji se postavljaju naradnu povr inu. Naj e kori eni doga aj je jednostruki i dvostruki klik mi a.Pored njega koriste se i doga aji: prelaz mi a preko objekta, klik na tastaturu,promjena vrijednosti u objektu itd.

Definisanje i uvo enje novih svojstava, koja se ne nalaze u prozoru svojstava(Properties Window), za neki objekat ili za grupu objekata obavlja se pomo uprocedure svojstava.

Pomo u potprogramske procedure se vr i rje avanje nekog prakti nogproblema, koji e se ponavljati vi e puta u programu. Procedure se, uglavnom,koriste za obradu ulaznih podataka, prikazivanje rezultata i obradu vi e svojstavavezanih za neki uslov. Osnovna sintaksa potprogramske procedureje je:

[Public|Private] Sub ImeProcedure ([argumenti] [As Tip] )Sekvencija naredbi

End SubProcedura koja se programira po inje klju nom rije i Sub. Prije ove klju ne

rije i opciono mogu da stoje rije i Public ili Private. Public zna i da je proceduradefinisana na globalnom nivou i da se mo e koristiti na svim formama, kojepostoje u programu. Private zna i da je procedura definisana na lokalnom nivou ida se mo e koristiti samo na jednoj formi. Iza kju ne rije i Sub slijedi imeprocedure, koje mo e da bude samo jedna rije . Ime procedure po eljno je da nasasocira na problem koji rje avamo. Iza imena procedure u malim zagradama senavode argumenti i njihov tip. Argumenti su u stvari promjenjive preko kojih emo

Page 93: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 93

u proceduru da unesemo neke vrijednosti iz glavnog programa. Ako imamo vi eargumenata procedure, onda se oni me usobno razdvajaju sa zapetom. Iza malezagrade ne navodi se tip procedure, jer procedura ne vra a vrijednost preko svogimena, ve preko globalnig promjenjivih. Prva kodna linija u proceduri je obi nodeklaracija lokalnih promjenjivih, koje se koriste samo u toj proceduri. Zatim sepi e radni kod procedure, u kome globalne promjenjive moraju da poprime nekuvrijednost. Preko globalnih promjenjivih koje se deklari u u modulima, vr i seprenos vrijednosti iz procedure u glavni program. Procedura se obavezno morazavr iti klju nom rije i End Sub. Procedura se iz glavnog programa pozivapomo u klju ne rije i Coll, iza koje se navodi ime procedure, a zatim u malimzagradama vrijednosti argumenta prema sljede oj sintaksi

Coll Ime procedure (argumenti)Argumenti u pozivu procedure moraju da odgovaraju argumentima u opisu

potprogramske procedure. U proceduri doga aja, vezanoj za neki objekat, zarazliku od prethodnog formata, ime procedure zamjenjuje se imenom objektakome se iza znaka "_" pridodaje doga aj nad tim objektom (primjer klik mi a nadugme Private Sub CBMax_Click()).

Iz prethodnih izlaganja mogu se sumirati zaklju ci da se procedure i funkcije,pogotovo one koje imaju op tu namjenu, naj e primjenjuju.1) Kada treba na vi e mjesta u programu, po istim obrascima, vr iti izra unavanjaza razli ite vrijednosti argumenata.2) Kada se ponavljaju pojedina izra unavanja za razli ite vrijednosti argumenatau skladu sa postavljenim uslovima.3) Prilikom izdavanja vrijednosti rezultata dobijenih na razne na ine i u razli itimdijelovima programa.4) Kada se istovjetna grupa naredbi vi estruko pojavljuje u razli itim dijelovimaprograma.

Vi estruko ponavljanje pojedinih dijelova programa zna ajno pro iruje iuslo njava programski kod. Cjelishodnije je dio programa, koji treba pisati na vi emjesta, izdvojiti u posebnu cjelinu i pisati ga samo na jednom mjestu.Prednosti upotrebe procedura, uglavnom, su sljede e.1) Procedura se jednom defini e, a mo e da se koristi vi e puta,2) Program koji se sastoji od vi e procedura lak e se razumije od programasastavljenog iz jedne cjeline,3) Lak e se otklanjaju gre ke,4) Programi se mogu timski razvijati,5) Pojedine procedure iz standardnih modula mogu da se uklope u razli iteprojekte i6) Uvo enjem novih procedura oboga uje se VB jezik.

Evo jednog jednostavnog programa u kojem e se koristiti procedura, koja sekoristi za izra unavanje povr ine i obima pravouganika. Za razliku od funkcije koja

Page 94: Programski jezik Visual basic

4 FUNKCIJE I PROCEDURE 94

je davala uvijek samo jedan rezultat, ova procedura e davati dva rezultata. Ovadva rezultata se u glavni program prenose preko dvije promjenjive PovrsinaP iObimP, koje su deklarisane u posebnom modulu.

Public PovrsinaP, ObimP As SingleRem deklaracija 2 globalne promjenjive mora seuraditi u modulu

Private Sub PovObim(ByVal a As Single, b As Single) PovrsinaP = a * b ObimP = 2 * a + 2 * bEnd Sub

Private Sub CBProcedura_Click()Dim a, b As Singlea = Ulaza.Textb = Ulazb.TextCall PovObim(ByVal a, b) Rem poziv procedureTxtPovrsinaP.Text = PovrsinaPTxtObimP.Text = ObimPEnd Sub

Sljede i primer pokaza e postupak kojim e se mo i ure ivati parovi realnihbrojeva i to tako, da je na prvom mestu manji broj, a na drugom ve i. Procedura uVisual Basic-u, kako je re eno, po inje rezervisanom re i Sub iza ega dolazi imeprocedure, te u zagradi parametri. Ime se bira tako da asocira na postupak kojiprocedura izvr ava. Imena procedura moraju biti razli ita i ne smiju biti ista kaoimena bilo koje konstante, promenljive ili objekta, koji je korisnik definisao uprogramu. Parametri procedure deklari u se nabrajaju i ih sa njihovim tipovima. Udatom primjeru deklari u se dva parametra a i b oba realnog tipa (Single). Neka sesada iskoristi data procedura ZAMJENA za ure enje 4 para brojeva i to:12, 85, 329, 2228, 12Kod programa e izgledati ovako:

Public Prvi, Drugi As Single

Private Sub Zamjena(ByVal a As Single, b As Single) Prvi = b Drugi = aEnd Sub

Page 95: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 95

Rem glavni program klik na dugmePrivate Sub CBZamjena2_Click()Dim Niz1(5) As SingleDim Niz2(5) As SingleNiz1(0) = TxtP1.Text Rem upis u niz ulazaNiz1(1) = TxtP2.TextNiz1(2) = TxtP3.TextNiz1(3) = TxtP4.TextNiz2(0) = TxtD1.TextNiz2(1) = TxtD2.TextNiz2(2) = TxtD3.TextNiz2(3) = TxtD4.Text

For i = 0 To 3If Niz1(i) > Niz2(i) Then a = Niz1(i) b = Niz2(i) Call Zamjena(ByVal a, ByVal b) Niz1(i) = Prvi Niz2(i) = DrugiEnd IfNext iFor j = 0 To 3Rem upis sortiranog niya u MSFlexGrid tabelu MSFIzlaz.TextMatrix(j + 1, 1) = Niz1(j) MSFIzlaz.TextMatrix(j + 1, 2) = Niz2(j)Next jEnd Sub

Nakon izvr enja program e dati ispis ure enih parova u MSFlexGrid tabeli,kao na izvr noj verziji programa datoj na na slici 4.2.

Slika 4.2 Zamjena mjesta dva parametra

Page 96: Programski jezik Visual basic

4 FUNKCIJE I PROCEDURE 96

Ista se procedura mo e iskoristiti za poredak, na primer, grupe od 3 broja. Utom slu aju procedura Zamjena e se u glavnom programu pozivati tri puta pa ee program biti sljede i a izgled izvr ne verzije programa prikazan je na slici 4.3.

Public Prvi, Drugi As Single

Private Sub Zamjena(ByVal a As Single, b As Single) Prvi = b Drugi = aEnd Sub

Rem glavni program klik na dugmePrivate Sub CBZamjena2_Click()Dim Niz1(5) As SingleDim Niz2(5) As SingleDim Niz3(5) As SingleNiz1(0) = TxtP1.TextNiz1(1) = TxtP2.TextNiz1(2) = TxtP3.TextNiz1(3) = TxtP4.TextNiz2(0) = TxtD1.TextNiz2(1) = TxtD2.TextNiz2(2) = TxtD3.TextNiz2(3) = TxtD4.TextNiz3(0) = TxtT1.TextNiz3(1) = TxtT2.TextNiz3(2) = TxtT3.TextNiz3(3) = TxtT4.TextFor i = 0 To 3If Niz1(i) > Niz2(i) Then Rem zamjena 1 i 2 a = Niz1(i) b = Niz2(i) Call Zamjena(ByVal a, ByVal b) Niz1(i) = Prvi Niz2(i) = DrugiEnd IfIf Niz2(i) > Niz3(i) Then Rem zamjena 2 i 3 a = Niz2(i) b = Niz3(i) Call Zamjena(ByVal a, ByVal b) Niz2(i) = Prvi Niz3(i) = DrugiEnd If

Page 97: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 97

If Niz1(i) > Niz2(i) Then Rem zamjena 1 i 2 ponovo a = Niz1(i) b = Niz2(i) Call Zamjena(ByVal a, ByVal b) Niz1(i) = Prvi Niz2(i) = DrugiEnd IfNext iFor j = 0 To 3 MSFIzlaz.TextMatrix(j + 1, 1) = Niz1(j) MSFIzlaz.TextMatrix(j + 1, 2) = Niz2(j) MSFIzlaz.TextMatrix(j + 1, 3) = Niz3(j)Next jEnd Sub

Pretpostavimo da su date trojke12, 8, 285, 3, 129, 22, 2028, 12, 18

Nakon izvr enja program e dati ispis ure enih parova u MSFlexGrid tabeli,kao na izvr noj verziji programa datoj na na slici 4.3.

Slika 4.3 Zamjena mjesta tri parametra

Prilikom kori ena procedura u programiranju, u glavnom programu sepozivamo na promjenljive deklarisane u programu kao globalne. Promjenljivedeklarisane u svakoj proceduri ili funkciji, ka emo da su lokalne za tu funkciju iliproceduru. Vrijednost lokalne promjenjive se uva u memoriji ra unara samo dokse ta procedura ili funkcija izvr ava. im se procedura ili funkcija zavr i izmemorije se bri u vrijednosti svih lokalnih promjenjivih, a u memoriji ostaju samovrijednosti globalnih promjenjivih. Naredbe u proceduri ili funkciji mogu koristiti

Page 98: Programski jezik Visual basic

4 FUNKCIJE I PROCEDURE 98

globalnu promjenljivu uz uslov da lokalna promjenljiva nema isto ime. One mogukoristiti vrijednost globalnih promjenljivih i dodjeljuju im nove vrijednosti. Ovoosigurava drugi na in u kom podatak mo e prelaziti u ili iz procedure ili funkcije.Vrijednosti, koje su pre le u funkciju ili proceduru mogu biti dodjeljene globalnimpromjenljivama prije nego to je funkcija ili procedura pozvana. Procedura ilifunkcija mo e dodjeliti vrijednosti globalnim promjenljivama i one mogu bitidostupne glavnom programu nakon povratka iz procedure ili funkcije. Zbog togakoristimo formalne parametre e nego globalne promjenljive. Ali postoje dvijesituacije u kojima esto upotrebljavamo globalne promenljive:1) elimo sa uvati neke vrijednosti od jednog poziva funkcije ili procedure dosljede eg. To ne mo emo u initi koriste i lokalne promenljive. Svaki put kad jefunkcija ili procedura pozvana njene lokalne promjenljive zauzimaju prostor umemoriji samo dotle dok se funkcija ili procedura ne izvr i. Zna i da nakonizvr enja ne postoje lokalne promjenljive, pa je slobodan prostor u memoriji zadruge promjenljive. Ako se funkcija ili procedura ponovo pozivaju lokalnimpromjenljivama se dodeljuje novi prostor u memoriji.2) Ponekad, mnoge od funkcija i procedura u programu manipuli u nekom op tomstrukturom podataka, recimo ,,povr ina". U tom slu aju ,,povr ina” mo e bitideklarisana kao globalna promjenljiva, i sve funkcije i procedure mogu koristiti teglobalne promjenljive.

4.3 MATEMATI KE FUNKCIJA

Programski jezik Visual Basic ima veliki broj gotovih matemati kih funkcija,koje stoje programerima na raspolaganju. Sve ove funkcije su detalno opisane uHelp-u, u kome se dati i primjeri kori enja ovih funkcija. U tabeli 4.1 date sunaj e primjenjivane funkcije u Visual Basic-u. Svaka od navedenih funkcija imajedan ulazni argument, ozna en kao x. Ovaj argument mo e biti broj odre enogtipa ili bilo koji numeri ki izraz koji kao rezultat daje broj. Kod trigonometrijskih iinverznih trigonometrijskih funkcija brojne vrijednosti se izra avaju u radijanima, ane u stepenima (1 radijan = 180/π stepeni = 57,2958 stepeni).

Tabela 4.1 Matemati ke funkcijeSintaksa funkcije Opis funkcijeSqr (x) Izra unava kvadratni korijen broja ≥ 0.Exp (x) Izra unava vrijednost stepena ex .Log (x) Izra unava prirodni logoritam ln x , gdje je x >0.Log10 (x) Izra unava logoritam po bazi 10, gdje je x >0.Int (x) Izdvaja cijeli dio decimalnog broja.

99=Int(99.2); 99=Int(99.8); -100=Int(-99.2); -100=Int(-99.8)Fix (x) Izdvaja cijeli dio decimalnog broja.

99=Fix(99.2); 99=Fix(99.8); -99=Fix(-99.2); -99=Fix(-99.8)

Page 99: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 99

Sintaksa funkcije Opis funkcijeSgn (x) Daje znak broja ili izraza.Abs (x) Daje apsolutnu vrijednost broja.x mod y Daje ostatak dijeljenja broja x sa brojem y. 1 = 10 Mod 3;

2 = 12 Mod 4.7 = 12 Mod 5; 0 = 12 Mod 4.2 = 12 Mod 4div (x,y) Cjelobrojno dijeljenje broja x sa brojem y. 2=div(11,4)=11\4Rnd [(x)] Daje slu ajan broj ve i ili jednak 0 i manji od 1.Round(x[, y]) Zaokru uje broj x na y broj decimalnih mjesta.

3.25=Round(3.25145,2)Max (x,y) Daje ve u vrijednost od x ili y.Min (x,y) Daje manju vrijednost od x ili y.Sin (x) Izra unava sinus ugla.Cos (x) Izra unava kosinus ugla.Tan (x) Izra unava tangens ugla.Arcsin (x) Izra unava ugao iji je sinus jednak broju x.Arccos (x) Izra unava ugao iji je kosinus jednak broju x.Atan (x) Izra unava ugao iji je tangens jednak broju x.

4.4 FINANSIJSKE FUNKCIJA

Programski jezik Visual Basic ima veliki broj gotovih finansijskih funkcija. Onekoje se najvi e koriste date su u tabeli 4.2. Mo emo ih podjeliti u tri osnovnegrupe: funkcije amortizacije, funkcije anuiteta i funkcije nov anih tokova.

Tabela 4.2 Finansijske funkcijeSintaksa funkcije Opis funkcije

DDB(cost, salvage, life, period[, factor]) Amortizacija sredstava u datomvremenskom periodu obra unatu metodomuravnote ene amortizacije.

FV(rate, nper, pmt[, pv[, type]]) Budu a vrijednost nekog ulaganja naosnovu fiksnih periodi nih uplata i stopa.

IPmt(rate, per, nper, pv[, fv[, type]]) Iznos kamate na neko ulaganje za dativremenski period.

IRR(values()[, guess]) Interna stopa povra aja za serije nov anihtokova.

MIRR(values(), finance_rate, reinvest_rate) Daje vrijednost modifikovane interne stopeu iskazu povra aja za serije periodi nihnov anih tokova.

NPer(rate, pmt, pv[, fv[, type]]) Izra unavanje broja otplatnih perioda.NPV(rate, values()) Izra unava neto sada nju vrijednost

ulaganja na osnovu serije periodi nihnov anih tokova i eskontne stope.

Pmt(rate, nper, pv[, fv[, type]]) Periodi ni obra un anuiteta.

Page 100: Programski jezik Visual basic

4 FUNKCIJE I PROCEDURE 100

Sintaksa funkcije Opis funkcijePPmt(rate, per, nper, pv[, fv[, type]]) Obra un otplate glavnice za odre eni

period.PV(rate, nper, pmt[, fv[, type]]) Sada nja vrijednost budu ih fiksnih

periodi nih uplata.Rate(nper, pmt, pv[, fv[, type[, guess]]]) Predstavlja kamatnu stopu na anuitet.SLN(cost, salvage, life) Linearna amortizacija sredstava u nekom

perioduSYD(cost, salvage, life, period) Amortizaciju sredstava za dati upotrebni

vijek sredstva izra unat za zadati period.

Funkcija amortizacije sredstava koristi se za izra unavanje nov ane vrijednosti,koju sredstva gube za dati vremenski period. U pojedinim zemljama esto se dajuposebna uputstva za obra un amortizacije, jer iznos poreza i drugih da binavlasnika sredstava, u zna ajnoj mjeri, zavisi od izvr ene amortizacije.

Pod amortizacijom kredita podrazumijeva se serija pla anja koja, obi no,predstavlja vra anje nekog uloga ili kredita u odre enim iznosima (anuiteti).

Funkcije nov asnih tokova vr e finansijska izra unavanja na osnovu serijaperiodi nih rashoda i prihoda. Pri tome se podrazumijeva da negativni brojevipredstavljaju rashode, a pozitivni prihode.Primjer 4.1Uzimate kredit od 10000 $. Kredit trebate vratiti za godinu dana, sa godi njomkamatnom stopom od 10%, pla aju i jednake mjese ne rate na kraju mjeseca.Pomo u finansijske funkcije PMT izra unati mjese nu ratu za uzeti kredit.Rje enje:

Iznos pojedina nih otplata duga (kredita) ra una se u Visual Basic-u pomo ufinansijske funkcije PMT. Ova funkcija ima slijede u sintaksu:PMT(rate, nper, pv[, fv[, type]])

Pri emu je:Rate interesna stopa po otplatnom periodu (u na em zadatku to je mjese nakamata na uzeti kredit izra ena u procentima). U ovom zadatku ovaj parametar sedobije kada se godi nja kamata na kredit podijeli sa 12, odnosno sa brojem mjeseciu jednoj godini. Za razliku od Excel-a u Visual Basic-u interesnu stopu je potrebnoiz procenta prebaciti u realni broj. To se vr i djeljenjem sa 100 brojne vrijednostiinteresne stope prikazane u procentima (10% = 10/100 = 0.1).Nper predstavlja preostali broj otplatnih perioda (u na em slu aju to je 12 brojmjeseci koliko kredit treba da se vra a).Pv ozna ava sada nju vrijednost koja se otpla uje (u na em slu aju 10000predstavlja iznos kredita koji treba da se otpla uje).Fv je opcioni parametar. Predstavlja budu a vrijednost investicije, odnosnovrijednost koju elite da u tedite nakon zadnje uplate. Ako se FV izostavi, smatrase da tada ovaj parametar ima vrijednost 0 (nula), odnosno vrijednost koja e se

tediti je 0. U ovom zadatku ovaj parametar ima vrijednost 0.

Page 101: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 101

Type je opcioni parametar. Parametar koji pokazuje kada dospijeva rata i mo eimati vrijednost 0 (nula) ili 1 (jedan). Ovaj parametar ima vrijednost 0 (nula), akorata dospijeva za otplatu na kraju otplatnog perioda, a vrijednost 1 (jedan) ako ratadospijeva na po etku otplatnog perioda. Ako se ovaj parametar izostavi u funkcijiPMT, onda se podrazumijeva da ima vrijednost 0 i da rata dospijeva za otplatu nakraju otplatnog perioda. U ovom zadatku ovaj parametar ima vrijednost 0, to zna ida rata za kredit dospijeva na kraju mjeseca.

Na slici 4.4 prikazan je izgled izvr ne verzije programa, koji slu i za rje avanjepostavljenog zadatka. Zatim je prikazan kod koji se koristi u ovom programu.Mjese na rata koja se dobija kao rezultat pomo u funkcije PMT je sa predznakomminus.

Slika 4.4 Finansijska funkcija PMT

Private Sub CBPmt_Click()Rem pretvaranje procenta u broj

KamataGod = URATE.Text / 100Rem pretvaranje godine u mjesece

PeriodMj = UNPER.Text * 12Kredit = UPV.TextStednja = UFV.TextOtplata = UTYPE.TextRem poziv finansijske funkcije PMTMRataBroj = Pmt(KamataGod / 12, PeriodMj, Kredit, , Otplata)RBroj.Text = MRataBroj

Rem formatiranje zaokruzivanjem na 2 decimalna mjestaMRataDolar = Format(MRataBroj, "0.00 $")RPMT.Text = MRataDolarEnd Sub

Page 102: Programski jezik Visual basic

4 FUNKCIJE I PROCEDURE 102

4.8 INPUTBOX FUNKCIJA

InputBox je sistemska funkcija, koju obezbe uje Windows i koja omogu avakorisniku da unese odgovaraju i tekst preko tastature i potom potvrdi (OK dugme)ili odustane (Cancel dugme) od unosa. InputBox je funkcija koja vra a tekst, koji jekorisnik uneo. U slu aju da nije uneo ni ta ili odustao od dijaloga bi e vra enprazan tekst. Uneseni podaci mogu se memorisati u promjenljivoj definisanoj za tusvrhu ili prikazati na ekranu. Sintaksa ove funkcije je:

Promjenjiva=InputBox(prompt[, title][, default][, xpos][, ypos][, helpfile, context])

gdje:- Promjenljiva podrazumijeva ime promjenljive, kojoj se dodjeljuje ulazni podatakunesen preko ove funkcije.- Prompt je obavezan tekst poruke, koji daje informaciju koriniku ta se tra i odnjega da se unese preko ove funkcije. Porukom se korisnik bli e obavje tava, kojuakciju treba da preduzme i po eljno je da bude to detaljnija.- Title je tekst, koji se pojavljuje na naslovnoj liniji dijalo kog prozora ovefunkcije. Ovaj kao i sljede i parametri ove funkcije su opcioni.- Default je inicijalni tekst, predstavlja inicijalnu (default) vrijednost, koja se nudikorisniku kada se ovaj dijalo ki prozor pojavi. Mo e se izostaviti, pa je tadainicijalna vrijednost prazan tekst.- Xpos je numeri ka vrijednost, koja predstavlja broj piksela koliko e lijeva ivicaovog dijalo kog prozora biti pomjerena od lijeve ivice forme. Ako se ovajparametar izostavi, onda e dijalo ki prozor biti centriran.- Ypos je numeri ka vrijednost, koja predstavlja broj piksela koliko e gornja ivicaovog dijalo kog prozora biti pomjerena od gornje ivice forme. Ako se ovajparametar izostavi, onda e dijalo ki prozor biti centriran.- helpfile je tekst, koji predstavlja Help fajl, koji se poziva pokretanjem ove funkcije.Ako se ovaj parametar izostavi, onda e dijalo ki prozor biti centriran.- Context je numeri ka vrijednost, koja identifikuje sadr aj Help fajla.

Za bolje razumijevanje ove funkcije izvr ena je njena prezentacija na primjeru:

FF = InputBox("Unesi promjenjivu FF", "UNOS PODATAKA")Text1.Text = FF

Pozivanjem funkcije InputBox pojavljuje se okvir za dijalog, slika 4.5. Na slicise vidi uloga Prompta (Poruke) "Unesi promjenjivu FF" i Naslova "UNOSPODATAKA". Porukom se zahtijeva unos podataka u obliku stringa. Pri dnudijalo kog okvira nalazi se okvir sa prostorom za unos podataka. U navedenomprimjeru, pomo u tastature, unesen je tekst "567". Klikom na dugme OK unesenitekst bi e lociran u memorijskoj promjenljivoj pod imenom FF, dok se klikom nakomandu Cancel odustaje od memorisanja unesenog podatka. U na em primjeruvrijednost promjenjive FF zatim je prenesena u TextBox pod imenom Text1.

Page 103: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 103

Slika 4.5 Izgled dijalo kog prozora funkcije InputBox

Ako je uneseni podatak numeri ke prirode i nad njim treba da se dalje izvodeodre ene matemati ke operacije, onda se prilikom njegovog prihvatanja izInputBox funkcije u memorijsku promjenljivu vr i transformacija stringa u brojpomo u funkcije Val. Primjer unosa cijene nekog proizvoda:

Cijena=Val(InputBox("Unesi cijenu proizvoda", "Kasa")).

Parametri Promt i Title InputBox funkcije mogu da se unose i preko tekstualnihpromjenjivih koje su definisane van ove funkcije. Tako da kod predhodnogprimjera mo emo napisati i na sljede i na in:

Naslov1= "Kasa"Poruka1= "Unesi cijenu proizvoda"Cijena=Val(InputBox(Poruka1, Naslov1)).

Na osnovu ovoga se mo e lako zaklju iti da tekst poruke ne mora da budefiksan, ve da se mjenja u zavisnosti od toka izvr avanja programa. To se najlak evidi kroz sljede i primjer u kome je data funkcija, koja u itava N celobrojnihvrednosti i vra a maksimalnu. Na sli an na in se nalazi minimalna vrijednost nizabrojeva. U navedenom primjeru se uo avaju promjenjive koje su deklarisane kaoglobalne, da bi se omogu io prenos vrijednosti iz procedure u funkciju. U ovomprimjeru se vidi i na in kori enja funkcije MsgBox za ispis poruka, koja e bitiopisana u narednom poglavlju. Izgled izvr ne verzije ovog programa prikazan je naslici 4.6.Public Niz1(100) As IntegerPublic BrojCN As Integer

Private Sub CBUnos_Click()Dim Poruka1, ii, SNiz1 As StringDim i As IntegerBrojCN = Val(TxtBrojCN)

Page 104: Programski jezik Visual basic

4 FUNKCIJE I PROCEDURE 104

If BrojCN < 101 Then CijeliNiz.Text = "" For i = 1 To BrojCN ii = Str(i) Poruka1 = "Unesi " + ii + "-ti Clan Niza" aa = InputBox(Poruka1, "Unos clanova niza") Niz1(i) = aa SNiz1 = Str(aa) If i = 1 Then CijeliNiz.Text = SNiz1 Else CijeliNiz.Text = CijeliNiz.Text + "; " + SNiz1 End If Next iElse MsgBox ("Vas niz je definisan da se moze unijetimaksimalno 100 clanova niza")End IfEnd Sub

Private Function Maksimum(ByVal N As Integer) As IntegerDim Max, i As IntegerMax = Niz1(1)For i = 2 To N If Niz1(i) > Max Then Max = Niz1(i) End IfNext iMaksimum = MaxEnd Function

Slika 4.6 Nala enje maksimalnog elementa niza

Page 105: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 105

4.9 MESAGEBOX FUNKCIJA

MsgBox je sistemska funkcija, koju obezbe uje Windows i koja omogu avakorisniku da na ekranu vidi odre enu tekstualnu poruku, u vidu dijalo kog prozora.Sintaksa ove funkcije je:

Promjenljiva = MsgBox(prompt[, buttons][, title])

gdje:- Promjenljiva podrazumijeva ime promjenljive, kojoj se dodjeljuje vrijednostizabranog dugmeta na dijalo kom prozoru.- Prompt je obavezan tekst poruke, koji daje eljenu informaciju koriniku. Ovajtekst se navodi pod navodnicima ili preko neke tekstualne promjenjive.- Buttons je opcioni parametar, koji defini e dugmad koja e se pojaviti na ovomdijalo kom prozoru. Ovaj parametar mo e poprimiti jednu vrijednost navedenu utabeli 4.2, a ako se izostavi, smatra se da je izabrana vrijednost 0 i na dijalo komprozoru e se pojaviti samo dugme OK.- Title je tekst, koji se pojavljuje na naslovnoj liniji dijalo kog prozora ovefunkcije. Ovaj tekst se navodi pod navodnicima ili preko neke tekstualnepromjenjive.

Tabela 4.3 Dugmad koja se mogu pojaviti u funkciji MsgBoxNaziv Vrijednost Opis

vbOKOnly 0 Prikaz samo OK dugmeta (Difolt).

vbOKCancel 1 Prikaz OK i Cancel dugmadi.

vbAbortRetryIgnore 2 Prikaz Abort, Retry i Ignore dugmadi.

vbYesNoCancel 3 Prikaz Yes, No i Cancel dugmadi.

vbYesNo 4 Prikaz Yes i No dugmadi.

vbRetryCancel 5 Prikaz Retry i Cancel dugmadi.

vbCritical 16 Prikaz Critical Message ikonice.

vbQuestion 32 Prikaz Warning Query ikonice.

Funkcija MsgBox u praksi naj e ima jedan od sljede a tri oblika:1) Promjenljiva = MsgBox (Poruka, Opciona dugmad, Naslov)2) MsgBox (Poruka, , Naslov) , ili samo3) MsgBox (Poruka).

Page 106: Programski jezik Visual basic

4 FUNKCIJE I PROCEDURE 106

Iz navedenih formata funkcije MsgBox se vidi, da funkcija mo e da priminekoliko argumenata i da se rezultat njenog djelovanja dodjeljuje promjenljivoj, alisamo u slu aju navedenom pod 1), kada postoji mogu nost izbora dugmadi. Uostalim slu ajevima, pod 2) i 3) funkcija MsgBox primjenjuje se bez deklaracijepromjenljive i znaka za dodjelu (=). Slijedi primjer koda programa u kome se vrijednost izabranog dugmeta udijalo kom prozoru funkcije MsgBox dodjeljuje promjenjivoj Dugme3. Ovapromjenjiva mo e poprimiti samo dvije vrijednosti vbYes ili vbNo. Ova vrijednostse poredi u strkturi grananja If Then. Ako je izabrano dugme Yes blokira se pristupkomandnom dugmetu Command1 i Command3 na trenutno aktivnoj formi, a to suobi no dugmad kojim se zatvara baza podataka ili aktivna forma. Na ovaj na in sekorisnik programa upozorava da nije spasio neke podatke u bazu podataka i da akoelimo te podatke da spasimo, onda je potrebno da se blokira pristup dugmadima,

koja zatvaraju bazu ili aktivnu formu. Ako je izabrano dugme No ne e biti blokiranpristup komandnom dugmetu Command1 i Command3 na trenutno aktivnoj formi.

to je zn i, da je korisnik potvrdio da ne eli da spasi nazna ene podatke.

Dugme3 = MsgBox("Da li eli da spasi ove podatke orezervoaru u bazu podataka?", vbYesNo,"Poruka")If Dugme3 = vbYes Then 'ako zelis da spasis Command1.Enabled = False Command3.Enabled = FalseEnd If

Dobije se potpuno isti dijalo ki prozor i kada se primjeni sljede i kod, u komese umjesto naziva dugmeta napi e njegova brojna vrijednost iz tabele 4.3:

Dugme3 = MsgBox("Da li eli da spasi ove podatke orezervoaru u bazu podataka?", 4,"Poruka")If Dugme3 = vbYes Then 'ako zelis da spasis Command1.Enabled = False Command3.Enabled = FalseEnd If

4.10 REKURZIVNE FUNKCIJE I PROCEDURE

Funkcije i procedure mogu tokom svog izvr avanja da pozivaju razne funkcije iprocedure, ali mogu da pozivaju i same sebe. Pojam kada funkcija li procedurapoziva samu sebe nazivamo rekurzija. Rekurzijom treba rje avati samo oneprobleme, koji su definisani na rekurzivan na in i koji se ne mogu programirati najednostavniji na in. Za programere je nekada primjena rekurzije jednostavnija, alisa druge strane ona je neefikasnija jer se za izra unavanje rekurzivnih programa

Page 107: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 107

tro i vi e vremena. Najpoznatija rekurzivna funkcija je faktorjel, koja je definisanana sljede i na in

f(0) = 1f(n) = n * f(n-1), za n > 1.

Su tina ove definicije le i u tome da se prvo navedu vrijednosti za po etnuvrijednost argumenta. Zatim se vrijednost funkcije izra unava u zavisnosti odpredhodno izra unatih vrijednosti funkcije, koje odgovaraju manjim vrijednostimaargumenta. Polaze i od navedene definicije faktorjela mo e se napraviti program uVisual Basic-u sa sljede im kodom, a izgled rje enja ovog proglema za faktorjelbroja 16 prikazan je na slici 4.7. U ovom primjeru promjenjiva N je deklarisana naglobalnom nivou kao cjelobrojna vrijednost. Programirana funkcija Faktorjeltako e e tokom svog izvr enja poprimati samo cjelobrojne vrijednosti (Integer).Me utim, vidimo u kodu da je ova funkcija deklarisana da mo e da poprimi realnebrojeve (Single). Ovo je ura eno da bi se mogao izra unati faktorjel od ve ihcjelobrojnih vrijednosti, jer tip Integer mo e da poprimi samo brojne vrijednosti urasponu od -32768 do 32767, a Long u rasponu od -2147483648 do 2147483647.Sa druge strane tip Single mo e da poprimi brojeve u rasponu ±3.40282347E±38,pa je ova osobina u ovom programu zato iskori ena za definisanje pomenutefunkcije faktorjel.Private Function Faktorjel(ByVal N As Integer)As SingleIf N < 2 Then Faktorjel = 1Else Faktorjel = N * Faktorjel(ByVal N - 1)

Rem rekurzivni poziv funkcije FaktorjelEnd IfEnd Function

Private Sub CBFaktorjelFunk_Click()N = Val(TxtN)TxtFaktorjelFunk = Faktorjel(ByVal N)End Sub

Slika 4.7 Funkcija faktorjel

Page 108: Programski jezik Visual basic

4 FUNKCIJE I PROCEDURE 108

Rekurzivne procedure mogu da se realizuju na analogan na in, kao to jerije ena predhodna rekurzivna funkcija. Rekurzivne funkcije esto se prakti nomogu isprogramirati kori enjem iterativnog (ponavljaju eg) postupka. Predhodnorije ena funkcija za izra unavanje faktorjela prirodnih brojeva mo e se rije itinerekurzivno, kori enjem For petlje na sljede i na in.

Private Function FaktorFor(ByVal N As Single) As SingleRem iterativno rjesenjeDim i As IntegerFaktorFor = 1For i = 2 To N FaktorFor = i * FaktorForNext iEnd Function

Private Sub CBFaktorjelFor_Click()N = Val(TxtN)TxtFaktorjelFor = FaktorFor(ByVal N)End Sub

Page 109: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 109

5 NAREDBE SELEKCIJE I ITERACIJE

Skup naredbi ije se izvr avanje odvija u onom redoslijedu u kome su inavedene naziva se sekvencija. U programima se pojavljuju i ta ke grananja,odnosno mjesta u kojima se vr i izbor odgovaraju e odluke, poslije kojihizvr avanje programa je mogu e nastaviti u raznim smjerovima, zavisno odpostavljenih uslova. Postupak izbora jednog od mogu ih smjerova naziva seselekcija.

U programu sekvencija ini jednu logi ku cjelinu. U praksi se esto javljapotreba da se jedan sekvencija naredbi izvr i vise puta. Vi estruko izvr avanjejedne sekvencije naziva se iteracija (ponavljanje).

5.1 NAREDBE SELEKCIJE

Programski jezik Visual Basic ima dvije osnovne strukture selekcije. To sustrukture:

- If Then Else i- Case.

Bilo koji problem grananja u programu se mo e rije iti preko ove dvijestrukture. Koja e se struktura izabrati zavisi prvenstveno od broja grananja ukonkretnom problemu. Kada postoji jedno do tri grananja naj e se korististruktura If Then Else. Me utim, kada postoji vi e od tri grananja naj e sekoristi struktura Case.

5.1.1 If Then Else struktura

If Then Else predstavlja struktura grananja, koja se koristi u skoro svimprogramskim jezicima. Standardni dijagram ove strukte prikazan je na slici 5.1., astruktuirani na slici 5.2. Osnovu ovog grananja ini logi ki uslov. Ako je ovajlogi ki uslov zadovoljen (Da-True) izvr ava se jedna naredba (ili blok naredbi).Ako ovaj logi ki uslov nije zadovoljen (Ne-False) izvr ava se druga naredba (iliblok naredbi). Postoji vi e verzija ove strukture. Prva verzija ove strukture jesamao If Then struktura jednostrukog izbora, a njena sintaksa je

If uslov Then naredbapri emu je:

- uslov - uslov iskazan preko logi kih operatora =, >, <, < >, >=, <=.- naredba - mora da bude samo jedna nardba.

Uslov predstavlja logi ki izraz koji mo e imati vrednost ta no (True) ili neta no(False). U slu aju da je Uslov ta an izvr ava se jedna naredba navedena iza komande Then.

Page 110: Programski jezik Visual basic

5 NAREDBE SELEKCIJE I ITERACIJE 110

Slika 5.1 Standardni dijagrama toka Slika 5.2 Struktuirani dijagrama toka

Primjer 5.1Izra unavanje vrijednosti nekog izraza u obliku razlomka mogu e je samo onda

ako je imenilac razli it od nule i tada naredba glasi:

If Imenilac < >0 Then Rezultat = Brojilac/Imenilac

U slu aju da uslov nije zadovoljen (Imenilac = 0) navedena naredbabi e ignorisana (presko ena) i po e izvr avanje sljede eg programskog reda.

Druga verzija ove strukture je If ... Then ... End If struktura, a njena sintaksa je

If uslov ThenBlok1

End Ifpri emu je:

- uslov - uslov iskazan preko logi kih operatora =, >, <, < >, >=, <=.- Blok1 - mo e da bude samo jedna nardba, ali i vi e naredbi.- End If - predstavlja naredbu koja ozna ava kraj strukture grananja.

Sada se kod programa iz primjera 5.1 mo e napisati kao:

If Imenilac < >0 Then Rezultat = Brojilac/ImenilacEnd If

U jednom programu mo e postojati vi e struktura grananja, pa je tada punoprakti nija ova druga varijanta u odnosu na prvu varijantu, jer se lako uo ava krajsvake strukture grananja End If.

Page 111: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 111

Tre a verzija ove strukture je If ... Then ... Else ... End If struktura dvojnogizbora izbora gdje postoji mogu nost izvr avanja jedne od dvije naredbe (blokanaredbi), zavisno od uslova koji je ispunjen. Sintaksa ove strukture je

If uslov1 ThenBlok1

ElseBlok2

End Ifpri emu se Blok1 naredbi izvr ava ako je uslov1 ispunjen, a ako uslov1 nije

ispunjen tada se izvr ava Blok2 naredbi.

Primjer 5.2Izra unavanje modula nekog broja X. Kod ovog programa bi izgledao:

If X >= 0 Then Rezultat = XElse Rezultat = -XEnd If

etvrta verzija ove strukture je If ... Then ... ElseIf ... Else ... End If struktura,a njena sintaksa je

If uslov1 ThenBlok1

ElseIf uslov2Blok2

ElseIf uslov3Blok3

.

.

.Else

Blok4 ' naredbe koje se izvr avaju ako nije ispunjennijedan prethodni uslov

End IfPri emu se Blok1 naredbi izvr ava samo ako je uslov1 ispunjen. Ako uslov1

nije ispunjen tada se provjerava da li je ispunjen uslov2 i ako je on uspunjenizvr ava se Blok2 naredbi. Ako ni uslov2 nije ispunjen tada se provjerava da li jeispunjen uslov3 i ako je on uspunjen izvr ava se Blok3 naredbi. Me utim, ako nijeispunjen ni jedan od postavljenih uslova u ElseIf strukturama, tada se izvr avaBlok4 naredbi koji se nalazi u strukturi Else. Broj ElseIf blokova (odnosno uslova)u jednoj IF Then strukturi nije ograni en i zavisi samo od broja uslova koje jepotrebno postaviti u programu.

Page 112: Programski jezik Visual basic

5 NAREDBE SELEKCIJE I ITERACIJE 112

Primjer 5.3Neka se vr i progresivno oporezivanje zaposlenih radnika po sljede em principu:iznos plate do 1000 KM oporezuje se po stopi od 15%, od 1000 KM do 1500 KMpo stopi od 20%, od 1500 KM do 2000 KM po stopi od 25% i preko 2000 KM postopi od 30%. Kod ovog programa za obra un poreza, primjenom navedenestrukture, bi izgledao:

If Plata <= 1000 Then Porez = Plata * 0.15Elself Plata <= 1500 Then Porez = 150 + (Plata - 1000) * 0.2Else If Plata <= 2000 Then Porez = 150 + 100 + (Plata - 1500) * 0.25Else Porez = 150 + 100 + 125 + (Plata - 2000) * 0.3End If

U ovoj strukturi grananja treba posebno voditi ra ina da se uslovni izrazi morajupretpostaviti u rastu em redoslijedu promjenljive. Dakle, prethodni uslov ne smijeu sebi da sadr i naredni uslov. U primjeru 5.4 prikazan je kod programa koji e zaisti tekst zadatka kao u primjeru 5.3 vr iti pogre no izra unavanje poreza za platekoje se nalaze u opsegu od 1000 KM do 1500 KM, jer drugi uslov (Plata <= 2000)u sebi ve sadr i naredni uslov (Plata <= 1500).

Primjer 5.4Pogre no izra unavanje poreza.

If Plata <= 1000 Then Porez = Plata * 0.15Else If Plata <= 2000 Then Porez = 150 + 100 + (Plata - 1500) * 0.25Elself Plata <= 1500 Then Porez = 150 + (Plata - 1000) * 0.2Else Porez = 150 + 100 + 125 + (Plata - 2000) * 0.3End If

Rezervisane rije i If i End If uvijek se pi u u paru da bi se znao po etak i krajstrukture. Prilikom obavljanja nekoliko uzastopnih logi kih testiranja razli iteprirode potrebno je umetnuti jednu strukturu unutar druge. Pri tome je po eljno dase prilikom pisanja koda programa, svaka unutra nja struktura uvu e za nekoliko

Page 113: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 113

karaktera od po etka reda i da pri tome sve naredbe istog nivoa budu u istojvertikalnoj liniji.

Primjer 5.5Pregledno pisanje vi estrukog grananja pomo u strukture If ... Then... End If .

If MP > (HHMAX / 2 - 16) Then Rem prvi If If K < 4 Then Rem drugi If SR = MP + 8 MP = Int(SR) K = K + 1 Else MP = SR + SS * KORAK MP = Int(MP) If SS = 10 Then Rem tre i If SS = 0 Else SS = SS + 1 End If Rem kraj tre eg If End If Rem kraj drugog IfEnd If Rem kraj prvog If

Primjer 5.6Nepregledno pisanje vi estrukog grananja pomo u strukture If ... Then... End If .

If MP > (HHMAX / 2 - 16) ThenIf K < 4 ThenSR = MP + 8MP = Int(SR)K = K + 1ElseMP = SR + SS * KORAKMP = Int(MP)If SS = 10 ThenSS = 0ElseSS = SS + 1End IfEnd IfEnd If

Da bi se postigla bolja preglednost i kontrola koda programa po eljno je da seprilikom pisanja programa u kodu pi u komentari. Komentari se u kodu prepoznajupo tome to su napisani zelenom bojom. to postoji vi e komentara u kodu, to je

Page 114: Programski jezik Visual basic

5 NAREDBE SELEKCIJE I ITERACIJE 114

program razumljiviji. Ovo posebno dolazi do izra aja kada jedna osoba pi eprogram, a druga osoba treba da program analizira ili dora uje. Komentari su bitnisvakom programeru, kada vr i doradu programa poslije odre enog vremenskogperioda. Ako u programu ne postoje komentari programer e potro iti punovremena da otkrije za ta se koriste odre ene promjenjive i kako funkcioni ugrananja i petlje. Jedan uslov mo e biti i slo ena kombinacija uslova, koji se vezuju logi kimoperatorima Or (ili), And (i), NOT (negacija).

Primjer 5.7Napraviti uslov grananja pomo u operatora Or i And sa tri promjenjive.

If X<5 Or Y=7 Or Z>10 Then' kod kada je X manje od 5 ili Y jednako 7 ili Zve e od 10, odnosno kada je zadovoljen bar jedanod uslova

Else' kod kada nije zadovoljen bar jedan od trigornja uslova

End If

If X<5 And Y=7 And Z>10 Then' kod kada je X manje od 5 i Y jednako 7 i Z ve eod 10, odnosno kada su zadovoljena sva tri uslova

Else' kod kada nisu zadovoljena sva tri gornja uslova

End If

If (X<5 Or Y=7) And Z>10 Then' kod kada je X manje od 5 ili Y jednako 7, a Zve e od 10, odnosno kada je zadovoljen jedan odprva dva uslova i zadovoljen tre i uslov

Else' kod kada nije zadovoljen jedan od prva dvauslova i nije zadovoljen tre i uslov

End If

5.1.2 Case struktura

Select Case predstavlja struktura grananja, koja se koristi u skoro svimprogramskim jezicima. Predstavlja modernu varijantu If ...Then strukture.Standardni dijagram ove strukte prikazan je na slici 5.3. Struktura Select Case

Page 115: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 115

upotrebljava se, obi no, kada se na odre enom mjestu u programu donosi odluka orazli itim smjerovima izvr avanja programa na osnovu vrijednosti jednepromjenljive. Takvi slu ajevi mogu se rje avati i upotrebom strukture If ...Then,ali je, esto, struktura Select Case jasnija i efikasnija. Ova struktura je posebnopogodna za obradu menija sa vise opcija, odnosno liste sa vi e stavki prilikomprimjene metode Addltem.

Ova struktura se obavezno zavr ava propisanim rije ima End Select, kako bira unar prepoznao kraj ove strukture.

Slika 5.3 Standardni dijagrama toka Case strukture

Postoji vi e verzija ove strukture. Prva verzija ove strukture je samao SelectCase struktura, a njena sintaksa je

Select Case promjenljivaCase vrijednost1 Blok1Case vrijednost2 Blok2:.Case Else Rem Ovo mo e biti opcioni uslov

Blok4 Rem naredbe ako nijedan predhodni uslov nije ispunjenEnd SelectPri emu se Blok1 naredbi izvr ava samo ako promjenjiva po kojoj se ispituje

Select Case struktura poprimila ta no vrijednost1. Blok2 naredbi izvr ava se samoako promjenjiva po kojoj se ispituje Select Case struktura poprimila vrijednost2.Case Else je opcioni dio Select Case struktura, koji e se izvr iti samo akopromjenjiva po kojoj se radi selekt nije poprimila nijednu predhodno navedenu

Page 116: Programski jezik Visual basic

5 NAREDBE SELEKCIJE I ITERACIJE 116

vrijednost. Broj Case blokova (odnosno uslova) u jednoj Select Case strukturi nijeograni en i zavisi samo od broja uslova koje je potrebno postaviti. Za ovaj vidstrukture nije bitan redoslijed postavljanja Case vrijednosti.

Primjer 5.7Napisati program koji ispisuje poruku sa ocjenom koju je dobio u enik, na osnovuocjene koja se upisuje preko Textbox-a pod imenom Text1.

Ocjena = Text1Select Case OcjenaCase 2 poruka = "Ucenik je dobio ocjenu 2"Case 3 poruka = "Ucenik je dobio ocjenu 3"Case 4 poruka = "Ucenik je dobio ocjenu 4"Case 5 poruka = "Ucenik je dobio ocjenu 5"Case Else poruka = "Ucenik je dobio ocjenu 1"End SelectMsgBox(poruka, vbYesNo, "Ocjena")

Druga verzija ove strukture je Select Case Is struktura. Case Is naredba koristise u kombinaciji sa relacionim operatorima >, <, <=, >=, a njena sintaksa je

Select Case promjenljivaCase Is relacioni operator vrijednost1 Blok1Case Is relacioni operator vrijednost2, relacioni operator vrijednost3, ... Blok2:.Case Else Rem Ovo mo e biti opcioni uslov

Blok4 Rem naredbe ako nijedan predhodni uslov nije ispunjenEnd Select

Pri emu se Blok1 naredbi izvr ava samo ako promjenjiva po kojoj se ispitujeSelect Case struktura poprimila vrijednost, koja zadovoljava logi ki uslov zadatpomo u relacionog operatora. Blok2 naredbi izvr ava se samo ako promjenjiva pokojoj se ispituje Select Case struktura poprimila vrijednost, koja zadovoljava jedanod dva logi ka uslova.

Page 117: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 117

U ovoj strukturi grananja treba posebno voditi ra ina da se uslovni izrazi morajupretpostaviti u rastu em redoslijedu promjenljive. Dakle, prethodni uslov ne smijeu sebi da sadr i naredni uslov.

Primjer 5.8Neka se vr i progresivno oporezivanje zaposlenih radnika po sljede em principu:iznos plate do 1000 KM oporezuje se po stopi od 15%, od 1000 KM do 1500 KMpo stopi od 20%, od 1500 KM do 2000 KM po stopi od 25% i preko 2000 KM postopi od 30%. Kod ovog programa za obra un poreza bi izgledao:

plata = Text1Select Case plataCase Is <= 1000 porez = plata * 0.15Case Is > 2000 porez = 150 + (plata - 1000) * 0.2Case Is > 1500 porez = 150 + 100 + (plata - 1500) * 0.25Case Is > 2000 porez = 150 + 100 + 125 + (plata - 2000) * 0.3End Select

Tre a verzija ove strukture je Select Case To struktura. Ova struktura se koristi,kada uslov grananja elimo zadati kao interval brojeva. Uslov je zadovoljen i kadapromjenjiva poprimi vrijednost brojeva preko kojih je interval odre en, a njenasintaksa je

Select Case promjenljivaCase Broj1 To Broj2 Blok1Case Broj3 To Broj4 Blok2:.Case Else Rem Ovo mo e biti opcioni uslov

Blok4 Rem naredbe ako nijedan predhodni uslov nije ispunjenEnd Select

Pri emu se Blok1 naredbi izvr ava samo ako promjenjiva po kojoj se ispitujeSelect Case struktura poprimila vrijednost, koja se nalazi u intervalu izme ubroja1 i broja2. Za ovaj vid strukture bitan je redoslijed postavljanja Caselogi kih uslova, jer predhodni u sebi ne smije sadr ati naredni logi ki uslov.

Page 118: Programski jezik Visual basic

5 NAREDBE SELEKCIJE I ITERACIJE 118

Primjer 5.9Jedna trgova ka ku a prodaje robu uz razli ite iznose popusta. Za iznos robe koji jeizme u 100 KM i 499 KM uz 8% popusta. Za iznos robe koji je izme u 500 KM i2000 KM uz 12% popusta. Za iznos robe koji je ve i od 2000 KM uz 15% popusta.Treba izra unati iznos popusta za svaki navedeni slu aj.

Select Case CijenaCase Is < 100 Popust = 0Case 100 To 499 Popust = Cijena * 0.08Case 500 To 2000 Popust = Cijena * 0.12Case Is > 2000 Popust = Cijena * 0.15End Select

etvrta verzija ove strukture je kombinacija Case To i Case Is struktura. Ovastruktura se koristi kada elimo na napravimo slo en uslov grananja. Uslov jezadovoljen i kada promjenjiva poprimi vrijednost ili iz intervala brojeva (Case To)ili ako je zadovoljen logi ki uslov (Case Is), a njena sintaksa je

Select Case promjenljivaCase Broj1 To Broj2, relacioni operator vrijednost1 Blok1Case Broj3 To Broj4, relacioni operator vrijednost2 Blok2:.Case Else Rem Ovo mo e biti opcioni uslov

Blok4 Rem naredbe ako nijedan predhodni uslov nije ispunjenEnd Select

Primjer 5.10Case 100 To 499, Is = 777Case 500 To 2000, Is > 5000

Case struktura mo e biti nepregledna, ako svaki blok unutar Case strukture imaproizvoljnu du inu. To bi dovelo do toga da program postaje nepregledan, ako biimali vi e Case grananja. Zbog toga je po eljno da blokovi unutar Case strukturene budu previ e dugi. Ako blok treba da bude dug onda ga treba napisati kaoproceduru, tako da se u Case strukturi pi e samo poziv procedura koje se pozivaju,a ne itav kod tih procedure. Na ovaj na in Case stuktura postaje puno preglednijaza programera.

Page 119: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 119

5.2 NAREDBE ITERACIJE

Programski jezik Visual Basic ima nekoliko struktura iteracije (ponavljanja).Ovdje e biti predstavljene samo neke strukture:

- For ... Next,- Do While ... Loop- Do ... While Loop i- Do ... Until Loop.

Bilo koji problem vi estrukog ponavljanja u programu se mo e rije iti prekoovih struktura. Koja e se struktura izabrati zavisi prvenstveno od toga da li se nekastruktura ponavlja ta no odre eni broj puta, ili promjenjiv broj puta.

5.2.1 For ... Next struktura

For ... Next predstavlja strukturu ponavljanja, koja se koristi u skoro svimprogramskim jezicima. Struktuirani dijagram ove strukte prikazan je na slici 5.4.

Slika 5.4 Dijagram For Next

For ... Next petlja omogu ava da se odre enanaredba (ili skup naredbi) bezuslovno ponavljata no predvi eni broj puta koliko programer eli.Sintaksa ove naredbe glasi:

For promjenljiva = po etak To kraj [Step korak] Iterativne naredbe[Exit For]Next promjenljiva

Vrijednost promjenljive kojom po inje izvr avanje sekvencije je po etak.Iteracija traje sve dok promjenljiva ne dostigne vrijednost kraj. Memorijskapromjenljiva uve ava se za jedan (promjenljiva = promjenljiva + 1) u svakomsljede em ponovnom izvr avanju sekvencije, ukoliko nije odabrana opcija Stepkorak. Promjenljiva je, u stvari, broja ija vrijednost zavisi od veli ine koraka.Ako je korak 1 onda ga nije potrebno pisati u For ... Next strukturi. Me utim, akoelimo da korak bude razli it od jedan onda se on mora navesti. Korak ponavljanja

mo e biti cijeli, realan, ali i negativan broj, a mo e se napisati kao:- For x = 1 To 10 Step 0.5 (ponavljanje 19 ciklusa)- For x = 1 To 10 Step 2 (ponavljanje 5 ciklusa)- For x = 10 To 1 Step -1 (ponavljanje 10 ciklusa)

Page 120: Programski jezik Visual basic

5 NAREDBE SELEKCIJE I ITERACIJE 120

U primjeru 5.11. opisano je kako funkcioni e jedna For petlja, koja ponavljanjadvije naredbe u 4 ciklusa.

Primjer 5.11AA = 6BB = 0For j = 1 To 4 AA = AA - BB - j BB = BB + jNext j

Rje enje1) Ciklus j = 1, AA = 5, BB = 12) Ciklus j = 2, AA = 2, BB = 33) Ciklus j = 3, AA = -4, BB = 64) Ciklus j = 4, AA = -14, BB = 10Na kraju AA = -14, BB = 10

Unutar jedne For petlje mo e postojati jedna, ali i vi e If Then strukturagrananja. U primjeru 5.12 opisano je kako funkcioni e jedna For petlja, koja ima 4ciklusa. Ponavljaju se dvije naredbe i jedno If Then grananje (sa 5 kodnih linija).

Primjer 5.12AA = 2BB = 3For J = 1 To 4 BB = AA + BB - J AA = AA + J If BB = 6 Then AA = -6 Else AA = AA + J End IfNext J

Rje enje1) Ciklus j = 1, BB = 4, AA = 3, Else, AA = 42) Ciklus j = 2, BB = 6, AA = 6, Then, AA = -63) Ciklus j = 3, BB = -3, AA = -3, Else, AA = 04) Ciklus j = 4, BB = -7, AA = 4, Else, AA = 8Na kraju AA = 8, BB = -7

Primjer 5.13AA = 3BB = -1For J = 2 To 5BB = BB + 2 * JSelect Case BBCase 3 AA = AA - JCase 4 To 12 BB = AA - BB + JCase Is > 12 BB = AA - JCase Else BB = AA + JEnd SelectNext J

Rje enje1) Ciklus j = 1, BB = 4, AA = 3, Else, AA = 42) Ciklus j = 2, BB = 6, AA = 6, Then, AA = -63) Ciklus j = 3, BB = -3, AA = -3, Else, AA = 04) Ciklus j = 4, BB = -7, AA = 4, Else, AA = 8Na kraju AA= 8, BB = -7

Page 121: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 121

Unutar jedne For petlje mo e postojati jedna, ali i vi e Select Case strukturagrananja. Unutar jedne For petlje mo e se kombinovati vi e grananja od kojih suneka If Then, a neka Select Case. Bez obzira kako se kombinuju ova grananja,uvijek se izvr avaju jedna po jedna kodna linija. U primjeru 5.13 opisano je kakofunkcioni e jedna For petlja koja ima 4 ciklusa ponavljanja jedne naredbe i jednogCase grananja (sa 10 kodnih linija).

Unutar jedne For petlje mo e postojati druga For petlja. Ovo se uglavnomkoristi kod popunjavanja dvodimenzionih matrica. Ukupan broj ciklusa se odre ujekao umno ak broja ciklusa vanjske i broja ciklusa unutra nje petlje. U primjeru5.14 opisano je kako funkcioni e program u kome vanjska For petlja koja ima 2ciklusa (odre uje redni broj reda tabele), a unutra nja petlja ima 4 ciklusa(odre uje redni broj kolone tabele). U ovom programu ima ukupno 8 ciklusa, ukojima se upisuju podaci u MSFlexGrid dvodimenzionu tabelu.Primjer 5.14AA = 0BB = 3With MSFlexGrid1For I = 1 To 2 If AA > 0 Then BB = BB - AA Else AA = I + AA End If For J = 1 To 4 If BB > 1 Then AA = AA - I + J BB = BB - AA + I Else AA = AA - BB + I BB = BB + AA End If If AA > 5 Then .TextMatrix(I, J) = AA Else .TextMatrix(I, J) = BB End If Next JNext IEnd With

Rje enje1) Ciklus I = 1, If 1 - Else, AA = 1, J = 1, If2 - Then, AA = 1, BB = 3, If3 - Else, elija Tabele(1,1) = BB = 32) Ciklus I = 1, J = 2, If2 - Then, AA = 2, BB = 2, If3 - Else, elija Tabele(1,2) = BB = 23) Ciklus I = 1, J = 3, If2 - Then, AA = 4, BB = -1, If3 - Else, elija Tabele(1,3) = BB = -14) Ciklus I = 1, J = 4, If2 - Else, AA = 6, BB = 5, If3 - Then, elija Tabele(1,4) = AA = 65) Ciklus I = 2, If 1- Then, BB = -1, J = 1, If2 - Else, AA = 9, BB = 8, If3 - Then, elija Tabele(2,1) = AA = 96) Ciklus I = 2, J = 2, If2 - Then, AA = 9, BB = 1, If3- Then, elija Tabele(2,2) = AA = 97) Ciklus I = 2, J = 3, If2 - Else, AA = 10, BB = 11, If3 - Then, elija Tabele(2,3) = AA = 108) Ciklus I = 1, If1- Else, AA = 1, J = 1, If2 - Then, AA = 12, BB = 1, If3 - Then, elija Tabele(2,3) = AA = 12Na kraju popunjena tabela e izgledati

3 2 -1 6 9 9 10 12

Page 122: Programski jezik Visual basic

5 NAREDBE SELEKCIJE I ITERACIJE 122

Primjer 5.15AA = 0BB = 3With MSFlexGrid1For K = 0 To 1 For I = 1 To 2 For J = 1 To 4 If BB > 1 Then AA = AA - I + J - K BB = BB - AA + I - K Else AA = AA - BB + I + K BB = BB + AA + K End If If BB > 5 Then .TextMatrix(K,I,J)= AA Else .TextMatrix(K,I,J) = BB End If Next J Next INext KEnd With

Rje enje1) Ciklus K = 0, I = 1, J = 1, If1 - Then, AA = 0, BB = 4, If2 - Else, Tabele(0,1,1) = BB = 42) Ciklus K = 0, I = 1, J = 2, If1 - Then, AA = 1, BB = 4, If2 - Else, Tabele(0,1,2) = BB = 43) Ciklus K = 0, I = 1, J = 3, If1 - Then, AA = 3, BB = 2, If2 - Else, Tabele(0,1,3) = BB = 34) Ciklus K = 0, I = 1, J = 4, If1 - Then, AA = 6, BB = -3, If2 - Else, Tabele(0,1,4) = BB = -35) Ciklus K = 0, I = 2, J = 1, If1 - Else, AA = 11, BB = 8, If2 - Then, Tabele(0,2,1) = AA = 116) Ciklus K = 0, I = 2, J = 2, If1 - Then, AA = 11, BB = -1, If2 - Else, Tabele(0,2,2) = BB = -17) Ciklus K = 0, I = 2, J = 3, If1 - Else, AA = 14, BB = 13, If2 - Then, Tabele(0,2,3) = AA = 148) Ciklus K = 0, I = 2, J = 4, If1 - Then, AA = 16, BB = -1, If2 - Else, Tabele(0,2,4) = BB = -19) Ciklus K = 1, I = 1, J = 1, If1 - Else, AA = 19, BB = 19, If2 - Then, Tabele(1,1,1) = AA = 1910) Ciklus K = 1, I = 1, J = 2, If1 - Then, AA =19, BB = 0, If2 - Else, Tabele(1,1,2) = BB = 011) Ciklus K = 1, I = 1, J = 3, If1 - Else, AA = 21, BB = 22, If2 - Then, Tabele(1,1,3) = AA = 2112) Ciklus K = 1, I = 1, J = 4, If1 - Then, AA =23, BB = -1, If2 - Else, Tabele(1,1,4) = BB = -113) Ciklus K = 1, I = 2, J = 1, If1 - Else, AA = 27, BB = 27, If2 - Then, Tabele(1,2,1) = AA = 2714) Ciklus K = 1, I = 2, J = 2, If1 - Then, AA =26, BB = 2, If2 - Else, Tabele(1,2,2) = BB = 215) Ciklus K = 1, I = 2, J = 3, If1 - Then, AA =26, BB = -23, If2 - Else, Tabele(1,2,3) = BB = -2316) Ciklus K = 1, I = 2, J = 4, If1 - Else, AA = 52, BB = 30, If2 - Then, Tabele(0,1,1) = AA = 52

Unutar jedne For petlje mo e postojati i vi e od jedne unutra nje For petlja, aliprakti no se naj e koriste samo tri nivoa For petlje. Program koji ima tri nivoaFor petlje obi no se koristi za kod popunjavanja trodimenzionih matrica. Ukupanbroj ciklusa se odre uje kao umno ak broja ciklusa vanjske, prve unutra nje petljei druge unutra nje petlje. U primjeru 5.15 opisano je kako funkcioni e program ukome vanjska For petlja koja ima 2 ciklusa (odre uje dubinu tabele), prvaunutra nja For petlja koja ima 2 ciklusa (odre uje redni broj reda tabele), a drugaunutra nja petlja ima 4 ciklusa (odre uje redni broj kolone tabele). U ovom

Page 123: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 123

programu ima ukupno 16 ciklusa u kojima se upisuju podaci u trodimenzionutabelu.

Na kraju popunjena trodimenziona matrica e izgledati

Tabela u prvom redu (K = 0)

4 4 2 -3 11 -1 14 -1

Tabela u drugom redu (K = 1)

19 0 21 -1 27 2 -23 52

Za razliku od For ... Next strukture kod koje se ponavljanje nekog blokanaredbi vr i ta no odre eni broj puta svaki put nakon naredbe Next, kod struktureFOR ... ENDFOR ponavljanje nekog bloka naredbi vr i ta no odre eni broj puta,kada se do e do naredbe ENDFOR. FOR ... ENDFOR struktura ima sintaksu

For promjenljiva = po etak To kraj [Step korak] Iterativne naredbeENDFOR

5.2.2 Do While ... Loop struktura

Do While ... Loop predstavlja strukturu ponavljanja, koja se koristi u skoro svimprogramskim jezicima. Blok dijagram ove strukte prikazan je na slici 5.5. Zakori enje naredbe FOR moramo znati ta an broj ponavljanja. On se moranazna iti prije nego to se i jedno ponavljanje izvr i. Ali ponekad elimo ponavljatinaredbe sve dotle dok je ispunjen neki uslov. U tom slu aju ne znamo unaprijedkada se program pokrene koliko e biti ponavljanja. Petlja Do While ... Loopomogu ava da se odre ena naredba (ili skup naredbi) ponavlja sve dok postavljeniuslov ne bude ispunjen. Prema ovom blok dijagramu blok naredbi (Blok1) e seizvr avati sve dok je Uslov P ispunjen. U ciklusu ponavljanja kada Uslov P nebude ispunjen program izlazi iz petlje. Tada po inje da se izvr ava blok naredbi(Blok2) koji se nalazi izvan ove petlje. Kod ove strukture treba dobro voditi ra unada ne do e do pojave koja se zove beskona na petlja. Beskona na petlja je pojavau kojoj se petlja neprestano ponavlja, jer je uslov na ulazu u petlju uvijek ispunjen.Ako se desi da program u e u beskona nu petlju, tada je izlaz mogu samo ako seizvr i reset kompletnog programa Visual Basic. Ako prije toga nismo spasiliizmjene u programu, one e onda biti trajno izgubljene. Za ovu petlju jekarakteristi no da se blok koji se ponavlja (Blok1) ne mora nikada biti izvr avan,ako uslov za ponavljanje (Uslov P) u prvom prolazu kroz petlju nije ispunjen. Tadae se izvr avati samo naredbe Blok1.

Page 124: Programski jezik Visual basic

5 NAREDBE SELEKCIJE I ITERACIJE 124

Slika 5.5 Dijagram Do While Slika 5.6 Dijagram Do Loop While

Sintaksa ove naredbe glasi:

DO WHILE logi ki uslov Iterativne naredbe [LOOP] [EXIT]ENDDO

U ovoj strukturi logi ki uslov predstavlja izraz sastavljen od jedne ili vi epromjenjivih povezanih logi kim operatorima (=, <,>, < >, >= ili <=). Ovaj uslovmo e biti ispunjen ili ne ispunjen. Iterativne naredbe predstavljaju jednu ili vi enaredbi koje se ponavljaju u ovoj petlji. LOOP predstavlja klju nu rije kojaozna ava da se od ove naredbe program vra a na po etak petlje. Ovo kao i naredbaEXIT predstavlja opcionu komandu u ovoj strukturi. EXIT predstavlja komandukoja omogu uje trenutni izlazak iz ove petlje, bez obzira da li je po etni uslovispunjen.

U primjeru 5.16 opisano je kako funkcioni e jedna Do While ... Loop petlja kojaponavlja tri naredbe u 4 ciklusa.

Unutar Do While ... Loop petlje mo e postojati jedna, ali i vi e If Then ili Casestruktura grananja. U primjeru 5.17 opisano je kako funkcioni e Do While ... Looppetlja, koja ima 4 ciklusa ponavljanja dvije naredbe i jednog If Then grananja (sa 5kodnih linija).

Page 125: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 125

Primjer 5.16AA = 3BB = 2J = 1Do While J < 5 AA= AA + BB - J BB = BB + J J = J + 1Loop

Rje enje1) Ciklus, uslov ispunjen, AA = 4, BB = 3, j = 22) Ciklus, uslov ispunjen, AA = 5, BB = 5, j = 33) Ciklus, uslov ispunjen, AA = 7, BB = 8, j = 44) Ciklus, uslov ispunjen, AA = 11, BB = 12, j = 55) Ciklus se ne e izvr iti jer uslov nije ispunjen inakon 4 ciklusa petlja se zavr ava.Na kraju AA= 11, BB = 12

Primjer 5.17AA = 1BB = 2J = 0Do While J < 4BB = AA + BB - JAA = AA + JIf BB = 4 Then AA = -1Else AA = AA + JEnd If J = J + 1Loop

Rje enje1) Ciklus, uslov ispunjen, BB = 3, AA = 1, If - Else, AA = 1, j = 12) Ciklus, uslov ispunjen, BB = 3, AA = 2, If - Else, AA = 3, j = 23) Ciklus, uslov ispunjen, BB = 4, AA = 5, If - Then, AA = -1, j = 34) Ciklus, uslov ispunjen, BB = 0, AA = 2, If - Else, AA = 5, j = 45) Ciklus se ne e izvr iti jer uslov nije ispunjen inakon 4 ciklusa petlja se zavr ava.Na kraju AA= 5, BB = 0

5.2.3 Do ... Loop While struktura

Do ... Loop While struktura predstavlja strukturu ponavljanja, koja je vrlo sli nastrukturi Do While ... Loop. Glavna razlika izme u ove dvije strukture le i uinjenici da se blok naredbi koji se eli ponavljati (Blok1) u strukturi Do ... Loop

While mora izvr iti bar jednom. Dok se u predhodnoj strukturi ovaj blok naredbinije morao izvr iti ni jedan put. Blok dijagram ove strukte prikazan je na slici 5.6.Sintaksa ove naredbe glasi:

DO Iterativne naredbe LOOP WHILE logi ki uslov

U ovoj strukturi logi ki uslov predstavlja izraz sastavljen od jedne ili vi epromjenjivih povezanih logi kim operatorima (=, <,>, < >, >= ili <=). Ovaj uslovmo e biti ispunjen ili ne ispunjen. Iterativne naredbe predstavljaju jednu ili vi enaredbi koje se ponavljaju u ovoj petlji. LOOP WHILE predstavlja klju nu rije ,koja ozna ava da se od ove naredbe program vra a na po etak petlje, ali samo akoje logi ki uslov ispunjen.

Page 126: Programski jezik Visual basic

5 NAREDBE SELEKCIJE I ITERACIJE 126

Kod ove strukture treba tako e voditi ra una da ne do e do pojave koja se zovebeskona na petlja.

U primjeru 5.18 opisano je kako funkcioni e jedna Do ... Loop While petlja kojaima 4 ciklusa ponavljanja tri naredbe.

Primjer 5.18AA = 3BB = 2J = 1DoAA = AA + BB - JBB = BB + JIf AA = 6 Then BB = -7Else BB = BB + JEnd If J = J + 1Loop While J < 5

Rje enje1) Ciklus, uslov ispunjen, AA = 4, BB = 3, If - Else, BB = 4, j = 22) Ciklus, uslov ispunjen, AA = 6, BB = 6, If - Then, BB = -7, j = 33) Ciklus, uslov ispunjen, AA = -4, BB = -4, If - Else, BB = -1, j = 44) Ciklus, uslov ispunjen, AA = -9, BB = 3, If - Else, BB = 7, j = 55) Ciklus se ne e izvr iti jer uslov nije ispunjen inakon 4 ciklusa petlja se zavr ava.Na kraju AA= -9, BB = 7

5.2.4 Do ... Loop Until struktura

Do ... Loop Until struktura predstavlja strukturu ponavljanja, koja je vrlo sli nastrukturi Do ... Loop While. Glavna razlika izme u ove dvije strukture le i uinjenici da se u strukturi Do ... Loop Until blok naredbi koji se eli ponavljati

(Blok1) izvr ava sve dok logi ki uslov nije ispunjen, za razliku od predhodnestrukture Do ... Loop While kod koje se ovaj blok naredbi izvr ava dok je logi kiuslov ispunjen.

Slika 5.7 Dijagram Do Loop Until

I kod ove strukture se blok naredbi zaponavljanje mora izvr iti bar jednom. Blokdijagram ove strukte prikazan je na slici 5.7.Sintaksa ove naredbe glasi:

DO Iterativne naredbe LOOP UNTIL logi ki uslov

U ovoj strukturi logi ki uslov predstavljaizraz sastavljen od jedne ili vi e promjenjivihpovezanih logi kim operatorima (=, <,>, < >,>= ili <=).

Page 127: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 127

Ovaj uslov mo e biti ispunjen ili ne ispunjen. Iterativne naredbe predstavljajujednu ili vi e naredbi koje se ponavljaju u ovoj petlji. LOOP UNTIL predstavljaklju nu rije koja ozna ava da se od ove naredbe program vra a na po etak petlje,ali samo ako logi ki uslov nije ispunjen. Kod ove strukture treba tako e voditira una da ne do e do pojave koja se zove beskona na petlja.

U primjeru 5.19 opisano je kako funkcioni e jedna Do ... Loop Until petlja kojaima 4 ciklusa ponavljanja tri naredbe.

Primjer 5.19AA = 0BB = 1j = 0Do AA= AA - BB + 2 If AA < 2 Then BB = 5 Else BB = AA + 1 End If j = j + 1Loop Until j > 3

Rje enje1) Ciklus, uslov ispunjen, AA = 1, If - Then, BB = 5, j = 12) Ciklus, uslov ispunjen, AA = -2, If - Then, BB = 5, j = 23) Ciklus, uslov ispunjen, AA = -5, If - Then, BB = 5, j = 34) Ciklus, uslov ispunjen, AA = -8, If - Then, BB = 5, j = 45) Ciklus se ne e izvr iti jer uslov nije ispunjen inakon 4 ciklusa petlja se zavr ava.Na kraju AA= -8, BB = 5

Page 128: Programski jezik Visual basic

5 NAREDBE SELEKCIJE I ITERACIJE 128

Page 129: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 129

6 OBJEKTNO ORJENTISANO PROGRAMIRANJE

Iz brckog preuzeti poglavlje 2.Objektno orijentisan na in mi ljenja

Razvoj pravljenja softvera u svijetu traje godinama. Samo programiranjesoftvera pro lo je kroz nekoliko faza. Programiranje koje je napravilo revoluciju uproizvodnji softvera svodi se na niz programskih naredbi koje se sekvencijalnoizvr avaju jedna za drugom. Ovo i jeste jedna od prvih definicija programiranja,koja danas nije univerzalno primjenjiva. Sekvencijalno programiranje se izvodilokori enjem jasno definisanih programskih komandi – sekvenci, koje su se kasnijegrupisale u ve e module, koji su nazvani procedurama. Samim tim, ovakvoprogramiranje dobija naziv proceduralno. Veliki broj dana njih programskihjezika je proceduralan i visoko upotrebljiv. Prilikom proceduralnog programiranja,podaci koje program koristi su odvojeni od samog koda, tj. programske logike, toje velika mana s obzirom na umanjene mogu nosti kontrole pristupa podacima ilinjenog potpunog odsustva. Ovo je veliki sigurnosni rizik u programiranju. Ufilozofiji proceduralnog programiranja, program se posmatra kao crna kutija (blackbox), koja, poput procesa, prima ulazne podatke, obra uje ih i alje izlaznepodatke. Sami podaci se naj e uvaju u nekoj globalnoj bazi podataka ili naudaljenom serveru. Kod programa kod proceduralnog programiranja smje ten jeunutar funkcija i procedura, koje obra uju ulaze i generi u izlaze.

Objektno orijentisano programiranje uvodi jedan poseban termin – objekat.Objektno orijentisano programiranje je, kao to ime ka e, orijentisano ka objektu,koji je osnova ovakvog programiranja. Za po etak, za objekat je najbolje re i da jejedna od osnovnih gradivnih jedinica objektno orijentisanog programiranja. Akoprogram posmatramo kao ovjeka, bio bi sastavljen iz modula razli itih funkcija,poput organa. Ovi funkcionalni moduli sa injeni su iz sopstvenih dijelova, koji su,u stvari, objekti, koji me usobno komuniciraju. Definisanjem jednog ovakvogentiteta, u objektno orijentisanoj programerskoj filozofiji su sjedinjeni podaci ipona anje u jednom potpunom paketu. Obezbje ena je jednistvena kontrolapristupa podacima, po to objekat nije prost tip podatka, poput cijelog broja ili nizaznakova, ve skup primitivnijih vrsta podataka, kojima je, po potrebi, dodatoodre eno pona anje.Objekat

U programiranju termin objekat ima veoma jasno definisano zna enje. Alioslonimo se trenutno na definiciju objekta u logi nom smislu. Objekat je, dakle,svaki entitet koji je potrebno predstaviti pomo u odre enih standardom definisanihmetoda opisivanja prirodnih ili vje ta kih entiteta, pojava, doga aja. Dakle, ideja jejednostavna, sve se predstavlja objektom, pomo u objekta ili pomo u vi e razli itihobjekata. Objekat je jednistvena cjelina koja sadr i podatke i pona anje. Sam po

Page 130: Programski jezik Visual basic

6 OBJEKTNO ORJENTISANO PROGRAMIRANJE 130

sebi jedan objekat, mo e sadr ati druge podatke, cijele brojeve, nizove karaktera,brojeva i druge objekte. Podaci iskazuju stanje objekta, i zovemo ih atributi.Dakle, objekat ima stanje i pona anje. Uzmimo kao primer objekta jedan obi niradni sto kao na slici 6.1.

Slikati moj sto i navesti atribute

Slika 6.1 Objekat radni sto sa atributima

Da bi bio objekat, potrebno ga je predstaviti odre enim stanjem i pona anjem.Za po etak, odgovorimo na pitanje ta je to stanje jednog radnog stola? To sunjegovi atributi poput dimenzija, boje, materijal, broj fioka i tako dalje. Na stolumogu da se nalaze knjige, sveske, olovke i razni drugi predmeti. I oni su objekti,samo druga ijeg tipa nego to je sto. Svaki atribut stola ima neku svoju vrijednost.Ovo su vrijednosti koje jedan objekat razlikuju od drugog. Sve ove vrijednosti suodre enog tipa. Mo emo pretpostaviti da su dimenzije ovog stola date ucentimetrima. U programu, ovaj podatak bio bi zapisan kao nenegativna realnavrijednost, dok bi ime materijala izrade predstavljao neki niz karaktera. Broj fiokabi bio neki cijeli broj. Ono to na slici nije navedeno kao dio specifikacije jednogradnog stola jeste njegova mogu nost da se na njega postavljaju drugi objekti poputknjiga, olovaka i drugih predmeta. U programu, ovo bi moralo biti implementirano,tj. kao podatak/atribut/pokaziva stanja. Postojao bi neki niz objekata, kojipredstavljaju predmete postavljene na sto.

Sada je potrebno odgovoriti na pitanje, ta je to pona anje jednog radnog stola?Zdrav razum nam govori da se jedan radni sto ne “pona a”, osim ako u njega nisuugra eni neki motori koji ga pokre u. Mi kao programeri mo emo ovo pitanjesagledati iz jednog druga ijeg ugla. Samo pona anje ne mora zna iti da sam stone to radi, ve i ono to se radi sa stolom mo e predstavljati pona anje. Tako,proces slaganja knjiga mo emo nazvati stavik(), a proces uklanjanja svih knjiga sastola uklonik(). Zagrade nam omogu uju da razlikujemo atribute od metoda, jer suovo zaista metode pona anja stola, tj. metode kontrole nad njim.

Upravo smo naveli primjer objekta. Sada je potrebno objasniti jo neke termineobjektno orijentisanog koncepta, od kojih je svakako najbitniji pojam klasa. Uprirodi se mo e sresti veliki broj sli nih entiteta. Neki su identi ni, neki imaju jakomale razlike, a neki su potpuno razli iti. Me utim, ovjek je, zahvaljuju i svojojinteligienciji, izvr io neke osnovne klasifikacije stvari, bi a i pojava, koje je sretaotokom ivota. Tako je, na primjer, nastala klasifikacija ivih bi a na ljude, ivotinjei biljke. Prije svega je logi no da neke pojmove zovemo zajedni kim imenima,iako se oni u nekim detaljima razlikuju. Dakle, klasa u prirodnom poretku defini eneke zajedni ke osobine i pona anja entiteta, koje se ubrajaju pod njenuklasifikaciju, a koji se razlikuju u detaljima vezanih za odre ene osobine. U

Page 131: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 131

programiranju, klasa se tretira kao ablon objekta, koji se koristi prilikom kreiranjasvakog novog objekata. Klasa defini e koje e atribute i pona anja posjedovatisvaki objekat te klase, sve po etne vrijednosti i zahtjevana pona anja realizovanametodama. Dakle, svaki objekat je jedna stepenica svoje klase. Uzmimo kaoprimjer na radni sto. Za po etak, postoji vi e razli itih radnih stolova. Svaki odnjih ima e neke svoje dimenzije, bi e odre ene boje i ima e odre eni broj fioka.Svi oni su stolovi, tako da bi klasa “Sto” definisala sve objekte tog tipa,obavezuju i svaki od njih da posjeduju navedene atribute da iska u njihovo stanje.

Sama po sebi, klasa je tip podatka vi eg nivoa (cjelobrojne vrijednosti, karakterii ostali su prosti – primitivni tipovi podataka). Ukoliko bi, na primjer, pomenuti stomogao da prima i druge predmete pored knjiga, tada bi za predmete koji sepostavljaju na sto trebalo dodati atribut tipa “StoPredmet”. U objektnoorjentisanom konceptu, pojam kada jedan objekat sadr i druge objekte (ku a sadr izid, prozore, vrata ...) naziva se kompozicija. Relacija kompozicije izme u dvaobjekta naziva se relacija Ima. Dakle, ku a Ima prozor.

Metode i komunikacija me u objektimaKao to je ve re eno, metode realizuju zahtjevano pona anje klase. Svi objekti

iste klase imaju iste metode, tj. metode koje vr e istu funkciju ili niz funkcija. Onerealizuju aktivnosti objekata i obezbe uju pona anje. Neke metode omogu avajuizmjenu vrijednosti atributa. Ovo je veoma uobi ajena praksa u objektnoorjentisanom programiranju. U ve ini slu ajeva, pristup podacima unutar nekogobjekta bi trebalo da kontroli e sam objekat. Ni jedan objekat ne bi trebalo da mo eda mijenja vrijednosti atributa drugog objekta, ukoliko to nije eksplicitnodozvoljeno ili ne postoji metoda koja je zadu ena za to. Svaka metoda se moradefinisati, tj. za svaku metodu moraju biti poznati sljede i parametri:

- ime metode (jedinstveno opisuje odre eno pona anje),- argumenti (vrijednosti koje joj se proslje uju),- povratna vrijednost (tip povratne vrijednosti).

Metode slu e i za komunikaciju me u objektima. Komunikacioni mehanizamizme u objekata su poruke. Da bi neki objekat pozvao neku metodu drugogobjekta, on mu alje poruku, a odgovor drugog objekta defnisan je povratnomvrijedno u, koja je vra ena nakon inicijalne poruke. Na primjer, ukoliko biobjekat “Mirko” eleo da sazna ime objekta “Mira”, on bi pozvao metodu objekta“Mira”, pod imenom “getIme()”, koja je zadu ena da kao svoju povratnu vrijednostvrati niz karaktera koji predstavljaju ime.Enkapsulacija i interfejsi

U toku programiranja od velikog je zna aja vjerno kontrolisati pristup podacimanekog objekta. Veliki je propust, ukoliko programer u svakom momentu nijesvjestan, ko sve mo e nehotice promjeniti interne podatke nekog objekta. Ovo senajvi e izra ava prilikom testiranja softvera, bez kojeg ni jedan softver ne e iza ina tr te.

Page 132: Programski jezik Visual basic

6 OBJEKTNO ORJENTISANO PROGRAMIRANJE 132

Enkapsulacija je sposobnost objekta da sakrije svoje podatke ili da ih u iniselektivno dostupnim drugim entitetima. Odre ene detalje, koji nisu va ni zakori enje objekta, potrebno je sakriti od ostalih objekata, kako oni direktnimpristupom ne bi mijenjali bitne podatke. Na primjer, ukoliko neki objekat imamogu nost ra unanja neke slo ene matemati ke operacije. Korisniku je potrebnopru iti interfejs, koji e primiti parametre, koji su potrebni za ra unanje, a vratitisamo rezultat. Nije potrebno da korisnik poznaje algoritme, koji se koriste za samoizra unavanje, kao ni me upodatke ili konstante. Enkapsulacija se obezbje ujeinterfejsima, tj. implementacijom samog objekta.

Interfejs je osnovno sredstvo komunikacije me u objektima. Bilo kojepona anje objekta mora biti pozvano porukom preko interfejsa, koji mora potpunoda opi e kako korisnik komunicira sa objektom klase. U ve ini slu ajeva, interfejsisu javni, to je logi no, s obzirom da su posrednici u komunikaciji me u objektimai sa korisnikom (s tim to je, u programu, sam korisnik jedan objekat, predstavljenu kodu).

6.1 PRIMJERI IZ HELPA VISUAL BASIC PROGRAMA

U Helpu programskog jezika Visual Basic postoji dosta gotovih primjeraprograma, koji mogu poslu iti kao dobra osnova za u enje ovog programskogjezika. Svaki primjer se nalazi na posebnom direktorijumu i ima ve ura enegotove programske blokove, koji se mogu iskopirati u novi program, koji se pravi.Do ovih primjera se najlak e mo e do i preko explorera na direktorijumu"C:\Program Files\MicrosoftVisual Studio\MSDN98\98VS\1033\SAMPLES\VB98", kao na sljede oj slici 6.1.

Slika 6.1 Prozor sa direktorijumima gdje se nalaze gotovi primjeri programa

Na direktorijumu ActXDoc nalazi se primjer programa, koji omogu ujepozivanje nove forme i vezu prema nekom sajtu.

Na direktorijumu Alarm nalazi se primjer programa, koji prikazuje kori enjeobjekta Timer.

Na direktorijumu Atm nalazi se primjer programa, koji simulira kori enjebankomata. U ovom programu je prikazano kori enje Currency tipa podataka.

6.2 KOMUNIKACIJA SA PROGRAMABILNIM URE AJIMA

Page 133: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 133

U ovom poglavlju bi e predstavljeni neki primjeri koda programa, koji sekoriste za komunikaciju ra unara sa nekim programabilnim mjernim ure ajima.Svaki tip ure aja uglavnom ima razli ite komande, to malo ote avaprogramiranje. Sve naredbe koje se koriste za programsko upravljanje saure ajima, nalaze se u tehni koj dokumentaciji uz te ure aje. Kod programa zakomunikaciju sa ure ajima upisuje se u objekat, koji se pronalazi preko menijaInstrument Menager. Preko ovog menija se prvo pronalazi interfejs preko koga jeprogramabilni ure aj trenutno povezan sa ra unarom. Kada se izabere interfejspronalaze se svi programabilni ure aji, koji su u tom trenutku uklju eni i prekointerfejsa povezani sa ra unarom.

Page 134: Programski jezik Visual basic

6 OBJEKTNO ORJENTISANO PROGRAMIRANJE 134

Page 135: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 135

7 OBJEKTI VISUAL BASIC-A

Visual Basic posjeduje veliki broj gotovih objekata, koji stoje programeru naraspolaganju. U ovom poglavlju bi e predstavljeni samo neki objekti, koji senaj e koriste u Visual Basic-u. Za ve inu objekata su dati primjeri programa,kako se navedeni objekti mogu koristiti prilikom pisanja programa. Svi oni kojiele da prona u dodatne objekte, mogu ih lako prona i u helpu Visual Basica. Da

bi se ovi dodatni objekti mogli koristiti u programiranju, potrebno ih je prvo dodatiu paletu alatki.

7.1 OBJEKAT FORM

U pogramskom jeziku Visual Basic objekat Form predstavlja elementarni nivokomunikacije sa korisnicima. Naziva se radna povr ina, zato to na njupostavljamo potrebne objekte. Prilikom otvaranja novog projekta, inicijalno sekreira po etna forma pod nazivom Form1. U jednom programu mo e postojati vi eformi, pri emu treba voditi ra una da se omogu i prelazak sa jedne forme nadrugu. Forma posjeduje vi e svojstava, pomo u kojih pode avamo pojavu ipona anje forme u programu. Najbitnije osobine ovog objekta su: - Name za definisanje imena objekta. Ovo je klju na osobina svakog objekta uVisual Basic -u. U jednom projektu svaka forma mora imati svoje jedinstveno ime,preko koga se u kodu programa pozivamo na nju. U jednom projektu ne mogupostojati dva objekta sa istim imenom. Ime objekta mora da po ne sa slovom i imene mo e da se sastoji od dvije rije i.- BackColor za pode avanje boje pozadine forme.- BorderStyle za definisanje vrste okvira i pona anje forme. Mogu e vrijednosti su:

0-None: Forma je bez okvira.1-Fixed Single: okvir jednostruke debljine.2-Sizable: okvir koji omogu ava izmjenu dimenzije forme (inicijalna vrednost).3-Fixed Dialog: forma ima fiksni okvir kome se ne mogu mijenjati dimenzije.4-Fixed ToolWindow: forma ima izgled toolbox-a (manji font se koristi zanaslov forme) i nije mogu e menjati joj dimenzije.5-Sizable ToolWindow: isto kao 4 samo je mogu e mijenjati dimenzije forme.

- Caption za upis teksta koji e biti ispisan u naslovu forme.- Icon za definisanje ikone koja e predstavljati formu (vidi se u gornjem lijevomuglu). Ako je u pitanju glavna forma aplikacije, ta ikona naj e predstavlja isamu aplikaciju.- MaxButton prikaz dugmeta za maksimizaciju forme (True ili False).- MinButton prikaz dugmeta za minimizaciju forme (True ili False).

Page 136: Programski jezik Visual basic

7 OBJEKTI VISUAL BASIC-A 136

- Moveable odre uje da li korisnik mo e da pomjera formu. Vrijednosti True(mo e) ili False (ne mo e je pomjerati).- Picture omogu ava da na formu postavimo sliku.- WindowState odre uje dimenzije prozora prilikom otvaranja:

0-Normal: dimenzije prozora su iste kao one koje su postavljene u dizajnre imu.1-Minimized: prozor e biti prikazan minimizovan.2-Maximized: prozor e biti veli ine cijelog ekrana.

Prilikom rada sa formama mogu se primjenjivati sljede e metode:- Show slu i za prikaz odre ene forme. Komanda u kodu programa FrmPrva.Showe prikazati formu ije je ime (name osobina) FrmPrva.

- Hide slu i za uklanjanje forme sa ekrana, ali je ostavlja u memoriji. Sljede iShow metod je prikazuje znatno br e jer je forma ve u memoriji i nema potrebe dase u itava sa diska.- Load itava formu, ali je ne prikazuje na ekranu.- Unload uklanja formu i sa ekrana i iz memorije.

7.2 OBJEKAT LABEL

U pogramskom jeziku Visual Basic objekat Label se uglavnom koristi zaprikaz teksta, koji se pojavljuje uvijek na istom mjestu na formi. Ovaj fiksni tekstse naj e koristi kao pokazatelj ta je namjena nekog drugog objekta koji slijedi.U tom smislu naj e se koristi u kombinaciji sa objektima TextBox, ListBox,ComboBox i ostalima. Ovaj objekat ne mo e dobiti fokus, tj. prilikom izvr avanjaprograma ne mo ete kurzor postaviti na njega i mijenjati mu sadr aj. to se ti ekorisnika ovaj objekat je samo za itanje (Read-Only). Naravno, sadr aj teksta iostale osobine ovog objekta mo emo programski mijenjati u vrijeme izvr avanjaprograma, zavisno od potrebe. Tekst koji se ispisuje mo e se mijenjati prekoosobina (Properties) ili preko programa kroz kod. Labele se obi no postavljajulijevo ili iznad drugih objekata, kako bi tekst u njima bli e opisivao te objekte iliitavu formu. Najbitnije osobine ovog objekta su:

- Name za definisanje imena objekta.- Alignment za izbor poravnanja ispisa teksta u objektu (lijevo, desno, centrirano iliuz obadvije strane).- Appearance za izbor 3-D ili ravnog izgleda ivica objekta.- AutoVel omogu uje automatsko pro irenje irine objekta na onu veli inu kojaodgovara unesenom tekstu, ako je izabrana osobina True.- Caption za upis teksta koji e biti ispisan na ovom objektu.- Font za izbor tipa, stila i veli ine fonta.

Nad ovim objektom nije prakti no da se programiraju neki doga aji.

Page 137: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 137

7.3 OBJEKAT TEXTBOX

Objekat TextBox se koristi za unos i izmjenu brojnih i tekstualnihvrijednosti, u vrijeme izvr avanja programa. Koristi se i za prikaz rezultata obradeprograma. Objekat mo e dobiti fokus i naj e se postavlja poslije Label objekta.TextBox je vezani objekat i daje mogu nost pregleda ili izmjena vrijednosti polja izbaze podataka. Inicijalno, naziv prvog objekta je postavljen na Text1, sljede i Text2itd. Najbitnije osobine ovog objekta su:- Name za definisanje imena objekta.- Alignment za izbor poravnanja ispisa teksta u objektu (lijevo, desno, centrirano iliuz obadvije strane).- Appearance za izbor 3-D ili ravnog izgleda ivica objekta.- AutoVel omogu uje automatsko pro irenje irine objekta na onu veli inu kojaodgovara unesenom tekstu, ako je izabrana osobina True.- DataField za izbor kolone tabele baze podataka iz koje se preuzimaju podaci.- DataSource za izbor baze podataka sa kojom se vr i povezivanje.- DataFormat za izbor tipa podataka u kome e se prikazivati podaci.- Font za izbor tipa, stila i veli ine fonta.- MaxLength za odre ivanje maksimalne du ine teksta, koja se mo e ispisati uobjektu.- PasswordChar za izbor karaktera, koji e se koristiti za skriveno prikazivanjeteksta. Kada se ovaj objekat koristi za unos lozinke, naj e se za skrivanje tekstakoristi karakter "*".- Text za upis teksta, koji e biti ispisan u ovom objektu.

Nad ovim objektom se naj e koriste sljede i doga aji:- Change se pokre e kada se promjeni osobina Text u objektu.- LastFocus se pokre e kada se napusti ovaj objekat.- KeyPress se pokre e pritiskom tastera na tastaturi, kada se kursor nalazi u ovomobjektu.- MouseUp, MouseDown, MouseMove se pokre e prelaskom mi a preko objekta.

U ovaj objekat (sa imenom Text1) se programski preko koda upisuje eljenitekst (mora se navesti izme u navodnika " ") preko sljede e sintakse

Text1.Text = Tekst koji se upisuje u objekat"

Iz ovog objekta se u eljenu promjenjivu (sa imenom Proba1) programski prekokoda upisuje trenutni sadr aj ovog objekta (sa imenom Text1) preko sljede esintakse

Proba1 = Text1.Text

Page 138: Programski jezik Visual basic

7 OBJEKTI VISUAL BASIC-A 138

Ovaj objekat se mo e vrlo lako iskoristiti za pravljenje forme preko koje seomogu uje dalji pristup programu kao na slici 7.1. Za ovo su nam potrebna samodva ova objekta od kojih jedan koristimo za unos korisnika, a drugi za unoslozinke. TextBoks u koji se unosi korisnik ima standardnu postavku i omogu uje dase potpuno vidi tekst koji se unosi u njega (odnosno da se vidi ime korisnika).Drugi TextBoks za unos lozinke potrebno je podesiti, tako da tekst koji se upisuje unjega bude nevidljiv. To se posti e pode avanjem osobine PasswordChar na *. Uosobinu Text se unosi tekst koji elimo da poslu i kao lozinka (u na em primjeru jeto tekst "Mira"), kao na slici 7.2.

Slika 7.1 Forma za unos lozinke Slika 7.2 Unos lozinke

Slijedi kod programa koji omogu uje provjeru lozinke.Private Sub Form_Load() Rem Brisanje sadr aja obadvaTextBoxsa kada forma pokrene Txtkorisnik.Text = "" TxtLozinka.Text = ""End Sub

Private Sub Dalje_Click()Korisnik = Txtkorisnik.TextLozinka = TxtLozinka.TextIf Korisnik = "Mirko" Then

If Lozinka = "Mira" ThenMsgBox "Korisniku je odobren rad", 0, "Lozinka"Forma2.Show vbModal

Else MsgBox "Lozinka nije dobra. Probaj ponovo!", 0,"Lozinka"End If

Else MsgBox "Korisniku nije dozvoljen pristup!", 0,"Lozinka"End IfRem otkazivanje ulogovanja

End Sub

Page 139: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 139

7.4 OBJEKAT COMMANBUTTON

Pomo u komandnog dugmeta se naj e vr i upravljanjeu programu. Koristi se za pokretanje i zaustavljanje nekih procesa u programu. Nasebi mo e imati ili tekst ili sliku. Kada se ovaj objekat postavi na formu i zatimuradi klik mi a na njega, u kodu programa se automatski generi e procedura za radsa ovim objektom. Na jednoj formi obi no ima vi e ovih objekata. Jedno dugme seobi no koristi za pokretanje neke akcije u programu, drugo za prelazak na drugeforme, a tre e za kraj cijelog programa kori enjem komande "End". Najbitnijeosobine ovog objekta su:- Name za definisanje imena objekta.- Appearance za izbor 3-D ili ravnog izgleda ivica objekta.- Caption za upis teksta koji e biti ispisan na ovom objektu.- Font za izbor tipa, stila i veli ine fonta.

Nad ovim objektom se naj e koristi doga aj Click, a to je jednostruki klikmi a na ovaj objekat.

7.5 OBJEKTI CHECKBOX I OPTIONBUTTON

Kontrolna ku ica CheckBox je objekat koji omogu uje da korisnik uprogramu na jednoj formi mo e istovremeno da izabere vi e ponu enih opcija.Ovaj objekat slu i kao prekida za neku opciju u programu. Za razliku odprekida a koji ima dvastanja, ovaj objekat ih ima tri. Omogu ava vezivanje za polje iz baze podataka,tipi no za polje tipa Da/Ne. Ako imamo vi e CheckBox objekata na formi, oni sume usobno nezavisni, tj. ne isklju uju se me usobno. Sa druge strane dugmeizbora OptionButton je objekat koji se koristi kada korisnik u programu mo eistovremeno da izabere samo jednu od vi e ponu enih opcija. Izbor jednogdugmeta izbora, klikom mi a, trenutno poni tava sve ostale izbore koji se nalaze naformi ili na jednoj grupi, ako forma ima vi e grupa. Da bi na jednu formu postavilivi e grupa ovog objekta potrebno je koristiti objekat Frame, koji slu i zarazdvajanje grupa. Najbitnije osobine ovih objekata su:- Name za definisanje imena objekta.- Caption za upis teksta, koji e biti ispisan na ovom objektu.- Font za izbor tipa, stila i veli ine fonta.- Value za izbor objekta CheckBox (mo e biti ne izabran 0-vbUnchecked, izabran1-vbChecked, ili uslovno izabran 2-Grayed) i objekta OptionButton (mo e bitiizabran True ili ne izabran False).

Nad ovim objektima se naj e koristi doga aj Click, a to je jednostruki klikmi a na ovaj objekat ime se objekti biraju ili poni tavaju.

Page 140: Programski jezik Visual basic

7 OBJEKTI VISUAL BASIC-A 140

Na slici 7.3 prikazan je izgled programa u kome se pomo u dva objektaCheckBox biraju oblici fonta (Bold ili Italic), a pomo u tri objekta OptionButtonbira se samo jedna veli ina fonta (8 ili 12 ili 16). Doga aj Click kontrolne ku icepojavljuje se onog trenutka kad kliknete na tu kontrolu. Potprogram ovog doga ajaispituje je li kontrolna ku ica potvr ena (je li Value = vbChecked). Ako je, tekst sepretvara u podebljano ili nako eno pismo postavljanjem svojstava Bold ili Italicobjekata u kome se nalazi tekst koji se pode ava.

Slika 7.3 Upotreba objekta CheckBox i OptionButton

Kod koji prati ovaj program je:Private Sub ChkBold_Click()If ChkBold.Value=vbChecked Then Rem ako je potvr en TxtDisplay.Font.Bold = TrueElse Rem ako nije potvrden TxtDisplay.Font.Bold = FalseEnd IfEnd SubPrivate Sub ChkItalik_Click()If ChkItalik.Value=vbChecked Then Rem potvr en TxtDisplay.Font.Italic = TrueElse Rem ako nije potvrden TxtDisplay.Font.Italic = FalseEnd IfEnd Sub

Private Sub Opt8_Click()TxtDisplay.Font.Size = 8 Rem izabrana opcija 8

End Sub

Page 141: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 141

Private Sub Opt12_Click()TxtDisplay.Font.Size = 12 Rem izabrana opcija 12

End Sub

Private Sub Opt16_Click()TxtDisplay.Font.Size = 16 Rem izabrana opcija 16

End Sub

Da bi se inicijalno postavile osobine ovih objekata kada se program pokrene,potreno je u proceduri Form_Load inicijalno postaviti vrijednosti svakog objektana True (ako elimo da objekat bude selektovan) ili na False (ako elimo daobjekat ne bude selektovan). Kod koji prati ovaj program je:

Private Sub Form_Load()ChkBold.Value = FalseChkItalik.Value = FalseOpt8.Value = TrueOpt12.Value = FalseOpt16.Value = False

End Sub Ako se na jednoj formi eli istovremeno selekovati vi e objekata OptionButton,onda ih je potrebno postaviti u razli ite okvire (Frame). Na slici 7.4 prikazan jeizgled programa, u kome se bira jelo sa prilozima.

7.6 OBJEKAT FRAME

Objekat okvir Frame se koristi za grupisanje drugih objekata istog tipa najednoj formi. Na jednoj formi mo e postojati vi e okvira, kao u primjeru programaprikazanom na slici 7.4. Postupak grupisanja objekata OptionButton u okviruodvija se u sljede im koracima:1) Odaberite objekat okvira (frame) u alatnom okviru i kreirajte okvir na formi.2) Odaberite objekat OptionButton u alatnom okviru i kreirajte ga unutar okvira.3) Ponavljajte 2. korak za svaki novi objekat OptionButton, koji elite dodati u istiokvir.

Kreiranje okvira pa tek zatim kreiranje objekata na okviru, dopu ta vampomjeranje okvira zajedno sa objektima. Ako ve postoje e objekte pomjerite naokvir, oni se ne e pomjerati pri pomjeranju okvira. Ako imate ve kreirane objektena formi, a koje elite grupisati na novom okviru, prvo odaberite sve objekte.Zatim ih odsijecite sa cut i nalijepite sa paste na objekat okvira.

Najbitnije osobine ovog objekta su:- Name za definisanje imena objekta.- Caption za upis teksta, koji e biti ispisan kao naslov na ovom objektu.- Font za izbor tipa, stila i veli ine fonta.

Page 142: Programski jezik Visual basic

7 OBJEKTI VISUAL BASIC-A 142

Slika 7.4 Upotreba objekta CheckBox i OptionButton u vi e okvira

7.7 OBJEKTI LISTBOX I COMBOBOX

Okvir sa popisom - listom (List box slika 7.5) i kombinovani okvir (Combo boxslika 7.6) omogu ava prikaz vi e tekstualnih stavki u vidu liste. Iz ovih listikorisnik mo e da bira eljenu vrijednost, koja se zatim mo e prenositi u drugiobjekat. Okviri s popisom i kombinovani okviri su djelotvoran na in predstavljanjavelikog broja stavki korisniku na ograni enom prostoru. U pravilu, stavke suispisane okomito u jednoj koloni, iako se mo e napraviti i okvir sa vi e kolona.Ako je broj stavki ve i od onog to okvir sa popisom ili kombinovani okvir moguprikazati, u objektu e se automatski pojaviti trake za pomicanje (ScrollBar). Oviobjekti imaju ugra ene metode za dodavanje, brisanje i pronala enje vrijednosti iznjihovih zbirki tokom rada aplikacije.

Ovi objekti se mogu koristiti za direktno povezivanje sa bazama podataka.Obi no se koriste za prikaz podataka iz baze podataka, ali se mogu koristiti i zapunjenje podataka u bazu. Jedna lista se koristi za prikaz podataka iz jedne kolonebaze podataka.

Page 143: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 143

Slika 7.5 Objekat list box Slika 7.6 Objekat combo box

Najbitnije osobine ovih objekata su:- Name za definisanje imena objekta.- Appearance za izbor 3-D ili ravnog izgleda ivica objekta.- List polje u koje se unose stavke koje se nalaze u listi.- ItemData broj stavke koja mo e biti izabrana u listi.- MultiSelekt pokazuje koliko se stavki mo e izabrato, 0-samo jedna stavka, 1-vi estavki, ili 2-Grupa stavki.- Sorted za sortiranje elemenata u listi po Ascii kodu (ako je postavljeno True).- Text za prikaz izabrane stavke u kombinovanom okviru (combo box).

U Visual Basic-u postoji nekoliko komandi za programsko upravljanje listama:− AddItem - programski dodavanje novog lana liste.− Clear - bri e sve stavke iz liste.− Removeitem - bri e pojedina ne stavke iz liste.

Nad ovim objektom se naj e koristi doga aj Click (jednostruki klik mi a naovaj objekat) i doga aj DblClick (dvostruki klik mi a).

Kod koji prati ove naredbe u programu je:Private Sub Brisi_Click() List1.RemoveItem 3 Rem brisanje 4 lana liste,

jer prvi lan liste ima redni broj 0End SubPrivate Sub Brisisve_Click() List1.Clear Rem brisanje svih lanova listeEnd SubPrivate Sub Dodaj_Click() List1.AddItem "Dodatak1" Rem dodavanje novog lanaEnd Sub

Page 144: Programski jezik Visual basic

7 OBJEKTI VISUAL BASIC-A 144

Podaci se u listu mogu puniti direktno preko osobina objekata (Properties),preko osobine List u koju se dodaje jedan po jedan lan liste. Novi lan koji sedodaje prikazuje se odmah u listi. Mo ete dodati stavke u listu bez ponavljaju egkori tenja postupka AddItem tako da upi ete stavke u osobinu List u prozoru ssvojstvima. Nakon upisa svake stavke, pritisnite CTRL + ENTER za prelaz u idu uliniju. Ovakav postupak omogu uje vam upis vi estrukih unosa u vi ekolonskulistu sa popisom. Lista se mo e puniti i sa podacima koji se preuzimaju iz bazepodataka, a primjer jednog takvog koda je

Rezervoar.MoveFirstRem Pozicioniranje na pocetak tabele Rezervoar ubazi podatakaDo While Rezervoar.EOF = False priv = Rezervoar("Regbroj") Rem Preuzimanje vrijednosti u promjenjivu priviz kolone Regbroj tabele Rezervoar List1.AddItem (priv) Combo1.AddItem (priv)

Rezervoar.MoveNextLoop

Podaci se iz liste mogu preuzimati u promjenjive ili u druge objekte (naj eTextBox). Preuzimanje podataka iz liste se naj e radi preko procedure klik mi ana listu, a primjer jednog takvog koda je

Private Sub List1_DblClick() Text1.Text = List1.TextEnd Sub

Kako bi stvorili listu sa vi e kolona i mogu no u vi estrukog izbora, trebateodrediti njegove osobine Columns i MultiSelect.

Columns=2 (za dvije kolone)Columns=3 (za tri kolone)

Ako stvorite listu dovoljno veliku da prikazuje sve stavke u jednoj koloni, drugakolona e biti prazna, ostale stavke e biti prelomljene, a vodoravna klizna traka ese automatski pojaviti samo ako okvir s popisom nije dovoljno dug.

Svaki zapis u listi odgovara stavci popisa i postavljen je na True, ako je stavkaizabrana, ili na False, ako nije odabrana. Nakon to korisnik odabere stavke izpopisa, provjerava se svaki zapis matrice kako bi se vidjelo je li odabran (True).

Izbor istovremeno dvije stavke (druge i etvrte) u listipod imenom LstSedmica programski preko koda se vr inaredbama

LstSedmica.Selected(1) = TrueLstSedmica.Selected(3) = True

Slika 7.7 Izbor u listi

Page 145: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 145

7.8 OBJEKTI KLIZNE TRAKE HSCROLLBAR I VSCROLLBAR

Klizne trake HScrollBar (vodoravna traka) i VScrollBar (vertikalna traka) su estovezane uz okvire s tekstom ili prozore. Me utim ponekad ete vidjeti i kako sekoriste kao ulazne jedinice. Budu i da ovi objekti prikazuju trenutni polo aj naskali, oni se mogu koristiti zasebno za unos podataka u aplikaciji. Na primjer, mo ese koristiti za kontrolu ja ine zvuka ili za prilago avanje boja na slici. Obadvaobjekta su identi na osim po horizontalnoj ili vertikalnoj orijentaciji na ekranu.Klizne trake djeluju nezavisno od ostalih objekata i imaju vlastitu zbirku doga aja,svojstava i postupaka. Mogu e je podesiti minimalnu i maksimalnu vrijednost,korak izmjene vrijednosti u dizajn re imu i u vrijeme izvr avanja programa.Tako e je mogu e postaviti i pro itati aktuelnu vrijednost (poziciju) kliza a zavrijeme pomjeranja ili po zavr enom pomjeranju. Prilikom izvr avanja programavrijednost objekta mo ete pomo u mi a pode avati na tri na ina:- Pritiskom na strelice lijevo i desno, odnosno gore i dole zavisno da li je u pitanjuhorizontalna ili vertikalna traka za pomeranje. Ovaj na in se zove small change(mala izmjena).- Klikom na lijevu ili desnu, odnosno gornju ili donju stranu objekta u odnosu naaktuelnu poziciju kliza a. Ovaj na in se zove large change (velika izmena).- Klikom mi a na sam kliza , dr ite taster pritisnut i povla ite mi a lijevo-desno,odnosno goredole. Ovaj na in se zove scroll (pomjeranje).

Slika 7.8 Primjer kori enja kliznih traka

Najbitnije osobine kliznih traka su:- Name za definisanje imena objekta.- Max je maksimalna vrijednost kliza a (opseg vrijednosti od -32768 do 32768).- Min je minimalna vrijednost kliza a (opseg vrijednosti od -32768 do 32768).- LargeChange je inkrementalna ili dekrementalna vrijednost koju dobijemoklikom na kliza lijevo ili desno od gumba kliza a.

Page 146: Programski jezik Visual basic

7 OBJEKTI VISUAL BASIC-A 146

- SmallChange je inkrementalna ili dekrementalna vrijednost, koju dobijemoklikom na strelice.- Value je teku a vrijednost i zavisi od trenutnog polo aja kliza a.

Nad ovim objektom se naj e koriste sljede i doga aji:- Change je doga aj, kada se klikne mi em bilo gdje na kliznu traku.- Scroll je doga aj, kada se kliza na kliznoj traci pomjera mi em.

Na slici 7.8 prikazano je kako se klizne trake mogu koristiti kao ulazni objekti uprogramu. Sada slijedi dio koda koji pokazuje kako se kliza i koriste.Private Sub HScGodina_Change() Rem promjena vrijednostiText1.Text = HScGodina.ValueRem upis vrijednosti kliza a u TextBoxEnd SubPrivate Sub HScGodina_Scroll() Rem pomjeranje klizacaText1.Text = HScGodina.ValueEnd Sub

Form_Load()Rem na po etku se kliza i postavljaju na nuluDim x, y, z As Integerx = 0y = 0z = 0Text4.Text = xText5.Text = yText6.Text = zEnd Sub

Private Sub HScBoja1_Change() Rem 3 klizaca za 3 bojeText4.Text = HScBoja1.Valuex = CInt(Text4.Text)y = CInt(Text5.Text)z = CInt(Text6.Text)Text3.BackColor = RGB(x, y, z)Rem pravljenje boje od 3 broja (0-255) funkcijom RGBEnd Sub

Private Sub HScBoja1_Scroll()Text4.Text = HScBoja1.Valuex = CInt(Text4.Text)y = CInt(Text5.Text)z = CInt(Text6.Text)Text3.BackColor = RGB(x, y, z)End Sub

Page 147: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 147

7.9 OBJEKAT TIMER

Pomo u objekta Timer u Visual Basic-u mogu e je u jednakim vremenskimintervalima izvr avati neku akciju. Ta akcija mo e biti trivijalna, na primer ispisteku eg vremena i datuma na formi, a mo e se iskoristiti za mnogo slo enije svrhe:pravljenje rezervne kopije, alarm u programu tipa rokovnik i raspored, vremenskikontrolisano tampanje periodi nih izvje taja, slanje faksova i sli no. Koristi se i zamjerenje proteklog vremena od nekog fiksnog trenutka, ali i za izradu pauza u tokurada programa. Objekat Timer posjeduje osobinu kori enja sistemskog satara unara na kome se program izvr ava. U ovom objektu se vremenski intervalmo e postavljati sa rezolucijom koja iznosi do hiljaditog dijela sekunde. Tako emo emo programski uklju ivati i isklju ivati ovaj objekat. Objekat Timer prenosise, na uobi ajeni na in, u istoj veli ini iz palete dizajnera na radnu formu. Objekatje vidljiv samo dok se pi e program, ali kada se program pokrene ovaj objekat ne ebiti vidljiv na formi. Va no je napomenuti da prilikom intenzivnih operacija sadiskom, ra unskih operacija i sli nih koje znatno uporljavaju procesor, Timerobjekat ne e ta no odbrojavati vrijeme. Zbog ovoga on nije podesan za pisanjenekih vremenski intenzivnih ispitivanja i analiza procesa. Najbitnije osobineobjekta Timer su:- Name za definisanje imena objekta.- Enabled za aktiviranje objekta dodjeljivanjem vrijednosti True. Zavr etakizvr avanja procedure mo e se podesiti isklju ivanjem objekta Timer,postavljanjem osobine Enabled na False.- Interval je brojna vrijednost, koja pokazuje koliko traje dejstvo objekta u milisekundama (hiljaditi dio sekunde).

Nad ovim objektom se mo e koristi samo jedan doga aj Timer. U njega seupisuje kod koji elimo da se izvr i kada se objekat Timer starta.

Jedna od primjena objekta Timer je postavljanje digitalnog sata na radnoj formiu labeli namijenjenoj za te svrhe. Digitalni sat pokazuje sistemsko vrijeme uformatu: sat:minuta:sekunda (16:07:21). Da bi sat funkcionisao pod nadzoromobjekta Timer i uz sistemsko vrijeme objektu Timer potrebno je zadati vrijednostiTrue za osobinu Enabled da bi objekat bio uklju en i 1000 za osobinu Interval dabi sat a urirao vrijeme svake sekunde. Da bi se dobio zvu ni signal nakon svakogaktiviranja objekta Timer koristi se komanda Beep. Slijedi dio koda koji pokazujekako se digitalni sat pojavljuje u labeli pod imenom Label1.

Private Sub Form_Load() Timer1.Interval = 1000 Rem Interval 1 sekunda. Timer1.Enabled = TrueEnd Sub

Private Sub Timer1_Timer() Label1.Caption = Time BeepEnd Sub

Page 148: Programski jezik Visual basic

7 OBJEKTI VISUAL BASIC-A 148

Druga zna ajna primjena objekta Timer jeste definisanje vremena ekanja.Naime, objekat Timer mo e se uklju iti kako bi se program zaustavio na odre enovrijeme i na taj na in omogu ili korisniku izvr enje neke akcije. Na primjerpomo u ovog objekta se mo e podesiti potrebno vrijeme za uno enje lozinke. Akose akcija uspje no ne obavi u predvidenom vremenu objekat Timer onemogu avanastavak rada na aplikaciji. Slijedi dio koda koji pokazuje kako na jednoj formimogu koristiti dva objekta Timer. Objekat Timer1 se koristi za prikaz digitalnogsata u labeli Label1 svake 2 sekunde i prikazivanje dugmeta Comand1. ObjekatTimer2 se koristi za pravljenje ka njenja od 6 sekundi nakon ega se ovaj objekatisklju uje.

Private Sub Form_Load() Timer1.Interval = 2000 Rem Podesiti 2 sekunde. Timer2.Interval = 6000 Rem Podesiti 3 sekunde.End SubPrivate Sub Command1_Click() Command1.Visible = False Timer1.Enabled = TrueEnd SubPrivate Sub Command2_Click() Command2.Visible = False Timer2.Enabled = TrueEnd Sub

Private Sub Timer1_Timer() Label1.Caption = Time Command1.Visible = TrueEnd SubPrivate Sub Timer2_Timer() Label1.Caption = "drugo dugme" Command2.Visible = True Timer2.Enabled = FalseEnd Sub

Slijedi primjer programa u kome se objekat Timer koristi za periodi nomje anje 4 karte. Na slici 7.9 prikazana je razvojna forma ovog programa na kojojse vidi objekat Timer, jedna labela, jedan TextBox (za unos vremenskog ka njenja usekundama), tri komandna dugmeta i 8 okvira za unos slika. Okviri za unos slike supodjeljeni u dvije cjeline organizovane kao dva niza od po etiri okvira (Karta(0),Karta(1), Karta(2), Karta(3), Ulaz(0), Ulaz(1), Ulaz(2) i Ulaz(3)). Organizovanjeobjekata u niz omogu uje lak e ponavljanje iste komande nad vi e sli nih objekataupotrebom For petlje. Na slici 7.10 prikazana je izvr na verzija ovog programa nakojoj se vide samo 4 okvira za slike, ali u kojima se stalno u istim vremenskimrazmacima mijenjaju slike. Tako e se mo e uo iti da se u izvr noj verziji programaikonica objekata Timer ne pojavljuje.

Page 149: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 149

Slika 7.9 Izgled razvojne forme Slika 7.10 Izvr na verzija programa

Kod ovog programa je sljede iPrivate Sub Form_Load() Timer1.Enabled = False Rem zaustavljanje tajmeraEnd SubPrivate Sub Stop_Click()Rem dugme za zaustavljanje tajmera

Timer1.Enabled = FalseEnd SubPrivate Sub Mjesaj_Click()Rem dugme za pokretanje procesa mje anja karti

Timer1.Interval = Val(Text1.Text) * 1000Rem preuzimanje vremena ponavljanja iz TextBoxaTimer1.Enabled = TrueRem aktiviranje objekta Timer1 For i = 0 To 3 Ulaz(i).Visible = False Rem polazne 4 slike da se u ine nevidljive Next i

End SubPrivate Sub Timer1_Timer()Rem procedura koja pokazuje ta tajmer radi For J = 0 To 3 x = Round(Rnd * 3) Karta(J).Picture = Ulaz(x).Picture Rem slu ajno pojavljivanje 4 karte Next JEnd Sub

Za navedeni kod programa provjerite da li sve etiri karte imaju istuvjerovatno u pojavljivanja? Ako je potrebno sami doradite kod da to provjerite.

Page 150: Programski jezik Visual basic

7 OBJEKTI VISUAL BASIC-A 150

Posebno zna ajnu ulogu ima primjena objekta Timer prilikom kreacije raznihanimacija u kombinaciji sa naredbom Move. Naredbom Move defini e se smjer ipravac pomjeranja objekta (ili vi e njih), dok se uz pomo Timer- odre uje brzinakretanja. Format naredbe Move ima sljede i oblik:

Format naredbe Move ima sljede i oblik:imeobjekta.Move left[, top[, width[, height] ] ]

gdje jeleft - udaljenost od lijeve ivice forme,top - udaljenost od gornje ivice forme,width - definisanje irine objekta koji se pomjera,height - definisanje visine objekta koji se pomjera.Primjena naredbe Move nad objektom pod imenom Picture1:

Picture1.Move XPicture1.Move X,YPicture1.Move Picture1.Left X, Picture1.Top Y

gdje X i Y predstavljaju koordinate u pikselima za vodoravno i vertikalnopomjeranje objekta slike pod imenom Picture1. U tom slu aju podrazumijeva se daje gornje lijevo tjeme (vrh) forme koordinatni po etak sistema iji prvi red ta akapredstavlja x-osu, a prva kolona ta aka obrasca y-osu. Da bi dobili kontinuiranopomjeranje objekta potrebno je da se vrijednost kordinata x i y mijenja u nekojpetlji ili pomo u objekta tajmer. Brzina pokreta objekta odre uje se zadavanjemvrijednosti broja milisekundi osobini Interval objekta Timer. Slijedi primjer koda programa koji omogu uje da se u objekat Label (podimenom Label1) prvo postavi digitalni sat. Zatim se ovaj objekat kontinuiranopomjera po formi u jednakim vremenskim razmacima i u jednakim skokovima.Kada objekat do e do ivica forme on se sam vra a u suprotnom smjeru. Na tajna in se simulira odbijanje objekta od ivice. to je vremenski period ponavljanjakra i i du ina skoka manja to se dobija bolja animacija, odnosno osje aj da seobjekat kontinuirano kre e.

Private Sub Form_Load() Timer1.Interval = 500 Rem postavljanje vremena DeX = 100 Rem du ina skoka po x osi DeY = 100 Rem du ina skoka po y osiEnd SubPrivate Sub Timer1_Timer() Label1.Caption = Time Rem postavljanje sata Label1.Move Label1.Left + DeX, Label1.Top + DeY Rem pomjeranje objekta If Label1.Left < ScaleLeft Then Rem objekat nije do ao do desne ivice forme

DeX = 100 End If

Page 151: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 151

If Label1.Left+Label1.Width>ScaleWidth+ScaleLeft Then DeX = -100 Rem promjena smjera kretanja End If If Label1.Top < ScaleTop Then

DeY = 100 End If

If Label1.Top+Label1.Height>ScaleHeight+ScaleTop Then Rem objekat nije do ao do donje ivice forme DeY = -100 Rem promjena smjera kretanja End IfEnd Sub

Slika 7.11 Forma sa 3 tajmera Slika 7.12 Izvr na verzija programa

U jednom programu mo e da postoji vi e tajmera, koji mogu imati razli itavremena i razli ite funkcije. Na slici 7.11 prikazan je primjer programa sa tritajmera. Prvi tajmer se koristi za prikaz digitalnog sata u labeli. Drugi tajmer sekoristi za ka njenje od 4 sekunde. Tre i tajmer unosi ka njenje od 6 sekundi, anakon toga se aktiviraju prva dva tajmera. Slijedi primjer koda programa kojiomogu uje da se izra una vrijeme trajanja nekog procesa pomo u DoWhile petlje.

Private Sub Command2_Click()PauseTime = 5 ' postaviti cekanje na 5 sekundi.Start = Timer ' Postaviti start time.Do While Timer < Start + PauseTime Label4.Caption = "Pocela pauza od 5 sekundi" DoEvents ' Rezultat drugog procesa.LoopFinish = Timer ' Postaviti vrijeme kraja.TotalTime =Finish-Start 'Racunanje ukupnog vremena.Label4.Caption = "Zavrsila pauza od 5 sekundi"MsgBox "Pauza trajala " & TotalTime & " secondi"End Sub

Page 152: Programski jezik Visual basic

7 OBJEKTI VISUAL BASIC-A 152

7.10 OBJEKAT DRIVELISTBOX

Okvir za prikaz drajva (DriveListBox) namjenjen jeza prikaz i izbor svih disk jedinice u sistemu gdje seprogram izvr ava. Prilikom prikaza su uklju uju enii mapirani mre ni diskovi, koji se trenutno nalaze nara unaru (a:, c:, d:, e:, itd.). Sa lijeve strane oznakedisk jedinice se nalazi odgovaraju a ikona, zavisnood toga da li je u pitanju flopy drajv, hard disk, CDRom ure aj ili mapirani mre ni disk. Ovaj objekat se pona a kao ComboBox, kod koga je Slika 7.13 Drive List Box

osobina Style pode ena na 2 - Dropdown List. Logi no, ova lista je samo za itanje.Ovaj objekat se naj e kombinuje sa objektom DirectoryListBox za izbordirektorijuma i FileListBox za izbor fajlova. Najbitnija osobina ovog objekta jeDrive pomo u koje se vra a sadr aj trenutno izabranog drajva.

Nad ovim objektom se naj e koristi doga aj Change, koji se starta kada se uponu enoj listi drajvova ra unara izabere eljeni drajv. Primjer koda programa zaupis izabranog drajva iz objekta pod imenom DrivLista, u objekat za izbordirektorijuma sa imenom DirLista je sljede i.

Private Sub DrivLista_Change()Rem procedura se aktivira izaborom novog drajva

DirLista.Path = DrivLista.DriveEnd Sub

7.11 OBJEKAT DIRECTORYLIST BOX

Okvir za prikaz direktorijuma (DirectoryListBox) namjenjen je za prikaz i izborsvih direktorijuma, koji se trenutno nalaze na izabranoj disk jedinici. Ovaj objekatispisuje korisni ku strukturu direktorija i podirektorija. Struktura se prikazuje uobliku stabla kao u Windows Exsploru, a primjer kori enja ovog objekta prikazanje na slici 7.14. Ovaj objekat se naj e kombinuje sa objektom Drive List Box zaizbor disk jedinice i FileListBox za izbor fajlova.

Najbitnija osobina ovog objekta je Path koja sadr i teku u putanju dodirektorijuma, koji je trenutno selektovan.

Nad ovim objektom se naj e koristi doga aj Change, koji se starta kada se uponu enoj listi izabere eljeni direktorijum. Primjer koda programa za upisizabranog direktorijuma u objekat za izbor fajlova je sljede i

Private Sub DirLista_Change()FilLista.Path = DirLista.Path

End Sub

Page 153: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 153

Slika 7.14 Drive List Box, DirectoryListBox i FileListBox

7.12 OBJEKAT FILELISTBOX

Okvir za prikaz fajlova (FileListBox) namjenjen je za prikaz i izbor svih fajlova,koji se trenutno nalaze na izabranom (aktivnom) direktorijumu. Ovaj objekatispisuje fajlove u vidu liste. Mogu e je podesiti koji fajlovi e biti prikazani uzavisnosti od njihovih atributa i ekstenzije. Primjer kori enja ovog objektaprikazan je na slici 7.14. Ovaj objekat se naj e kombinuje sa objektom DriveList Box za izbor drajva i DirectoryListBox za izbor direktorijuma.

Najbitnija osobina ovog objekta je Path koja sadr i teku u putanju dodirektorijuma, za fasjl koji je trenutno selektovan.

Najbitnije osobine okvira za prikaz fajlova su:- Name za definisanje imena objekta.- Path koja sadr i teku u putanju do direktorijuma na kome se nalazi izabrani fajl.- Pattern koja sadr i string koji odre uje koja e grupa fajlova biti izabrana. Ovaosobina podr ava * i ? karaktere. (Primjer: *.bmp;*.gif;*.jpg).- Multiselect koja omogu uje istovremeni izbor vi e fajlova (0, 1 ili 2).

Nad ovim objektom se naj e koriste sljede i doga aji:- DblClick kada se klikne dva puta brzo na neki fajl.- PathChange kada se promjeni putanja do fajla.

Slijedi primjer koda programa, koji selektovanu sliku u okviru FileListBoxprikazuje u objektu Image (ImgSlika1), a putanju do izabrane slike u objektu Label(LabSlika). Ovaj kod se pokre e klikom na dugme (ComPrikaz).

Page 154: Programski jezik Visual basic

7 OBJEKTI VISUAL BASIC-A 154

Private Sub ComPrikaz_Click()Dim ImeSlike As StringRem provjera korjena direktorijumaIf Right(FilLista.Path, 1) = "\" Then ImeSlike = FilLista.Path + FilLista.FileNameElse ImeSlike=FilLista.Path+ "\" + FilLista.FileNameEnd IfLabSlika.Caption = ImeSlikeRem upis putanje u labeluImgSlika1.Picture = LoadPicture(ImeSlike)Rem upis izabrane slike u objekat ImageEnd Sub

U kodu programa ili prilikom pode avanja nekih osobina objekata u VisualBasic-u primjenjuju se sljede i zamjenski karakteri:

? - simbol koji mjenja jedan karakter.* - simbol koji mjenja jedan ili vi e karaktera.# - simbol koji mjenja jedan broj (0–9).[niz karaktera] - bilo koji jednostruki karakter iz niza karaktera (d-s, rezultatmogu biti sva slova izme u slova d i s).[!niz karaktera] - bilo koji jednostruki karakter koji nije iz navedenog nizakaraktera. (!d-s, rezultat mogu biti sva slova koja nisu izme u slova d i s).

Slijedi primjer kori enja zamjenskih karaktera u kombinaciji sa funkcijom Likei promjenjivom, koja je logi kog tipa.

Dim Provjera as BooleanProvjera = "aBBBa" Like "a*a" Rem daje True.Provjera = "F" Like "[A-Z]" Rem daje True.Provjera = "F" Like "[!A-Z]" Rem daje False.Provjera = "a2a" Like "a#a" Rem daje True.Provjera = "aM5b" Like "a[L-P]#[!c-e]" Rem True.Provjera = "BAT123khg" Like "B?T*" Rem True.Provjera = "CAT123khg" Like "B?T*" Rem False.

7.13 OBJEKTI LINE I SHAPE

Objekat Line koristi se za crtanje prave linije, a objekat Shape zacrtanje figura u obliku kvadrata, krugova i ovala na formi. Mogu e je izabrati tipgeometrijskog oblika, boju, ispunu, tip linije kojom se crta, kao i nekolikopredefinisanih vrsta rafiranja. Osnovna namjena ovih objekata je estetsko ure enjeforme na koju se postavljaju. Najbitnije osobine ovih objekata su:- Name za definisanje imena objekta.- BorderColor za izbor boje linije objekta.

Page 155: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 155

- BorderStyle za izbor tipa linije.- BorderWith za izbor debljine linije.- FillColor za izbor boje kojom je popunjen objekat Shape.- Shape za izbor figure (pravougaonik, krug ili oval) kod objekta Shape.

Na alost, nema doga aja koji se mogu aktivirati nad ovim objektima. Nijemogu e u izvr nom re imu jednostavno detektovati klik mi a na njih.

Crtanje linija i osnovnih oblika se mo e vr iti i programski preko koda. Usljede im primjerima prikazano je crtanje osnovnih objekata, pri emu su x i ybrojne vrijednosti u pikselima kordinata na formi. Boja linije se zadaje uheksadecimalnom kodu ili preko imena boje prema tabeli 7.1.

U primjerima crtanja objekata koji slijede Ime objekta ozna ava na kom objektuse crta eljeni oblik, a to je obi no glavna forma (Form1). Programski se mogucrtati slijede i oblici:- Crtanje ta keimeobjekta.PSet (X,Y), Boja- Crtanje linijeimeobjekta.Line (X1, Y1)-(X2, Y2), Boja- Pravljenje ramaimeobjekta.Line (X1, Y1)-(X2, Y2), Boja, B- Popunjavanje ramaimeobjekta.Line (X1, Y1)-(X2, Y2), Boja, B, BF- Crtanje krive linijeimeobjekta.Line (X1, Y1)-(X2, Y2), Bojaimeobjekta.Line -( X2, Y3), Boja- Crtanje kruga (x i y kordinate centra kruga)imeobjekta.Circle (x, y), polupre nik, Boja- Brisanje svih grafi kih objekata koji sunacrtani na objektu radi se sa funkcijom CLSimeobjekta.Cls

Tabela 7.1 Naziv bojaNaziv Vrijednost Opis

vbBlack &h00 crna

vbRed &hFF crvena

vbGreen &hFF00 zelena

vbYellow &hFFFF uta

vbBlue &hFF0000 plava

vbCyan &hFFFF00 cyan

vbWhite &hFFFFFF bijela

Primjer koda programa za crtanje na formi koja nosi ime Form1.Rem Crtanje ta ke Form1.PSet (50, 150), &HFF&Rem Crtanje linije Form1.Line (50, 50)-(1300, 1300), &HFF&Rem pravljenje rama Form1.Line (150, 150)-(2300, 2300), &HFF&, BRem pravljenje rama koji je popunjen bojom Form1.Line (550, 550)-(3300, 3300), &HFF&, BFRem pravljenje krive linije od dvije prave linijekoje su spojene Form1.Line (5000, 5000)-(7000, 8000), &HFF& Form1.Line -(7000, 5000), &HFF&

Page 156: Programski jezik Visual basic

7 OBJEKTI VISUAL BASIC-A 156

Rem pravljenje tri kruga koji imaju isti centar Form1.Circle (4000, 5000), 1000, vbGreen Form1.Circle (4000, 5000), 500, vbBlue Form1.Circle (4000, 5000), 200, vbRed

7.14 OBJEKTI IMAGE I PICTUREBOX

Ova dva tipa okvira za sliku se koriste za postavljanje slika na formu, direktnopreko osobina objekta ili programski kroz kod programa. Slike koje se postavljajutrebaju biti snimljene negdje na ra unaru u nekom od sljede ih formata: Bitmap,Icon, Jpeg i Gif.

Najbitnije osobine ovih objekata su:- Name za definisanje imena objekta.- AutoSize omogu uje mijenjanje veli ine okvira za sliku (objekta PictureBox)tako da bude prikazana kompletna slika, kada se ova osobina postavi na True. Akoje ova osobina postavljena na False onda je okvir uvijek fiksan bez obzira naveli inu slike. Ako je slika ve a od okvira bi e prikazan samo njen gornji lijevi dio.- Picture za povezivanje okvira sa gotovom slikom.- Strech omogu uje mijenjanje veli ine slike tako da ona u potpunosti popuni okvirza sliku (objekta Image), kada se ova osobina postavi na True. Tada mo e do i dodeformacije slike. Ako je ova osobina postavljena na False onda se bez obzira naveli inu okvira slika prikazuje u punoj veli ini. Ako je slika velika mo e se desitida ona onda prekrije ostale objekte na formi. Programski se slika mo e postavljati u okvir za slike preko procedureLoadPicture. Sintaksa koda kada se slika "vjezba.gif " preuzima sa ta no poznatogdirektorijuma je sljede a slika1.Picture=LoadPicture( c:\slike\vjezba.gif )

Sintaksa koda kada se slika preuzima sa direktorijuma na kome se nalazisnimljen projekta u kome se trenutni program pi e je sljede aslika2.Picture =LoadPicture(App.Path & "\vjezba.gif ")

Nad ovim objektima se naj e koriste doga aji Click i DblClick, a to jejednostruki i dvostruki klik mi a na ovaj objekat.

Nad ovim objektima se mogu koristiti i metode:- Cls za brisanje teksta koji je predhodno ispisan preko slike.- Print za ispis eljenog teksta preko slike. Primjer koda je sljede i

ImeOkvira.ClsImeOkvira.Print "proba"

Page 157: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 157

7.15 OBJEKAT DATA

Rad sa bazama podataka veoma je zna ajan za svaki programski jezik, pai za Visual Basic. Pomo u baza podataka mo e se uvati velika koli ina podataka,koji su razli itog tipa i koji su organizovani u tabele. Osnovni objekat zakomunikaciju sa bazom MS Access-a je Data koji omogu ava pristup poljima islogovima baze direktno na formi. U verziji programa Visual Basic 6.0 objekatData mo e se povezati samo sa MS Access bazom koja je snimljena u verziji 97. Sanovijim verzijama MS Access-a ne mo e ostvariti komunikaciju. Na slici 7.15prikazan je primjer kori enja objekta Data za prikaz podataka u TextBox-u, a naslici 7.16 prikaz podataka MSFlexGrid tabeli, List-i i ComboBox-u. Strelice naobjektu Data slu e za pomjeranje slogova u bazi podataka. Unutra nje strelice vr epomjeranje po jedan slog unaprijed ili unazad, a spolja nje za prelazak na prvi iliposljednji slog u bazi. Objekat Data, u su tini, ini sponu izme u Access-ovih bazapodataka i Basic-ovih objekata, odnosno omogu ava prikaz i aktivnosti sapodacima iz baze.

Slika 7.15 Objekat Data i TextBox Slika 7.16 Objekat Data i Tabela

Najbitnije osobine ovog objekta su:- Name za definisanje imena objekta.- Appearance za izbor 3-D ili ravnog izgleda ivica objekta.- Caption za upis teksta koji e biti ispisan u ovom objektu.- Conect za izbor baze sa kojom se vr i povezivanje (to je uglavnom Access).- DataBaseName za izbor putanje i imena baze podataka iz koje se preuzimajupodaci (D:\Mira\Fakultet FPE\Programski Jezici VB\ Data\Student97.mdb).- Font za izbor tipa, stila i veli ine fonta.- RecordsetType za odre ivanje na ina koti enja podataka sa kojim se povezujeovaj objekat (mo e biti: 0 - Table , 1 - Dynaset (difolt), 2 - Snapshot).- RecordSource za izbor odgovaraju e tabele iz padaju e liste, a na osnovupredhodno izabrane baze podataka.

Page 158: Programski jezik Visual basic

7 OBJEKTI VISUAL BASIC-A 158

Nad ovim objektom se naj e koristi doga aj Validate, koji se pokre e kadase klikne mi em na strelice objekta.

Sve osobine se mogu pode avati preko prozora Properties, ali i preko koda kaou sljede em primjeru

Data1.RecordsetType = vbRSTypeDynasetData1.DatabaseName = "Student97.MDBData1.RecordSource = "StudentData1.Refresh

Podaci iz baza podataka mogu se prikazivati, a zatim i obra ivati pomo u nizaVB objekata, a posebno pomo u objekata:

− Text Box,− List Box,− Label,− FlexGrid,− Image i dr.

Za povezivanje TextBox objekata sa odgovarajucim poljima iz baze podataka,da bi se podaci iz tih polja smjestili u objekte za tekst, neophodno je podesiti dvijeosobine TextBox-a: DataSource i DataField. Pode avanje DataSource osobineTextBox objekta vr i se preko objekta Data, pomo u kojeg je ve uspostavljenaveza sa bazom podataka.

Postupak dodjele osobine te e sljede im redom. Prvo se odabere eljeniTextBox objekat, pa se, zatim, u prozoru Properties klikne na osobinu DataSource.Klikom na strelicu koja se pojavljuje u produ etku reda navedene osobine razvijase lista svih objekata Data od kojih treba odabrati odgovaraju i. Na sli an na inpode ava se i osobina DataField. U istom prozoru Properties se bira osobinaDataField koje ima strelica okrenuta nadole. Klikom na ovu strelicu pojavljuje sespisak svih kolona iz tabele i potrebno je odabrati onu kolonu koje e imatiinterakciju sa odgovarajucim tekstualnim poljem. Tekstualnim objektima mogu se,izme u ostalog, odrediti osobinu Name, kojom se imenuje doti na kolona, iosobinu Text koja je, uglavnom, prazna. Slijedi primjer koda, koji prikazujepode avanje objekta Data i objekata TextBox.

Data3.RecordsetType = vbRSTypeDynasetData3.DatabaseName = "Student97.MDB" ' izbor bazeData3.RecordSource = "Student" ' izbor tabeleData3.Caption = "Unos preko koda"Text1.DataField = "Indeks" ' kolona tabeleText2.DataField = "Ime" ' kolona tabeleText3.DataField = "Prezime" ' kolona tabeleText4.DataField = "Smjer" ' kolona tabele

Page 159: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 159

Pod osnovnim operacijama sa bazama podataka obi no podrazumijevamo:- pronala enje odre enog sloga i eventualne izmjene na podacima,- dodavanje novog sloga,- brisanje postoje eg sloga,- pregled baze,- kopiranje i, eventualno- tampanje. Zadatak pojedinih operacija defini e se, skoro redovno, pomo u komandnog

dugmeta. Naredbe za tu namjenu temelje se, uglavnom, na svojstvima objektaRecordSet, na primjer:

With ImeBaze.RecordSet.Index = ImePolja Rem odre uje se polje po kome ebiti obavljeno indeksiranje i pretraga..Seek = Vrijednost Rem zadata vrijednost po kojojse vr i tra enje..NoMatch Rem zna i da slog nije prona en..MoveFirst Rem prelazak na prvi slog..MoveNext Rem prelazak na sljede i slog..MoveEOF ili .MoveLast Rem prelazak na zadnji slog..AddNew Rem dodavanje novog sloga, pri emu senaredbomImeObjektaTekst.Fokus Rem postavlja pokazivac u onotekstualno polje od kojeg po inje upis podataka zanovi slog..Delete Rem bri e se odgovaraju i slog. Naravno,da bi slog bio izbrisan potrebno ga je prethodnoprona i.

Prilikom rada sa bazama podataka zbog sigurnosti bitno je povremeno pravitirezervnu kopiju baze. Rezervna kopija bilo kog fajla na ra unaru se kreira pomo usljede e sintakse:

FileCopy Adresalzvora, AdresaCilja.Primjer 1.Kopiranje Word dokumenta pod imenom "Evidencija.doc", koji se nalazi na

lokaciji C: diska, na istu lokaciju, ali pod imenom "Kopija1.doc".FileCopy "C:\Evidencija.doc", "C:\Kopija1.doc"

Primjer 2.Kopiranje Word dokumenta pod imenom "Evidencija.doc", koji se nalazi na

lokaciji C: diska, na drugi direktorijum sa putanjom "C:\Proba", ali pod istimimenom.FileCopy "C:\Evidencija.doc", "C:\Proba\Evidencija.doc"

Page 160: Programski jezik Visual basic

7 OBJEKTI VISUAL BASIC-A 160

Primjer 3.Kopiranje Word dokumenta "Proba3.doc", koji se nalazi na lokaciji C: diska, na

direktorijum na kome se nalazi teku i projekat Visual Basica sa kojim radimo, alipod istim imenom kao i originalni fajl.FileCopy "C:\Proba3.doc", App.Path & "\Proba3.doc"Primjer 4.

Kopiranje Word dokumenta "Proba.doc", koji se nalazi na direktorijum na komese nalazi teku i projekat Visual Basica sa kojim radimo, na isti direktorijum nakome se nalazi teku i projekat Visual Basica sa kojim radimo, ali pod drugimimenom "\Kopi4.doc".FileCopy App.Path & "\Proba.doc",App.Path & "\Kopi4.doc"

7.16 OBJEKAT OLE

OLE objekat (OLE Container) mo ete povezati ili umetnuti bilo kojiobjekat koji podr ava automatizaciju. Koriste i ovaj objekat, va a Visual Basicaplikacija mo e prikazati i upravljati podacima iz drugih Windows temeljenihaplikacija, kao to su Microsoft Excel i Microsoft Word. OLE objekat koristi se zastvaranje aplikacije usmjerene na dokumente. U takvoj aplikaciji, korisnikkombinuje podatke iz razli itih aplikacija kako bi stvorio jedan dokument. Takavtip aplikacije mo e biti ure iva teksta, koji korisniku omogu uje upis teksta tezatim umetanje Excel tabele ili grafikona kao na slici 7.17.

Slika 7.17 Povezani dokumenti pomo u OLE objekata

Page 161: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 161

Kad pove ete objekat, u svoju aplikaciju ubacujete oznaku mjesta (a ne samestvarne podatke) za povezan objekat. Na primjer, kad pove ete niz elija Exceltabele sa Visual Basic aplikacijom, podaci pridru eni sa elijama spremljeni su udrugoj datoteci. U OLE objektu nalazi se samo veza prema podacima i slikapodataka. Tokom rada sa va om Visual Basic aplikacijom, korisnik mo e aktiviratipovezani objekat (na primjer dvoklikom na objekat), a aplikacija Excel tabele e seautomatski pokrenuti. Korisnik zatim mo e mijenjati te elije Excel tabele koriste iaplikaciju Excel tabele. Kod mijenjanja povezanog objekata, izmjena se obavlja uodvojenom prozoru izvan kontrole OLE kontejnera. Kad je objekat povezan saVisual Basic aplikacijom, trenutni podaci objekata mogu se vidjeti iz bilo kojeaplikacije, koja sadr i veze sa tim podacima.

Slika 7.18 Izbor dokumenata za povezivanje sa OLE objektom

Svaki put kad na formi stvori OLE objekat, Visual Basic prikazuje dijalo kiokvir Insert Object kao na slici 7.18. Taj dijalo ki okvir se upotrebljava zaubacivanje povezanih ili umetnutih objekata tokom izrade aplikacije. Dijalo kiokvir Insert Object predstavlja listu dostupnih objekata koje mo ete povezati iliumetnuti u svoju aplikaciju. Postupak povezivanja odvija se kroz sljede e korake:1) Postaviti OLE objekat na formu. Prikazat e se dijalo ki okvir Insert Object. Tajdijalo ki okvir se mo e, tako e, prikazati klikom desnom tipkom mi a na OLEobjekat, te izborom naredbe Insert Object.2) Odaberite dugme izbora Create from File.3) Odaberite dugme Browse. Prikazat e se dijalo ki okvir Browse sli an WindowsExplorer.4) Odaberite datoteku sa kojom se eli povezati OLE objekat.5) Kliknite Insert za povratak u dijalo ki okvir Insert Object.

Page 162: Programski jezik Visual basic

7 OBJEKTI VISUAL BASIC-A 162

6) Odaberite kontrolnu ku icu Link u dijalo kom okviru Insert Object, te odaberitedugme OK za stvaranje povezanog objekata.

Kad koristite povezani objekat, svaki korisnik koji pokrene va u aplikacijumora imati pristup (valjanu putanju) povezanoj datoteci i kopiju aplikacije, koja jestvorila datoteku. Ina e, kad se pokrene va a aplikacija, prikazat e se slikaoriginalnih podataka, ali korisnik ne e biti u mogu nosti mijenjati podatke, niti evidjeti promjene, koje su napravili drugi u povezanim podacima. To mo e bitiva no, ako se va a aplikacija izvodi u mre i. Ako va a aplikacija sadr i povezaniobjekat, mogu e je da e podaci tog objekata biti promijenjeni u drugoj aplikaciji,dok se va a aplikacija ne izvodi. Idu i put kad se va a aplikacija pokrene, promjeneu izvoru ne e se automatski pojaviti u OLE objektu. Kako bi prikazali trenutnepodatke u OLE objektu, upotrijebite postupak Update objekta:

ImeOLEObjekta.UpdateAko korisnik eli snimiti promjene u povezanom objekatu, mora ih snimiti iz

izbornika ActiveX sastavnog dijela. Postupak SaveToFile OLE objekta primjenjiv jesamo za umetnute objekate.

Drugi na in stvaranja objekata tokom izrade aplikacije je kori tenje dijalo kogokvira Paste Special. Ovaj dijalo ki okvir je koristan, samo ako elite upotrijebitidio datoteke, na primjer, skup elija iz Exsel tabele, ili odlomak iz Worddokumenta. Kori enje dijalo kog okvira Paste Special se vr i kroz sljede ekorake:1) Pokrenite aplikaciju koja sadr i podatke koje elite povezati ili umetnuti.2) Odaberite podatke koje elite povezati ili umetnuti.3) U izborniku Edit ActiveX sastavnog dijela, odaberite Copy. Podaci e sespremiti za kopiranje.4) U Visual Basicu, kliknite na eljeni OLE objekat sa desnom tipkom mi a, iodaberite naredbu Paste Special.5) Odaberite dugme izbora Paste, ako elite stvoriti umetnuti objekat, ali koji nijepovezan sa izvornim dokumentom. Ako odaberite dugme izbora Paste Link stvarase povezan objekat. Ako ve postoji objekat, koji je umetnut ili povezan, poruka evas upitati elite li obrisati taj postoje i objekat i stvoriti novi na njegovom mjestu.Odaberite dugme OK za stvaranje objekata.

7.18 OBJEKAT MSFLEXGRID ZA TABELARNI PRIKAZ

Tabelarno prikazivanje podataka predstavlja najpregledniji na in prikazapodataka u tekstualnim editorima, pa samim tim i na ekranu ra unara. Tabelarniprikaz raznih podataka posebno dobija na zna aju, ako se zna da je danas veomarasprostranjena upotreba relacionih baza podataka, koje su organizovane u oblikudvodimenzionalnih tabela. Upotreba struktura For... Next i Do... Loop, u radu sa

Page 163: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 163

velikim dvodimenzionalnim nizovima, mo e zna ajno da u tedi vrijeme upisa iitanja podataka iz tabela. Upotrebom programskih petlji prilikom rada sa tabelama

se zna ajno skra uje programski kod.Za tabelarni prikaz podataka Visual Basic posjeduje nekoliko objekata, ali je

najzna ajniji MSFlexGrid objekat. Budu i da su podaci u relacionim bazamapodataka ure eni u obliku dvodimenzionalnih tabela, MSFlexGrid objekat mo eposluziti i za prikazivanje informacija iz takvih baza podataka. MSFlexGri tabele,koriste se za tabelarni prikaz raznih podataka, kao i za prikazivanje podataka izdvodimenzionalnih promjenljivih (dvodimenzioni niz). MSFlexGrid objekat se nenalazi na standardnoj listi objekata (paleta alatki), ve ga treba prethodno prona i ipostaviti. Potrebno je prvo klikom mi a na meni Project (na liniji menija) otvaritilistu opcija. Od ponu enih treba odabrati opciju Components. Nakon toga,pojavljuje se okvir za dijalog sa spiskom svih objekata (kontrola) kao na slici 7.19.

ekiranjem komponente Microsoft FlexGrid 6.0 i klikom na dugmi OK na paletialatki pojavi e se objekat MSFlexGrid kao na slici 7.20. Pomo u dobijenogobjekta kreira se, na uobi ajen na in, tabela MSFlexGrid na Formi. Tako dobijenatabela ima samo dva reda i dvije kolone. Potreban broj kolona i redova odre uje seupisom vrijednosti u osobine Cols i Rows. Na slici 7.21 prikazan je izgled prozorau kome se pode avaju osnovne osobine tabele.

Slika 7.19 Izbor novih kontrola Slika 7.20 Objekat MSFlexGrid

Prvi, odnosno nulti, red predvi en je za zaglavlje tabele i prva (nulta) kolonapredvi ena je za upis imena redova. elije koje predstavljaju zaglavlje suosjen ene sivom bojom, da bi bile lak e uo ljive. elije u MSFlexGrid tabeliposjeduju indekse, kao i niz dvodimenzionalnih promjenljivih. Prvi indeksozna ava broj reda, a drugi broj kolone. Indeksi po inju sa 0. Nulta vrsta i kolonamogu se, po potrebi, i rasjen iti, ako se svojstvima FixedCols i FixedRows dodijele

MS FlexGrid

Page 164: Programski jezik Visual basic

7 OBJEKTI VISUAL BASIC-A 164

vrijednosti 0, umjesto 1. U tabeli mo e biti osjen eno vi e kolona i redova, ali tonema veliku prakti nu primjenu. Preko prozora za pode avanje osobina tabele semogu pode avati i druge osobine, kao to su fontovi i boje.

Slika 7.21 Pode avanje osobina tabele Slika 7.22 Primjer upisa u tabelu

Adresa odgovaraju e elije u tabeli odre uje se pomo u imena objekta i osobineTextMatrix (i, j), gdje i predstavlja broj reda, a j predstavlja broj kolone, ijimpresjecima u tabeli elija pripada. Na taj na in, svakoj eliji u tabeli (matrici) mo ese dodijeliti eljena vrijednost, na primjer:

ImeTabele.TextMatrix (2, 3) = "Mirko"

to zna i da e se u eliju koja se nalazi na presjeku tre eg reda i etvrte koloneupisati tekst Mirko. Slijedi primjer koda za upis podataka u tabelu pod imenomMSFlexGrid1, a rezultat ovog koda je prikazan na slici 7.22.

Private Sub Command1_Click()MSFlexGrid1.TextMatrix(0, 0) = "r.b."MSFlexGrid1.TextMatrix(0, 1) = "Kolona1"MSFlexGrid1.TextMatrix(1, 0) = "Red1"MSFlexGrid1.TextMatrix(0, 3) = "Ime"MSFlexGrid1.TextMatrix(2, 3) = "Mirko"

End SubIna e, elije se mogu birati u kodu i pomo u osobina Row i Col, na primjer:

ImeTabele.Row = 1 Drugi redImeTabele.Col = 2 Treca kolona

Prilikom nabrajanja osobina za jednu ili vise elija, a koje se odnose na istiobjekat (tabelu) mo e se koristiti zapis:

With ImeObjekta OsobineEnd With

Page 165: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 165

Naj e osobine koje se pode avaju za tako odabrane elije obi no su sljede e:With ImeTabeleCelFontBold = True (False) Tamna slovaCelFontltalic = True (False) Kosa slovaCelFontUnderline = True (False) Podvu ena slovaCelFontSize = 12 Veli ina fontaCelFontName = "Times" Izbor fontaCelAlignment = FlexAlignCenterCenter

Vertikalno i horizontalno poravnanjeCelBackColor = "White" Boja pozadineCelForeColor = "Blue" Boja teksta ili slikeRowHeight (i) = 1500 Visina celijeColWidth (j) = 2000 irina kolone

End WithAko se istovremeno postavljaju osobine za vi e elija, onda se prvo obavlja

selekcija elija na koje se te osobine odnose, pa se nakon toga defini u osobine.Izbor elija vr i se na sljede i na in:

With ImeTabeleRow = iCol = jRowSel = kColSel = mFillStyle = FlexFillRepeat

End Withgdje su (i, j) koordinate gornje lijeve elije, (k, m) koordinate donje desne elije.Vrijednost osobine FlexFillRepeat zna i da e se novonavedena osobina odnositina sve elije u okviru pravougaonika sa navedenim dijagonalnim tjemenima.

Karakteristike MSFlexGrid tabele (matrice) obi no se daju u okviru procedureFormLoad, tako da je tabela spremna za prikaz i unos podataka im se ta formapojavi na ekranu.

Programski kod za popunjavanje elija tabele (MSFGOcjene) iz predhodnopopunjenog dvodimenzionog niza, u primjeru prikaza mjese nih ocjena za 5radnika, imao bi sljede u formu. Rezultat ovog koda je prikazan na slici 7.23.

With MSFGOcjene .TextMatrix(0, 0) = "Radnik/M" .TextMatrix(0, 1) = "Jovo" .TextMatrix(0, 2) = "Ilija" .TextMatrix(0, 3) = "Mirko" .TextMatrix(0, 4) = "Srdjan" .TextMatrix(0, 5) = "Mihailo" .TextMatrix(1, 0) = "januar" .TextMatrix(2, 0) = "februar"

Page 166: Programski jezik Visual basic

7 OBJEKTI VISUAL BASIC-A 166

.TextMatrix(3, 0) = "mart" .TextMatrix(4, 0) = "april" .TextMatrix(5, 0) = "maj" .TextMatrix(6, 0) = "jun" .TextMatrix(7, 0) = "jul" .TextMatrix(8, 0) = "avgust" .TextMatrix(9, 0) = "septembar" .TextMatrix(10, 0) = "oktobar" .TextMatrix(11, 0) = "novembar" .TextMatrix(12, 0) = "decembar" For i = 1 To 12 For j = 1 To 5 .TextMatrix(i, j) = Ocjene(i, j) j = j + l Next j Next iEnd With

Slika 7.23 Program za prikaz mjese nih ocjena 5 radnika

U radu sa tabelama potrebno je definisati poravnanje sadr aja u elijama.Funkcija za poravnanje teksta u koloni tabele je ColAlignment, a njena sintaksaglasi

imeobjekta.ColAlignment( number ) [= value ]

Page 167: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 167

gdje jenumber - redni broj kolonevalue - broj koji defini e poravnanje prema sljede oj tabeli 7.2.

Tabela 7.2 Na in poravnanja teksta u MSFlexGrid Tabeli

Vrijednost Na in poravnanja0 Lijevo gore (Left Top)1 Lijevo sredina (Left Center) (podrazumjevano za tekst)2 Lijevo dole (Left Bottom)3 Sredina gore (Center Top)4 Sredina sredina (Center Center)5 Sredina dole (Center Bottom)6 Desno gore (Right Top)7 Desno sredina (Right Center) (podrazumjevano za brojeve)8 Desno dole (Right Bottom)9 Op te: Lijevo sredina za tekst, Desno sredina za brojeve (General)

Funkcija za poravnanje teksta u fiksnoj koloni tabele je ColAlignmentFixed, anjena sintaksa glasi

imeobjekta.ColAlignmentFixed(index) [=value]gdje je

index - redni broj kolonevalue - broj koji defini e poravnanje prema tabeli 7.2Broj fiksnih kolona i redova u tabeli se mo e pode avati direktno preko prozora

Properties, ili preko koda kori enjem sljede ih sintaksiimeobjekta.FixedCols[= broj] (Primjer: FG1.FixedCols = 3)imeobjekta.FixedRows [= broj] (Primjer: FG1. FixedRows = 2)

Za tabele je esto potrebno precizno definisati irinu kolone i visinu reda.Definisanje fiksne irine kolone vr i se pomo u funkcije ColWidth, a visine redapomo u funkcije RowHeight, koje imaju sljede u sintaksu

imeobjekta.ColWidth( number ) [= value ]imeobjekta.RowHeight( number )[= value ]

gdje je:number - redni broj kolone ili redavalue - broj koji defini e irinu/visinu u pikselima

Primjer za 1 i 3 kolonu Primjer za 2 i 4 redFG1.ColWidth(0) = 600FG1.ColWidth(2) = 2000

FG1.RowHeight(1) = 400FG1.RowHeight(3) = 800

Page 168: Programski jezik Visual basic

7 OBJEKTI VISUAL BASIC-A 168

irina jedne kolone se mo e progmraski su avati ili pro irivati. Primjer koda zasu avanje na polovinu druge kolone tabele pod imenom Fg2.

Fg2.ColWidth(1) = Fg2.ColWidth(1) / 2

Pomo u funkcije SetFocus mo e se pokaziva vratiti na prvu eliju tabele.Primjer koda za vra anje fokus na prvu eliju tabele pod imenom Fg1.

FG1.SetFocus

Pomo u funkcije Sort mo e se vr iti sortiranje sadr aja kolone u tabeli, asintaksa ove funkcije je

imeobjekta.Sort [=value]gdje je:value - broj koji defini e sortiranje( 1-rastu e, 2-opadaju e)

Primjer za rastuce sortiranje potre oj koloni.

Primjer za opadaju e sortiranje poetvrtoj koloni.

FG1.Col = 2FG1.Sort = 1

FG1.Col = 3FG1.Sort = 2

Dodavanje novog reda u tabeli se vr i pomo u funkcije AddItem, koja imasintaksu

imeobjekta.AddItem [ "tekst koji se eli upisati" ]Brisanje sadr aja cijele tabele vr i se pomo u funkcije Clear, koja ima sintaksu

imeobjekta.Clear

7.19 OBJEKAT COMMONDIALOG ZA STANDARDNI MENI

Standardni okvir za dijalog (CommonDialog ) pru a standardan skupdijalo kih okvira za operacije kao to su otvaranje i spa avanje datoteka,odre ivanje opcija za ispis, te izbor boja i pisama. Ovaj objekat tako e imasposobnost prikaza pomo i pokretanjem mehanizma za Windows pomo .

Standardni okvir za dijalog pru a me usklop izme u Visual Basic-a i rutina udinami koj biblioteci Microsoft Windowsa Commdlg.dll. Kako bi kreirali dijalo kiokvir kori tenjem ovog objekta, datoteka Commdlg.dll mora se nalaziti udirektorijumu Windows\System. Standardni okvir za dijalog se upotrebljava uprogramu, tako da ga dodate formi i odredite osobine objekta. Dijalog koje seprikazuje pozivom tog objekta, odre en je postupcima objekta. Tokom radaprograma, kad se pozove odgovaraju i postupak, prikazuje se dijalo ki okvir ili seizvr ava mehanizam pomo i. Tokom izrade programa, objekat standardni okvir zadijalog se prikazuje kao ikonica na formi. Veli ina te ikonice je fiksna i ne mo e se

Page 169: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 169

mijenjati. Standardni okvir za dijalog omogu uje vam prikaz sljede ih obi nokori tenih dijalo kih okvira:

• Open• Save As• Color• Font i• Print

Slika 7.24 Dodavanje novih objekta u paletu alatki

Objekat standardnog okvira za dijalog se na nalazi u standardnoj paleti alatkiVisuel Basic-a, ve ga je potrebno dodati svaki put, kada se pravi novi program.Postavljanje ovog objekta u standardnu paletu alatki se vr i kroz sljede e korake:1) Ako to ve niste napravili, dodajte objekat standardnog okvira za dijalog upaletu alatki izborom stavke Components u meniju Project. Pojavi e se lista svihobjekata koje posjeduje Visual Basic, kao na slici 7.24. ekiranjem komponenteMicrosoft Common Control 6.0 na listi u kartici Controls i klikom na dugme OKu paleti alatki pojavljuje se objekat CommonDialog koji se, po potrebi, prenosi na

Page 170: Programski jezik Visual basic

7 OBJEKTI VISUAL BASIC-A 170

formu. ekiranjem komponente Microsoft Windows Common Control 6.0 na listiu kartici Controls i klikom na dugme OK u paleti alatki pojavljuje se vi e novihobjekata koji se mogu kombinovati sa standardnim okvirom za dijalog. Ti dodatniobjekti koji se pojavljuju u paleti alatki su: TabStrip, Toolbar, Statusbar,Progressbar, Imagelist, Slider i ImageCombo.2) U paleti alatki, kliknite na objekat CommonDialog i kreirajte ga na formi. Kadastvarate ovaj objekat na formi, objekat e automatski odrediti svoju veli inu. Kao iobjekat mjera a vremena (Timer) i objekat standardnog okvira za dijalog jenevidljiva tokom izvr enja programa.3) Standardni okviri za dijalog se u programu pozivaju pomo u naredbi prikazanihu tabeli 7.3. Ove naredbe se u programu obi no pozivaju preko komandnihdugmadi, menija napravljenog pomo u Menu Editor-a ili ikonice koju postavimo uvlastitom ToolBar-u.

Tabela 7.3 Naredbe u standardnom okviru za dijalogRed. br. Dijalo ki okvir Naredba kojom se poziva dijalo ki okvir

1. Open ShowOpen2. Save As ShowSave3. Color ShowColor4. Font ShowFont5. Print ShowPrint6. Windows Help ShowHelp

7.19.1 Dijalo ki okviri Open i Save As

Dijalo ki okvir Open prikazan je na slici 7.25. Omogu uje korisnikuodre ivanje direktorijuma, nastavka imena datoteke (ekstenzije) i imena datoteke.Dijalo ki okvir Save As izgleda isto kao i dijalo ki okvir Open, osim naslovadijaloga i imena datoteka koje su ispisana zasjenjeno. Tokom rada aplikacije, kadkorisnik odabere datoteku i zatvori dijalo ki okvir, osobina FileName se koristi zauvanje imena odabrane datoteke.

Za dijalo ki okvir Open mo e se postaviti filter nad tipom fajla (Files of type) zaprkaz fajlova samo odre enog tipa. To se mo e napraviti odre ivanjem osobineFilter koriste i sljede i oblik:

opis1 filter1 opis2 filter2 ...

Opis je string koji se ispisuje u okviru s popisom – na primjer “Tekstualnedatoteke (*.doc)”. Filter je stvarni filter – na primjer “*.doc”. Svaki skup opis Ifilter mora biti razdvojen simbolom vertikalne linije ( ).

Page 171: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 171

Slika 7.25 Dijalo ki okvir Open Slika 7.26 Dijalo ki okvirColor

7.19.2 Dijalo ki okvir Color

Dijalo ki okvir Color prikazan je na slici 7.26. Omogu uje korisniku izbor bojeiz palete ili stvaranje i izbor korisni ke boje. Tokom rada programa, kad korisnikodabere boju i zatvori dijalo ki okvir, trebate upotrijebiti osobina Color zadobijanje odabrane boje. Sljede i programski kod prikazuje dijalo ki okvir Color.

Prikaz dijalo kog okvira Color.CommonDialog1.ShowColor Postavljanje boje pozadine forme na odabranu boju.

Form1.BackColor = CommonDialog1.Color

7.19.3 Dijalo ki okvir Font

Dijalo ki okvir Font prikazan je na slici 7.27. Omogu uje korisniku izbor pismaodre ivanjem njegove veli ine, boje i stila. Jednom kad korisnik napravi izbore udijalo kom okviru Font, sljede a osobine sadr avaju informacije o izborukorisnika. Sljede i programski kod prikazuje dijalo ki okvir Font.

Dialog1.ShowFontText1.Font.Name = Dialog1.FontNameText1.Font.Size = Dialog1.FontSizeText1.ForeColor = CommonDialog1.Color

Page 172: Programski jezik Visual basic

7 OBJEKTI VISUAL BASIC-A 172

Slika 7.27 Dijalo ki okvir Font Slika 7.28 Dijalo ki okvir Print

7.19.3 Dijalo ki okvir Print

Dijalo ki okvir Print prikazan je na slici 7.28. Omogu uje korisnikuodre ivanje izgleda izlaza na tampa . Korisnik mo e odrediti opseg strana koje ebiti od tampane, kvalitet tampe, broj kopija i tako dalje. Ovaj dijalo ki okvirtako e prikazuje informacije o trenutno instaliranom tampa u, omogu ujekorisniku instaliranje ili reinstaliranje novog inicijalnog tampa a. Ovaj dijalo kiokvir ne alje stvarno podatke tampa u. Tokom rada programa, kad korisniknapravi izbor u dijalo kom okviru Print, sljede e osobine sadr e informacije oizborima korisnika.- Copies Broj kopija koje e se ispisati.- FromPage Po etna stranica ispisa.- ToPage Posljednja stranica ispisa.- hDC Kontekst sredstva za odabrani pisa .- Orientation Orijentacija stranice (uspravna ili polo ena).

7.19.3 Dijalo ki okvir Help

Dijalo ki okvir Help omogu uje korisniku pozivanje fajla koji slu i kao pomoprilikom rada sa programom. Komanda ShowHelp prikazuje ovaj dijalo ki prozor.

Dialog1.HelpCommand = cdlHelpForceFile' Odre ivanje datoteke pomo i.Dialog1.HelpFile = "c:\Windows\Help\Access.hlp"' Prikaz mehanizma Windows HelpDialog1.ShowHelp

Page 173: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 173

7.20 IZRADA SOPSTVENOG MENIJA

Pored standardnog Visual Basic omogu uje da se napravi sopstveni padaju imeni na srpskom jeziku. Na taj na in program koji se pravi e izgledati punoprofesionalnije. Vlastiti padaju i meni se pravi preko dijalo kog prozora MenuEditor. Menu Editor se pokre e pomo u komande MenuEditor iz menija Tools salinije menija Visual Basic-a. Pozivanjem Menu Editor-a otvara se dijalo ki prozorprikazan na slici 7.29. Ako se u programu preko Menu Editor-a napravi vlastitipadaju i meni kao na slici 7.29, pokretanjem programa pojavi e se prozor kao naslici 7.30. Menu Editor omogu ava dodavanje novih ili modifikaciju i brisanjepostoje ih menija. Mogu se praviti razne pre ice za direktno aktiviranje pojedinihkomandi putem tastature. Nakon formiranja menija pristupa se pisanjuprogramskog koda za eventualno aktiviranje odabranih komandi. Na Menu Editorunalazi se niz veoma korisnih objekata za izradu i pode avanje sopstvenogpadaju eg menija.

Slika 7.29 Izrada sopstvenog menija u MenuEditor-u

Page 174: Programski jezik Visual basic

7 OBJEKTI VISUAL BASIC-A 174

Slika 7.30 Izgled vlastitog padaju eg menija i Tool Bar-a u programu

U polje za tekst Caption (natpis) upisuju se imena menija, koja e se pojaviti naekranu, kada se program pokrene. Dok se u polje za tekst Name (ime) upisuje imete komande, preko koga e se pristupati toj komandi u kodu programa. Sadr aj ovadva polja mo e, ali i ne mora biti isti. Istovremeno, dok se vr i upis naziva menijau polje Caption, pojavi e se isti takav natpis na vrhu kontrolnog prostora zapregled padaju eg menija. Na taj na in, u ovom polju e se formirati se lista(spisak) svih napravljenih glavnih menija, podmenija i stavki koje su u sastavupodmenija. Elementima menija treba dodjeljivati imena uz zadovoljavanje uslova:

- da su kratka i jasna,- da asociraju na akciju koja se od njih o ekuje i- da su im, po mogu nosti, po etna slova razli ita.U kontrolnom prostoru za pregled padaju eg menija, po pravilu, zapisuju se

natpisi glavnog menija od samog po etka (ruba lijeve ivice). Natpisi stavki koje seu okviru menija pomjeraju za etiri karaktera (ta kice) udesno, predstavljajupodmeni glavnog menija, koji se nalazi prvi iznad tog natpisa. Natpisi stavki kojese u okviru menija pomjeraju za jo etiri karaktera (ta kice) udesno u odnosu napodmeni, predstavljaju podmeni u podmeniju, koji se nalazi prvi iznad tog natpisa.Na ovaj na in se dobije struktura stavbla u padaju em meniju.

Vodoravno pomjeranje natpisa vr i se prvo klikom mi a (markiranjem) naizabranu stavku, koja se pomjera i zatim na strelicu sa lijevim (⇐) ili desnim (⇒)usmjerenjem.

Aktivnost zamjene mjesta pojedinim stavkama vr i se prvo klikom mi a(markiranjem) na izabranu stavku, koja se pomjera i zatim na strelicu nagore (⇑),ako tu stavku elimo da pomjerimo unaprijed za jedno mjesto u padaju em menijuili na strelicu nadole (⇓), ako se stavka premje ta za jedno mjesto nadole.

Ubacivanje nove stavke u meni vr i se tako da se klikne mi em na stavku ispredkoje treba izvr iti unos, a zatim aktivirati dugme Insert. Kao rezultat izvedenihakcija u meniju se pojavljuje prazan programski red, u koji treba unijeti novukomandu istom tehnikom, kao to su uneseni i ostali elementi menija.

Stavka iz menija se bri e, ako se prvo markira, a zatim aktivira dugme Delete.

Page 175: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 175

Izbor pojedinih komandi iz menija mo e se obavljati, pored otvaranja menijaklikom mi a na komandu i definisanjem odgovaraju ih pre ice putem simboladodijeljenih tasterima. To se ini tako to se prilikom upisa natpisa u polje Caption,ispred eljenog karaktera, stavi simbol (&). Tada se pomo u tastera kome jedodijeljen karakter, ispred koga se nalaz simbol (&), mo e aktivirati ta komanda.Obi no se bira prvo slovo imena elementa iz menija, pod uslovom da imenanemaju ista po etna slova. U protivnom bira se neko drugo slovo, koje jekarakteristi no za tu stavku. Na primjer, slovo x za opciju Exit u meniju File.

Za nazna ene (markirane) stavke iz menija mogu se definisati pre ice klikom nastrelicu opcije Shortcut. Iz razvijene liste ponu enih direktnih pristupa, naj eCtrl + neko slovo, bira se eljeni pristup klikom na odgovaraju u opciju.

Poslije uno enja natpisa u polju Caption, pritiskom na tipku Tab ili Enter natastaturi, kursor se premje ta u naredno polje Name. U polju Name se upisuje ime,koje e se koristiti u programskom kodu. Obi no se daju ista imena kao i u poljuCaption, s tim to se ispred imena, prema konvenciji, dodaje prefiks Mnu, kojiasocira na meni. Uobi ajeno je da se u Visual Basic jeziku prefiksi dodaju iimenima vezanim za neke druge objekte, kako bi se jasnije razlikovali jedni oddrugih i kako bi se ukazalo na njihovu namjenu i ulogu. U narednoj tabeli dat jepregled prefiksa za pojedine objekte.

Tabela 7.3 Prefiksi imena za objekte u Visual Basic-uObjekat Prefiks Objekat Prefiks

CheckBox Chk Image ImgComboBox Cbo Label LblCommandButton Cmd Line LinCommonDialog Cdi ListBox LstData Dat Menu MnuDataCombo Dco MSFlexGrid MsfDataGrid Dgr MSHFlexGrid MshfDataList Dls Ole OleDirectoryList Box Dir OptionButton OptDriveListBox Drv PictureBox PicFileListBox Fil Shape ShpForm Frm TextBox TxtFrame Fra Timer TmrHorizontalScrollBar Hsb VerticalScrolBar Vsb

Objekat Cheked u okviru za dijalog MenuEditor-a upotrebljava se za komandeije funkcionisanje zavisi od znaka za potvrdu. Ako je u objekat unesen znak za

potvrdu (√ znak ekiranja) komanda e biti uklju ena u meni, dok u protivnom nijeaktivna.

Page 176: Programski jezik Visual basic

7 OBJEKTI VISUAL BASIC-A 176

U nekim momentima obrade programa pojedine stavke (komande) treba u initinefunkcionalnim. Na primjer, nepo eljno je koristiti komandu Close, ako novipodaci nisu spa eni. Deaktiviranje (isklju ivanje) pojedinih stavki obavlja seklikom na odre ene stavke i brisanjem znaka za potvrdu (de ekiranje) u poljuEnabled. Trenutno nefunkcionalna komanda prepoznaje se po tome to je njenzapis znatno blje i u odnosu na ostale komande.

Komanda se mo e u initi potpuno nevidljivom, ako se prethodno markira, apotom iz polja Visible poni ti znak za potvrdu.

Poslije uno enja imena menija ili stavke u polja Caption i Name i poslije izboraopisanih opcija iz okvira za dijalog, slika 7.29, treba kliknuti na dugme Next. Timese potvr uje unos obra ivanog elementa i automatski prazne pomenuta polja zaunos nove stavke. Postupak se, potom, redom nastavlja, sve dok se ne unesu svielementi menija. Lista i struktura unesenih elemenata data je na dnu u kontrolnoprostoru za pregled menija.

Klikom na dugme OK konacno se potvr uje da je meni ure en i okvir za dijalognestaje sa ekrana. U programu se tada ispod naslovne linije pojavljuje napravljenimenija. Lista menija dobija se klikom na njegov naslov na liniji menija. Klikom nadugme Cancel, uvijek se mo e odustati od izrade menija.

7.21 IZRADA SOPSTVENOG TOOLBAR-A

Kada se prave slo eni programi esto imamo potrebu da napravimo sopstveniToolBar ili StatusBar. Ovi objekti postoje u Visuel Basic-u, ali se ne nalaze ustandardnoj paleti alatki. Da bi dodali ove objekte u paletu alatki potrebno je umeniju Project izabrati stavku Components. Zatim treba ekirati komponentuMicrosoft Windows Common Control 6.0 na listi u kartici Controls i klikom nadugme OK u paleti alatki pojavljuje se vi e novih objekata, koji se mogukombinovati sa standardnim okvirom za dijalog. Ti dodatni objekti koji sepojavljuju u paleti alatki su: TabStrip, Toolbar, Statusbar, Progressbar, Imagelist,Slider i ImageCombo.Da bi se u Toolbar mogle dodati slike novih ikonica, na formu je potrebno prvo

dodati objekat Imagelist . Ovaj objekat se ne vidi kada se program pokrene. Unjega se dodaju sve one slike koje se potencijalno ele prikazati u Toolbar-u.Po eljno je da se dodaju ikonice sa ekstenzijom .ico. Sve ikonice ne moraju biti isteveli ine, pa ih je zato potrebo podesiti. Pove avanje ovih osobina se vr i tako to sena objektu Imagelist desnim klikom mi a do e do osobine Properties. Pojavljuje sedijalo ki prozor sa tri menija za pode avanje: General, Images i Color. Dijalo kiprozor General prikazan je na slici 7.31. Koristi se za pode avanje veli ine ikoniceu pikselima.

Page 177: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 177

Slika 7.31 Izgled prozora Gener kod objekta Imagelist

Dijalo ki prozor Images prikazan je na slici 7.32 i koristi se za dodavanje novihslika u ovaj objekat. Preko dugmeta InsertPicture ubacuje se eljena slika izeljenog direktorijuma. Polje Index ozna ava redni broj slike u listi, a Key

predstavlja ime, koje se dodjeljuje izabranoj slici.

Slika 7.32 Izgled prozora Image kod objekta Imagelist

Page 178: Programski jezik Visual basic

7 OBJEKTI VISUAL BASIC-A 178

Dijalo ki prozor Color se koristi za pode avanje boje maske i pozadine ikonicakoje se dodaju u ovaj objekat.

Da bi se u ToolBar-u prikazale eljene ikonice potrebno je prvo dodati ToolBarna eljenu formu. Zatim desnim klikom mi a na dodati ToolBar, izabrati opcijuProperties, kako bi se moglo izvr iti povezivanje ToolBar-a sa nekim od objekataImageList. Pojavljuje se dijalo ki prozor sa tri menija za pode avanje: General,Buttons i Picture.

Dijalo ki prozor General prikazan je na slici 7.33. Koristi se za povezivanje saeljenim objektom ImageList preko njegovog imena. To se vr i preko parametra

Image List, koji je organizovan kao ComboBox. U ComboBox-su se pojavljujelista svih objekata ImageList, koji postoje na trenutno aktivnoj formi. Ostaliparameti na ovom prozoru se koriste za fino pode avanje ikonica.

Slika 7.33 Izgled prozora General za objekat ToolBar

Dijalo ki prozor Buttons prikazan je na slici 7.34. Koristi se za izbor ikonica izobjekta ImageList, koje se ele prikazati u ToolBar-u. To se vr i preko parametraIndex i pomo u dugmeta Insert Button. Preko parametra Image unosi se imeikonice. Parametar Key se koristi za unos teksta, koji e se koristiti za definisanjeakcije nad tom ikonicom u kodu. U osobinu ToolTipText se unosi tekst, koji episati iznad ikonice, kada se preko nje pre e mi em, prilikom pokretanja programa.

Page 179: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 179

Slika 7.34 Izgled prozora Buttons za objekat ToolBar

7.22 NIZ OBJEKATA

Na jednoj formi mo e biti vi e objekata istog tipa. Svakom novom objektu kojise dodaje na formu Visual Basic sam dodjeljuje ime, po ev od 1 pa nadalje, premaredoslijedu njihovog postavljanja na formu. Prilikom davanja imena objekatanikada se nemo e desiti da dva objekta imaju isto ime. Budu i da jedan projekatmo e da sadr i vi e formi potrebno je jednozna no imenovati i pojedine forme jerforme me usobno, tako e ine jedan niz, ijim lanovima se pridru uju brojevipo ev od 1 pa nadalje, prema redoslijedu njihovog implementiranja u projekat.

Niz objekata je grupa objekata, koji dijele isto ime i tip. Oni tako er dijele i istepotprograme doga aja. Niz objekata ima barem jedan element i mo e se pove avatido onoliko elemenata koliko dopu taju va i sistemski izvori i memorija. Najve iindeks koji mo ete koristiti u nizu objekata je 32767. Elementi istog niza objekataimaju vlastite vrijednosti osobina. Uobi ajena upotreba niza objekata uklju ujegrupiranje objekata za unos i prikaz podataka, kao i objekata za izbor.

Niz objekata je koristan, ako elite da vi e objekata dijeli isti programski kod.Na primjer, ako su tri komandna dugmeta kreirana kao niz objekata, izvr e se isti

Page 180: Programski jezik Visual basic

7 OBJEKTI VISUAL BASIC-A 180

programski kod bez obzira na koje je dugme kliknuo korisnik. Sa nizom objekata,svaki novi element naslje uje zajedni ke potprograme doga aje tog niza.Kori tenjem mehanizma niza objekata, svaki novi objekat naslje uje zajedni kepotprograme doga aja koji su ve napisani za niz. Na primjer, ako va a forma imanekoliko TextBox objekata, gdje svaki od njih mo e primiti vrijednost u oblikudatuma, niz objekata mo e biti pode ena tako da svi TextBox objekati dijele istiprogramski kod za provjeru ispravnosti une enih podataka.

Primjer programa Calculator (koji se nalazi u Help-u na direktorijumu Samples)prikazan na slici 7.35. Sadr i dva niza objekata kontrolno dugme - dugme sabrojevima i dugme sa operatorima. Niz za brojeve ima 11 elemenata od Number(0)do Number(10), a niz operatora ima 7 elemenata od Operator (0) do Operator(6).

Slika 7.35 Dva niza objekata Slika 7.36 Pravljenje niza objekata

Svaki objekat se poziva sintaksom objekat(indeks). Indeks objekta odre ujetekada je stvaren. Zapravo, odre ivanje indeksa objekta tokom izrade ini taj objekatdijelom niza. Osobina Index razlikuje jedan element niza objekata od drugog. Kadjedan od objekata u nizu prepozna doga aj, Visual Basic poziva zajedni kipotprogram doga aja i proslje uje argument (vrijednost osobine Index) zaidentifikaciju, koji je objekat niza zapravo prepoznao doga aj. Na primjer, prvalinija potprograma doga aja Number_Click je:

Private Sub Number_Click(Index As Integer)Ako objekat Number(0) prepozna doga aj, Visual Basic proslje uje 0 kao

argument Index. Ako doga aj prepozna objekat Number(1), Visual Basic eproslijediti 1 kao argument index. Osim vrijednosti indeksa, ostatak programskogkoda potprograma Number_Click, koji e se izvr iti, jednak je za sve objekte odNumber(0) do Number(9).

Page 181: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 181

Postoje tri na ina stvaranja niza objekata tokom izrade aplikacije:• Dodijelite isto ime za vi e od jednog objekta.• Kopirajte postoje i objekat i zatim ga nalijepite na formu.• Postavite vrijednost osobine Index objekta na vrijednost koja nije Null (0).Najlak i na in pravljenja niza objekata je kopiranjem postoje eg objekta, a to se

odvija kroz sljede a tri koraka.1) Kreirajte objekat na formi.2) Dok objekat ima fokus, odaberite Copy u meniju Edit.3) U meniju Edit, odaberite Paste. Visual Basic e prikazati dijalo ki prozortra i od vas potvrdu da elite stvoriti niz objekata (You already have acontrol name 'Text1'. Do you want to create a control array?). OdaberiteYes za potvrdu akcije (primjer kopiranja objekta Text1 na slici 7.36).Taj novi objekat koji ste napravili dobija vrijednost indeksa 1. Objekat koji ste

prvi kreirali ima vrijednost indeksa 0. Vrijednost indeksa svakog novog elementaniza odgovara redoslijedu po kojem je element dodan u niz objekata. Kad suobjekti dodati na ovaj na in, ve ina vidljivih osobina, kao visina, irina i boja,kopiraju se od prvog objekta u niz objekata novim objektima.

Ako ste prilikom kopiranja objekta izabrali dugme No, na formi e se pojavitiidenti an objekat, ali pod drugim imenom (primjer kopiranja objekta Label1 naslici 7.36).

Osnovna prednost ure ivanja objekata u niz jeste njihova grupna upotreba iobrada. Pristup svim objektima jednog niza vr i se pomo u petlje For ... Next, odnajmla eg do najstarijeg lana. Obi no se pomo u razmatrane petlje mijenjajuvrijednosti svojstvima objekata, na primjer:

For Each Control in Formi.Controls'Sekvencija naredbi obrade objekata

Next ControlStruktura ima zna enje da se obradi svaki objekat (Control) na i-tom obrascu odposljednjeg do objekta koji je postavljen prvi. U slu aju da je upotrijebljen samojedan obrazac tada se ime forme Formi mo e izostaviti. Zapa a se da je ulogaposmatrane petlje sli na ulozi ranije prou avane petlje For ... Next. Obi no sepomo u razmatrane petlje mijenjaju vrijednosti svojstvima objekata, na primjer:Vidljivo=Text1.Text ' broj vidljivih objekata Text3For petlja1 = 0 To Vidljivo Text3(petlja1).Visible = True ' Vidljivi objekti Visina="h"& petlja1 ' imena tabela u bazi Text3(petlja1).Text = Rezervoar(Visina)

Rem punjenje niza objekata Text3 iz bazeNextFor petlja2 = Vidljivo To 98 'ukupno 99 objekta u nizu Text3(petlja2).Visible = False ' Nevidljivi objektiNext

Page 182: Programski jezik Visual basic

7 OBJEKTI VISUAL BASIC-A 182

7.23 KRETANJE KROZ OBJEKTE SA TAB TASTEROM

Tabulatorni red (tab order) je red po kojem se korisnik mo e kretati od jednogdo drugog objekta kori tenjem tipke TAB. Svaka forma ima svoj tabulatorni red. Upravilu, tabulatorni red odgovara redoslijedu kreiranja objekata. Na primjer,pretpostavimo da ste kreirali dva okvira sa tekstom, Text1 i Text2, te zatimnaredbeni dugme, Command1 kao na slici 7.37. Kad se program pokrene, objekatText1 e imati fokus. Pritisak na tipku TAB fokus se prebacuje na objekteredoslijedom kojim su kreirani.

Za promjenu postoje eg tabulatornog reda objekta, podesite osobinu TabIndex(preko prozora properties). Osobina TabIndex objekta odre uje gdje je postavljen utabulatornom redu. U pravilu, prvi kreirani objekat ima vrijednost osobineTabIndex =0, drugi TabIndex =1 i tako dalje.

Tabela 7.4 Promjena TabIndexa

Objekat TabIndex prijezamjene

TabIndexposlije zamjene

Text1 0 1

Text2 1 2

Command1 2 0

Slika 7.37 Tabulatorni reda

Kad promijenite redoslijed objekta u tabulatornom redu, Visual Basicautomatski mijenja mjesta ostalih objekata u tabulatornom redu, tako da odra avaubacivanja i brisanja. Na primjer, ako objekat Command1 postavite kao prvi utabulatornom redu, osobina TabIndex ostalih objekata e automatski biti pove anaza jedan, kao to je prikazano u tabeli 7.4.

Najve a vrijednost osobine TabIndex je uvijek za jedan manja od broja objekatau tabulatornom redu (jer brojanje po inje od 0). ak i ako svojstvu TabIndexdodijelite vrijednost ve u od broja objekata, Visual Basic tu vrijednost pretvara ubroj za jedan manji od broja kontrola.

Objekti koji ne mogu dobiti fokus, kao i objekti koji su onemogu eni ilinevidljivi, nemaju osobina TabIndex i nisu uklju eni u tabulatorni red. Kadkorisnik priti e tipku TAB, takvi objekti se preska u.

Objekat mo ete udaljiti iz tabulatornog reda, postavljanjem njegove osobineTabStop na False (0). Objekat ija je osobina TabStop postavljeno na False i daljezadr ava svoje mjesto u tabulatornom redu, iako e biti presko ena kru enjem poobjektima tipkom TAB.

Page 183: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 183

Grupa dugmadi izbora ima jedinstven izbor tipkom TAB. Potvr eno dugme(ono ije je osobina Value postavljeno na True) automatski ima osobina TabStoppostavljeno na True, a ostala dugmad u grupi imaju osobinu TabStop postavljenuna False.

Page 184: Programski jezik Visual basic

7 OBJEKTI VISUAL BASIC-A 184

Page 185: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 185

8 PRIMJERI VISUAL BASIC PROGRAMA

U ovom poglavlju bi e predstavljeni primjeri programa napisanih uprogramskom jeziku Visual Basic. Prvo e biti predstavljeni primjeri programa,koji se mogu na i u Helpu programskog jezika Visual Basic. Zatim e bitipredstavljeni prakti ni primjeri kodova programa, koji pokazuju kako mogu da sekoriste osnovni objekti, koji postoje u Visual Basicu. Na kraju e biti predstavljenopar programa, koji se mogu koristiti za komunikaciju sa Microsoft Excelom iMicrosoft Accessom.

8.1 PRIMJERI IZ HELPA VISUAL BASIC PROGRAMA

U Helpu programskog jezika Visual Basic postoji dosta gotovih primjeraprograma, koji mogu poslu iti kao dobra osnova za u enje ovog programskogjezika. Svaki primjer se nalazi na posebnom direktorijumu i ima ve ura enegotove programske blokove, koji se mogu iskopirati u novi program, koji se pravi.Do ovih primjera se najlak e mo e do i preko explorera na direktorijumu"C:\Program Files\MicrosoftVisual Studio\MSDN98\98VS\1033\SAMPLES\VB98", kao na sljede oj slici 8.1.

Slika 8.1 Prozor sa direktorijumima gdje se nalaze gotovi primjeri programa

Page 186: Programski jezik Visual basic

8 PRIMJERI VEE PRO PROGRAMA 186

Na direktorijumu ActXDoc nalazi se primjer programa, koji omogu ujepozivanje nove forme i vezu prema nekom sajtu.

Na direktorijumu Alarm nalazi se primjer programa, koji prikazuje kori enjeobjekta Timer.

Na direktorijumu Atm nalazi se primjer programa, koji simulira kori enjebankomata. U ovom programu je prikazano kori enje Currency tipa podataka.

Na direktorijumu Calc nalazi se primjer programa, u kome je napravljendigitron sa osnovnim matemati kim operacijama.

Na direktorijumu Calldlls nalazi se primjer programa, koji prikazuje slu ajnokretanje objekta na formi u raznim smjerovima.

Na direktorijumu ChrtSamp nalazi se primjer programa, koji omogu ujecrtanje dijagrama. U ovom programu je prikazano kori enje CommonDialogobjekta za pravljenje vlastitog padaju eg menija.

Na direktorijumu Control nalazi se primjer programa, koji prikazuje pravljenjevlastitog menija i kori enje raznih objekata. Prikazan je na in kori enja objekata:CheckBox, Option Bootm, Frame, rad sa slikama i promjena mjesta slika, krozprimjer mje anja karti.

Na direktorijumu CtlsAdd nalazi se primjer programa, koji prikazuje kori enjeobjekta Data grid. Ovaj objekat se koristi za prikaz podataka u tabeli.

Na direktorijumu DataRept nalazi se primjer programa, koji prikazujekori enje objekta Toolbar, za generisanje raznih izvje taja.

Na direktorijumu Datatree nalazi se primjer programa, koji prikazuje pravljenjestrukture eksplorera kori enjem objekata: Treeview, Listview, Imagelist,CommonDialog.

Na direktorijumu DataAware nalazi se primjer programa, koji prikazujeotvaranje i itanje podataka iz baze podataka.

Na direktorijumu Dialer nalazi se primjer programa, koji prikazuje simulacijupozivanja telefonskog broja.

Na direktorijumu Errors nalazi se primjer programa, koji prikazuje obra ivanjegre aka koje mogu nastati u toku rada sa programom.

Na direktorijumu Filects nalazi se primjer programa, koji prikazujepretra ivanje dokumenata po diskovima i direktorijumima, kori enjem objekata:DriveListBox, FileListBox, ListBox i PictureBox.

Na direktorijumu Firstapp nalazi se primjer programa, koji prikazuje kori enjeobjekata Data i MsFlexGrid za pristup bazi podataka.

Na direktorijumu Geofacts nalazi se primjer programa, koji prikazuje pozivanjeExcel dokumenta iz Visual Basica.

Na direktorijumu Listcmbo nalazi se primjer programa, koji prikazujepovezivanje sa Access bazom podataka, koja se bira preko Open menija.

Na direktorijumu MCI nalazi se primjer programa, koji prikazuje simulacijumuzi ke linije.

Page 187: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 187

Na direktorijumu MDI nalazi se primjer programa, koji prikazuje pravljenjepadaju eg menija i menija sa vlastitim ikonicama.

Na direktorijumu Msflexgd nalazi se primjer programa, koji prikazujepovezivanje sa bazom podataka i prikaz podataka u MsFlexGrid tabeli.

Na direktorijumu Olecnt nalazi se primjer programa, koji prikazuje kori enjeOLE kontrola za otvaranje raznih dokumenata.

Na direktorijumu Optimize nalazi se primjer programa, koji prikazujekori enje objekta Timer da bi stvorili privid da se neke slike kre u.

Na direktorijumu Palmode nalazi se primjer programa, koji prikazujeneprestanu promjenu slika na ekranu uz pomo objekta Timer.

Na direktorijumu Picclip nalazi se primjer programa, koji prikazuje simulacijuleta leptira i okretanja igre uz pomo objekta Timer.

Na direktorijumu Vcr nalazi se primjer programa, koji prikazuje simulaciju letaleptira. Let se prikazuje na simulaciji video plejera, uz pomo objekta Timer.

Page 188: Programski jezik Visual basic

9 PROIZVODNJA I PRODAJA PROGRAMA 188

9 PROIZVODNJA I PRODAJA PROGRAMA

Programi su proizvodi, koji se kao i ostali klasi ni proizvodi prodaju kupcima.Svaki program ima svoju cijenu proizvodnje i prodaje. Krajnji cilj proizvodnjesvakog programa je prodaja kupcima. Program ima odre ene specifi nosti prilikomproizvodnje, ali i prilikom prodaje kupcu. Proizvo programa mora kupcu daobezbjedi garanciju za ispravan rad programa odre eni vremenski period, kao ipomo korisniku prilikm problema u radu sa programom. Pravni i ekonomskiaspekti proizvodnje i prodaje programa bi e obja njeni u ovom poglavlju.

9.1 PRODAJA PROGRAMA

Proizvodnja programa za tr te je kao i proizvodnja svih drugih sli nihproizvoda9. Kupac obi no o ekuje sli ne uslove kupoprodaje, kao u slu ajukupovine uobi ajenih tehni kih proizvoda. Me utim, program je veoma specifi anproizvod i njegova za tita nije nimalo jednostavna. Pravni aspekti proizvodnje ikori enja programa predstavljaju u op tem slu aju delikatnu, prilikom sporovakomplikovanu i ponekad kontroverznu oblast. Klasi na prodaja programa je dosta rijetka pojava. Pod „klasi nom prodajom“programa podrazumjevamo, u stvari, kupovinu programa i prava za njegovupreprodaju. Pri emu je pravo preprodaje u ve ini slu ajeva ekskluzivno. Drugimrije ima, kupovina programa je „klasi na kupovina“ onda kada je sli na kupovininekretnina ili automobila, tj. kada kupac ima potpuno pravo raspolaganja svojimvlasni tvom i mo e zatim po volji da ga proda, pokloni, ili uni ti. Kupovinuprograma praktikuju dr avne institucije ili kompanije koje nemaju namjeru darazviju odre eni program. Oni naru e proizvodnju programa od nekog proizvo akoji zatim mo e, ali ne mora, posjedovati pravo da razvijeni program prodaje tr imlicima. Navedimo dva primjera. Ministarstva odbrane i policije mnogih dr ava esto finansiraju razvojprograma, koji zatim postaju njihovo potpuno vlasni tvo. Tada orginalniproizvo programa nema pravo da taj program prodaje tre im licima, nego ni dadaje bilo kakve informacije da je navedeni program proizveo. Drugi primjer se odnosi na operativni sistem MS-DOS, koji je firma IBMnaru ila kod firme Microsoft za svoj li ni ra unar PC. Pri tome je firma Microsoftzadr ala pravo da i sama prodaje ovaj operativni sistem. Na osnovu ovog pravave ina sekundarnih proizvo a ra unara kompatibilnih sa ra unarima serije PCsvoje kupce je upu ivala na Microsoft, kao isporu ioca odgovaraju e verzije

9 Dr Jozo J. Dujmovi , Programski jezici i metode programiranja, Akademska misao,Beograd, str.3.98 do str.3.106, 2003.

Page 189: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 189

operativnog sistema. Pri tome je IBM isporu ivao svoje ra unare sa istimoperativnim sistemom, ali pod svojom firmom. Iznajmljivanje programa se esto koristi, kao i prodaja programa. Pri tome serazlikuju dvije varijante:

1) iznajmljivanje na ograni eni rok i2) iznajmljivanje na neograni eni rok, odnosno kupovina licence za trajno

kori enje programa.Iznajmljivanje na ograni eni rok praktikuje se kada su u pitanju veliki,

specifi ni, ili relativno skupi programi, kod kojih nema potrebe za trajnimkori enjem. Primjer za ovo su programski sistemi za analizu osobina ra unarskihkonfiguracija, koji mnogi napredni korisnici iznajme na ograni eno vrijeme, da biodredili na koji na in da optimalno pro ire svoju postoje u konfiguraciju ili danabave novu. Po isteku perioda najamnine, sistemi mogu imati ugra ene dijeloveza samouni tenje poslije odre enog datuma. Manji programski proizvodi, posebno oni za iroku upotrebu na li nimra unarima, obi no se iznajmljuju na neograni eni period. Pri tome je pla anje popravili jednokratno.

9.2 PRAVO KOPIRANJA PROGRAMA

Su tina svih formi iznajmljivanja programa je da korisnik iznajmljuje ta noodre eni broj kopija datog programa. Drugim rije ima, korisnik ima licencu dakoristi program na isti na in, kao to bi koristio knjigu za svoju li nu upotrebu. Tozna i da se u bilo kom trenutku smije koristiti samo jedna kopija programa, priemu se po pravilu ne stavlja ograni enje na to da korisnik programa smije da bude

njegov kupac. Za razliku od ilegalnosti kopiranja knjige, korisnik smije i treba dauradi kopije iznajmljenog programa iz sigurnosnih razloga (zbog mogu nosti

te enja orginalne kopije). Kr enje zakona nastupa onog trenutka, kada se kopijedistribuiraju tako da ih istovremeno mo e koristiti vi e korisnika od broja licenci,koje su nabavljene. Ako se licenca za kopiju programa nabavlja jednokratnimpla anjem i vrijedi, za jednog korisnika, bez vremenskog ograni enja, onda se ovaforma nabavke programa naziva kupovina licence za trajno kori enje programa. Treba ipak ista i da i pored velike sli nosti postoji i jedna bitna razlika izme uprava vlasnika knjige i prava vlasnika licence za kori enje programa. Vlasnikknjige mo e da ode u antikvarnicu i da svoju knjigu izlo i prodaji. Antikvarnice zaprogram (za sada) ne postoje. Su tina je u tome da program ne mo e da se„potro i“ jer je svaka kopija, za razliku od knjige, identi na originalu i kopiranjemkopija ne gubi se ni ta od polaznih informacija. Stoga vlasnik knjige mo e da sepromjeni, a vlasni tvo licence za kori enje programa obi no nije prenosivo natre a lica. Ponekad se de ava da proizvo programa nestane sa tr ta. U tim slu ajevimse obi no pojavi druga firma koja otkupi pravo dalje distribucije i odr avanja

Page 190: Programski jezik Visual basic

9 PROIZVODNJA I PRODAJA PROGRAMA 190

programskih proizvoda. Ona se zatim pojavljuje u istoj ulozi u kojoj je bio iorginalni proizvo . Druga sli na pojava nastupa kada proizvo programaprestane da prodaje svoj odre eni proizvod. Na primjer, firma IBM je razvila nekespecijalisti ke programe za slo ene matemati ke prora une. Vremenom su se natr tu pojavili programi sa boljim karakteristika, pa je firma IBM odlu ila daprekine podr ku svome programu. Na ovaj na in ona titi svoj renome uproizvodnji ra unara i programa. U pravnim dr avama piratsko kopiranje je jednako te ak prekr aj kao i povredapatentnih prava ili piratsko kopiranje i distribucija knjiga, muzike, filmova itd. Akobi neko neovla eno lice uzelo na primjer neku knjigu i bez odobrenja izdava a iautora po elo da tu knjigu samostalno kopira i kopije stavlja u prodaju, onda bi tobio prekr aj i pravno i moralno. Treba razumjeti da zakon koji titi izdava a iautora titi u stvari najvi i dru tveni interes. Ako bi proizvo u knjige, iliprograma, njegov proizvod bio neka njeno piratski ukraden, onda bi kao direktnaposljedica toga opao interes za proizvodnju tako riskantnog proizvoda. Dru tvo bineminovno bilo suo eno sa usporenim razvojem ili nazadovanjem, jer ne bi bilonovih proizvoda iz ovih oblasti. To je razlog to neovla eno kori enje programanije samo pravno nedopustiv akt, ve predstavlja i ozbiljno kr enje profesionalnogmorala, jer potkopava temelje zdravih odnosa u okviru programske profesije.

9.3 GARANTNE OBAVEZE

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 bilo kakvugaranciju. Ta nije proizvo i programa umjesto garancije za svoje proizvodenaj e daju izjavu da ne prihvataju bilo kakvu odgovornost za primjenu iposljedice primjene svog programa.

ak i programi koji slu e za rje avanje nekih matemati kih problema, kojiimaju izuzetnu vrijednost i mogu se koristiti sa visokim stepenom pouzdanosti dajuovakve izjave. Razlog le i u tome to uvijek postoji mogu nost da se, i pored vrlomale vjerovatno e, desi slu aj da se pri nekim ulaznim parametrima pojavi gre kau nekom programu. I ako bi se taj program koristio u prora unu ili u radu nekogveoma usjetljivog ure aja (tipi an primjer su atomske centrale, letjelice i njihovisastavni dijelovi), moglo bi do i do fatalnih posljedica, za koje proizvoprograma ne mo e prihvatiti odgovornost. Stoga se i daje izjava o ne prihvatanjuodgovornosti. Izjave o neprihvatanju odgovornosti postale su uobi ajena pravnaforma i primjenjuje 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 ili

Page 191: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 191

kompanija 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 posljedi nog gubitka nekihkorisni kih programa ili podataka, pa se proizvo programa sa razlogom odlu iona sli nu formulaciju, kao i autori biblioteke 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 dobro koristiti izjavu onepriznavanju garancije. Tim prije to su korisnici programa 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. Renomirani proizvo i programa ipak ele da korisnicima pru e razumnukoli inu sigurnosti i poka u maksimalnu dozu povjerenja, pa ponekad idu i ne todalje od obi ne zamjene defektnog medijuma. To se obi no posti e "garancijompovra aja bez obrazlo enja“, tako da se pru i mogu nost da korisnik u odre enomroku (obi no 30 dana od dana nabavke programa) mo e da vrati programproizvo u (uz implicitnu argumentaciju da program ne odgovara korisnikovimpotrebama) i da povrati sredstva, koja je uplatio na ime licence programa. Druga forma garancije koju proizvo i unikatnog ili maloserijskog programaponekad nude kupcima je garancija za interventno odr avanje u ograni enomperiodu. Ova garancija, o kojoj se vi e govori u narednom odeljku, ima za cilj daobezbjedi da proizvo programa u ograni enom periodu (naj e godina dana)bude u obavezi da po reklamaciji kupca izvr i sitnije popravke i doradeisporu enog programskog proizvoda. 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 inada se obezbjedi da odre eni program mo e da radi isklju ivo na odre enomra unaru, sastoji se u tome da se serijski broj procesora (koji se programski mo e

itati) dostavi proizvo u programa, koji zatim taj broj upisuje (naj ekriptografisano) u program, koji treba da radi na tom ra unaru. U toku radaprograma 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 ajene„copyright“ za tite. Sada princip licence za kori enje programa nije vi e „jedna

Page 192: Programski jezik Visual basic

9 PROIZVODNJA I PRODAJA PROGRAMA 192

kopija jedan korisnik“ (na bilo kom mjestu i na bilo kom ra unaru), ve „jednakopija, jedan ra unar“. Pri tome broj simultanih korisnika takvog programa mo e,ali ne mora, da bude ograni en. Osnovna ideja proizvo a programa je obi no danjegova zarada treba da bude proporcionalna koristi koju kori enjem programaostvaruje njegov korisnik. Na primjer, cijena licence za kori enje operativnogsistema je redovno proporcionalna maksimalnom broju korisnika, koji na takvomsistemu mo e da simultano radi. Tako je cijena Windows operativnog sistema zapojedina ne korisnike reda nekoliko stotina KM. Dok sa druge strane programskiproizvod koji je namjenski pravljen za samo jednu firmu i koji ima stotinjak putamanje kodnih linija od operativnog sistema mogu da ko taju i nekoliko stotinahiljada KM.

9.4 ODR AVANJE PROGRAMA

Proizvo i programa (pogotovo za unikatne programe) esto korisnicima nudeugovorno odr avanje programa. Pod odr avanjem se obi no podrazumjevajupopravke i dorade, koje se rade na zahtjev korisnika, koji je otkrio gre ku ilinedostatak u programu koji koristi, a za koje ima ugovorno odr avanje. Pri tomeposmatrani program mo e biti kupljen ili iznajmljen. Ugovorom o odr avanju semoraju precizno specificirati uslovi odr avanja. To naj e mo e biti:

1) vremenski rok u kome proizvo programa 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 datogprograma, ali obi no bez obaveze da se ispune neki specifi ni zahtjevi.Budu i da je proizvo programa spreman na odre ene intervencije uprogramu na zahtjev kupca, to se ponekad mo e smatrati kao odre enaforma garancije.

Primjeri navedene forme odr avanja programa 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 modifikuju program, tako da se navedeneneispravnosti otkolone. Drugi pravac se sastoji u tome da se modifikuje korisni kaforma, tj. onih djelova koji defini u tip i formu unosa ulaznih podataka od stranekorisnika. Korisnik koji rutinski koristi program du e vremena redovno otkrijesitne neprakti nosti u na inu komuniciranja, podatke koji se ponavljaju, nepotrebnaograni enja, testove i sli no. Tako da ima razloge da pokrene zahtjev za manjimizmjenama programa. Treba naglasiti da pod ovaj vid modifikacije ne spadaju

Page 193: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 193

su tinske modifikacije algoritamske prirode, jer bi to iziskivalo pravljenje noveverzije programa. Druga vrsta ugovora o odr avanju programa, koja se primjenjuje u domenusistemskog programa, ne obuhvata interventno odr avanje, ve periodi nu isporukunovih verzija instaliranog programa. U takvim slu ajevima proizvo ima ekipuprogramera, koji permanentno dora uju i usavr avaju postoje i program. Kada sebroj intervencija u postoje em programu nakupi tako da se nova verzije programapo svojim osobinama u dovoljnoj mjeri razlikuje od predhodne, onda se ta novaverzija automatski distribuira korisnicima, koji imaju ugovor o odr avanjuprograma.

9.5 OZNA AVANJE VERZIJA I MODIFIKACIJA PROGRAMA

Opisani evolutivni razvoj programa ima obi no svoju nomenklaturu u viduoznake v.m, koja ozna ava

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

Kada se laboratorijski razvija prototip programa onda je to „nulta verzija“, kojamo e imati veliki broj raznih modifikacija dok se ne dobije kompletan proizvod.Program se dora uje sve dok ne pro e zavr no testiranje i kada je spreman zatr te. Takav proizvod se naj e ozna ava kao verzija 1.0 (skra eno V1.0). Veoma je va no da se u toku razvoja programa vodi uredna i preciznaevidencija o modifikacijama koje su u toku. Vremenom se nagomila veliki brojlistinga programa od kojih mnogi mogu biti zastarjeli, ali se to ne mo e otkriti akona njima ne stoji odgovaraju a oznaka. Prema tome, u toku razvoja i testiranjaprograma potrebno je poslije svake modifikacije programa unijeti na programimaizmjenjenu oznaku. Po inje se sa V0.1, pa zatim svaka modifikacija ima narednibroj (V0.2, V0.3, itd.), dok se ne do e do izlaska na tr te sa verzijom V1.0. Zatimse tokom razvoja programa distribuiraju verzije V1.1, V1.2, itd. Po pravilu poslijemanje od 10 modifikacija prelazi se na verziju V2.0. Podrazumjeva se da se ovajproces odvija saglasno sa potrebama tr ta, pa V2.0 treba da obuhvati poredpopravki gre aka i pro irenja koja ine zna ajnu razliku u odnosu na verziju V1.0.Zatim se isporu uju modifikacije V2.1, V2.2 itd. Neki popularni programi do ivjelisu ve i broj 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.

Page 194: Programski jezik Visual basic

9 PROIZVODNJA I PRODAJA PROGRAMA 194

9.6 SPECIFIKACIJA PROGRAMSKIH PROIZVODA

Da bi se lak e definisala prava i obaveze prilikom izrade i didtribucijeprogramskih sistema i pra enje dokumentacije korisno je uvesti jednu standardnuspecifikaciju uslova isporuke i kori enja programskih proizvoda po sljede imobilje jima:

1) Pravo kopiranja i kori enja programskog proizvoda od strane kupca iproizvo a/prodavca.

2) Ograni enje obima kori enja od strane kupca.3) Ograni enje lokacije kori enja i ra unara.4) Ograni enje vremena kori enja programskog proizvoda.5) Na in isporuke programskog proizvoda.6) Dokumentacija programskog proizvoda.7) Garancija i odr avanje programskog proizvoda.

Svaki modalitet kori enja programskog proizvoda u navedenoj specifikacijimo e se opisati jednoslovnim kodom, koji e sada biti definisan.1) Pravo kopiranja i kori enja programskog proizvoda od strane kupca iproizvo a/prodavca mo e da bude trojako:

N - kupac dobija neekskluzivno pravo kori enja pri emu proizvozadr ava pravo kori enja proizvoda za sebe, kao i pravo dalje neograni eneprodaje tre im licima.E - ekskluzivno pravo kori enja pri emu ni proizvo ni kupac nemajupravo da taj proizvod prodaju tre im licima.R - ekskluzivno pravo kori enja sa pravom da kupac mo e da ustupa (prodaje)proizvod tre im licima, dok proizvo takvo pravo ne zadr ava.

2) Ograni enje obima kori enja od strane kupca mo e da bude sljede e:X - kupac ima pravo kori enja programskog proizvoda bez ograni enja brojakorisnika.n - kupac ima pravo kori enja, koje je definisano tako da u svakom momentuaktivno bude ne vi e od n kopija datog programskog proizvoda (n ≥ 1).

3) Ograni enje lokacije kori enja i ra unara mo e da bude trojako:C - ograni enje prava kori enja na odre eni ra unar kupca za ograni en ilineograni en broj korisnika, pri emu nema pravo kori enja na drugimra unarima.L - ograni enje prava kori enja na jednu lokaciju kupca na kojoj mo e bitismje teno vi e povezanih ili nepovezanih ra unara na kojima se koristiprogramski sistem.A - pravo kori enja za sve lokacije na kojima kupac trenutno ili u budu nostiima instalirane ra unare.

4) Ograni enje vremena kori enja programskog proizvoda mo e da bude sljede e:P - permanentno pravo (bez vremenskog ograni enja).T - pravo koje je vremenski ograni eno (vrijeme trajanja licence).

Page 195: Programski jezik Visual basic

Programski jezik Visual Basic Zbirka zadataka 195

5) Na in isporuke programskog proizvoda mo e da bude:B - binarni oblik programa (izvr na exe verzija).S - izvorni oblik programa (kod programa u programskom jeziku).

6) Dokumentacija programskog proizvoda obuhvata tri dokumenta.a) Uputstvo za instalaciju, koje korisniku omogu ava da programski sistemsamostalno instalira i pusti u rad.b) Uputstvo za kori enje, koje korisniku omogu ava samostalnu eksploatacijuprograma.c) Uputstvo za odr avanje programa, koje sadr i izvorni kod svih programa,opis struktura podataka i opis na ina rada. Ovo uputstvo treba da omogu ikorisniku samostalnu modifikaciju programa i testiranje.

Imaju i u vidu navedene mogu nosti mogu se definisati sljede e opcije isporukedokumentacije:

K - dokumentacija koja obuhvata "Uputstvo za instalaciju" i "Uputstvo zakori enje programa".D - kompletna dokumentacija koja obuhvata "Uputstvo za instalaciju","Uputstvo za kori enje" i "Uputstvao za odr avanje programa".

7) Garancija i odr avanje programskog proizvoda mo e da bude:Z - standardna prodaja bez garancije i bez ura unatog odr avanja.Y - jednogodi nja garancija (ili neki drugi vremenski period) za rad naodr avanju (tj. korekciji i dopuni programskog proizvoda) prema zahtjevu(reklamaciji) kupca.M - odr avanje po posebnom ugovoru.

Navedena klasifikacija se po potrebi mo e modifikovati i/ili dopuniti. Onaomogu ava da se ponuda programa precizno formuli e i da za svaki programskiproizvod pomo u sedmoslovne specifikacije odrede uslovi pod kojima se proizvodprodaje.

Tako je na primjer klasifikacija „NXLPSDY“ ozna ava proizvod za koji je:- ponu eno neekskluzivno pravo kori enja,- za neograni en broj korisnika,- na jednoj lokaciji kupca,- bez vremenskog ograni enja,- pri emu se isporu uje program u izvornom obliku (kodu),- sa kompletnom dokumentacijom i- sa jednogodi njom garancijom za odr avanje programa.

Navedena klasifikacija opcija nabavke i isporuke programskih proizvoda neobuhvata finansijske uslove, koji se uglavnom svode na jednokratno ili periodi nopla anje.

Page 196: Programski jezik Visual basic

9 PROIZVODNJA I PRODAJA PROGRAMA 196

L I T E R A T U R A

[1] VEE PRO 8.5. Help, Agilent Technologies, 2007.[2] VEE PRO 6.0. Help, Agilent Technologies, 2000.[3] Agilent Technologies Libraries for Instrument Control Revision: L.02.00,

Agilent Technologies CD, 2002.[4] Microsoft Visual Basic 6.0 Help, Microsoft, 1999.[5] Dr Jozo J. Dujmovi , Programski jezici i metode programiranja,

Akademska misao, Beograd, 2003.[6] Dr Tihomir Latinovi , Osnove programiranja (Visual Basic), Biblioteka

Informacione tehnologije, Banja Luka, 2007.[7] Dr Lazar Mili evi , Mr Lazar Radovanovi , Programiranje (Visual Basic),

Ekonomski fakultet, Br ko, 2005.[8] Sr an Damjanovi , Predrag Katani , Borislav Drakul, Zbirka zadataka iz

poslovne informatike, Fakultet spoljne trgovine, Bijeljina, 2008.[9] Command Reference Manual HP3852A Data Acquisition/Control Unit,

Hewlettt Packard Company, 1987 .[10] User's Guide Agilent 3497A Data Acquisition/Switch Unit, 1999.[11] User's Guide Agilent 82357A USB/GPIB Interface for Windows, Agilent

Technologies, 2000.[12] Sr an Damjanovi , "Razvoj i etaloniranje akvizicionog sistema na stanici za

ispitivanje turbo-mlaznih motora," Magistarski rad, Beograd, 2004.[13] Sr an Damjanovi , "Nova re enja akvizicionog sistema na stanicama za

ispitivanje turbomlaznih motora sa smanjenom mernom nesigurnosti,"Doktorski rad, Isto no Sarajevo, 2007.

[14] Dragan Stankovi , Fizi ko tehni ka merenja - senzori, Nau na knjiga,Beograd, 1997.

[15] Dragan Stankovi , Predrag Osmokrakovi , Praktikum laboratorijskih ve biiz fizike, Zavod za fiziku tehni kih fakulteta u Beogradu, 2005.

[16] Petar Pravica, Ivan Bagari , Metrologija elektri nih veli ina op ti deo,Nauka, Beograd, 1993.

[17] Guide to the Expression of the Uncertainty in Measurement, ISO, 1993.[18] EA-4/02 Expresion of the Uncertainty of Measurement in Calibration,

European co-operation for Accreditation, 1999.[19] EA-10/08 Calibration of Thermocouples, European co-operation for

Accreditation, 1997.[20] Ascii kod, http://frank.harvard.edu/aoe/images/t10r3.pdf, 28.01.2011.

Page 197: Programski jezik Visual basic

POSVETA 197

CIP –

,

004.432.2VEE Pro

, Programski jezik VEE Pro / Sr an Damjanovi ,Predrag Katani . - Isto no Sarajevo :Elektrotehni ki fakultet, 2011 (Bijeljina :Grafika Gole). - 197 str. : ilustr. ; 25 cm

Tira 200. - Napomene i bibliografske reference uztekst. - Bibliografija: str. 197.

ISBN 978-99938-624-7-51. , [ ]

COBISS.BH-ID 2152728