238

Click here to load reader

Visual Basic programski jezik

Embed Size (px)

DESCRIPTION

Visual Basic

Citation preview

Page 1: Visual Basic programski jezik

Dr Sr an DamjanoviMr Predrag Katani

PROGRAMSKI JEZIK VISUAL BASIC

ZBIRKA ZADATAKA

FAKULTET POSLOVNE EKONOMIJEBIJELJINA, 2013.

Page 2: Visual Basic programski jezik

Recenzenti:

Izdaje:FAKULTET POSLOVNE EKONOMIJE

Bijeljina

Za izdava a:Prof. dr Sr an Damjanovi

tampa:GRAFIKA GOLE

Bijeljina

Tira :200 primjeraka

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

Page 3: Visual Basic programski jezik

Posveta

Ovu knjigu posve ujem bakama Go i i Vukici.

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

Sr an Damjanovi

Page 4: Visual Basic programski jezik
Page 5: Visual Basic programski jezik

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 ispravka gre ke................................................ 301.3.5. Distribucija va ih programa............................................................... 331.3.6. Implementacija programa i obuka korisnika....................................... 361.3.7. Odr avanje i nadogradnja programa .................................................. 37

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

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

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

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

Page 6: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 6

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

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

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

4.2. NAREDBE ITERACIJE...................................................................... 1044.2.1. For ... Next struktura...................................................................... 1044.2.2. Do While ... Loop struktura............................................................ 1094.2.3. Do ... Loop While struktura............................................................ 1114.2.4. Do ... Loop Until struktura.............................................................. 112

5. FUNKCIJE I PROCEDURE........................................................... 1155.1. FUNKCIJE.......................................................................................... 1155.2. PROCEDURE ..................................................................................... 1185.3. MATEMATI KE FUNKCIJA........................................................... 1255.4. FINANSIJSKE FUNKCIJA ............................................................... 1265.8. INPUTBOX FUNKCIJA ..................................................................... 1285.9. MESAGEBOX FUNKCIJA................................................................. 1325.10. REKURZIVNE FUNKCIJE I PROCEDURE.................................. 134

6. OBJEKTNO ORJENTISANO PROGRAMIRANJE .................... 1376.1. OBJEKTNO ORIJENTISAN NA IN MI LJENJA.......................... 1376.2. OBJEKAT ............................................................................................ 1386.3 METODE I KOMUNIKACIJA ME U OBJEKTIMA....................... 1406.4. ENKAPSULACIJA I INTERFEJSI .................................................... 141

7. OBJEKTI VISUAL BASIC-A.......................................................... 1437.1. OBJEKAT FORM ............................................................................... 143

7.1.1. Program sa vi e formi...................................................................... 1447.1.2. Odre ivanje po etne forme i prikaz uvodne slike............................. 146

7.2. OBJEKAT LABEL.............................................................................. 1497.3. OBJEKAT TEXTBOX......................................................................... 1497.4. OBJEKAT COMMANDBUTTON....................................................... 1517.5. OBJEKTI CHECKBOX I OPTIONBUTTON .................................... 152

Page 7: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 7

7.6. OBJEKAT FRAME............................................................................. 1547.7 OBJEKTI LISTBOX I COMBOBOX ................................................... 1557.8. OBJEKTI KLIZNE TRAKE HSCROLLBAR I VSCROLLBAR........ 1577.9. OBJEKAT TIMER.............................................................................. 1597.10. OBJEKAT DRIVELISTBOX ............................................................ 1657.11. OBJEKAT DIRECTORYLIST BOX ................................................. 1667.12. OBJEKAT FILELISTBOX ............................................................... 1667.13. OBJEKTI LINE I SHAPE................................................................. 1687.14. OBJEKTI IMAGE I PICTUREBOX ................................................. 1697.15. OBJEKAT DATA .............................................................................. 1707.16. OBJEKAT OLE................................................................................. 1737.18. OBJEKAT MSFLEXGRID ZA TABELARNI PRIKAZ.................. 1767.19. OBJEKAT COMMONDIALOG ZA STANDARDNI MENI............ 182

7.19.1. Dijalo ki okviri Open i Save As ..................................................... 1847.19.2. Dijalo ki okvir Color..................................................................... 1847.19.3. Dijalo ki okvir Font ...................................................................... 1857.19.3. Dijalo ki okvir Print...................................................................... 1857.19.3. Dijalo ki okvir Help ...................................................................... 186

7.20. IZRADA SOPSTVENOG MENIJA ................................................. 1867.21. IZRADA SOPSTVENOG TOOLBAR-A........................................... 1907.22. ACTIVEX OBJEKATI ...................................................................... 193

7.22.1. Kori tenje objekata drugih aplikacija ............................................. 1947.22.2. Tipovi ActiveX sastavnih dijelova .................................................. 1957.22.3. Stvaranje pokaziva a na objekat .................................................... 1977.22.4. Otpu tanje ActiveX sastavnog dijela............................................... 2007.22.5. Rukovanje gre kama tokom rada u ActiveX sastavnim dijelovima .. 201

7.23. NIZ OBJEKATA............................................................................... 2027.24. KRETANJE KROZ OBJEKTE SA TAB TASTEROM.................. 204

8. PRIMJERI VISUAL BASIC PROGRAMA.................................... 2078.1. PRIMJERI IZ HELP-A VISUAL BASIC PROGRAMA.................... 2078.2. ADO PRISTUP BAZAMA PODATAKA ........................................... 2098.3. SQL UPIT U VISUAL BASIC-U ......................................................... 2128.4. PRISTUP EXCEL DOKUMENTU..................................................... 2218.5. ZADACI ZA SAMOSTALNI RAD .................................................... 223

8.5.1. Zadaci sa grananjem........................................................................ 2238.5.2. Zadaci sa upotrebom gotovih funkcija ............................................. 2248.5.3. Zadaci sa petljama........................................................................... 2268.5.4. Zadaci za pristup Excel dokumentu i Access bazi ............................. 227

Page 8: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 8

9. PROIZVODNJA I PRODAJA PROGRAMA ................................ 2299.1 PRODAJA PROGRAMA .................................................................... 2299.2. PRAVO KOPIRANJA PROGRAMA ................................................ 2309.3. GARANTNE OBAVEZE.................................................................... 2319.4. ODR AVANJE PROGRAMA ........................................................... 2339.5. OZNA AVANJE VERZIJA I MODIFIKACIJA PROGRAMA...... 2349.6. SPECIFIKACIJA PROGRAMSKIH PROIZVODA......................... 235

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

Page 9: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 9

UVOD

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

Knjiga je napisana zbog nedostatka na tr tu literature na srpskom jeziku saprakti nim primjerima za programski jezik Visual Basic. Naime, postoje samouputstva za rad sa raznim verzijama programskog jezika Visual Basic, koja sunapisana na engleskom jeziku i dostupna su u elektronskom obliku. To su,uglavnom, obimne dokumentacije izlo ene na vi e stotina, ak i oko hiljadustranica, a uglavnom se odnose na jedan segment problema, koji se obra uje. Narelativno skromnom broju stranica izlo ena je jedna konzistentna cjelina pogodnaza edukaciju u obrazovnim ustanovama. Knjiga je posebno aktuelna za studente iitaoce, koji se samostalno bave programiranjem u programskom jeziku Visual

Basic. Ponu eni primjeri su, zbog konciznosti izlaganja, djelimi no upro eni, alise nevelikim trudom mogu brzo i efikasno dovesti do profesionalne aplikacije.Obra ene oblasti su raznovrsne i bri ljivo birane, kako bi itaoci mogli da uvidevi estruke primjene obra enog materijala u praksi.

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

Page 10: Visual Basic programski jezik

UVOD 10

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

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

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

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

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

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

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

Page 11: Visual Basic programski jezik

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 radisa decimalnim brojevima. To su uobi ajeni brojevi sa kojima ra unamo i brojimo.U ra unaru ne postoje elektronska kola i sklopovi, koji mogu raditi sa timbrojevima. Da bi se u ra unaru moglo manipulisati informacijama, koje su opisanepomo u cifara, slova, slike, zvuka itd. potrebno ih je binarno predstaviti. Binarnibrojevi su, barem na prvi pogled, udni. Oni postaju uobi ajeni i razumljivi tekonda kada se nau i 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: Visual Basic programski jezik

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 “, d ojstik, skener, mikrofon, olovka za crtanje, barkod ita i i sl.Izlazni periferni ure aji su oni ure aji putem kojih sistem proslije uje informacijeo izvr enoj naredbi, obra enim podacima korisniku sistema. U ra unarskimsistemima sre emo sljede e izlazne ure aje: monitor, tampa , ploter, zvu nik,projektor, razni kompjuterski kontrolisani ure aji i sl.

U ovomj knjizi 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: Visual Basic programski jezik

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 avanje sljede eoperacije. Automatska ma ina bi o igledno morala da zamijeni ovjeka, ne samo uizvr avanju operacija sa podacima, ve i u upravljanju obradom. Takva automatskama ina jeste sistemska jedinica ra unara sa komponentama ra unara koje imajuspecijalna zadu enja, tj. takva ma ina je ra unarski sistem ili kra e ra unar.

Slika 1.2. Osnovna blok ema ra unara

Page 14: Visual Basic programski jezik

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 sanjegovom 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. Nanjoj 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: Visual Basic programski jezik

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 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: Visual Basic programski jezik

1. OSNOVE PROGRAMIRANJA 16

memoriji. Ovo 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. Numerisanje memorijskihelija po inje od 0 (nule). O igledno je da redni broj elije predstav1ja njenu

jedinstvenu adresu. Uvedimo sada predpostavku da jedna memorijska elija mo ada sadr i jednu i samo jednu instrukciju ili samo jedan podatak. Tada mo emo daizvedemo zaklju ak da svaka instrukcija, odnosno, svaki podatak ima sopstvenuadresu - adresu lokacije u kojoj je smje ten.

Uvo enjem koncepta adresa i adresiranja stvoren je bitan mehanizam zafunkcionisanje ra unara. Stvorena je mogu nost da se svaka instrukcija i svakipodatak smije ta u odre enu memorijsku adresu, da bi mu se kasnije, posredstvomte adrese moglo pristupiti. Pri tome su nad memorijom mogu e dvije operacije:upisivanje i itanje sadr aja neke adrese. Realizacija ovih operacija omogu ena jeposredstvom dva registra, od kojih se jedan naziva adresnim registrom memorije(ARM), a drugi prihvatnim registrom memorije (PRM). Operacija itanja sadr ajaodre ene memorijske lokacije, obavlja se tako, to se adresa lokacije kojoj se elipristupiti, upisuje u ARM. 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. 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 trajno 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: Visual Basic programski jezik

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 rje 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. 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: Visual Basic programski jezik

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: Visual Basic programski jezik

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 svih 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: Visual Basic programski jezik

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: Visual Basic programski jezik

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: Visual Basic programski jezik

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: Visual Basic programski jezik

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: Visual Basic programski jezik

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 strukturaRazgranata linijska struktura je ona linijska struktura algoritma, kod koje se

svaki 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 uop te neizvr e u toku jednog izvr avanja algoritma. U razgranatim algoritamskimstrukturama mora postojati barem jedan uslovni algoritamski korak, kojiomogu uje grananje algoritma.

Po etak

Kraj

Z

P 1

P 2

xRy

P 3

Ne

Da

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

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

Page 25: Visual Basic programski jezik

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 algoritmaNiz algoritamskih koraka u kojem se jedan ili vi e algoritamskih koraka mo e

izvr 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 ponavlja. 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: Visual Basic programski jezik

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 xnepoznata, 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.

U ovom algoritmu je 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 za vrijemeizvr avanja algoritma.

Promjenljiva cikli na strukturaCikli na struktura u kojoj dolazi do promjene zakona obrade, u jednom ili vi e

algoritamskih 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 sljede u sumu

y =∑=

n

i 0(-1)ixi ( 1.1.)

Page 27: Visual Basic programski jezik

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 promjena vrijednostipromjenljivih 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: Visual Basic programski jezik

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: Visual Basic programski jezik

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: Visual Basic programski jezik

1. OSNOVE PROGRAMIRANJA 30

1.3.3. Pisanje i uno enje programa u ra unar

Algoritam zapisan u obliku 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 prevo enje 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 ispravka 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. 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: Visual Basic programski jezik

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: Visual Basic programski jezik

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 vrijednosoti.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 spolja 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 kompajliranje i interpretacija. Kompajliranje seobavlja kompajlerima. Kompajliranje je postupak u kome se program napisan u

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

Page 33: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 33

izvornom 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. Kompajlirani programi obi no radebr e. Prednost interpretera je to su obi no iteraktivni i nije potrebno prolaziti svefaze, kao kod kompajliranja da bi se program izvr io.

1.3.5. Distribucija va ih programa

Nakon to napravite Visual Basic program, mo ete ga distribuirati drugimkorisnicima. Mo ete slobodno distribuirati svaki program, 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 programa, postoje dva koraka kroz koje morate pro i:• Pakovanje – morate zapakovati datoteke va eg programa 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 zapakovani program morate premjestitina mjesto sa koga ga korisnici mogu instalirati. To mo e zna iti kopiranje paketana lokalni ili mre ni disk, ili postavljanje paketa na Web stranicu.

Mo ete koristiti dva alata za pakovanje i raspore ivanje va ih programa.arobnjaka za pakovanje i raspakivanje (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 raspakivanjeautomatizuje puno postupaka uklju enih u distribuiranje programa, 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 raspakivanje (Package and Deployment Wizard)Visual Basica poma e vam pri stvaranju .cab datoteka za va program, njihovomgrupisanju u cjelinu, ili paket, koji sadr i sve informacije potrebne za instalaciju, teisporuku tih paketa krajnjim korisnicima. arobnjaka za pakovanje i raspakivanjemo ete upotrijebiti za stvaranje paketa, koji se distribuiraju na disketama, CD-ima,lokalnom ili mre nom disku, ili Internetom. arobnjak za pakovanje i raspakivanjeautomatizuje ve inu posla upletenog u stvaranje i raspakivanje tih datoteka.

arobnjak za pakovanje i raspakivanje nudi sljede e mogu nosti:

Page 34: Visual Basic programski jezik

1. OSNOVE PROGRAMIRANJA 34

• Opcija Package poma e vam pri pakovanju datoteka projekta u .cab datoteku,koja zatim mo e biti raspakivana. 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 programa 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 raspakivanja sa arobnjakom. Svakiput kad koristite arobnjaka, snimate skript koji 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 raspakivanje 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 raspakivanjeMo 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 iraspakivanje.

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

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

2) Upotrijebite menad era dodacima (Add-In Manager) za u itavanjearobnjaka za pakovanje i raspakivanje. U meniju Visual Basic-a Add-Ins

Page 35: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 35

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 raspakovati projekt, kliknite Deploy.• Ako elite pregledati, mijenjati ili obrisati skript, kliknite Manage Scripts.5) Nastavite kroz ekrane arobnjaka.

Pokretanje arobnjaka za pakovanje i raspakivanje, kao samostalan dio vr i sena sljede i na in:

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

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

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

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

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

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

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

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

zavisnosti.2) Odredite datoteke koje trebate distribuirati. arobnjak mora odrediti

projektne 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 – na

Page 36: Visual Basic programski jezik

1. OSNOVE PROGRAMIRANJA 36

primjer, .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) Raspakujte svoj paket. Postupak raspakivanja sadr i stvaranje va eg medijadistribucije i kopiranje svih potrebnih datoteka na mjesto gdje mu korisnici mogupristupiti.

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.

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 slike

Page 37: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 37

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

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 svoje

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

Page 38: Visual Basic programski jezik

1. OSNOVE PROGRAMIRANJA 38

proizvode 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. 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 enom

Page 39: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 39

ra 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 odstrane 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.

Page 40: Visual Basic programski jezik

1. OSNOVE PROGRAMIRANJA 40

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: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 41

1.4. RJE ENI PRIMJERI PRAVLJENJA ALGORITMA

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

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

Po etak

Kraj

Z = A + B

Z

A, B

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

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

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

Zadatak 1.4.Sastaviti 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: Visual Basic programski jezik

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.

Slika 1.19 Zadatak 1.5. Slika 1.20 Zadatak 1.6.

Zadatak 1.5.Sastaviti 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: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 43

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

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

Zadatak 1.8.Sastaviti 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.

Po etak

a, b, c

D = b2 -4ac

D < 0Da Ne

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

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

Kraj

R1, I1, R2, I2

I1 = I2 =0

R1 = R2 = -b /2a

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

I2 = - I1

Slika 1.21. Zadatak 1.8. Slika 1.22. Zadatak 1.9.

Zadatak 1.9.Sastaviti 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.

Page 44: Visual Basic programski jezik

1. OSNOVE PROGRAMIRANJA 44

Zadatak 1.10.Sastaviti 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.

Slika 1.23. Zadatak 1.10. Slika 1.24. Zadatak 1.11.

Zadatak 1.11.Sastaviti 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. Proces ra unanja prekinuti kada se dostigne zadata ta nost ε, takoda 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.

Page 45: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 45

Zadatak 1.13.Sastaviti 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.

Slika 1.25. Zadatak 1.12. Slika 1.26 Zadatak 1.13.

Zadatak 1.14.Sastaviti algoritam za unos niza Ai koji ima N elemenata, i=1...N. Zatim prona inajve u vrednosti (max M) unesenog niza Ai.Rje enje:Rje enje ovog algoritma dato je na slici 1.27.

Zadatak 1.15.Sastaviti algoritam za unos niza Ai koji ima N elemenata, i=1...N. Zatim sastavitialgoritam za ispisivanje niza u neopadaju em (rastu em) poretku.Rje enje:Rje enje ovog algoritma dato je na slici 1.28.

Page 46: Visual Basic programski jezik

1. OSNOVE PROGRAMIRANJA 46

Slika 1.27. Zadatak 1.14. Slika 1.28. Zadatak 1.15.

Zadatak 1.16.Sastaviti algoritam za unos niza Ai koji ima N elemenata, i=1...N. Zatim sastavitialgoritam za ispisivanje niza u nerastu em (opadaju em) poretku.Rje enje analogno prethodnom zadatku.

Zadatak 1.17.Sastaviti algoritam za pretra ivanje niza Ai koji ima N elemenata, i=1...N iispisivanje broja lanova niza djeljivih sa pet (5). Ako nijedan lan niza nije djeljivsa brojem pet (5), onda ova vrijednost treba da bude nula (0).Rje enje:Rje enje ovog algoritma dato je na slici 1.29.

Page 47: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 47

Zadatak 1.18.Sastaviti algoritam za izra unavanje faktorijel funkcije (F = N!), za uneseni broj N.F = 1*2*3* ... *NRje enje:Rje enje ovog algoritma dato je na slici 1.30.

Slika 1.29. Zadatak 1.17. Slika 1.30. Zadatak 1.18.

Zadatak 1.19.Algoritamski 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.20.Ako 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?

Page 48: Visual Basic programski jezik

1. OSNOVE PROGRAMIRANJA 48

Rje enje:1) Ciklus A= 10, B= 20, Uslov zadovoljen (T), A= 20, B= 122

Na kraju: A = 20, B= 122

Slika 1.31. Zadatak 1.19. Slika 1.32. Zadatak 1.20. i 1.21.

Zadatak 1.21.Ako 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= 10

Zadatak 1.22.Ako 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), kojevrijednosti e na kraju 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.23.Ako 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?

Page 49: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 49

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

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

Zadatak 1.24.Ako 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.25.Ako 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

Page 50: Visual Basic programski jezik

1. OSNOVE PROGRAMIRANJA 50

Zadatak 1.26.Ako 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?Rje enje:

1) Ciklus A= 10, B= 20, uslov L1 nije zadovoljen (F), uslov L2 nijezadovoljen (F), A= 222, B= 212

Na kraju: A = 222, B= 212

Zadatak 1.27.Ako je logi ki izraz L1 algoritma prikazanog na slici 1.34. 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.28.Ako 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.29.Ako 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?

Page 51: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 51

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

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.31.Koliko 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)

Na kraju: Broj ciklusa 6, A = 8 , B= 39

Zadatak 1.32.Koliko 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)

Page 52: Visual Basic programski jezik

1. OSNOVE PROGRAMIRANJA 52

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)

Na kraju: Broj ciklusa 6, A = 9 , B= 28

Slika 1.37. Zadatak 1.32. Slika 1.38. Zadatak 1.33.

Zadatak 1.33.Koliko ciklusa e se u algoritmu prikazanom na slici 1.38. izvr iti blok (B = A - B)i koje 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)

Na kraju: Broj ciklusa 7, A = 2 , B= 2

Zadatak 1.34.Koliko 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)

Page 53: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 53

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)

Na kraju: Broj ciklusa 6, A = 8 , B= 25

T

F

A=2

B=6

A = 8

B = A + B

A, B

A = A + 1

Po etak

Kraj

A > 5F

T

B = B - A

Slika 1.39. Zadatak 1.34. Slika 1.40. Zadatak 1.35.

Zadatak 1.35.Koliko 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.

Na kraju: 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: Visual Basic programski jezik

1. OSNOVE PROGRAMIRANJA 54

Page 55: Visual Basic programski jezik

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,morao se posebno programirati u kodu. Komandno dugme kao jedan odnajjednostavnijih objekata se morao svaki put posebno programirati crtanjem svakelinije na dugmetu posebno. To je predstavljao veliki napor za programere, jer suprogrami imali veliki broj kodnih linija, koji su se ponavljale.

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.Cjelokupni program je podjeljen na mno tvo djelova, koji se izvr avaju kadakorisnik izvr i neku akciju. Na primjer, 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. Za taj doga aj (click) objekta komandnodugme (CommandButton) pi emo kod. Ovaj kod e se startovati i izvr iti samokada korisnik klikne mi em na komadno dugme. Programiranje vo enodoga ajima je u stvari manji ili ve i broj segmenata programa, koje korisnikaktivira svojim akcijama. Svaki objekat ima svoj set osobina. Njih pode avamo uProperties prozoru koji dobijamo kada selektujemo eljeni objekat. Tako e, svakiobjekat prepoznaje neke doga aje. Duplim klikom mi a na bilo koji objekatpostavljen na radnu povr inu (Form), otvaramo prozor za pisanje koda (CodeWindow). U ovom prozoru pi emo kod programa, koji elimo da se izvr i nadpostavljenim objektima. Na slici 2.15. prikazan je prozor za pisanje koda, iznadkoga se nalaze dvije liste (ComboBox). Lijeva lista daje spisak imena svih objekat,koji postoje na toj radnoj povr ini. U desnoj listi se nude svi mogu i doga aji, kojise mogu programirati nad selektovanim objektom. Prvo se bira eljeni objekat, azatim i doga aj koji se eli programirati nad njim. Izborom odgovaraju egdoga aja, automatski se pojavljuje procedura doga aja u prostoru za pisanje koda.Ime procedure se sastoji od imena doga aja i imena 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: Visual Basic programski jezik

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 detaljno

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

Page 57: Visual Basic programski jezik

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: Visual Basic programski jezik

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 personalnom 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 instaliranjaprograma 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: Visual Basic programski jezik

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: Visual Basic programski jezik

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.8. 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 (direktorijum) gdje je program snimljen.

Page 61: Visual Basic programski jezik

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 objekata(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: Visual Basic programski jezik

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 osobinama (npr. Dugme.Enabled = False) i3) povezivanje imena fajla sa njegovim tipom (npr. Strana1.frm).

Znak za podvla enje ( _ ) se upotrebljava ako sadr aj komande ne mo e dastane u jedan programski red. Onda se na kraju toga reda upisuje znak "_", pa senastavlja unos sadr aja komande u sljede i programski red. Primjer:

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

Page 63: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 63

Ovaj simbol se koristi u procedurama doga aja za pravljenje imena procedure,tako to se spaja ime objekta i ime doga aja nad objektom. 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 podatka, 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-zapeta ( ; ) omogu ava da se dva podatka iska u u razmaku od jednogkaraktera prilikom kori enja komande print.

Zapeta ( , ) koristi se i za razdvajanje argumenata kod funkcija i procedura.Ovaj simbol se nesmije koristiti za pisanje realnih brojeva, koji se isklju ivo pi ukori tenjem simbola ta ka ( . ). 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 nekojosobini objekta ili promjenljivoj. Primjer:

If A=B Then - pore enje dvije promjenjiveHG = HG + 1 - dodjela vrijednosti promjenjivojCommand1.Enabled = True - dodjela vrijednosti osobini objektaMale zagrade ( ) slu e za grupisanje vi e izraza u jednu cjelinu i za

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

Tri ta ke ( ... ), u okviru neke osobine objekta, najavljuju pojavu menija sa vi eponu enih opcija.

Matemati ki operator za oduzimanje (-) ima i ulogu logi kog negatora.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".

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

Page 64: Visual Basic programski jezik

2. UVOD U PROGRAMSKI JEZIK VISUAL BASIC 64

Operator ( ^ ) slu i za stepenovanje nekog broja. 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), kada se kao rezultatdobija realni broj. Odnosno za cjelobrojno dijeljenje (a\b), kada kao rezultat dobijacijeli broj. 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 pore 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. OBJEKTI I NJIHOVE OSOBINE U PROGRAMU VISUAL BASIC

Visual Basic posjeduje veliki broj gotovih objekata, koji stoje programeru naraspolaganju. U standardnoj paleti alatki programskog jezika Visual Basic senalaze objekti, koji se naj e koriste u programiranju, a to su:

- Form radna povr ina za postavljanje ostalih objekata.- Label za ispis teksta.- TextBox za prikaz i unos tekstualnih i numeri kih vrijednosti.- CommanButton komandno dugme.- CheckBox i OptionButton za izbor opcija.- Frame pravljenje posebnog okvira sa objektima na formi.- ListBox i ComboBox za prikaz vrijednosti u padaju im listama.- Klizne trake HScrollBar i VScrollBar za izbor vrijednosti preko kliznih traka.- Timer za kori enje sistemskog datuma, vremena i vremenska pode avanja.- DriveListBox za prikaz i izbor drajvera na ra unaru.- DirectoryListBox za prikaz i izbor direktorijuma na aktivnom drajvu.- FileListBox za prikaz i izbor fajlova na aktivnom direktorijumu.- Line i Shape za crtanje po radnoj povr ini.- Image i Picturebox za prikaz slika raznih formata.- Data za povezivanje sa bazama podataka.- OLE za povezivanje sa drugim programima.

Page 65: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 65

Svi koji ele da prona u dodatne objekte, mogu ih prona i u Help-u Visual Basica.Da bi se ovi dodatni objekti mogli koristiti u programiranju, potrebno ih je prvododati u paletu objekata (ToolBox). Dodavanje dodatnih objekata se vr i prekoglavnog menija u kome se izabere Project, nakon ega se otvara list opcija, odkojih treba odabrati opciju Components, a zatim ekirati eljene objekte. Objektise postavljaju na radnu povr inu (formu), tako to se prvo klikne mi em naodgovaraju u ikonicu objekta u paleti objekata. Potom, uz zadr avanje pritisnutogtastera, u odgovaraju oj veli ini i na eljenoj poziciji na formi razvije kon anicaoblika paravougaonika, koja sadr i tra eni objekat. Nakon otpu tanja tastera ostajeobjekat okru en linijom pravougaonika, koji na tjemenima i sredinama stranica imaozna ene ta ke. Dovo enjem kursora mi a na jednu od tih ta aka pojavljuje sedvosmjerna strelica, pomo u koje se objekat mo e pro irivati ili su avati ueljenom pravcu. Postavljanjem kursora na objekat i zadr avanjem lijevog tastera

objekat se mo e, povla enjem mi a, premjestiti na drugo mjesto na formi. Objekatse mo e izbrisati, tako to se prvo klikom mi a izvr i njegov izbor (pojave se ta kena sredi tima stranica i na tjemenima) i pritisne tipka Delete (Del). Forma, tako e,sama po sebi, predstavlja jedan objekat. On je prozor u korisni kom interfejsu, ijise oblik i veli ina pode avaju, sli no ostalim objektima, tako to se pokazivapostavi na jednu od ivica ili na tjeme i zatim povu e u potrebnom smjeru.

Svaki objekat u Visual Basic-u ima vi e osobina, koje se pode avaju. Osobineobjekata se mogu dodjeljivati preko prozora osobina (Propereties), ili programskipreko koda programa. Kada se klikne na posmatrani objekat, tada se u prozoruosobina (Propereties) pojavljuju postoje e osobine selektovanog objekta ili grupeselektovanih objekata. U prozoru Propereties na lijevoj strani tabele se nalazeimena osobina. Na desnoj strani tabele treba preko tastature unijeti odgovaraju uvrijednost osobine ili osobinu izabrati od onih vrijednosti koje su unaprijedponu ene. Izbor se vr i tako to se klikne na osobinu i tada se pojave tri ta ke (...)ili lista (sa padaju im menijem). Klikom mi em na tri ta ke aktivira se okvir zadijalog pomo u, koga se biraju vrijednosti osobine. Aktiviranjem neke osobine zaboje (na primjer BackColor), pojavljuju se dvije opcije: Palette i System. Oneomogu avaju da se sa palete izvr i eljeni izbor boje. Kada se izabere eljena bojaprikazuje se njena vrijednost u heksadecimalnom kodu. Heksadecimalni kod bojeje za ve inu programera nerazumljiv broj i koristi se uglavnom kod dodjeljivanjaboja preko koda na sljede i na in:

TxtRezultatZ.BackColor = &H000000FF&

Ovo je primjer koda gdje je boja pozadine TextBox-a pod imenom TxtRezultatZpromjenjena u crvenu boju.

esto je prozor za osobine tako mali da se u njemu ne mogu vidjeti sve osobineodgovaraju eg objekta. U tom slu aju pored desne ivice, postoje vertikalni kliza iza pomjeranje osobina. Za veliki broj osobina postoje predlo ene standardnevrijednosti, mada i korisnik mo e mijenjati i postavljati nove prema svome ukusu.

Page 66: Visual Basic programski jezik

2. UVOD U PROGRAMSKI JEZIK VISUAL BASIC 66

U nastavku objasni emo samo neke osobine, koje se esto koriste i odnose se,uglavnom, na vi e objekata.

Osobina Alignment slu i za poravnanje teksta u objektima. Klikom na osobinupojavljuje se ComboBox, ijim se aktiviranjem otkrivaju mogu nosti poravnanja:

0 - Left Justify (poravnanje u lijevo),1 - Right Justify (poravnanje u desno),2 - Center (centriranje teksta) i3 - Justify (obostrano poravnanje).Osobina Appearance posjeduje dvije vrijednosti: 0 - Flat i 1 - 3D, koje

omogu avaju prikaz objekta u jednoj dimenziji ili trodimenzionalno.AutoRedraw je osobina forme, a mogu joj se dodijeliti dvije vrijednosti: False i

True. Dodjelom vrijednosti True omogu ava se da Visual Basic automatski ispisujerezultate dobijene pomo u naredbe Print, kada se ponovo prika e forma. Uprotivnom, ako se dodijeli osobina False, prilikom novog prikazivanja formerezultati bi izostali. Ostali objekti prikazuju se automatski bez obzira na izabranuvrijednost osobine.

Klikom na osobinu BackColor, na desnoj strani ove osobine, pojavljuju se trita ke (...). Klikom na njih otvara se okvir za dijalog sa mogu no u izboraodgovaraju e boje iz palete boja ili potvrde ponu enog sistema boja. Odabranavrijednost boje odnosi se na pozadinu posmatranog objekta.

BorderStyle je osobina koja ima ulogu da ozna i ivicu doti nog objekta.Klikom na aktivira se lista mogu ih vrijednosti:

0 - None (bez okvira),1 - FixedSingle (objekat uokviren jednom linijom),2 - Sizable (linija je istaknuta i deblja) i3 - FixedDialog (mo e se izabrati eljeni stil linije).Pomo u osobine BorderColor dodjeljuje se boja grani noj liniji objekta.Pored osobine Caption upisuju se tekst, koji e pisati na doti nom objektu. Ovu

osobinu treba razlikovati od imena objekta.Osobina Connect dodjeljuje se ime formata baze podataka kojima e se

pristupati (npr. Acces, Excel, dBase i sl.) radi obrade podataka.Aktiviranjem osobine DatabaseName otvara se okvir za dijalog u kojem treba

izabrati naziv fajla (baze podataka) i njegovu putanju, kako bi mu se moglopristupiti.

Izborom osobine DataField pojavljuje se lista kolona izabrane tabele bazepodataka. Klikom se bira kolona, iji sadr aj treba prikazati u predvi enon objektu.

DataFormat omogu ava da se pomo u okvira za dijalog, podatku dodijeli jednaod ponu enih vrijednosti: General, Number, Currency, Date, Time, Percentage,Boolean, Scientific ili Picture.

Aktiviranjem osobine DataSource pojavljuje se strelica. Klikom na strelicudobija se padaju a lista sa spiskom objekata Data, preko kojih je ostvarena veza sakonkretnom tabelom u bazi podataka, od kojih treba izabrati odgovaraju u.

Page 67: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 67

Enabled je va na osobina brojnih objekata, mo e da ima dvije vrijednosti:False i True. Dodjelom osobini vrijednosti True objekat postaje aktivan, odnosnodostupan tako da nad njim mogu da se izvr avaju odre ene akcije. Dodjelomosobini vrijednosti False objekat je i dalje vidljiv na formi, ali nije vi e aktivan,odnosno nemo e mu se pristupiti ni sa jednom programskom akcijom.

Osobina FillColor odnosi se, obi no, na odre ivanje boje kojom treba da budepopunjen objekat dobijen na opisani na in (preko palete ili sistema boja).

FillStyle je osobina pomo u koje se odre uje uzorak za popunjavanje objekta.Uobi ajene vrijednosti ove osobine su:

0 - Solid (puna popunjenost),1 - Transparent (neznatno popunjen),2 - HorizontalLine (horizontalne linije),3 -VerticalLine (vertikalne linije),4 - UpwardDiagonal (dijagonale odozdo na dole i slijeva nadesno),5 - Down Diagonal (dijagonale odozdo na gore),6 - Cross (vodoravno - vertikalna mre a) i7 - CrossDiagonal (koso - dijagonalna mre a).Klikom na osobinu Font, koju posjeduju svi objekti tekstualnog tipa, otvara se

standardni Word-ov okvir za dijalog na kojem se mo e odabrati naziv, veli ina, stili druge karakteristike Fonta.

Osobina ForeColor slu i za bojenje teksta. Postupak dodjele boja isti je kao ikod osobine BackColor.

Osobinama Height i Width unosom brojnih vrijednosti odre uje se visina iirina objekta u pikselima (pixels).

Pomo u osobine Left odre uje se udaljenost objekta u pikselima (pixels) odlijeve ivice ekrana.

Osobina Name odre uje ime objekta. Pomo u ove osobine se objekti pozivaju ukodu programa.

Osobina Picture odre uje tip slike, na primjer, bmp, gif, jpg, wmf, emf, ico i dr.Pomo u osobine ReadOnly, koje mo e da ima vrijednosti True i False, defini e

se da li se dati podaci mogu samo pregledati ili se mogu i mijenjati.Aktiviranjem osobine RecordSource otvara se okvir za dijalog, u kojem treba

izabrati naziv tabele. Naziv tabele se mo e birati samo ako je u predhodno izabranabazi podataka preko osobine DatabaseName.

Osobinom ScroolBars defini u se kliza i za pomjeranje teksta odnosnodrugog sadr aja na objektu. Na listi postoje sljede e mogu nosti izbora:

0 - None (bez kliza a),1 - Horizontal,2 - Vertical i3 - Both (obostrani).Osobina Stretch tako e ima dvije vrijednosti: True i False. Posebno je zna ajna

upotreba vrijednosti True ijim se izborom daje zadatak Visual Basic-u da

Page 68: Visual Basic programski jezik

2. UVOD U PROGRAMSKI JEZIK VISUAL BASIC 68

prilagodi originalnu dimenziju importovane slike, prema dimenzijama objekta zaprikaz slike na formi.

Pomo u osobine Visible, koja se esto primjenjuje za vi e objekata reguli e sevidljivost objekta. Ako je izabrana vrijednost ove osobine True objekat e bitividljiv, a ako je izabrana vrijednost False objekat ne e biti vidljiv, kada se programpokrene. Ova osobina objekata se esto pode ava u kombinaciji sa osobinomEnable.

Osobina forme StartUpPosition slu i za odre ivanje po etnog polo aja formena ekranu, kada se program pokrene. Mo e imati opcije:

0 - Manual (ru no postavljanje),1 - CenterOwner (centriranje prema objektu na formi),2 - CenterScreen (centriranje prema itavom ekranu),3 - WindowsDefoult (pozicioniranje preko itavog ekrana).

2.6. 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 Basic

Skra enica Opis radnjeKontrola dokumenata

CTRL+N Kreiranje novog projekta. Dobije se potpuno isti efekat, kaoda se u glavnom meniju izabrala opcija File => New. Da sene bi izgubio predhodno aktivan program, pojavi e se dijalogprozor za spa avanje otvorenog 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.

CTRL+SHIFT+O Otvaranje ve postoje eg fajla, istog tipa kao onaj na kome setrenutno nalazimo.

CTRL+S Spa avanje trenutno aktivnog Visual Basic programa. Dobijese 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.

Page 69: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 69

Skra enica Opis radnjeAlt+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 aktivnoj formi.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) od zadnje transakcije.CTRL+SHIFT+Z Redo (korak unaprijed) od zadnje transakcije.CTRL+Up Pomjeranje trenutne transakcije navi e.CTRL+Down Pomjeranje trenutne transakcije nadole.CTRL+F Otvaranje prozora Find za pronala enje eljenog objekta.CTRL+H Prikaz prozora Replace 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

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

Page 70: Visual Basic programski jezik

2. UVOD U PROGRAMSKI JEZIK VISUAL BASIC 70

Skra enica Opis radnjeSHIFT+Strelica Selekcija teksta u kodu do po etka rije i u lijevu stranu od

pokaziva a.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.

Tab Pomjeranje teksta koda za par karaktera u desnu stranu. Naformi se koristi za prelazak sa jednog objekta na drugi.

Shift +Tab Pomjeranje teksta koda za par karaktera u lijevu stranu. Naformi se koristi za prelazak sa jednog objekta na drugi.Testiranje (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 Pomo u programu. Kada je neki objekat u programu

selektovan i zatim se pritisne tipka F1 otvori e se prozor satekstom, u kome je opisana pomo i za taj objekat.

F9 Dodavanje odnosno uklanjanje kontrolne ta ke za teku uliniju koda u kojoj se nalazi kursor.

CTRL+SHIFT+F9 Uklanjanje svih predhodno postavljenih kontrolnih ta aka uprogramu.

CTRL+F9 Onemogu avanje rada kontrolnoj ta ci.

Page 71: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 71

2.7. 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 da se korisniku programa omogu isabiranje, oduzimanje, mno enje i dijeljenje dva realna broja, koji se unose prekotastature. Potrebno je postaviti i komandno dugme pomo u koga se programzavr 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.7.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.

Slika 2.12. Postavljanje potrebnih objekata na radnu povr inu

Page 72: Visual Basic programski jezik

2. UVOD U PROGRAMSKI JEZIK VISUAL BASIC 72

Za pisanje programa u programskom jeziku Visual Basic, sa kojim elimo darije imo postavljeni problem, potrebni su nam sljede i objekti:

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

Slika 2.13. Osobine objekta Slika 2.14. Kod programa

Page 73: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 73

2.7.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, ali se posti e i da program estetski lijepo izgleda. Pode avanjeosobina objekata vr i se u prozoru Propertes. Do osobina svakog objekta se dolaziklikom mi a na objekat. Pojavljuje se prozor prikazan na slici 2.13.

Svaki objekat u programskom jeziku Visual Basic ima razli ite osobine, pasamim tim i razli ite palete za pode avanje. Preko ovih paleta se naj epode avaju neke od sljede ih osobina:

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

2.7.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 dolazi seklikom mi a na bilo koji objekat, koji je postavljen na formu, ili desni klik mi abilo gdje na radnoj formi i izbor opcije View Code. Izgled prozora za pisanje kodaprograma, koji omogu uje izvr avanje osnovnih matemati kih operacija, prikazanje na slici 2.14. Na slici 2.15. prikazan je isti prozor za pisanje koda, iznad koga susada posebno istaknute dvije liste (ComboBox). Lijeva lista daje spisak imena svihobjekat, koji postoje na toj radnoj povr ini. U desnoj listi se nude svi mogu idoga aji, koji se mogu programirati nad predhodno selektovanim objektom ulijevoj listi. Pri pisanju koda prvo se bira eljeni objekat, a zatim i doga aj koji seeli programirati nad njim. Izborom odgovaraju eg doga aja klikom mi a u desnoj

listi, automatski se pojavljuje procedura doga aja u prostoru za pisanje koda saimenom doga aja i objekta. Procedura doga aja klik mi a na komandno dugme(Private Sub Sabiranje_Click()) se automatski pojavljuje u kodu i kada se naradnoj povr ini uradi klik mi a na eljeno komandno dugme. Sub je klju na rije ,koja zna i da se radi o proceduri. Dok rije Private ozna ava da se radi o lokalnojproceduri, koja vrijedi samo na trenutno aktivnoj formi.

Page 74: Visual Basic programski jezik

2. UVOD U PROGRAMSKI JEZIK VISUAL BASIC 74

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 kaoperacija. 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.7.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 ke

Page 75: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 75

nastaju 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.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 sei najlak e dolazi do otkrivanja gre aka, a zatim i ispravljanja gre aka u programu.

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.16. Kontrolne ta ke u kodu programa

Page 76: Visual Basic programski jezik

2. UVOD U PROGRAMSKI JEZIK VISUAL BASIC 76

Slika 2.17. Izgled izvr ne verzije programa

Page 77: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 77

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 78: Visual Basic programski jezik

3. TIPOVI PODATAKA 78

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 tipovima podataka7 (ili tipovima sa stati kom strukturom)podrazumijevamo tipove, kod kojih je unaprijed fiksno definisana unutra njastruktura svakog podatka. Veli ina podataka (koliko memorije zauzima) se fiksnodefini e prije (ili u vrijeme) izvr enja programa, koji koristi podatke stati kog tipa.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

sa 112 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 79: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 79

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 80: Visual Basic programski jezik

3. TIPOVI PODATAKA 80

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) =, <, >, <=, >=, <> imaju 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 81: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 81

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 sa vi e naredbi. Na primjer, ako elimo sabrati vrijednosti X, Y, Z terezultat pridru 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

U 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 82: Visual Basic programski jezik

3. TIPOVI PODATAKA 82

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 vrijednost, 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 83: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 83

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 Basic-u 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 teksta 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 desne strane teksta 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 84: Visual Basic programski jezik

3. TIPOVI PODATAKA 84

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(8, "Mirko je ve i", "e"), daje 10]

Tabela 3.2. ASCII kod

Page 85: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 85

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 86: Visual Basic programski jezik

3. TIPOVI PODATAKA 86

- 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 87: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 87

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 88: Visual Basic programski jezik

3. TIPOVI PODATAKA 88

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 TipPodatka

Obavezna rije Public upotrebljava se kada se niz defini e u okviru standardnogmodula 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(21) As Double ' 22 elemenata.

Page 89: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 89

Slika 3.1. Jednoindeksni nizMe utim, u brojnim prakti nim primjerima postoji potreba da prvi indeks niza

bude broj 1, pa je tada ukupan broj promjenljivih identi an indeksu posljednjeglana niza.

Dim Niz3(1 to 20) As Single ' 20 elemenata.

Tip niza odre uje se pomo u simbola ili pomo u propisane rije i, onako kako jeto opisano u tabeli 3.1., a 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, svrsishodnije 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 Variant

Zagrade, bez navedenog sadr aja, imaju ulogu da ozna e da je niz dinami keprirode 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 tog razloga, prilikom rada sanizovima, ne treba uzimati nizove sa ekstremno velikim brojem elemenata, jermo e do i do prezasi enja sistemske memorije i samim tim do usporavanja radara 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.

Page 90: Visual Basic programski jezik

3. TIPOVI PODATAKA 90

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

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 e vr iti na sljede i na in

Dim Niz1(4,6) As Integer ' 35=5*7 elemenata.Dim Niz2(1 To 3, 4) As Double ' 15=3*5 elemenata.Dim Niz3(2, 1 To 4) As Double ' 12=3*4 elemenata.Dim Niz4(1 To 3, 1 To 5) As Double ' 15=3*5 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

Page 91: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 91

Struktura troindeksnog niza prikazana je na slici 3.3. Troindeksni niz je najlak eshvatiti, kao trodimenzionu matricu (koja ima obik kocke) T(i, j, k), koja se sastojise od i- redova, j - kolona i k- dubina matrice. Troindeksni niz se obi no popunjavapomo u tri For petlje. Jedna For petla (spoljna) se koristi za promjenu redovatabele (i), druga For petlja (unutra nja) za promjenu kolona tabele (j) i tre a Forpetlja (unutra nja) za promjenu dubine kocke (k). Ukupan broj ciklusa izvr enjaove tri For petlje se dobije, kao umno ak broja ciklusa sve tri petlje. Deklaracijatrodimenzionog niza se mo e vr iti na sljede i na in

Dim 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(4, 1 To 4,2) As Double ' 60=5*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

Niz3(i, j, k) = i * 10 + j + k 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 92: Visual Basic programski jezik

3. TIPOVI PODATAKA 92

Page 93: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 93

4. 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).

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

4.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 4.1., astruktuirani na slici 4.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 grananja. Prva verzija ove struktureje samao If Then struktura jednostrukog izbora, a njena sintaksa je

If uslov1 Then naredba1pri emu je:

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

Uslov1 predstavlja logi ki izraz, koji mo e biti ta an (True) ili neta an (False). Uslu aju da je uslov1, ta an izvr ava se samo jedna naredba navedena iza komande Then.

Page 94: Visual Basic programski jezik

4. NAREDBE SELEKCIJE I ITERACIJE 94

Slika 4.1. Standardni dijagrama toka Slika 4.2. Struktuirani dijagrama toka

Primjer 4.1.Izra unavanje vrijednosti nekog izraza u obliku razlomka mogu e je samo onda,

ako je imenilac razlomka razli it od nule. Slijedi kod programa, koji prokazuje,kako se ovaj problem nedefinisanog razlomka rje ava u Visual Basic-u pomo ustrukture grananja If Then.

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 uslov1 ThenBlok1

End Ifpri emu je:

- uslov1 - 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 4.1. mo e napisati kao:

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

Blok1 obi no ima vi e od jedne naredbe. Slijedi kod programa za primjer 4.1.gdje se unos podataka vr i preko dva tekst boksa (Text1 i Text2). Rezultat seprikazuje u tre em tekst boksu (Text3). U ovom primjeru programa Blok1 imadvije kodne linije i u ovom slu aju se nebi mogla upotrijebiti If Then struktura.

Page 95: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 95

Brojilac = Text1Imenilac = Text2If Imenilac < >0 Then Rezultat = Brojilac/Imenilac

Text3.Text = RezultatEnd If

U jednom programu mo e postojati vi e struktura grananja, pa je tada punoprakti nija ova druga varijanta grananja (If ... Then ... End If), u odnosu na prvuvarijantu (If ... Then ), jer se lako uo ava kraj svake strukture grananja End If.Slijedi primjer koda programa, koji ima vi e struktura grananja, ali gdje je te kouo iti gdje po injinju, a gdje zavr avaju strukture grananja.

If A > 0 Then B = 5If A = 0 ThenB = AC = B + 1End IfIf A < 0 Then C = 2If C = 4 ThenB = A - 1A = C + 3End If

Tre a verzija ove strukture je If ... Then ... Else ... End If struktura. Ovo jestruktura dvojnog izbora, gdje postoji mogu nost izvr avanja samo jedne od dvijenaredbe (bloka naredbi), zavisno od uslova koji je postavljen. Sintaksa ovestrukture je

If uslov1 ThenBlok1

ElseBlok2

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

nije ispunjen tada se izvr ava Blok2 naredbi.

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

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

Page 96: Visual Basic programski jezik

4. NAREDBE SELEKCIJE I ITERACIJE 96

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 da bi se rije io postavljeni problem.

Primjer 4.3.Neka se uz pomo programa vr i ocjenjivanje u enika na testu, gdje je u enikmogao osvojiti najvi e 100 bodova. Ocjene se daju po sljede em principu: do 45bodova ocjena je jedan, od 46 do 55 bodova ocjena je dva, od 56 do 70 bodovaocjena je tri, od 71 do 85 bodova ocjena je etiri, a za 86 i vi e bodova dobija seocjena pet. Kod ovog programa za ocjenjivanje u enika bi izgledao:

If Bod <= 40 Then Ocjena = 1Elself Bod <= 55 Then Ocjena = 2Else If Bod <= 70 Then Ocjena = 3Else If Bod <= 85 Then Ocjena = 4Else Ocjena = 5End If

Page 97: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 97

U ovoj strukturi grananja treba posebno voditi ra ina, da se uslovni izrazimoraju postaviti u rastu em redoslijedu promjenljive, od koje se prave uslovigrananja. Dakle, prethodni uslov ne smije u sebi da sadr i bilo koji naredni uslov.U primjeru 4.4. prikazan je kod programa, koji e za isti tekst zadatka kao uprimjeru 4.3. vr iti pogre no izra unavanje ocjena, za bodove koje se nalaze uopsegu od 41 do 55 bodova, jer drugi uslov (Bod <= 70) u sebi ve sadr i naredniuslov (Bod <= 55).

Primjer 4.4.Pogre no izra unavanje ocjena u enika na testu.

If Bod <= 40 Then Ocjena = 1Elself Bod <= 70 Then Ocjena = 3Else If Bod <= 55 Then Ocjena = 2Else If Bod <= 85 Then Ocjena = 4Else Ocjena = 5End If

Primjer 4.5.Pregledno 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

Page 98: Visual Basic programski jezik

4. NAREDBE SELEKCIJE I ITERACIJE 98

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, esto je potrebno umetnuti jednu strukturu grananja unutar druge. Pri tomeje po eljno da se prilikom pisanja koda programa, svaka unutra nja struktura uvu eza nekoliko karaktera od po etka reda. Pri tome sve naredbe istog nivoa treba dabudu u istoj vertikalnoj liniji. Ovo pravilo ne e ni ubrzati, a ni usporiti izvr enjeizvr ne verzije (.exe) programa. Ali e primjena ovog pravila zna ajno pomo iprogrameru prilikom pisanja koda programa, a posebno e olak ati postupakpronala enja i otklanjanja gre aka u programu. Kod programa u primjeru 4.5. jepotpuno identi an kodu u primjeru 4.6., a vi sami procjenite, koji kod programa jeza vas pregledniji i lak i za pra enje.

Primjer 4.6.Nepregledno 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 pi upomo u klju ne rije i Rem, ili kori enjem simbola jednostrukog navodnika ( ' ).Komentari se u kodu prepoznaju po tome to su napisani zelenom bojom. topostoji vi e komentara u kodu, to je program razumljiviji. Ovo posebno dolazi doizra aja kada jedna osoba pi e program, a druga osoba treba da program analiziraili dora uje. Komentari su bitni svakom programeru, kada vr i doradu programaposlije odre enog vremenskog perioda. Ako u programu ne postoje komentari,programer e potro iti puno vremena, da otkrije za ta se koriste odre enepromjenjive i kako funkcioni u grananja i petlje. Jedan uslov za grananje mo e biti i slo ena kombinacija vi e logi kih uslova,koji se vezuju logi kim operatorima Or (ili), And (i), NOT (negacija).

Page 99: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 99

Primjer 4.7.Napraviti 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 Z ve eod 10, odnosno kada je zadovoljen bar jedan od uslova

Else' kod kada nije zadovoljen nijedan od tri gornja

uslovaEnd 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 e od10, 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 Z ve eod 10, odnosno kada je zadovoljen jedan od prva dvauslova i zadovoljen tre i uslov

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

End If

4.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 4.3. Struktura Select Caseupotrebljava 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 If ... Then strukture,ali je, esto, struktura Select Case jasnija i efikasnija. Ova struktura grananja jeposebno pogodna za programe, koji imaju menije sa vi e opcija (prilikomkori enja objekata OptionButton). Tako e je korisna kod upotrebe padju ihmenija, odnosno prilikom preuzimanja podataka iz liste ili prilikom dodavanjanovih stavki u listu primjenenom metode Addltem.

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

Page 100: Visual Basic programski jezik

4. NAREDBE SELEKCIJE I ITERACIJE 100

Slika 4.3. Standardni dijagrama toka Case strukture

Postoji vi e verzija ove strukture grananja. Prva verzija ove strukture je samaoSelect Case struktura, a njena sintaksa je:

Select Case promjenljivaCase vrijednost1

Blok1Case vrijednost2

Blok2Case vrijednost3

Blok3

:.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 ta no vrijednost1. Blok2 naredbi se izvr ava,samo ako promjenjiva po kojoj se ispituje Select Case struktura poprimilavrijednost2. Case Else je opcioni dio Select Case struktura, koji e se izvr iti,samo ako promjenjiva po kojoj se radi Select, nije poprimila nijednu predhodnonavedenu vrijednost. Broj Case blokova (odnosno uslova) u jednoj Select Casestrukturi nije ograni en i zavisi samo od broja uslova, koje je potrebno postaviti dabi uspje no rije ili postavljeni problem. Za ovaj vid strukture nije bitan redoslijedpostavljanja Case vrijednosti, kao to je bilo bitno, kod postavljanja uslova premarastu em redoslijedu u If ... Then ... ElseIf ... Else ... End If strukturi.

Page 101: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 101

Primjer 4.7.Napisati 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 sekoristi 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 se izvr ava, samo ako promjenjiva pokojoj se ispituje Select Case struktura poprimila vrijednost, koja zadovoljava jedanod dva navedena logi ka uslova.

U ovoj strukturi grananja treba posebno voditi ra ina, da se uslovni izrazimoraju pretpostaviti u rastu em redoslijedu promjenljive po kojoj se radi grananje,za razliku od predhodne verzije ove strukture. Dakle, prethodni uslov ne smije usebi da sadr i nijedan naredni uslov.

Page 102: Visual Basic programski jezik

4. NAREDBE SELEKCIJE I ITERACIJE 102

Primjer 4.8.Neka se uz pomo programa vr i ocjenjivanje u enika na testu, gdje je u enikmogao osvojiti najvi e 100 bodova. Ocjene se daju po sljede em principu: do 45bodova ocjena je jedan, od 46 do 55 bodova ocjena je dva, od 56 do 70 bodovaocjena je tri, od 71 do 85 bodova ocjena je etiri, a za 86 i vi e bodova dobija seocjena pet. Kod ovog programa za obra un poreza bi izgledao:

Bod = Text1Select Case BodCase Is >= 86 Ocjena = 5Case Is >= 71 Ocjena = 4Case Is >= 56 Ocjena = 3Case Is >= 46 Ocjena = 2Case Else Ocjena = 1End Select

Tre a verzija ove strukture je Select ... Case To struktura. Ova struktura sekoristi, kada uslov grananja elimo zadati kao interval brojeva. Uslov je zadovoljeni kada promjenjiva poprimi vrijednost brojeva preko kojih je interval odre en, anjena sintaksa 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. Jer ese od svih napisanih izvr iti samo jedan uslov i to onaj koji se prvi ispuni.

Page 103: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 103

Primjer 4.9.Jedna 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, Is relacioni operator vrijednost1 Blok1Case Broj3 To Broj4, Is relacioni operator vrijednost2

Blok2:.Case Else Rem Ovo mo e biti opcioni uslov Blok4 Rem naredbe ako nijedan predhodni uslov nije ispunjen

End Select

Primjer 4.10.Case 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. Tada se u Case strukturi pi e samo poziv procedura, koje se pozivaju, ane itav kod tih procedure. Na ovaj na in Case stuktura postaje puno preglednija zaprogramera.

Page 104: Visual Basic programski jezik

4. NAREDBE SELEKCIJE I ITERACIJE 104

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

4.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 4.4.

Slika 4.4. Dijagram For Next

For ... Next petlja omogu ava da se odre enanaredba (ili skup naredbi) bezuslovno ponavlja,ta no predvi eni broj puta, sa mogu nosti da semijenja korak ponavljanja. Sintaksa ove naredbeglasi:

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

Vrijednost promjenljive kojom po inje izvr avanje strukture ponavljanja jepo etak. Ponavljanje traje sve dok promjenljiva ne dostigne vrijednost kraj.Promjenljiva se uve ava za jedan (promjenljiva = promjenljiva + 1) u svakomsljede em ponovnom izvr avanju strukture ponavljanja, ukoliko nije navedenaopcija Step (korak). Promjenljiva je, u stvari, broja ija vrijednost zavisi odveli ine koraka. Ako je korak 1 onda ga nije potrebno pisati u For ... Nextstrukturi. Me utim, ako elimo da korak bude razli it od jedan onda se on moranavesti. Korak ponavljanja mo e biti cijeli, realan, ali i negativan broj, a mo e senapisati kao:

- For x = 1 To 10 Step 0.5 (sa korakom 0,5, ponavljanje 19 ciklusa)- For x = 1 To 10 Step 2 (sa korakom 5, ponavljanje 5 ciklusa)- For x = 10 To 1 Step -1 (sa korakom -1, ponavljanje 10 ciklusa)

Page 105: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 105

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

Primjer 4.11.AA = 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 4.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 4.12.AA = 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 4.13.AA = 3BB = -1For J = 2 To 5 BB = BB + 2 * J Select Case BB Case 3 AA = AA - J Case 4 To 12 BB = AA - BB + J Case Is > 12 BB = AA - J Case Else BB = AA + J End SelectNext J

Rje enje1) Ciklus j = 2, BB = 3, Case 3, AA = 12) Ciklus j = 3, BB = 9, Case 4 To 9, BB = -53) Ciklus j = 4, BB = 3, Case 3, AA = -34) Ciklus j = 5, BB = 13, Case Is>12, BB = -8Na kraju AA= -3, BB = -8

Page 106: Visual Basic programski jezik

4. NAREDBE SELEKCIJE I ITERACIJE 106

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 4.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 primjeru4.14. opisano je kako funkcioni e program u kome vanjska For petlja ( I ), kojaima 2 ciklusa (odre uje redni broj reda tabele), a unutra nja For petlja ( J ) ima 4ciklusa (odre uje redni broj kolone tabele). U ovom programu ima ukupno 8ciklusa, u kojima se upisuju podaci u MSFlexGrid1 dvodimenzionu tabelu.Primjer 4.14.AA = 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 107: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 107

Primjer 4.15.AA = 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 4.15 opisano je kako funkcioni e program ukome vanjska For petlja ( K ), koja ima 2 ciklusa (odre uje dubinu tabele), prvaunutra nja For petlja ( I ) koja ima 2 ciklusa (odre uje redni broj reda tabele), adruga unutra nja petlja ( J ) ima 4 ciklusa (odre uje redni broj kolone tabele). U

Page 108: Visual Basic programski jezik

4. NAREDBE SELEKCIJE I ITERACIJE 108

ovom programu ima ukupno 16 ciklusa u kojima se upisuju podaci utrodimenzionu tabelu.

Na kraju popunjena trodimenziona matrica e izgledati

Page 109: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 109

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

4.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 4.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 logi ki uslov (Uslov P) ispunjen. U ciklusu ponavljanja kadalogi ki uslov (Uslov P) ne bude ispunjen program izlazi iz petlje. Tada po inje dase izvr ava blok naredbi (Blok2) koji se nalazi izvan ove petlje. Kod ove strukturetreba dobro voditi ra una da ne do e do pojave koja se zove beskona na petlja.Beskona na petlja je pojava u kojoj se petlja neprestano ponavlja, jer je uslov naulazu u petlju uvijek ispunjen. Ako se desi da program u e u beskona nu petlju,tada je izlaz mogu samo ako se izvr i reset kompletnog programa Visual Basic.Ako prije toga nismo spasili izmjene u programu, one e onda biti trajnoizgubljene. Za ovu petlju je karakteristi no da se blok koji se ponavlja (Blok1) nemora nikada biti izvr avan, ako logi ki uslov (Uslov P) za ponavljanje u prvomprolazu kroz petlju nije ispunjen. Tada e se izvr avati samo naredbe Blok2, anaredbe koje se nalaze u Blok1 se ne e izvr iti nijednom.

Page 110: Visual Basic programski jezik

4. NAREDBE SELEKCIJE I ITERACIJE 110

Slika 4.5. Dijagram Do While Slika 4.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 (Uslov P) predstavlja izraz sastavljen od jedne ilivi e promjenjivih povezanih logi kim operatorima (=, <,>, < >, >= ili <=). Ovajuslov mo e biti ispunjen (T) ili ne ispunjen (F). Iterativne naredbe (Blok1)predstavljaju jednu ili vi e naredbi koje se ponavljaju u ovoj petlji. LOOPpredstavlja klju nu rije koja ozna ava da se od ove naredbe program vra a napo etak petlje. Ovo kao i naredba EXIT predstavlja opcionu komandu u ovojstrukturi. EXIT predstavlja komandu koja omogu uje trenutni izlazak iz ove petlje,bez obzira da li je po etni logi ki uslov (Uslov P) ispunjen.

U primjeru 4.16. opisano je kako funkcioni e jedna Do While ... Loop petljakoja ponavlja 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 4.17. opisano je kako funkcioni e Do While ... Looppetlja, koja ima 4 ciklusa ponavljanja dvije naredbe i jedno If Then grananja (sa 5kodnih linija).

Page 111: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 111

Primjer 4.16.AA = 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 4.17.AA = 1BB = 2J = 0Do While J < 4 BB = AA + BB - J AA = AA + J If BB = 4 Then AA = -1 Else AA = AA + J End 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

4.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 4.6.Sintaksa ove naredbe glasi:

DO Iterativne naredbe LOOP WHILE logi ki uslov

U ovoj strukturi logi ki uslov (Uslov P) predstavlja izraz sastavljen od jedne ilivi e promjenjivih povezanih logi kim operatorima (=, <,>, < >, >= ili <=). Ovajuslov mo e biti ispunjen ili ne ispunjen. Iterativne naredbe (Blok1) predstavljajujednu ili vi e naredbi koje se ponavljaju u ovoj petlji. LOOP WHILE predstavljaklju nu rije , koja ozna ava da se od ove naredbe program vra a na po etak petlje,ali samo ako je logi ki uslov (Uslov P) ispunjen.

Page 112: Visual Basic programski jezik

4. NAREDBE SELEKCIJE I ITERACIJE 112

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

U primjeru 4.18. opisano je kako funkcioni e jedna Do ... Loop While petlja,koja ima 4 ciklusa ponavljanja tri naredbe.

Primjer 4.18.AA = 3BB = 2J = 1Do AA = AA + BB - J BB = BB + J If AA = 6 Then BB = -7 Else BB = BB + J End 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

4.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 (Uslov P) nije ispunjen, za razliku odpredhodne strukture Do ... Loop While, kod koje se ovaj blok naredbi izvr ava dokje logi ki uslov (Uslov P) ispunjen.

Slika 4.7. Dijagram Do Loop Until

I kod ove strukture se blok naredbi zaponavljanje (Blok1) mora izvr iti barjednom. Blok dijagram ove strukte prikazanje na slici 4.7. Sintaksa ove naredbe glasi:

DO Iterativne naredbe LOOP UNTIL logi ki uslov

U ovoj strukturi logi ki uslov (Uslov P)predstavlja izraz sastavljen od jedne ili vi epromjenjivih koje su povezane logi kimoperatorima (=, <,>, < >, >= ili <=).

Page 113: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 113

Ovaj logi ki uslov (Uslov P) mo e biti ispunjen ili ne ispunjen. Iterativnenaredbe (Blok1) predstavljaju jednu ili vi e naredbi, koje se ponavljaju u ovojpetlji. LOOP UNTIL predstavlja klju nu rije , koja ozna ava da se od ove naredbeprogram vra a na po etak petlje, ali samo ako logi ki uslov nije ispunjen. Kod ovestrukture treba tako e voditi ra una, da ne do e do pojave koja se zove beskona napetlja.

U primjeru 4.19. opisano je kako funkcioni e jedna Do ... Loop Until petlja,koja ima 4 ciklusa ponavljanja tri naredbe.

Primjer 4.19.AA = 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 114: Visual Basic programski jezik

4. NAREDBE SELEKCIJE I ITERACIJE 114

Page 115: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 115

5. 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, stakla itd. Svi ti dijelovi napravljeni su u razli itim fabrikama.

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 globalnim(javnim) promjenljivim. Iz modula, kao i iz drugih izvora pozivaju se po svomeimenu. 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, teprocedure i funkcije mogle da poprime druga iju vrijednost, koja nemo e da sepredvidi. Upotreba propisanih rije i ByVal ilustrovana je na primjerima izgeometrije, koji su navedeni u sljede em poglavlju.

5.1. FUNKCIJE

Neke standardne funkcije, kao to su kvadratni korjen (Sqr), zaokru ivanjerealnih brojeva (Round), su ve ugra ene u Visual Basic. Sada emo pokazati kakose defini u vlastite funkcije, koje su nam potrebne da bi rje ili postavljeni zadatak,a nisu ugra ene u Visual Basic. Funkcija se defini e koriste i funkcijskudeklaraciju. Korisnici defini u funkciju pomo u sljede eg formata:

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

ImeFunkcije = izraz ili vrijednostEnd Function

Page 116: Visual Basic programski jezik

5. FUNKCIJE I PROCEDURE 116

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, u kojoj je definisana. Iza kju ne rije iFunction slijedi ime funkcije, koje mo e da bude samo jedna rije . Ime funkcijepo eljno je da nas asocira na problem koji rje avamo. Iza imena funkcije u malimzagradama se navode argumenti i njihov tip. Argumenti su u stvari promjenjivepreko kojih emo u funkciju da unesemo neke vrijednosti iz glavnog programa.Ako imamo vi e argumenata funkcije, onda se oni me usobno razdvajaju sazapetom. Ako funkcija ima vi e argumenata, onda oni mogu biti istog, ali irazli itog tipa. Iza male zagrade navodi se tip funkcije, odnosno kojeg tipa e bitivrijednost koju funkcija mo e da poprimi tokom njenog izvr avanja. Tip funkcije itip argumenta mo e biti bilo koji tip podataka koji podr ava Visual Basic.

Prva kodna linija u funkciji je obi no deklaracija lokalnih promjenjivih, koje sekoriste samo u toj funkciji. Zatim se pi e radni kod funkcije. Prije klju ne rije iEnd Function, koja ozna ava kraj postoje e funkcije, obavezno treba da stoji imefunkcije kome se pridru uje neka vrijednost. Ovo je posebno bitno, jer funkcijavra a rezultat kroz svoje ime.

Pravljenje korisni kih funkcija najlak e je objasniti na primjerima izra unavanjapovr ina i obima nekih geometrijskih figura. Slijedi primjer koda programa uVisual Basic-u u kome se ra una povr ina i obim pravougaonika, a na slici 5.1.prikazana je izvr na verzija ovog programa.Private Function PovrsinaP(ByVal a As Single, ByVal b AsSingle) As Single Povrsina = a * bEnd FunctionPrivate Function ObimP(ByVal a As Single, ByVal b As Single)As Single Obim = 2 * a + 2 * bEnd FunctionPrivate Sub Povrsina1_Click()

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

End SubPrivate Sub Obim1_Click()

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

End Sub

Page 117: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 117

Slika 5.1. Primjena funkcija za izra unavanje povr ine i obima pravougaonika

U navedenom primjeru definisana je funkcija PovrsinaP, koja daje povr inupravougaonika, ako su date njegove stranice a i b. Rezervisana rije Functionpredstavlja funkcijski naslov. Zatim dolazi ime funkcije, PovrsinaP, slijede uzagradama argumenti funkcije. Argumenti funkcije moraju se podudarati sastvarnim parametrima, koji e se pojaviti kad se funkcija bude koristila. Argumentifunkcije su deklarisani kao

ByVal a as Singl, ByVal 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 dodjele vrijednosti funkciji ima samo jednu kodnu linijuPovrsinaP = a*b

koja 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, a njen rezultat se upisuje upromjenjivu pod imenom Zid.

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 i b:

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

PovrsinaP = a*bi brojna vrednost 10.1736 je sme tena u memorijsku lokaciju nazvanu PovrsinaP.Kad je izvr ena ova dodjela vrijednosti, sadr aj memorijske lokacije nazvanePovrsinaP bi e upotrebljen u programu na mjestu, gdje se poziva funkcija saPovrsinaP.

Page 118: Visual Basic programski jezik

5. FUNKCIJE I PROCEDURE 118

Mo e se re i, da jeZid = PovrsinaP(2.16, 4.71)

ekvivalentno saZid = 10.1736

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)

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.

5.2. PROCEDURE

Procedure su takve strukture kojima se u programu izvr ava neki postupak i tojednom 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 osobina 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. U proceduri doga aja, vezanoj za neki objekat,ime procedure se formira od imena objekta kome se iza znaka "_" pridodajedoga aj nad tim objektom. Slijedi primjer procedure klik mi a na dugme podimenom Start.

Private Sub Start_Click()

End Sub

Page 119: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 119

Definisanje i uvo enje novih osobina, koja se ne nalaze u prozoru osobina(Properties Window), za neki objekat ili za grupu objekata obavlja se pomo uprocedure osobina. Slijedi primjer koda za programsku dodjelu osobine Text iBackColor objektu TextBox, koji nosi ime Text1:

Text1.Text = "Unos teksta u objekat"Text1.BackColor = &H8080FF

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 osobinavezanih za neki uslov. Osnovna sintaksa potprogramske procedureje je:

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

End Sub

Evo jednog jednostavnog programa u kome postoji procedura, koja se koristi zaizra unavanje povr ine i obima pravouganika. Za razliku od funkcije koja je davalauvijek samo jedan rezultat, ova procedura e davati dva rezultata. Ova dva rezultatase u glavni program prenose preko dvije promjenjive PovrsinaP i ObimP, koje sudeklarisane u posebnom modulu.

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

Private Sub PovObim(ByVal a As Single, ByVal b AsSingle) 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, ByVal b) Rem poziv procedureTxtPovrsinaP.Text = PovrsinaPTxtObimP.Text = ObimPEnd Sub

Procedura koja se programira po inje klju nom rije i Sub. Prije ove klju nerije 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 i

Page 120: Visual Basic programski jezik

5. FUNKCIJE I PROCEDURE 120

da 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 emou proceduru da unesemo neke vrijednosti iz glavnog programa. Ako imamo vi eargumenata u proceduri, onda se oni me usobno razdvajaju sa zapetom. Iza malezagrade se ne navodi tip procedure, jer procedura ne vra a vrijednost preko svogimena, ve preko globalnih 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)U navedenom primjeru poziv procedure se vr io preko sljede e kodne linije.

Call PovObim(ByVal a, ByVal b)

Argumenti u pozivu procedure moraju da odgovaraju argumentima u opisupotprogramske procedure.

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.5) Kada se eli posti i bolja preglednost programa i br e otkrivanje i otklanjanjegre aka u kodu.

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,

Page 121: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 121

5) Pojedine procedure iz standardnih modula mogu da se uklope u razli iteprojekte i6) Uvo enjem novih procedura oboga uje se VB jezik.

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. Ovoure ivanje redoslijeda brojeva, se drugim rije ima mo e nazvati sortiranje brojevaprema rastu em redoslijedu. Procedura u Visual Basic-u, kako je re eno, po injerezervisanom re i Sub iza ega dolazi ime procedure, te u zagradi argumenti. Imese bira tako da asocira na postupak koji procedura izvr ava. Imena proceduramoraju biti razli ita i u programu se nemogu pojaviti dvije procedure sa istimimenom. Imena procedura ne smiju biti ista kao imena bilo koje konstante,promenljive ili objekta, koji je korisnik definisao u programu. Argumentiprocedure deklari u se nabrajaju i ih sa njihovim tipovima, isto kao kod funkcija.U datom primjeru deklari u se dva parametra a i b oba realnog tipa (Single). Nekase sada iskoristi data procedura ZAMJENA za ure enje 4 para brojeva i to:12, 85, 329, 2228, 12

Kod programa e izgledati ovako:

Public Prvi, Drugi As SinglePrivate Sub Zamjena(ByVal a As Single, ByVal b AsSingle) Prvi = b Drugi = aEnd Sub

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

Page 122: Visual Basic programski jezik

5. FUNKCIJE I PROCEDURE 122

For i = 0 To 3 If Niz1(i) > Niz2(i) Then a = Niz1(i) b = Niz2(i) Call Zamjena(ByVal a, ByVal b) Niz1(i) = Prvi Niz2(i) = Drugi End IfNext iFor j = 0 To 3Rem upis sortiranog niza 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 5.2.

Slika 5.2. Zamjena mjesta dva parametra

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

Public Prvi, Drugi As SingleRem deklarisanje dvije globalne promjenjive

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

Page 123: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 123

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 3 If 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) = Drugi End If

If 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) = Drugi End If

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) = Drugi End IfNext i

Page 124: Visual Basic programski jezik

5. FUNKCIJE I PROCEDURE 124

For 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 data slijede a etiri niza od tri broja:12, 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 5.3.

Slika 5.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 koristitiglobalnu 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 argumente e nego globalne promjenljive.

Page 125: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 125

Ali postoje dvije situacije 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 dok se funkcija ili procedura ne izvr i. Zna i da nakon izvr enja nepostoje lokalne promjenljive, pa je slobodan prostor u memoriji za drugepromjenljive. Ako se u programu funkcija ili procedura ponovo poziva, 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.

5.3. MATEMATI KE FUNKCIJA

Programski jezik Visual Basic ima veliki broj gotovih matemati kih funkcija,koje stoje programerima na raspolaganju. Sve ove funkcije su detaljno opisane uHelp-u, u kome se dati i primjeri kori enja ovih funkcija. U tabeli 5.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 5.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)Sgn (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)

Page 126: Visual Basic programski jezik

5. FUNKCIJE I PROCEDURE 126

Sintaksa funkcije Opis funkcijeMax (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.

5.4. FINANSIJSKE FUNKCIJA

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

Tabela 5.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.PPmt(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.

Page 127: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 127

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 5.1.Uzimate 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 pomo uprograma napravljenog u Visual Basic-u.Rje enje:

Iznos pojedina nih otplata duga (kredita) ra una se u Visual Basic-u pomo ufinansijske funkcije PMT. Ova funkcija ima sljede 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 u 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.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.

Page 128: Visual Basic programski jezik

5. FUNKCIJE I PROCEDURE 128

Na slici 5.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 5.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.Text Rem 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

5.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 en

Page 129: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 129

prazan 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 gornjaivica ovog 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 ovefunkcije.- 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

Slika 5.5. Izgled dijalo kog prozora funkcije InputBox

Page 130: Visual Basic programski jezik

5. FUNKCIJE I PROCEDURE 130

Pozivanjem funkcije InputBox pojavljuje se okvir za dijalog, slika 5.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.

Slika 5.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 cjelobrojnihvrijednosti 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 ovom

Page 131: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 131

primjeru se vidi i na in kori enja funkcije MsgBox za ispis poruka, a koja edetaljnije biti opisana u narednom poglavlju. Izgled izvr ne verzije ovog programaprikazan je na slici 5.6.

Public Niz1(100) As IntegerPublic BrojCN As Integer

Private Sub CBUnos_Click()Dim Poruka1, ii, SNiz1 As StringDim i As IntegerBrojCN = Val(TxtBrojCN)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 unijeti maksimalno 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

Page 132: Visual Basic programski jezik

5. FUNKCIJE I PROCEDURE 132

Slika 5.6. Nala enje maksimalnog elementa niza

5.9. MESAGEBOX FUNKCIJA

MsgBox je sistemska funkcija, koju obezbe uje Windows. Ova funkcijaomogu ava korisniku da na ekranu vidi odre enu tekstualnu poruku, u vidudijalo kog prozora. Na ovom dijalo kom prozoru se pojavljuje jedno ili vi ekomandnih dugmadi, pomo u kojih se bira dalje kretanje kroz program. Sintaksaove 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 5.3. Ako se ovaj parametar izostavi, smatra se da je izabrana vrijednost 0 i nadijalo kom prozoru e se pojaviti samo komandno 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.

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 133: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 133

Tabela 5.3. Dugmad koja se mogu pojaviti u funkciji MsgBox

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

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 strukturi grananja If ... Then. Ako je izabrano dugme Yes blokira sepristup komandnom dugmetu Command1 i Command3 na trenutno aktivnoj formi,a to su obi no dugmad kojim se zatvara baza podataka ili aktivna forma. Na ovajna in se korisnik programa upozorava da nije spasio neke podatke u bazu podatakai da ako elimo te podatke da spasimo, onda je potrebno da se blokira pristupdugmadima, koja zatvaraju bazu ili aktivnu formu. Ako je izabrano dugme No ne ebiti blokiran pristup komandnom dugmetu Command1 i Command3 na trenutnoaktivnoj formi. to zna i, da je korisnik potvrdio da ne eli da spasi nazna enepodatke.

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

Page 134: Visual Basic programski jezik

5. FUNKCIJE I PROCEDURE 134

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

5.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 programatro 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 5.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.

Page 135: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 135

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 5.7. Funkcija faktorjel

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 136: Visual Basic programski jezik

5. FUNKCIJE I PROCEDURE 136

Page 137: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 137

6. OBJEKTNO ORJENTISANO PROGRAMIRANJE

Objektno-orijentisano programiranje9 (OOP - Object Oriented Programming)predstavlja pristup realizaciji programa kao modela realnog svijeta. To je posebanna in razmi ljanja pri projektovanju programa, koji sadr i nekoliko klju nihelemenata, a posebno:

- objekte (O) sa njihovim osobinama (atributima) i stanjima kao konkretnimvrijednostima osobina,- relacije (R) izme u objekata, tzv. korisni ke interfejse, i- procedure (P) doga aja pomo u kojih se, na osnovu naredbi nekog objektno-orijentisanog programskog jezika (npr. Visual Basic-a), vr i promjena stanjaobjekata, to i jeste cilj ovakvog oblika programiranja.- podatke ili strukture podataka (S).

Prema tome, objektno-orijentisano programiranje mo e se shvatiti kao ure enaetvorka: objekata, relacija, procedura i struktura podataka, tj. OOP = (O, R, P, S).

Program ima cilj da modelira realni svijet, a objektno-orijentisano programiranjeda programski model to vi e pribli i realnom svijetu. Ova metodologija je nastalakao odgovor na tzv. softversku krizu - fenomen koji je nastao kao posljedicaogromnog pove anja slo enosti problema modeliranih softverom, upravljanjarazvojem softvera i zahtjeva za fleksibilnijim softverom. Pokazalo se daorganizacija velikih softverskih projekata nije vi e dovoljno dobra da bi bila ustanju da iza e na kraj s velikim zahtjevima korisnika. Projektovanje, izrada iodr avanje softvera postali su preskupi i previ e glomazni poslovi, koji su davalisve manje rezultata u odnosu na rad i sredstva koji su u njih ulagani.

6.1. 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 programskih

9 Dr Lazar Mili evi , Mr Lazar Radovanovi , Programiranje (Visual Basic), Ekonomskifakultet, Br ko, 2005, str.24.

Page 138: Visual Basic programski jezik

6. OBJEKTNO ORJENTISANO PROGRAMIRANJE 138

jezika 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. Tekst koda programa, prilikom proceduralnog programiranja,smje ten je unutar funkcija i procedura, koje obra uju ulaze i generi u tra eneizlaze.

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.

6.2. 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 posebi jedan objekat, mo e sadr ati druge podatke, cijele brojeve, nizove karaktera,brojeva i druge objekte. Podaci iskazuju stanje objekta, i zovemo ih atributi(osobine objekta). Dakle, objekat ima stanje i pona anje. Uzmimo kao primerobjekta jedan obi ni radni sto kao na slici 6.1.

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 su

Page 139: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 139

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

Objekat sto:- visina: 110 cm,- du ina: 140 cm,- irina: 60 cm,- boja: bijela- materijal: iverica

Objekat knjige:- broj knjiga: 6,- materijal: papir.

Slika 6.1. Objekat radni sto sa atributima

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 njenu

Page 140: Visual Basic programski jezik

6. OBJEKTNO ORJENTISANO PROGRAMIRANJE 140

klasifikaciju, a koji se razlikuju u detaljima vezanim za odre ene osobine. Uprogramiranju, 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.

6.3 METODE I KOMUNIKACIJA ME U OBJEKTIMA

Kao to je ve re eno, metode realizuju zahtjevano pona anje klase. Svi objektiiste 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.

Page 141: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 141

6.4. 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 ega nijedan softver ne e iza i natr te.

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

Su tina objektno-orijentisanog programiranja mo e se, ukratko, rezimiratipomo u sljede ih stavova:

- OOP uvodi u programiranje druga iji na in razmi ljanja.- Tro i se manje vremena za implementaciju (programiranje, kodiranje), amnogo vi e za samo projektovanje.- Vi e se razmi lja o problemu koji se rje ava, a manje direktno o programskomrje enju.- Pa nja se posve uje dijelovima sistema (objektima) koji ne to rade, a nealgoritmima, tj. na inu rada.- Prebacuje se pa nja sa realizacije dijelova programa na me usobne vezeizme u tih dijelova. Te nja je da se broj i intenzitet tih veza to vi e smanji i dase one strogo kontroli u. Cilj objektno-orijentisanog programiranja je da smanjiinterakcije izme u softverskih dijelova.

Page 142: Visual Basic programski jezik

6. OBJEKTNO ORJENTISANO PROGRAMIRANJE 142

Page 143: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 143

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 Help-u Visual Basica. Da

bi se dodatni objekti mogli koristiti u programiranju, potrebno ih je prvo dodati upaletu 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 osobina, 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 mijenjati 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 programa, ta ikona naj e predstavlja i samprogram (kada se napravi izvr na EXE verzija).- MaxButton prikaz dugmeta za maksimizaciju forme (True ili False).- MinButton prikaz dugmeta za minimizaciju forme (True ili False).

Page 144: Visual Basic programski jezik

7. OBJEKTI VISUAL BASIC-A 144

- 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 minimiziran.2-Maximized: prozor e biti prikazan preko 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.1.1. Program sa vi e formi

Rijetki su danas programi, koji imaju samo jednu formu (radnu povr inu). Jednaforma se pojavljuje uglavnom prilikom u enja programiranja ili kod testiranjamanjih programa. Prilikom pokretanja Visual Basic-a inicijalno se uvijek praviprazna forma pod imenom Form1.frm. Prva stvar koju bi trebalo uraditi, prijepostavljanja objekata na formu i pisanja koda programa, je davanje novog imenaformi. To se mo e uraditi preko prozora Properties, kao i za bilo koji drugiobjekat. Drugi na in za promjenu imena je komanda Save Form1.frm as. Ovakomanda e nam omogu iti ne samo da damo novo ime formi, ve i da odredimolokaciju (direktorijum) na kome e ta forma biti spa ena. Po eljno je da forma budespa ena na istom direktorijumu, na kome je spa en i projekat (ekstenzija .vbp) ukome tu formu koristimo. Ovo posebno isti emo, jer jednu formu mo e koristitivi e programa. Izmjena forme iz jednog programa, tada automatski povla i iizmjenu te forme i kada se koristi iz drugih programa. To esto mo e da napraviveliki problem programerima.

U mnogim slu ajevima rje avanje problema mora se odvijati na vi e formi.Zbog toga se javlja potreba da se u jednom projektu formira vi e dodatnih formi(Form1, Form2, Form3 itd.). Svaka nova forma ima svoje jedinstveno ime, vlastiteobjekte, osobine i procedure doga aja. Visual Basic ne dozvoljava programeru, dau jednom programu budu dvije forme sa istim imenom. U jednom programu nadvije razli ite forme se mogu postavljati objekti koji imaju isto ime, ali ni to nijepreporu ljivo da se radi. Radi lak eg pra enja programa i otkrivanja eventualnihgre aka, bolje je da u jednom programu svi objekti imaju razli ito ime.

Page 145: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 145

Na prvoj formi (Form1) obi no se prikazuju: naziv i verzija programa, ulazneporuke, slike, podaci o autorskim pravima, pravima i na inu pristupa programu iinformacije o strukturi i kori enju programa.

Nova forma (Form2) se dodaje u postoje i projekat klikom na komandu AddForm u meniju Project, sa linije menija. Forme mogu da budu

- modalne i- nemodalne.

Modalna forma se mora iskoristiti im se pojavi na ekranu i na njoj se zadr avafokus, sve dok se pomo u neke komande ne ukloni sa ekrana. Forma je nemodalna,ako se mo e napu tati po elji i ponovo upotrebljavati. Ovakve forme sufleksibilnije za upotrebu.

Pomo u makronaredbe Show prikazuju se u itane forme. Potpuni formatnaredbe za prikazivanje forme glasi

ImeForme.Show brojgdje je broj jednak 0 za nemodalne, a 1 za modalne forme. Ako se broj izostavi

podrazumijeva se da je forma nemodalna, na primjer, Form2.Show.Brisanje forme posti e se primjenom naredbe UnloadForm2. Uklanjanjem

forme iz memorije bi e odstranjeni i svi njemu pripadaju i objekti, promjenljive iosobine, koje su vezane za tu formu.

Prilikom zatvaranja i otvaranja formi potrebno je voditi ra una o redoslijedupisanja komandi.

1) Prvo se pi e komanda za zatvaranje forme na kojoj se trenutno nalazimo.2) Zatim se pi e komanda za otvaranje nove forme.

Unload Imeforme1 NovaForma2.Show vbModal

Slika 7.1. Izgled 3 forme

Na slici 7.1. prikazan je primjer programa koji ima 3 razli ite forme, od kojihsvaka ima po 3 komandna dugmeta. Dva komandna dugmeta su namjenjena zaprelazak sa jedne forme na druge dvije. Tre e komandno dugme Kraj je na svakojformi, namjenjeno za izlazak iz kompletnog programa. Slijedi kod koji opisuje radkomandnih dugmadi na prvoj formi.

Page 146: Visual Basic programski jezik

7. OBJEKTI VISUAL BASIC-A 146

Private Sub ComForma2_Click()Unload Form1 Rem Zatvaranje formeForm2.Show vbModal Rem prelazak na formuEnd Sub

Private Sub ComForma3_Click()Unload Form1 Rem Zatvaranje formeForm3.Show vbModal Rem prelazak na formuEnd Sub

Private Sub ComKraj_Click()EndEnd Sub

Slijedi kod koji opisuje rad komandnih dugmadi na drugoj formi.Private Sub ComForma1_Click()Unload Form2 Rem Zatvaranje formeForm1.Show vbModal Rem prelazak na formuEnd Sub

Private Sub ComForma3_Click()Unload Form1 Rem Zatvaranje formeForm3.Show vbModal Rem prelazak na formuEnd Sub

Private Sub ComKraj_Click()EndEnd Sub

7.1.2. Odre ivanje po etne forme i prikaz uvodne slike

U pravilu, prva napravljena forma va eg programa odre ena je kao po etnaforma. Kad va program po ne sa izvr avanjem, prvo e se prikazati upravo taforma (pa je i prvi programski kod ,koji e se izvesti kod koji se nalazi u doga ajuForm_Initialize ili Form_Load te forme). Ako elite da se prika e druga formakada se pokrene program, morate promijeniti po etnu formu.Promjena po etne forme se vr i kroz naredne korake:

1) U meniju Project, odaberite Project Properties. Nakon toga se pokazujeprozor prikazan na slici 7.2.2) Zatim odaberite paletu General.3) U komboboks listi Startup Object, odaberite formu koju elite kao novupo etnu formu.4) Nakon izbora eljene po etne forme odaberite dugme OK.

Page 147: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 147

Slika 7.2. Pode avanje po etne forme

Prikaz uvodne slike pri pokretanju programaAko pri pokretanju programa trebate izvr iti du i potprogram, kao to je

itavanje ve e koli ine podataka iz baze podataka ili u itavanje nekoliko velikihslika, muzi kih ili video fajlova, mo ete prikazati uvodnu sliku pri pokretanju.Uvodna slika (splash scren) je forma koja obi no prikazuje informacije poputimena programa, verzije programa, imena autora, informacija o autorskim pravimai jednostavnije slike. Slika koja se prikazuje kada pokrenete Visual Basic je uvodnaslika.

Za prikaz uvodne slike upotrijebite potprogram Sub Main, kao po etni objekatte uz pomo postupka Show prika ite formu:

Private Sub Main()frmUvod.Show Rem Prikaz uvodne slike.

Rem Ovdje mo ete dodati po etne potprograme....frmGlavna.Show Rem Prikaz glavne forme.Unload frmUvod Rem Prikaz uvodne slike.End Sub

Page 148: Visual Basic programski jezik

7. OBJEKTI VISUAL BASIC-A 148

Uvodna slika zauzima pa nju korisnika dok se izvr avaju va e po etnekomande, stvaraju i privid da se program br e u itava. Kad su po etne komandezavr ene, mo e se u itati va a prva forma i izbaciti uvodna slika. Pri oblikovanjuuvodne slike dobro je da ona bude to jednostavnija. Ako upotrijebite ve e slike ipuno objekata, sama uvodna slika mogla bi se sporo u itati.

Zavr etak programaProgram upravljana doga ajima prestaje raditi, kad su sve forme zatvorene i

nema programskog koda koji se izvodi. Ako i dalje postoji skrivena forma iako jeposljednja vidljiva forma zatvorena, stvori e se utisak kao da je program zavr iorad (jer nema vidljivih formi). Ali e program zapravo i dalje raditi dok ne buduzatvorene sve skrivene forme. Ovakva situacija se mo e pojaviti pri izvr enjuprograma, jer svaki pristup osobinama ili objektima forme, koja nije u itana,bezuslovno u itava tu formu bez prikazivanja.

Najbolji na in izbjegavanja ovog problema, kod zatvaranja va eg programa, jeosigurati izbacivanje svih formi. Ako imate vi e od jedne forme, mo eteupotrijebiti zbirku Forms i naredbu Unload. Na primjer, va a glavna forma mo eimati komandno dugme pod imenom cmdKraj, koje dopu ta korisniku izlaz izprograma. Ako va a aplikacija ima samo jednu formu, potprogram doga aja Clickmogao bi biti jednostavan poput ovog:

Private Sub cmdKraj_Click()Unload MeEnd Sub

Ako va program koristi vi e formi, mo ete izbaciti sve forme, postavljanjemkoda u potprogram doga aja Unload va e glavne forme. Mo ete upotrijebiti nizForms, kako bi bili sigurni da ste prona li i zatvorili sve svoje otvorene forme.Sljede i programski kod koristi niz formi, za zatvaranje svih formi.

Private Sub Form_Unload (Cancel As Integer)Dim i As Integer

Rem Petlja za prolaz kroz niz formiRem i zatvaranje svake forme.

For i = Forms.Count -1 To 0 Step -1Unload Forms(i)

NextEnd Sub

U nekim slu ajevima treba zavr iti rad programa, bez obzira na stanjepostoje ih formi ili objekata. Visual Basic pru a naredbu End za takvu svrhu.Naredba End trenutno zavr ava rad aktivnog programa. Nakon naredbe End neizvodi se nikakav programski kod, i ne pojavljuju se novi doga aji. Ta nije, VisualBasic ne e izvr iti potprograme doga aja QueryUnload, Unload ili Terminatenijedne forme. Pokaziva i objekata bi e oslobo eni, Visual Basic ne e izvestidoga aje Terminate objekata stvorenih iz va ih klasa.

Page 149: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 149

Kao dodatak naredbi End, mo e se koristiti i naredba Stop za zaustavljanjeprograma. Me utim, trebali bi koristiti naredbu Stop samo kod testiranja programa,kada tra ite gre ke, jer ona ne osloba a pokaziva e prema objekatima. Tako da priponovnom pokretanju mo e do i do neplaniranih gre aka u radu programa.

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.

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.

Page 150: Visual Basic programski jezik

7. OBJEKTI VISUAL BASIC-A 150

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

koda upisuje trenutni sadr aj ovog objekta (sa imenom Text1) preko sljede esintakse

Proba1 = Text1.Text

Slika 7.3. Forma za unos lozinke Slika 7.4. Osobina tekstboksa

Ovaj objekat se mo e vrlo lako iskoristiti za pravljenje forme preko koje seomogu uje dalji pristup programu kao na slici 7.3. 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).

Page 151: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 151

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

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 SubPrivate 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 If Rem otkazivanje ulogovanja

End Sub

7.4. OBJEKAT COMMANDBUTTON

Pomo u komandnog dugmeta CommandButton 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.

Page 152: Visual Basic programski jezik

7. OBJEKTI VISUAL BASIC-A 152

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 dva stanja, ovaj objekat ih ima tri. Omogu ava vezivanje zapolje iz baze podataka, tipi no za polje tipa Da/Ne. Ako imamo vi e CheckBoxobjekata na formi, oni su me usobno nezavisni, tj. ne isklju uju se me usobno. Sadruge strane dugme izbora OptionButton je objekat, koji se koristi kadakorisnik u programu mo e istovremeno da izabere samo jednu od vi e ponu enihopcija. Izbor jednog dugmeta izbora, klikom mi a, trenutno poni tava sve ostaleizbore, koji se nalaze na formi ili na jednoj grupi, ako forma ima vi e grupa. Da bina jednu formu postavili vi e grupa ovog objekta, potrebno je koristiti objekatFrame, koji slu i za razdvajanje 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.

Slika 7.5. Upotreba objekta CheckBox i OptionButton

Na slici 7.5. 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 ice

Page 153: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 153

pojavljuje se onog trenutka kad kliknete na taj objekat. Potprogram ovog doga ajaispituje je li kontrolna ku ica potvr ena (je li Value = vbChecked). Ako jepotvr ena, tekst se pretvara u podebljano ili nako eno pismo postavljanjemsvojstava Bold ili Italic objekata u kome se nalazi tekst koji se pode ava.

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 SubPrivate Sub Opt12_Click()

TxtDisplay.Font.Size = 12 Rem izabrana opcija 12End Sub

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

End SubDa 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.6 prikazan jeizgled programa, u kome se bira jelo sa prilozima.

Page 154: Visual Basic programski jezik

7. OBJEKTI VISUAL BASIC-A 154

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.6. Postupak grupisanja objekata OptionButton u okviruodvija se u sljede im koracima:1) Odaberite objekat okvira (frame) u paleti objekata i kreirajte okvir na formi.2) Odaberite objekat OptionButton u paleti objekata 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 isijecite 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.

Slika 7.6. Upotreba objekta CheckBox i OptionButton u vi e okvira

Page 155: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 155

7.7 OBJEKTI LISTBOX I COMBOBOX

Okvir sa popisom - lista (ListBox slika 7.7.) i kombinovani okvir (ComboBoxslika 7.8.) 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 sa popisom i kombinovani okviri su djelotvoran na inpredstavljanja velikog broja stavki korisniku na ograni enom prostoru. U pravilu,stavke su ispisane okomito u jednoj koloni, iako se mo e napraviti i okvir sa vi ekolona. Ako je broj stavki ve i od onog to okvir sa popisom ili kombinovani okvirmogu prikazati, u objektu e se automatski pojaviti trake za pomicanje (ScrollBar).Ovi objekti imaju ugra ene metode za dodavanje, brisanje i pronala enjevrijednosti iz njihovih 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 kolonetabele baze podataka.

Slika 7.7. Objekat list box Slika 7.8. 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 u listi stavki mo e izabrati, 0 - samo jednastavka, 1 - vi e stavki, 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 (ComboBox).

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.

Page 156: Visual Basic programski jezik

7. OBJEKTI VISUAL BASIC-A 156

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

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. U osobinama liste (Properties) da upi ete stavke uosobinu List. Nakon upisa svake stavke, pritisnite tipke CTRL + ENTER za prelazu idu u liniju liste. 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 e TextBox). Preuzimanje podataka iz liste se naj e radi preko procedureklik mi a na 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, trebatepodesiti njegove osobine Columns i MultiSelect.

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

Page 157: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 157

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.9. Izbor u listi

7.8. OBJEKTI KLIZNE TRAKE HSCROLLBAR I VSCROLLBAR

Klizne trake HScrollBar (vodoravna traka) i VScrollBar (vertikalna traka) suesto vezane uz okvire s tekstom ili prozore. Me utim ponekad ete vidjeti i kako

se koriste kao ulazne jedinice. Budu i da ovi objekti prikazuju trenutni polo aj naskali, oni se mogu koristiti zasebno za unos podataka u program. 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,osobina i postupaka. Mogu e je podesiti minimalnu i maksimalnu vrijednost, korakizmjene vrijednosti u dizajn re imu i u vrijeme izvr avanja programa. Tako e jemogu e postaviti i pro itati aktuelnu vrijednost (poziciju) kliza a za vrijemepomjeranja ili po zavr enom pomjeranju. Prilikom izvr avanja programa vrijednostobjekta 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 lijevi taster pritisnut i povla ite mi a lijevo-desno, odnosno gore-dole. Ovaj na in se zove scroll (pomjeranje).

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 dugmeta kliza a.

Page 158: Visual Basic programski jezik

7. OBJEKTI VISUAL BASIC-A 158

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

Slika 7.10. Primjer kori enja kliznih traka

Na slici 7.10. prikazano je kako se klizne trake mogu koristiti kao ulazni objektiu programu. Sada slijedi dio koda koji pokazuje kako se kliza i koriste. Prvo slijedikod, koji pokazuje kako se u TextBox pod imenom Text1 upisuje trenutnavrijednost kliza a. Upotrijebljene su dvije procedure doga aja: Change i Scroll.

Private Sub HScGodina_Change() Rem promjena vrijednostiText1.Text = HScGodina.Value Rem upis vrijednosti kliza a u TextBoxEnd SubPrivate Sub HScGodina_Scroll() Rem pomjeranje klizacaText1.Text = HScGodina.ValueEnd Sub

Zatim slijedi kod programa, pomo u koga se mijenja boja pozadine drugogTextBox-a pod imenom Text3. Ovo je ura eno pomo u funkcije RGB, koja ima triulazna argumenta, na osnovu kojih pravi spektar boja. Ovi ulazni argumenti moguda poprime vrijednosti od 0 do 255, a u programu se do ovih vrijednosti dolazipomo u tri kliza a, sa dvije procedure doga aja: Change i Scroll..

Page 159: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 159

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

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 objekata 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 sa

Page 160: Visual Basic programski jezik

7. OBJEKTI VISUAL BASIC-A 160

diskom, ra unskih operacija i sli nih koje znatno usporljavaju procesor, Timerobjekat ne e ta no odbrojavati vrijeme. Zbog ovoga on nije podesan za pisanjeprograma nekih vremenski intenzivnih ispitivanja i analiza procesa. Najbitnijeosobine objekta 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 ra unara objektu Timer potrebno je zadativrijednosti True za osobinu Enabled da bi objekat bio uklju en i 1000 za osobinuInterval da bi sat a urirao vrijeme svake sekunde. Da bi se dobio zvu ni signalnakon svakog aktiviranja objekta Timer koristi se komanda Beep. Slijedi dio kodakoji pokazuje, kako se digitalni sat pojavljuje u labeli pod imenom Label1.

Private Sub Form_Load() Timer1.Interval = 1000 Rem Interval 1 sekunda. Timer1.Enabled = TrueEnd SubPrivate Sub Timer1_Timer() Label1.Caption = Time BeepEnd Sub

Druga zna ajna primjena objekta Timer jeste definisanje vremena ekanja.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 6 sekundi.End Sub

Page 161: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 161

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

Slika 7.11. Izgled razvojne forme

Slijedi primjer programa u kome se objekat Timer koristi za periodi nomje anje 4 karte. Na slici 7.11. prikazana je razvojna forma ovog programa nakojoj se vidi objekat Timer, jedna labela, jedan TextBox (za unos vremenskogka njenja u sekundama), tri komandna dugmeta i 8 okvira za unos slika. Okviri zaunos slike su podjeljeni u dvije cjeline organizovane kao dva niza od po etiriokvira (Karta(0), Karta(1), Karta(2), Karta(3), Ulaz(0), Ulaz(1), Ulaz(2) i Ulaz(3)).

Page 162: Visual Basic programski jezik

7. OBJEKTI VISUAL BASIC-A 162

Organizovanje objekata u niz omogu uje lak e ponavljanje iste komande nad vi esli nih objekata upotrebom For petlje. Na slici 7.12. prikazana je izvr na verzijaovog programa na kojoj se vide samo 4 okvira za slike, ali u kojima se stalno uistim vremenskim razmacima mijenjaju slike. Tako e se mo e uo iti da se uizvr noj verziji programa ikonica objekata Timer ne pojavljuje.

Slika 7.12. 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) * 1000 Rem preuzimanje vremena ponavljanja iz TextBoxaTimer1.Enabled = True Rem aktiviranje objekta Timer1 For i = 0 To 3 Ulaz(i).Visible = False Rem polazne 4 slike da se u ine nevidljive Next i

End Sub

Page 163: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 163

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

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:

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.Primjer primjene 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 seda je gornje lijevo tjeme (vrh) forme koordinatni po etak sistema iji prvi redta aka predstavlja x-osu, a prva kolona ta aka obrasca y-osu. Da bi dobilikontinuirano pomjeranje objekta potrebno je da se vrijednost kordinata x i ymijenja u nekoj petlji ili pomo u objekta tajmer. Brzina pokreta objekta odre ujese zadavanjem vrijednosti 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.

Page 164: Visual Basic programski jezik

7. OBJEKTI VISUAL BASIC-A 164

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

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.13.a Forma sa 3 tajmera Slika 7.13.b 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.13. prikazan je primjer programa sa tri

Page 165: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 165

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

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

Page 166: Visual Basic programski jezik

7. OBJEKTI VISUAL BASIC-A 166

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 Exsplor-u, a primjer kori enja ovog objekta prikazanje na slici 7.15. 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

Slika 7.15. 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.15. Ovaj objekat se naj e kombinuje sa objektom DriveList Box za izbor drajva i DirectoryListBox za izbor direktorijuma.

Page 167: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 167

Najbitnija osobina ovog objekta je Path, koja sadr i teku u putanju dodirektorijuma, za fajl koji je trenutno selektovana, a ostale bitne osobine su:- Name za definisanje imena objekta.- Pattern koja sadr i tekst, 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 (sa imenom ImgSlika1), a putanju do izabrane slike uobjektu Label (sa imenom LabSlika). Ovaj kod se pokre e klikom na dugme (saimenom ComPrikaz).

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.

Page 168: Visual Basic programski jezik

7. OBJEKTI VISUAL BASIC-A 168

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.- 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 komobjektu se crta eljeni oblik, a to je obi no glavna forma (Form1). Programski semogu crtati sljede 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

Page 169: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 169

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&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 (za PictureBox) tako dabude prikazana kompletna slika, kada se ova osobina postavi na True. Ako je ovaosobina postavljena na False, onda je okvir uvijek fiksan bez obzira na veli inuslike. Ako je slika ve a od okvira, bi e prikazan samo njen gornji lijevi dio.- Picture za povezivanje ovih objekata 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 u okvir pod nazivom Slika1, je sljede a: Slika1.Picture=LoadPicture( c:\slike\vjezba.gif )

Page 170: Visual Basic programski jezik

7. OBJEKTI VISUAL BASIC-A 170

Sintaksa koda kada se slika preuzima sa direktorijuma na kome se nalazisnimljen projekta u kome se trenutni program pi e, je sljede a:slika2.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"

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.16.prikazan je primjer kori enja objekta Data za prikaz podataka u TextBox-u, a naslici 7.17. prikaz podataka MSFlexGrid tabeli, List-i i ComboBox-u. Strelice naobjektu Data slu e za pomjeranje slogova (redova u tabeli) u bazi podataka.Unutra nje strelice vr e pomjeranje po jedan slog unaprijed ili unazad, a spolja njeza prelazak na prvi ili posljednji slog u bazi. Objekat Data, u su tini, ini sponuizme u Access-ovih baza podataka i Basic-ovih objekata, odnosno omogu avaprikaz i aktivnosti sa podacima iz baze.

Slika 7.16. Objekat Data i TextBox Slika 7.17. Objekat Data i Tabela

Page 171: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 171

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

Page 172: Visual Basic programski jezik

7. OBJEKTI VISUAL BASIC-A 172

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

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

Page 173: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 173

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"

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 kome

se 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 e povezati ili umetnuti bilo koji objekat,koji podr ava automatizaciju. Koriste i ovaj objekat, va a Visual Basic aplikacijamo e prikazati i upravljati podacima iz drugih Windows temeljenih aplikacija, kaoto su Microsoft Excel i Microsoft Word. OLE objekat koristi se za stvaranje

aplikacije usmjerene na dokumente. U takvoj aplikaciji, korisnik kombinujepodatke iz razli itih aplikacija, kako bi stvorio jedan dokument. Takav tipaplikacije mo e biti ure iva teksta, koji korisniku omogu uje upis teksta te, zatimumetanje Excel tabele ili grafikona kao na slici 7.18.

Kada pove ete objekat, u svoju aplikaciju ubacujete oznaku mjesta (a ne samestvarne podatke) za povezan objekat. Na primjer, kada pove ete niz elija Exceltabele sa Visual Basic aplikacijom, podaci pridru eni elijama spremljeni su udrugoj datoteci. U OLE objektu nalazi se samo veza prema podacima i slika

Page 174: Visual Basic programski jezik

7. OBJEKTI VISUAL BASIC-A 174

podataka. 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. Kada 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. Povezani dokumenti pomo u OLE objekata

Slika 7.18. Izbor dokumenata za povezivanje sa OLE objektom

Page 175: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 175

Svaki put kada se na formi stvori OLE objekat, Visual Basic prikazuje dijalo kiokvir Insert Object kao na slici 7.19. 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. Pojavi 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. Pojavi e se dijalo ki okvir Browse sli an WindowsExplorer-u.4) Odaberite datoteku sa kojom se eli povezati OLE objekat.5) Kliknite Insert za povratak u dijalo ki okvir Insert Object.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, pojavi 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

menija 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 meniju Edit ActiveX sastavnog dijela, odaberite Copy. Podaci e se spremitiza kopiranje.4) U Visual Basic-u, kliknite na eljeni OLE objekat sa desnim tasterom mi a, iodaberite naredbu Paste Special.

Page 176: Visual Basic programski jezik

7. OBJEKTI VISUAL BASIC-A 176

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 savelikim dvodimenzionalnim nizovima, mo e zna ajno da u tedi vrijeme upisa iitanja podataka iz tabela. Upotrebom programskih petlji prilikom rada sa

tabelama, zna ajno se skra uje programski kod.

Slika 7.20. Izbor novih kontrola Slika 7.21. Objekat MSFlexGrid

Za tabelarni prikaz podataka Visual Basic posjeduje nekoliko objekata, ali jenajzna 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) otvariti

MS FlexGrid

Page 177: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 177

listu opcija. Od ponu enih treba odabrati opciju Components. Nakon toga,pojavljuje se okvir za dijalog sa spiskom svih objekata (kontrola) kao na slici 7.20.

ekiranjem komponente Microsoft FlexGrid 6.0 i klikom na dugmi OK, na paletiobjekata pojavi e se objekat MSFlexGrid kao na slici 7.21. 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.22. prikazan je izgled prozorau kome se pode avaju osnovne osobine tabele.

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 osobinama FixedCols i FixedRows dodijelevrijednosti 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.22. Pode avanje osobina tabele Slika 7.23. 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.23.

Page 178: Visual Basic programski jezik

7. OBJEKTI VISUAL BASIC-A 178

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 vi e elija, a koje se odnose na istiobjekat (tabelu) mo e se koristiti zapis:

With ImeObjekta OsobineEnd With

Naj e osobine koje se pode avaju za tako odabrane elije, obi no susljede 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 With

Page 179: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 179

gdje 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.24.

Slika 7.24. Program za prikaz mjese nih ocjena 5 radnika

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" .TextMatrix(3, 0) = "mart" .TextMatrix(4, 0) = "april" .TextMatrix(5, 0) = "maj"

Page 180: Visual Basic programski jezik

7. OBJEKTI VISUAL BASIC-A 180

.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

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 ]gdje je

number - redni broj kolonevalue - broj koji defini e na in poravnanja 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.2.

Page 181: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 181

Broj fiksnih kolona i redova u tabeli se mo e pode avati direktno preko prozoraProperties, ili preko koda kori enjem sljede ih sintaksi:

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

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

Page 182: Visual Basic programski jezik

7. OBJEKTI VISUAL BASIC-A 182

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 naredbi 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 semijenjati. Standardni okvir za dijalog omogu uje vam prikaz sljede ih obi nokori tenih dijalo kih okvira:

• Open• Save As• Color• Font i• PrintObjekat standardnog okvira za dijalog se na nalazi u standardnoj paleti objekata

Visuel Basic-a, ve ga je potrebno dodati svaki put, kada se pravi novi program.Postavljanje ovog objekta u standardnu paletu objekata se vr i kroz sljede ekorake:1) Ako to ve niste napravili, dodajte objekat standardnog okvira za dijalog upaletu objekata, izborom stavke Components u meniju Project. Pojavi e se listasvih objekata, koje posjeduje Visual Basic, kao na slici 7.25. ekiranjem kompo-nente Microsoft Common Control 6.0 na listi u kartici Controls i klikom na dugmeOK u paleti alatki pojavljuje se objekat CommonDialog koji se, po potrebi, prenosina formu. ekiranjem komponente Microsoft Windows Common Control 6.0 nalisti u kartici Controls i klikom na dugme OK u paleti objekata pojavljuje se vi enovih objekata koji se mogu kombinovati sa standardnim okvirom za dijalog. Tidodatni objekti koji se pojavljuju u paleti objekata su: TabStrip, Toolbar,Statusbar, Progressbar, Imagelist, Slider i ImageCombo.2) U paleti objekata, kliknite na objekat CommonDialog i kreirajte ga na formi.Kada stvarate ovaj objekat na formi, objekat e automatski odrediti svoju veli inu.Kao i objekat mjera a vremena (Timer) i objekat standardnog okvira za dijalog jenevidljiv tokom izvr enja programa.

Page 183: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 183

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.

Slika 7.25. Dodavanje novih objekta u paletu alatki

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

Page 184: Visual Basic programski jezik

7. OBJEKTI VISUAL BASIC-A 184

7.19.1. Dijalo ki okviri Open i Save As

Dijalo ki okvir Open prikazan je na slici 7.26. 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) zaprikaz fajlova samo odre enog tipa. To se mo e napraviti odre ivanjem osobineFilter koriste i sljede i oblik:

opis1 filter1 opis2 filter2 ...

Opis1 je string koji se ispisuje u okviru sa popisom (ComboBox) – na primjer“Tekstualne datoteke (*.doc)”. Filter je stvarni filter – na primjer “*.doc”. Svakiskup opis I filter mora biti razdvojen simbolom vertikalne linije ( ).

Slika 7.26. Dijalo ki okvir Open Slika 7.27. Dijalo ki okvirColor

7.19.2. Dijalo ki okvir Color

Dijalo ki okvir Color prikazan je na slici 7.27. Omogu uje korisniku izbor bojeiz palete ili stvaranje i izbor korisni ke boje. Tokom rada programa, kad korisnikodabere boju i zatvori dijalo ki okvir, treba upotrijebiti osobinu Color za dobijanjeodabrane boje. Sljede i kod prikazuje kori tenje dijalo kog okvira Color.

Page 185: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 185

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.28. Omogu uje korisniku izbor pismaodre ivanjem njegove veli ine, boje i stila. Jednom kad korisnik napravi izbore udijalo kom okviru Font, sljede e osobine: FontName, Font style, Size ..., sadr einformacije o izboru korisnika. Sljede i kod prikazuje kori tenje dijalo kog okviraFont.

Dialog1.ShowFontText1.Font.Name = Dialog1.FontNameText1.Font.Size = Dialog1.FontSizeText1.ForeColor = CommonDialog1.Color

Slika 7.28. Dijalo ki okvir Font Slika 7.29. Dijalo ki okvir Print

7.19.3. Dijalo ki okvir Print

Dijalo ki okvir Print prikazan je na slici 7.29. 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 korisnik

Page 186: Visual Basic programski jezik

7. OBJEKTI VISUAL BASIC-A 186

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

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.30. Ako se u programu preko Menu Editor-a napravi vlastitipadaju i meni kao na slici 7.30., pokretanjem programa pojavi e se prozor kao naslici 7.31. Menu Editor omogu ava dodavanje novih ili modifikaciju i brisanjepostoje ih menija. Mogu se praviti razne pre ice za direktno aktiviranje pojedinihkomandi iz menija putem tastature. Nakon formiranja menija pristupa se pisanjuprogramskog koda za eventualno aktiviranje odabranih komandi. Na Menu Editornalazi se niz veoma korisnih objekata za izradu i pode avanje sopstvenogpadaju eg menija.

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 lista (spisak)

Page 187: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 187

svih napravljenih glavnih menija, podmenija i stavki koje su u sastavu podmenija.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.

Slika 7.30. Izrada sopstvenog menija u MenuEditor-u

Slika 7.31. Izgled vlastitog padaju eg menija i Tool Bar-a u programu

Page 188: Visual Basic programski jezik

7. OBJEKTI VISUAL BASIC-A 188

U kontrolnom prostoru za pregled padaju eg menija, po pravilu, zapisuju senatpisi 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 stabla 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 stavkuispred koje treba izvr iti unos, a zatim aktivirati dugme Insert. Kao rezultatizvedenih akcija u meniju se pojavljuje prazan programski red, u koji treba unijetinovu komandu 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.Izbor pojedinih komandi iz menija mo e se obavljati, pored otvaranja menija

klikom mi a na komandu i definisanjem odgovaraju ih pre ice putem simboladodijeljenih tipkama na tastaturi. To se ini tako to se prilikom upisa natpisa upolje Caption, ispred eljenog karaktera, stavi simbol (&). Tada se pomo u tasterakome je dodijeljen karakter, ispred koga se nalaz simbol (&), mo e aktivirati takomanda. Obi no se bira prvo slovo imena elementa iz menija, pod uslovom daimena nemaju 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.

Page 189: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 189

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 protivnomnije aktivna.

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 kontrolnomprostoru za pregled menija.

Klikom na dugme OK kona no se potvr uje, da je meni ure en i okvir zadijalog nestaje sa ekrana. U programu se tada ispod naslovne linije pojavljujenapravljeni menija. Lista menija dobija se klikom na njegov naslov na liniji menija.Klikom na dugme Cancel, uvijek se mo e odustati od izrade menija.

Page 190: Visual Basic programski jezik

7. OBJEKTI VISUAL BASIC-A 190

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 objekata. Da bi dodali ove objekte u paletu objekata, potrebno jeu meniju Project izabrati stavku Components. Zatim treba ekirati komponentuMicrosoft Windows Common Control 6.0 na listi u kartici Controls i klikom nadugme OK u paleti objekata 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 tose na objektu Imagelist desnim klikom mi a do e do osobine Properties. Pojavljujese dijalo ki prozor sa tri menija za pode avanje: General, Images i Color. Dijalo kiprozor General prikazan je na slici 7.32. Koristi se za pode avanje veli ine ikoniceu pikselima.

Slika 7.32. Izgled prozora Gener kod objekta Imagelist

Page 191: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 191

Dijalo ki prozor Images prikazan je na slici 7.33. i koristi se za dodavanjenovih slika 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.33. Izgled prozora Image kod objekta Imagelist

Slika 7.34. Izgled prozora General za objekat ToolBar

Page 192: Visual Basic programski jezik

7. OBJEKTI VISUAL BASIC-A 192

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.34. 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 pojavljuje listasvih objekata ImageList, koji postoje na trenutno aktivnoj formi. Ostali parameti naovom prozoru se koriste za fino pode avanje ikonica.

Dijalo ki prozor Buttons prikazan je na slici 7.35. 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.

Slika 7.35. Izgled prozora Buttons za objekat ToolBar

Page 193: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 193

7.22. ACTIVEX OBJEKATI

Komplet objekata dostupnih u paleti objekata, mo e se prilagoditi svakomprojektu. Svaki objekat se mora nalaziti u paleti objekata, prije nego to je mo etedodati na formu projekta. U ovom poglavlju bi e predstavljeni objekti, koji se nenalaze u standardnoj paleti objekata programskog jezika Visual Basic. Me utim,radi se o vrlo korisnim objektima, koji omogu uju pravljenje profesionalnihaplikacija. Pomo u ovih objekata se olak ava pristup bazama podataka, ali i svimdrugim programima, koji su instalirani na ra unaru.

ActiveX objekte (kontrole) i dodatne objekate mo ete pripojiti svom projektupostavljaju i ih u paletu objekata. Dodavanje ovih objekata u paletu objekataprograma vr i se kroz sljede e korake.1) U meniju Project odaberite stavku Components. Prikaza e se dijalo ki okvirComponents kao na slici 7.36. Stavke ispisane u ovom dijalo kom okviruuklju uju sve registrirane ActiveX objekte, dodatne objekte i ActiveX kreatore.2) Da bi dodali objekat (datoteke sa nastavkom .ocx) u paletu objekata, potvrditeek-boks lijevo od imena objekta. Odaberite karticu Controls, kako bi vidjeli

kontrole sa nastavkom .ocx u imenu datoteke. Za dodavanje dodatnih objekata, kaoto je Microsoft Excel Chart, odaberite karticu InsertableObjects, kao na slici 7.37.

3) Odaberite dugme OK za zatvaranje dijalo kog okvira Components. Svi ActiveXobjekti koje ste odabrali, pojavi e se u paleti objekata.

Slika 7.36. Dijalo ki okvir Components Slika 7.37. Dodatni objekti

Za dodavanje ActiveX objekata u dijalo ki okvir Components, odaberite dugmeBrowse i pretra ite druge direktorije, kako bi prona li datoteke s nastavkom .ocx.Kad dodate ActiveX objekat na listu raspolo ivih objekata, Visual Basic automatskipotvr uje kontrolnu ku icu. Svaki ActiveX objekat ima prate u datoteku sa

Page 194: Visual Basic programski jezik

7. OBJEKTI VISUAL BASIC-A 194

nastavkom .oca. Ta datoteka uva podatke potrebne za komunikacikju VisualBasic-a sa svakim objektom. Datoteke sa nastavkom .oca obi no su snimljene uistom direktoriju gdje su i ActiveX objekti i stvaraju se prema potrebi (veli inadatoteke i datum stvaranja mogu se mijenjati).

7.22.1. Kori tenje objekata drugih aplikacija

Mo ete tako er koristiti i objekate iz drugih aplikacija, kao to su oni uklju eniu biblioteku objekata Microsoft Excela, kao objekte u paleti alatki ili kaoprogramabilne objekate u programskom kodu. Da bi objekat druge aplikacije biopristupa an va em programskom kodu, ali ne kao objekat, potrebno je da postavitepokaziva na biblioteku objekata te aplikacije. Dodavanje pokaziva a na bibliotekeobjekata vr i se kroz sljede e korake.1) U meniju Project odaberite stavku References. Pojavljuje se dijalo ki okvirReferences, kao na slici 7.38. Potvrdite ek-boks pored pokaziva a, koji elitedodati svom programu. Za dodavanje pokaziva a na aplikacije, koje nisu na listidijalo kog okvira References, odaberite dugme Browse, pa odaberite aplikaciju.2) Odaberite dugme OK za dodavanje odabranog pokaziva a svom projektu.

Slika 7.38. Dijalo ki okvir References Slika 7.39. Dodatni objekti

Ako se ne koristite neki objekat u biblioteci pokaziva a, potrebno je odzna itikontrolnu ku icu za taj pokaziva , kako bi smanjili broj pokaziva a na objekatekoje Visual Basic mora rije iti. Na taj na in ete smanjiti vrijeme, koje e bitipotrebno va em programu za prevo enje. Jednom kad postavite pokaziva e nabiblioteke objekata koje elite, odre eni objekat, njegove postupke i osobinemo ete prona i u pretra iva u objekata izborom stavke Object Browser u menijuView. U va em programskom kodu mo ete iskoristiti svaki objekat, koji je izlistanu pretra iva u objekata.

Page 195: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 195

Visual Basic pru a alate, koji vam omogu uju kombinovanje objekata izrazli itih izvora. Sad mo ete graditi korisni ka rje enja kombinuju i najmo nijeosobine Visual Basic-a i aplikacija koje podr avaju automatizaciju (do sad znanukao OLE automatizaciju). Automatizacija je osobina komponentnog objekatnogmodela (Component Object Model, COM), industrijskog standarda koji koristiaplikacija za izlaganje objekata razvojnim alatima i drugim aplikacijama.

Aplikacije mo ete izgraditi povezivanjem ugra enih objekata Visual Basica, amo ete i koristiti objekate koje pru aju druge aplikacije. Razmislite o postavljanjusljede ih objekata na formu Visual Basica:

− Objekat grafikona Microsoft Excela (Chart);− Objekat radnog lista Microsoft Excela (Workshet);− Objekat dokumenta Microsoft Worda.

Ove objekate mo ete upotrijebiti za stvaranje aplikacije, koja e raditi kaoknjiga ra una, to je prikazano na slici 7.39. To e vam zna ajno u tediti vrijeme,jer ne morate pisti programski kod za obezbje enje fukcija, koje daju objekatiMicrosoft Excel-a i Microsoft Word-a.

7.22.2. Tipovi ActiveX sastavnih dijelova

Sastavni dijelovi tipa ActiveX daju vam snagu za sastavljanje usavr enihaplikacija, iz dijelova koji ve postoje. Va e Visual Basic aplikacije moguuklju ivati nekoliko tipova ActiveX sastavnih dijelova:

- Aplikacije koje podr avaju ActiveX tehnologiju, kao Microsoft Excel,Microsoft Word i Microsoft Access, pribavljaju objekate kojima mo eteprogramski upravljati iz svoje Visual Basic aplikacije. Na primjer, u va ojaplikaciji mo ete upotrijebiti osobine, postupke i doga aje tabele MicrosoftExcela, dokumenta Microsoft Worda ili baze podataka Microsoft Accessa.- Sastavni dijelovi koda pru aju biblioteke programabilnih objekata. Na primjer,sastavni dio koda mo e uklju ivati biblioteku specijalizovanih financijskihfunkcija za korisnike Excel tabele, ili elemente korisni kog okru enja, kaodijalo ki okviri, koji su zajedni ki mnogim aplikacijama.

Za razliku od objekata u aplikaciji koja omogu uje ActiveX tehnologiju,objekat u sastavnom dijelu koda mo e raditi u istom procesu kao va a aplikacija,omogu uju i br i pristup objekatu. Mo ete dodati osobine bez potrebe da ih samistvarate, kori tenjem ActiveX objekata kao sastavnih dijelova. ActiveX objekti sudostupni od velikog broja proizvo a i pru aju puno specijalizovanih osobina, kaoprikazivanje kalendara na formi ili itanje podataka posebnog oblika.

Page 196: Visual Basic programski jezik

7. OBJEKTI VISUAL BASIC-A 196

Slijedi primjer programa koji na formi ima tri tekst-boksa za unost teksta(Text1, Text2 i Text3) i komandno dugme (Command1). U ovom programu jepotrebno dodali pokaziva na biblioteku Microsoft Excel 8.0 Object Library.Nakon toga mo ete dodati kod potprogramu doga aja Command1_Clickkomandnog dugmeta koji koristi postupak Microsoft Excel Formula za sabiranjedva broja upisana u tekst-boks Text1 i Text2, prikazuju i rezultat u tre em tekst-boksu Text3.

Private Sub Command1_Click()Rem Definisanje promjenjivih objekata za program Excel,Rem radnu knjigu te aplikacije i objekate radnog lista.Dim xlApp As Excel.ApplicatonDim xlBook As Excel.WorkbookDim xlShet As Excel.Workshet

Rem Dodjela pokaziva a objekata promjenjivim.Set xlApp = New Excel.Application

Rem Upotrijebite postupke Add za stvaranjeRem novih objekata radne knjige i radnog lista.

Set xlBook = xlApp.Workbooks.AddSet xlShet = xlBook.Workshets.Add

Rem Dodjela vrijednosti unesenih u tekst-boksoveRem elijama Microsoft Excela.

xlShet.Cells(1, 1).Value = Text1.TextxlShet.Cells(2, 1).Value = Text2.Text

Rem Upotreba postupka Formula za sabiranjeRem vrijednosti u Microsoft Excelu.

xlShet.Cells(3, 1).Formula = =R1C1 + R2C1Rem Prenos vrijednosti iz Excela u tekst-boks.

Text3.Text = xlShet.Cels(3, 1)Rem Snimanje radnog lista na odre enu lokaciju.

xlShet.SaveAs c:\Temp.xlsRem Zatvaranje radne knjige.

xlBook.CloseRem Zatvaranje Microsoft Excela postupkom Quit.

xlApp.QuitRem Otpu tanje objekata.

Set xlApp = NothingSet xlBook = NothingSet xlShet = NothingEnd Sub

Page 197: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 197

7.22.3. Stvaranje pokaziva a na objekat

Prije nego to u svom programu mo ete koristiti osobine, postupke i doga ajeobjekata, prvo morate odrediti promjenjivu objekata, te zatim promjenjivojdodijeliti pokaziva objekata. Dodijela pokaziva a na objekte zavisi o dva uslova:

- Isporu uje li ActiveX sastavni dio tipsku biblioteku. Tipska bibliotekaActiveX sastavnog dijela sadr i definicije svih objekata, koje pru a sastavni dio,uklju uju i definicije svih dostupnih postupaka, osobina i doga aja. AkoActiveX sastavni dio pru a tipsku biblioteku, u svoj projekat Visual Basic-atrebate dodati pokaziva na tipsku biblioteku, prije nego to mo eteupotrebljavati biblioteke objekata.- Je li rije o objekatu najvi eg nivoa, objekatu stvorenom izvana (externallycreatableobject) ili zavisnom objekatu (dependent object).Pokaziva vanjski stvorenom objekatu mo ete dodijeliti direktno, dok se

pokaziva i na zavisne objekate dodjeljuju posredno.Ako je objekat stvoren izvana, pokaziva objekata se mo e dodijeliti

promjenjivoj kori tenjem klju ne rije i New, te funkcija CreateObject iliGetObject u izrazu Set izvan sastavnog dijela.

Ako je objekat, zavisan objekat, pokaziva objekata se dodjeljuj kori tenjempostupka iz objekata vi eg nivoa u izrazu Set.

Postupak stvaranja pokaziva a na objekat definisan u tipskoj biblioteci odvija sekroz sljede ih 6 koraka.1) U meniju Project odaberite References.2) U dijalo kom okviru References, odaberite ime ActiveX sastavnog dijela, kojisadr i objekate koje elite upotrijebiti u svojoj aplikaciji.3) Mo ete upotrijebiti dugme Browse, za tra enje datoteke tipske biblioteke, kojasadr i potreban objekat. Tipske biblioteke imaju datoteke sa nastavcima imena .tlbili .olb. Izvr ne datoteke (.exe) i dinami ki povezive biblioteke (.dll), tako er mogupru iti tipske biblioteke, pa mo ete potra iti i datoteke sa tim nastavcima imena.Ako niste sigurni podr ava li program ActiveX tehnologiju i pru a li tipskubiblioteku, poku ajte dodati pokaziva na nju kori tenjem dugmeta Browse.4) U meniju View, odaberite Object Browser, kako bi vidjeli pokazanu tipskubiblioteku. Odaberite odgovaraju u tipsku biblioteku iz liste Project/Library. Usvom programu mo ete upotrijebiti sve objekate, postupke i osobine ispisane upretra iva u objekata.5) Odredite promjenjivu objekata klase objekata. Na primjer, mogli bi odreditipromjenjivu klase Excel.Chart, za upu ivanje na objekat Microsoft Excel Chart.

Dim xlChart As Excel.Chart6) Dodijelite pokaziva objekata promjenjivoj kori tenjem klju ne rije i New,funkcija CreateObject ili GetObject u izrazu Set.

Page 198: Visual Basic programski jezik

7. OBJEKTI VISUAL BASIC-A 198

Dodjela pokaziva a objekta promjenjivojNakon to odredite promjenjivu objekta, morate dodijeliti pokaziva objekta

promjenjivoj, prije nego to mo ete upotrebljavati osobine, postupke i doga ajeobjekta. Novi pokaziva objekta mo ete dodijeliti na nekoliko na ina:

- Ako odredite promjenjivu kori tenjem klju ne rije i New, Visual Basic eautomatski stvoriti novi pokaziva objekta, kada prvi put upotrijebitepromjenjivu.- Pokaziva na novi objekt mo ete dodijeliti u izrazu Set, kori tenjem klju nerije i New ili funkcije CreateObject.- Pokaziva na novi ili postoje i objekt mo ete dodijeliti u izrazu Set,kori tenjem funkcije GetObject.

Dodjela pokaziva a objekta kori tenjem klju ne rije i NewAko odredite promjenjivu objekta sa klju nom rije i New, Visual Basic e

automatski stvoriti novi objekt, kada prvi put upotrijebite promjenjivu. U izrazu Setmo ete tako e upotrijebiti klju nu rije New, za dodjelu pokaziva a novomobjektu specifi ne klase.

U sljede em primjeru prikazan je kod programa, koji pokazuje dodjelupokaziva a na novi objekt DAO tabele promjenjivoj tdfDatum, postavljaju iosobinu Name tabele na “Datum”:

Dim tdfDatum As DAO.TableDefSet tdfDatum = New DAO.TableDeftdfDatum.Name = Datum

Dodjela pokaziva a objekta kori tenjem funkcije CreateObjectOva dodjela pokaziva a objekta kori enjem funkcije CreateObject odvija se prekosljede e sintakse.Set promjenjiva = CreateObject progID , [ imekorisnika ])

Argument progID je obi no potpuno ozna eno ime klase, iz koje je stvorenobjekat (na primjer Word.Document). Me utim, argument progID mo e biti razli itod imena klase. Na primjer, progID za objekat Microsoft Excela je “Sheet” prijenego “Worksheet”.

Neobavezni argument imekorisnika mo e biti odre en, za stvaranje objekta naudaljenom ra unaru putem mre e. On je dio imena ra unara u imenu dijeljenja. Naprimjer, sa mre nim dijeljenim imenom \\ MojKorisnik \Javno, argument imekorisnika bio bi “MojKorisnik”.

Sljede i primjer programskog koda pokre e Microsoft Excel (ako MicrosoftExcel ve nije pokrenut) i uspostavlja promjenjivu xlApp za upu ivanje na objekt

Page 199: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 199

klase Application. Argument “Excel.Application” potpuno ozna ava klasuApplication, kao klasu koju odre uje Microsoft Excel.

Dim xlApp As Excel.ApplicationSet xlApp = CreateObject( Excel.Application )

Dodjela pokaziva a objekata kori tenjem funkcije GetObjectFunkcija GetObject se naj e koristi za dodjeljivanje pokaziva a na postoje i

objekat. Ali mo ete je tako e upotrijebiti i za dodjeljivanje pokaziva a na noviobjekat. Kako bi dodijelili pokaziva na postoje i objekat, upotrijebite sljede usintaksu.Set promjenjivaobjekata = GetObject([imeputanje] [, progID])

Argument imeputanje mo e biti putanja do postoje e datoteke, prazan string ilise mo e potpuno izostaviti. Ako je izostavljena, argument progID je obavezan.Odre ivanje putanje do postoje e datoteke uzrokova e stvaranje objekatafunkcijom GetObject uz kori tenje informacija spremljenih u datoteci. Kori tenjepraznog stringa kao prvog argumenta, uzrokova e djelovanje funkcije GetObjectkao funkcije CreateObject i stvori e novi objekat klase, iji je programskiidentifikator jednak argumentu progID.

Sljede i primjer koda opisuje rezultate kori tenja funkcije GetObject.1) Ako se izvodi ActiveX sastavni dio rezultat

Set X = GetObject( MojPos.Application ) Rem X upu uje na postoje i objekat Application.Set X = GetObject( , MojPos.Object ) Rem X upu uje na novi, izvana stvoren objekat.

2) Ako se ne izvodi ActiveX sastavni dio rezultatSet X = GetObject( MojPos.Object ) Rem Vra a se pogre ka.Set X = GetObject( , MojPos.Object ) Rem Pokre e se ActiveX sastavni dio (MojPos), teX ukazuje na novi objekat.

Primjer koda kada promjenjiva wdApp ukazuje na aplikaciju Microsoft Word,koja se izvodi:

Dim wdApp As Word.ApplicationSet wdApp = GetObject( , Word.Application )

Isto kao kod funkcije CreateObject, argument “Word.Application” jeprogramski identifikator za klasu Application, odre enu Microsoft Word-om. Ako

Page 200: Visual Basic programski jezik

7. OBJEKTI VISUAL BASIC-A 200

se izvodi vi e dokumenata Microsoft Word-a, ne mo ete predskazati na koji edokument ukazivati promjenjiva wdApp.

Primjer koda za pokretanje Excel stranice, ako Excel ve nije pokrenut, tako toe se otvoriti dokument “Proba.xls” na odre enoj lokaciji hard diska.

Dim xlBook As Excel.WorkbookSet xlBook = GetObject("C:\Prvi\Proba.xls")

7.22.4. Otpu tanje ActiveX sastavnog dijela

Kad ste gotovi sa kori tenjem objekata, o istite sve promjenjive, koje pokazujuna objekat, kako bi objekat mogao biti otpu ten iz memorije. Kako bi o istilipromjenjivu objekata, postavite varijablu na Nothing.

Dim acApp As Access.ApplicationSet acApp = New Access.ApplicationMsgBox acApp.SysCmd(acSysCmdAccessVer)Set AcApp = Nothing

Ako elite da promjenjiva zadr i svoju vrijednost kroz potprograme,upotrijebite javne promjenjive ili promjenjive na nivou forme, ili stvoritepotprograme, koji vra aju objekat. Sljede i kod pokazuje, kako bi mogliupotrijebiti javnu promjenjivu.Public wdApp As Word.Application Stvaranje objekata Word i pokretanje Microsoft Worda.

Set wdApp = New Word.Application Microsoft Word se ne e zatvoriti sve dok se

aplikacija ne zavr i ili dok pokaziva ne budepostavljen na Nothing.Set wdApp = Nothing

Tako e, pripazite da postavite sve pokaziva e objekata na Nothing, kadzavr avate sa kori enjem objekata, ak i za nezavisne objekate.Dim xlApp As Excel.ApplicationDim xlBook As Excel.WorkbookSet xlApp = New Excel.ApplicationSet xlBook = xlApp.Workbooks.AddSet xlApp = Nothing Pripazite! xlBook bi jo uvijek mogao sadr avati pokaziva objekata.

Set xlBook = Nothing Sad su o eni svi pokaziva i.

Page 201: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 201

7.22.5. Rukovanje gre kama tokom rada u ActiveX sastavnim dijelovima

Programski kod za rukovanje gre kama je posebno va an, kad radite sa ActiveXsastavnim dijelovima, jer se kod, u sastavnom dijelu, koristi iz va e Visual Basicaplikacije. Gdje je to mogu e, trebali bi uklju iti programski kod za rukovanjegre kama, koje mo e izazvati sastavni dio. Na primjer, dobra je praksa potra itigre ku, koja se pojavljuje kad korisnik neo ekivano zatvori aplikaciju sastavnogdijela.Function PokreniWord() Pokretanje Microsoft Worda.

On Error Goto ZamkaZaGresku Odre ivanje promjenjive tipa Application za Microsoft

Word, te cjelobrojne promjenjive za zamku pogre ke.Dim wdApp As Word.ApplicationDim iPokusaja As Integer Dodjela pokaziva a objekata.

Set wdApp = New Word.Application Otpu tanje varijable objekata.

Set wdApp = NothingExit Function

ZamkaZaGresku: Zamka za gre ku koja se pojavljuje ako Microsoft Word ne mo e biti pokrenut.

Select Case Err.NumberCase 440 Gre ka automatizacije.iPokusaja = iPokusaja + 1 Dozvoljavanje najvi e 6 poku aja pokretanja Worda.

If iPokusaja < 5 ThenSet wdApp = New Word.ApplicationResumekontinualno izvr enje suspendovanog programa

ElseErr.Raise Number=VBObjectError + 28765, _Description= Ne mogu pokrenuti Word

End IfCase ElseErr.Raise Number= Err.NumberEnd SelectEnd Function

Page 202: Visual Basic programski jezik

7. OBJEKTI VISUAL BASIC-A 202

Ako se u prethodnom primjeru pojavi bilo koja osim gre ke 440, potprogramprikazuje gre ku i o ivljava gre ku. Aplikacija koja pru a objekat mo e nazadproslijediti svoju vlastitu gre ku. U nekim slu ajevima, aplikacija mo e upotrijebitiisti kod gre ke, koji Visual Basic koristi za drugu gre ku. U takvim slu ajevima,trebate upotrijebiti izraz On Error Resume Next. Zatim provjeriti gre ke odmahnakon svake linije, koja mo e uzrokovati gre ku. Takav tip provjeravanja gre kenaziva se ugra eno rukovanje gre kom (inline error-handling).

7.23. 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 istiprogramski 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.40. 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).

Svaki objekat se poziva sintaksom objekat(indeks). Indeks objekta odre ujeredoslijed kada je stvaren. Zapravo, odre ivanje indeksa objekta tokom izrade initaj objekat dijelom niza. Osobina Index razlikuje jedan element niza objekata oddrugog. Kad jedan od objekata u nizu prepozna doga aj, Visual Basic poziva

Page 203: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 203

zajedni ki potprogram doga aja i proslje uje argument (vrijednost osobine Index)za identifikaciju, koji je objekat niza zapravo prepoznao doga aj. Na primjer, prvalinija potprograma doga aja Number_Click je:

Private Sub Number_Click(Index As Integer)

Slika 7.40. Dva niza objekata Slika 7.41. Pravljenje niza objekata

Ako objekat Number(0) prepozna doga aj, Visual Basic proslje uje 0 kaoargument 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).

Postoje tri na ina stvaranja niza objekata tokom izrade aplikacije:1) Dodijelite isto ime za vi e od jednog objekta.2) Kopirajte postoje i objekat i zatim ga nalijepite na formu.3) 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 seodvija 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.41.).

Page 204: Visual Basic programski jezik

7. OBJEKTI VISUAL BASIC-A 204

Taj novi objekat koji ste napravili dobija vrijednost indeksa 1. Objekat koji seprvi kreira 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.41.).

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 osobinama objekata, na primjer:

For Each Control in Formi.Controls'Sekvencija naredbi obrade objekata

Next Control

Struktura ima zna enje da se obradi svaki objekat (Control) na i-toj formi odposljednjeg, do objekta koji je postavljen prvi. U slu aju da je upotrijebljena samojedna forma, 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 osobina 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

7.24. KRETANJE KROZ OBJEKTE SA TAB TASTEROM

Tabulatorni red (tab order) je redoslijed, po kojem se korisnik mo e kretati odjednog do drugog objekta na formi, kori tenjem tipke TAB. Svaka forma ima svojtabulatorni red. U pravilu, tabulatorni red odgovara redoslijedu kreiranja objekata.Na primjer, pretpostavimo da ste kreirali dva okvira sa tekstom, Text1 i Text2, tezatim komandno dugme Command1 kao na slici 7.42. Kad se program pokrene,objekat Text1 e imati fokus. Pritisak na tipku TAB fokus se prebacuje na drugeobjekte, redoslijedom kojim su kreirani.

Page 205: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 205

Za promjenu postoje eg tabulatornog reda objekta, podesite osobinu TabIndex(preko prozora Properties). Osobina TabIndex objekta odre uje, gdje je postavljenu tabulatornom redu. U pravilu, prvi kreirani objekat ima vrijednost osobineTabIndex =0, drugi TabIndex =1 i tako dalje.

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.

Tabela 7.4. Promjena TabIndexa

Objekat TabIndex prijezamjene

TabIndexposlije zamjene

Text1 0 1

Text2 1 2

Command1 2 0

Slika 7.42. Tabulatorni reda

Najve a vrijednost osobine TabIndex je uvijek za jedan manja od broja objekatau tabulatornom redu (jer brojanje po inje od 0). ak i ako osobini 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 osobinu TabIndex i nisu uklju eni u tabulatorni red. Kadkorisnik pritisne tipku TAB, takvi objekti se preska u.

Objekat mo ete isklju iti 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.

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 206: Visual Basic programski jezik

7. OBJEKTI VISUAL BASIC-A 206

Page 207: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 207

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 Help-u 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 Excel-om iMicrosoft Access-om.

8.1. PRIMJERI IZ HELP-A VISUAL BASIC PROGRAMA

U Help-u 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 208: Visual Basic programski jezik

8 PRIMJERI VISUAL BASIC PROGRAMA 208

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 Basic-a.

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 209: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 209

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

8.2. ADO PRISTUP BAZAMA PODATAKA

U ovom poglavlju bi e opisan ADO (ActiveX Data Objects) pristup Accessbazama podataka iz programa Visual Basic. Nakon pokretanja svakog novogprojekta (File > New Project—> StandardExe), u glavnom meniju Visual Basic-a,potrebno je izabrati Project —> References, a zatim ekirati opciju

Microsoft DAO Object 3.51. iliMicrosoft DAO 3.6 Object Library.Ovim se omogu ava rad sa bazama podataka preko DAO modela u otvorenom

projektu. Poslije toga otpo inje pisanje koda, tako to se prvo defini u objekti,promjenljive i konstante.

Dim dbFpe As Database

Ovim se samo defini e objekat dbFpe kao Database, to zna i da taj objektmo e da prihvati rad samo sa bazom podataka. Da bi se objektu dbFpe dodijelilaneka konkretna vrijednost (baza podataka) treba napisati sljede e:

Set dbFpe = Opendatabase (strPutBaze)

gdje je strPutBaze string promjenljiva, koja ozna ava putanju baze podataka nadisku ra unara (na primjer strPutBaz = "D:/Mirko/Fpe.mdb"). Naravno, prethodnoje potrebno definisati strPutBaz kao string promjenljivu

Dim strPutBaz As String

ili se jednostavno mo e napisati (direktno definisanje putanje):Set dbFpe = OpenDatabase ("D:/Mirko/Fpe.mdb")

bez uvo enja string promjenljive. Na taj na in objekat dbFpe sada, u stvari,predstavlja bazu podataka Fpe.mdb.

Page 210: Visual Basic programski jezik

8 PRIMJERI VISUAL BASIC PROGRAMA 210

Umjesto direktnog na ina definisanja putanje mo e se uraditi i apsolutnodefinisanje putanje. Tada je potrebno da baza podataka i program u kome se radi satom bazom budu na istom direktorijumu.Set dbFpe = OpenDatabase (App.Path & "\Fpe.mdb") iliSet dbFpe = DBEngine.Workspaces(0).OpenDatabase _(App.Path & "\Fpe.mdb")

Po to se baza podataka sastoji iz vi e tabela, treba definisati objekat, kojem ebiti dodijeljena neka od tabela. Na primjer:

Dim rsRadnik As Recordset

Ovim se rsRadnik defini e kao objekat Recordset i ovom objektu se dodjeljujeneka konkretna vrijednost, tj. neka od tabela iz baze Fpe.mdb na sljede i na in:Set rsRadnik = dbBanke.OpenRecordset("Radnik", dbOpenDynaset)

Objekat rsRadnik sada predstavlja tabelu Radnik iz baze podataka Fpe.mdb.U ovaj objekat, odnosno tabelu mogu e je kako upisivati tako i itati podatke. To jeodre eno prilikom kreiranja objekta rsRadnik sa osobinom dbOpenDynaset, kojaomogu ava upis i itanje podataka iz tabele.

Pored ove osobine postoji jo opcija dbOpenSnapshot, koja omogu ava itanjepodataka iz tabele, ali ne i njihovo a uriranje, kao i neke druge manje bitneosobine.Upisivanje podataka u tabelu Radnik vr i se preko objekta rsRadnik, jer je ondefinisan tako da predstavlja tu tabelu, na sljede i na in:

rsRadnik. AddNewrsRadnik.lme = "Stefan"rsRadnik.Prezime = "Covic"rsRadnik.GodinaR = 1989rsRadnik.Update

ili kra eWith rsRadnik

.AddNew

.Ime = "Stefan"

.Prezime = "Covic"

.GodinaR = 1989

.UpdateEnd With

Naravno podrazumijeva se da se u tabeli Radnik nalaze kolone Ime, Prezime iGodinaR, tj. da su prethodno kreirane u nekom od programa za pravljenje bazapodataka i da su definisane kao string. Pomo u naredbe .AddNew u tabeli Radnikdodaje se novi red, a zatim se u kolone tabele Ime, Prezime i GodinaR, unose

Page 211: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 211

vrijednosti. Da bi novoupisani podaci u tabelu bili snimljeni (spa eni), primjenjujese naredba .Update.

Ukoliko elimo da izmijenimo podatke, koji ve postoje u bazi podataka, koristise naredba Edit. Na primjer:

With rsRadnik.Edit.Ime = "Mihailo".GodinaR = 1971.UpdateEnd With

Ako je potrebno izbrisati odre eni red u tabeli Radnik, prvo se sa naredbomMoveFirst pomjeri pokaziva u tabeli na prvi red. Zatim se naredbom FindFirstprona e eljeni red. Nakon toga se naredbom Delete vr i brisanje reda. Na primjer:

With rsRadnik.MoveFirst.FindFirst "GodinaR = 1938 ".DeleteEnd With

ilirsRadnik.MoveFirstrsRadnik.FindFirst "GodinaR = '1938' "rsRadnik.Delete

Pretra ivanje unutar tabele mo e biti• FindFirst - pronala enje prvog podatka po kome se radi pretraga,• FindLast - pronala enje zadnjeg podatka po kome se radi pretraga,• FindNext - pronala enje narednog podatka po kome se radi pretraga,• FindPrevious - pronala enje prethodnog podatka po kome se radi pretraga,• EOF- pretra ivanje do zadnjeg reda u tabeli.

Kriterijum pretrage mo e biti jednostavanDim Uslov1, Uslov2 As StringUslov1 = "Ime = 'Stefan'" ' postavi uslov.rsRadnik.FindFirst Uslov1

ili slo en uz upotrebu operatora: =, >, <, and i orUslov2 = "[Ime] = Stefan' And [GodinaR] >= 1965"rsRadnik.FindFirst Uslov2

Slijedi primjer koda programa koji iz Access baze podataka Fpe.mdb preuzimapodatke iz tabele Radnik, za radnika sa registarskim brojem 1938. Registarski brojradnika se pretra uje po koloni Regbroj. Rezultati se upisuju u dva TextBox-a.

Page 212: Visual Basic programski jezik

8 PRIMJERI VISUAL BASIC PROGRAMA 212

Public Sub IzbazeM()Set dbBaza =OpenDatabase (App.Path & "\Fpe.mdb")Set rsRadnik = baza.OpenRecordset("Radnik, dbOpenDynaset")imazapis = FalsersRadnik.MoveFirstDo While rsRadnik.EOF = FalseIf rsRadnik("Regbroj") = 1938 Then

imazapis = True Rem pronadjen trazeni radnik u baziEnd IfrsRadnik.MoveNextLoop

If imazapis = True ThenrsRadnik.MoveFirstDo While rsRadnik("Regbroj") <> 1938

Rezervoar.MoveNextLoopText4.Text = rsRadnik("Ime") Rem citanje iz bazeText7.Text = rsRadnik ("Prezime")

Else poruka = "PORUKA u bazi nema tog radnika" Stil = vbOK Naslov = "Baza radnici" odgovor = MsgBox(poruka, Stil, Naslov)End IfrsRadnik.ClosedbBaza.CloseEnd Sub

8.3. SQL UPIT U VISUAL BASIC-U

SQL predstavlja danas standardni jezik relacionih baza podataka. Naziv poti eod naziva na engleskom jeziku Structured Querry Language, to u prevodu glasi"Strukturirani upitni jezik". U SQL-jeziku osnovni objekti manipulacija su tabele, arezultat toga su isto tabele, ak i kada se kao rezultat manipulacije dobija skupvrijednosti ili samo jedna vrijednost.

SQL jezik podr ava tri osnovne funkcije:− definicija baze podataka;− manipulacija bazom podataka;− kontrola pristupu podacima.

Page 213: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 213

SQL podr ava etiri manipulativna iskaza:− SELECT – pretra ivanje;− INSERT – umetanje;− UPDATE – a uriranje;− DELETE – brisanje.

Naredba SELECT za upite predstavlja najzna ajniju i naj e kori enu SQLnaredbu za manipulaciju podacima. U principu, kod svakog upita zadajemo:

− koje podatke tra imo kao rezultat;− iz kojih tabela to tra imo;− koji uslov treba da zadovolje podaci da bi bili uklju eni u rezultat;− po kom redoslijedu elimo prikazati rezultat.

Osnovni oblik iskaza pretra ivanja u SQL-u ima sljede u strukturu:SELECT lista-kolonaFROM ime-tabeleWHERE logi ki-izraz

Lista-kolona je spisak svih kolona za koje pravimo upit iz tabele pod imenomime-tabele. Logi ki-izraz uklju uje pore enja vrijednosti kolona, konstanti i izraza(odgovaraju eg tipa) u kojima kolone i konstante u estvuju. Pripadne relacijskeoperacije su: =, <>, <, <=, >, >=, IN, BETWEEN, LIKE, IS NULL (NOT IN, NOTBETWEEN, NOT LIKE, IS NOT NULL).

SELECT iskaz mo e biti dosta slo en, i mo e da uklju i sljede e linije,obavezno u navedenom redoslijedu:

SELECT ListaKolonaFROM Tabela[ WHERE uslov koji svaki red u tabeli Tabela mora da zadovoljava da bi biouzet u postupak grupisanja]GROUP BY ListaKolona po kojima radimo grupisanje[ HAVING uslov koji svaki red formiran svo enjem mora da zadovolji da bibio uklju en u rezultat][ ORDER BY na in sortiranja podataka u koloni [ ASC ili DESC ] ]

Visual Basic omogu ava razne vidove komunikacije sa relacionim bazamapodataka, pa i da se iz njega prave SQL upiti. SQL upite iz Visual Basica-amo emo najlak e praviti na sljede a dva na ina:

- preko ADODC objekta;- preko aktivX kontrole.

Slika 8.2. ADODC objekat

Page 214: Visual Basic programski jezik

8 PRIMJERI VISUAL BASIC PROGRAMA 214

ADODC objekat (slika 8.2.) koristi se za automatsko povezivanje satabelom baze podataka kao Microsoft ActiveX Data Objects (ADO), ili zapravljenje SQL upita nad bazom. Pomo u ovog ADODC objekta rezultati pretragebaze podataka se prikazuju u sljede im objektima: MSHFlexGrid, DataGrid,DataCombo, DataList i DataCombo. Svi ovi objekti se ne nalaze u standardnojpaleti objekata. Dodavanje ovih objekata u paletu objekata vr i se kroz sljede ekorake. Prvo se klikom mi a na meni Project (na liniji menija) otvara se list opcija,od kojih treba odabrati opciju Components. Nakon toga, pojavljuje se okvir zadijalog sa spiskom svih komponenti (objekata). Potrebno je ekirati sljede ekomponente:

− Microsoft Ado Data Control 6.0 (ADODC)− Microsoft Hierarchical FlexGrid 6.0 (MSHFlexGrid)− Microsoft DataGrid Control 6.0 (DataGrid)− Microsoft DataList Control 6.0 (DataList)

Objekat ADODC na prvi pogled li i na objekat Data iz poglavlja 7.15, jer setako e mo e povezati samo sa verzijom Access 97 bazom podataka. Me utim ovadva objekta se pomo u razli itih osobina povezuju na bazu podataka. Dvijenajbitnije osobine objekta ADODC su:

ConnectionString - za izbor baze sa kojom se vr i povezivanje.RecordSource - za pravljenje SQL upita.

Slika 8.3. Osobina ConnectionString ADODC objekta

Page 215: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 215

Kada se na objektu ADODC eli podesiti osobina ConnectionString, potrebno jena ovoj osobini izabrati ..., nakon ega se pojavljuje prozor kao na slici 8.3. Naovom prozuru se bira opcija Use Connection String, a zatim je potrebno kliknutina dugme Build. Nakon toga se otvara dijalo ki prozor Data link Properties kao naslici 8.4. Na ovom prozoru prvo se izabere paleta Provider. Na njoj se iz liste biratip OLE DB provajdera. Ako se ovaj objekat eli povezati sa Access bazompodataka, onda je iz liste potrebno izabrati Microsoft Jet 3.51 OLE DB Provider, azatim i dugme Next. Nakon toga se prelazi na paletu Connection kao na slici 8.5.Prvo je potreno izabrati ime baze podaka, sa kojom se eli izvr iti povezivanje.Kada se izabere ime baze podataka, u prostoru 1. (Select or enter database name:)se automatski prika e kompletna putanja sa svim direktorijumima i imenom bazepodataka. U ovoj paleti se mo e dodatno izabrati i ime korisnika, koji samo mo eda pristupa bazi pomo u ovog objekta. Kada se izabere ime baze podataka, klikommi a na dugme Test Connection se mo e izvr iti probni pristup bazi podataka. Akose uspje no uspostavi veza sa izabranom bazom podataka pojavi e se poruka Testconnection succeeded. Ako se uspje no ne uspostavi veza sa izabranom bazompodataka pojavi e se poruka Test connection faled. Naj i razlog za nastanakgre ke pri uspostavljanju veze ovog objekta sa bazom podataka, je da Access bazanije spa ena u verziji Access 97.

Slika 8.4. Izbor OLE DB provajdera Slika 8.5. Izbor eljene baze

Kada se izvr i povezivanje sa bazom podata preko ADODC, sadr aj tabela bazepodataka se mo e prikazivati u sljede im objektima: MSHFlexGrid, DataGrid,

Page 216: Visual Basic programski jezik

8 PRIMJERI VISUAL BASIC PROGRAMA 216

DataList i DataCombo. Ovi objekti vizuelno dosta li e na objekte, koje smo ranijespominjali: MSFlexGrid, ListBox i ComboBox. Glavna razlika izme u ovihobjekata le i u tome to se objekti: MSHFlexGrid, DataGrid, DataList iDataCombo mogu povezati sa bazom podataka samo preko objekta ADODC, dokse objekti: MSFlexGrid, ListBox i ComboBox sa bazom podataka mogu povezatisamo preko objekta Data.

Microsoft Hierarchical FlexGrid 6.0 (MSHFlexGrid) objekat koristi se zaautomatsko povezivanje sa elementima jedne ili vi e kolona u tabeli baze podataka,ili rezultatom nekog SQL upita, koji je napravljen preko objekta ADODC.

Najbitnija osobina ovog objekta je DataSource, koja slu i za izbor imenajednog ADODC objekta, koji je trenutno postavljen na formu, a preko koga seelimo povezati sa bazom podataka.

Ostale bitne osobine ovog objekta su:- Name za definisanje imena objekta.- DataSource za izabor imena predhodno postavljenog ADDC objekta, preko kogase elimo povezati sa bazom podataka.- Font za izbor fonta, kojim se prikazuje tekst u tabeli.- FontFixed za izbor fonta, kojim se prikazuje tekst zaglavlja u tabeli.- FormatString za po etni prikaz naziva kolona. Imena kolona se razdvajaju sasimbolom "|", kao u sljede em primjeru "Indeks|Ime|Prezime|Smer".

DataGrid objekat koristi se za automatsko povezivanje sa elementima jedne ilivi e kolona u tabeli baze podataka, ili rezultatom nekog SQL upita, koji jenapravljen preko objekta ADODC. Tako e je mogu e da se preko ovog objektavr i unos podataka u bazu podataka, a to nije mogu e ostvariti pomo u objekataMSFlexGrid i MSHFlexGrid. im se promjene podaci u tabeli DataGrid na formi,automatski se mijenja sadr aj podataka u bazi.

Kretanje kroz redove u tabeli DataGrid vr i se klikom na strlice objektaADODC, sa kojim je tabela DataGrid povezana. Tada dolazi i do automatskogpomjeranja i strelice koja se nalazi u prvoj fiksnoj koloni. Na odre eni red se mo eizvr iti pozicioniranje i klikom mi a. Red na koji se pozicionira strelica, mo e setrajno brisati sa forme, ali i iz baze, komandom Delete na tastaturi.

Slika 8.6. Objekat DataGrid

Page 217: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 217

Najbitnija osobina ovog objekta je DataSource, koja slu i za izbor imenajednog ADODC objekta, koji je trenutno postavljen na formu, a preko koga seelimo povezati sa bazom podataka. Ostale bitne osobine ovog objekta su:

- Name za definisanje imena objekta.- AllowDelete za dozvoljavanje (True) ili ne dozvoljavanje (False) brisanja reda.- AllowUpdate za dozvoljavanje (True) ili ne dozvoljavanje (False) izmjenesadr aja u tabeli, a samim tim i u bazi.- DataSource za izabor imena predhodno postavljenog ADDC objekta, preko kogase elimo povezati sa bazom podataka.- Font za izbor fonta, kojim se prikazuje tekst u tabeli.

DataList i DataCombo objekti koriste se za automatsko povezivanje saelementima jedne kolone u tabeli baze podataka, ili rezultatom nekog SQL upita,koji je napravljen preko objekta ADODC. Najbitnije osobine ovih objekata su:- Name za definisanje imena objekta.- DataSource za izabor imena predhodno postavljenog ADDC objekta, preko kogase elimo povezati sa bazom podataka.- DataField za izabor imena kolone predhodno postavljenog ADDC objekta, prekokoga se elimo povezati sa kolonom u tabeli baze podataka.- RowSorce za izabor imena predhodno postavljenog ADDC objekta, preko koga seelimo povezati sa bazom podataka.

U Visual Basic-u SQL upit se mo e pisati i preko Activex kontrole. U ovomslu aju se upit mo e raditi nad svim verzijama Access baze podataka, a ne samo saverzijom 97, kao kod objekta ADODC. Kao i za svaku Activex kontrolu potrebno jeprvo deklarisati promjenjivu. Promjenjiva koja se koristi za pravljenje SQL upitamora deklarisana kao QueryDef tip promjenjive.

Da bi SQL upit mogao da radi, potrebno je da se prvo deklari e promjenjiva zapovezivanje sa bazom podataka (As Database), a zatim i promjenjive koje sekoriste za povezivanje sa tabelama te baze (As Recordset). Da di se otpo eo radpreko ActiveX kontrole, potrebno je izvr iti povezivanje promjenjivih sa bazom,tabelama i SQL upitom preko komande SET.

Preuzimanje podataka iz SQL upita u neki objekat vr i se preko komande kojaima sljede u sintaksu:

Ime_objekta.Osobina = Ime_promjenjive!Ime_kolonegdje je:Ime_objekta - ime objekta u koji se eli upisati neki podatak.Osobina - osobina izabranog objekta preko koje se vr i upis podataka (Caption,

Text, TextMatrix(0, 1), ...)Ime_promjenjive - ime promjenjive koja se koristi za povezivanje sa tabelama

te baze (As Recordset).! - simbol koji nagla ava preuzimanje podataka iz SQL upita, a ne tabele.Ime_kolone - ime kolone u tabeli koja je rezultat SQL upita.

Page 218: Visual Basic programski jezik

8 PRIMJERI VISUAL BASIC PROGRAMA 218

Prilikom kori enja ove naredbe za preuzimanje podataka, koji su rezultat SQLupita, treba naglasiti da se mo e preuzeti samo podatak iz jednog reda izabranekolone. Da bi se preuzeli podaci iz vi e redova neke kolone neophodno je da sekoristi Do While petlja.

Nakon zavr etka rada sa bazom podataka potrebno je prvo zatvoriti sveotvorene tabele, a zatim zatvoriti i kompletnu bazu podataka komandom Close.

SQL upit koji se pravi preko Activex kontrole mo e se aktivirati prekokomandnog dugmeta, a rezultati upita se mogu direktno upisivati u MSFlexGredtabelu (kao na slici 8.7.), ListBox ili ComboBox.

Slika 8.7. Pokretanje SQL upita preko komandnog dugmeta

Slijedi primjer koda programa za prikaz rezultata SQL upita u FlexsGrid tabeli.

Dim dbFpe As Database Rem definisanje promjenjive za rad sa bazom podatakaDim rsRadnik As Recordset Rem definisanje promjenjive za rad sa tabelom bazeDim SqUpit As QueryDef Rem definisanje promjenjive za rad sa SQL upitom

Set dbFpe = OpenDatabase("Fpe.mdb") Rem povezivanje sa bazom koja se nalazi na istomdirektorijumu kao i program koji pravimoSet SqUpit = dbFpe.CreateQueryDef("") Rem postaviti da po etni upit bude prazan

Rem kod za pravljenje upita nad bazom "Fpe.mdb", i tonad njenom tabelom "Radnik"

Page 219: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 219

With SqUpit .Connect = ""

Rem koristi se za povezivanje sa bazom .SQL = "SELECT * from Radnik"

Rem koristi se za pisanje teksta upita Set rsRadnik = .OpenRecordset()

Rem koristi se za otvaranje tabele u koju jeupisan rezultat SQL upita

rsRadnik.MoveFirstRem pozicioniranje na prvi red tabele

End With

Rem Prikaz trenutne vrijednosti zapisa razli itihkolona SQL upita preko MesgBoxaMsgBox rsRadnik!ImeMsgBox rsRadnik!PrezimeMsgBox rsRadnik!Redbroj

Rem Prikaz trenutne vrijednosti zapisa razli itihkolona SQL upita u FlexGrid Tabelii = 1rsRadnik.MoveFirstRem upis naziva kolonaTabela1.TextMatrix(0, 0) = " Reg. broj"Tabela1.TextMatrix(0, 1) = "Datum"

Do While rsRadnik.EOF <> True Rem upis rezultata upita u tabelu Tabela1.TextMatrix(i, 0) = rsRadnik!Regbroj Tabela1.TextMatrix(i, 1) = rsRadnik!Datum Tabela1.AddItem "" i = i + 1 rsRadnik.MoveNextLooprsRadnik.Close

Rem zatvaranje tabeledbFpe.Close

Rem zatvaranje kompletne baze podataka

Rem Kod za pravljenje upita nad otvorenom bazom"Fpe.mdb" i to nad njenom tabelom "Radnik" za izdva-janje samo kolene "Datum" bez ponavljanja podataka.

Page 220: Visual Basic programski jezik

8 PRIMJERI VISUAL BASIC PROGRAMA 220

With SqUpit .Connect = "" .SQL = "SELECT distinct Datum from Radnik" Set rsRadnik = .OpenRecordset() rsRadnik.MoveFirstEnd WithTabela1.TextMatrix(i, 1) = rs1!Datum

Rem Kod za pravljenje upita nad otvorenom bazom"Fpe.mdb", i to nad njenom tabelom "Radnik" uz WHEREuslov

With SqUpit .Connect = "" .SQL = "SELECT Redbroj, Datum, Ime, Prezime fromRadnik where Redbroj>29"

Set rsRadnik = .OpenRecordset()rsRadnik.MoveFirstEnd With Tabela1.TextMatrix(i, 1) = rs1!Ime

Rem Kod za pravljenje upita nad otvorenom bazom"Fpe.mdb", i to nad njenom tabelom "Radnik" uz WHEREuslov unesen preko Textboxa sa imenom TexRedBroj

Tabela1.ClearTekst1 = "SELECT Redbroj, Datum, Ime, Prezime fromRadnik where Redbroj>"

Rem ovo predstavlja fiksni dio SQL upitaTekst2 = TexRedBroj.TextRem Textbox preko koga se unosi brojni uslovTekst3 = Tekst1 + Tekst2 Rem spajanje dva teksta u jedan, koji je sada SQL upitWith SqUpit .Connect = "" .SQL = Tekst2 Set rsRadnik = .OpenRecordset() rsRadnik.MoveFirstEnd With

Page 221: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 221

8.4. PRISTUP EXCEL DOKUMENTU

U ovom poglavlju bi e opisan primjer ActiveX pristupa Excel dokumentu savi e stranica iz programa Visual Basic. Nakon pokretanja svakog novog projekta(File > New Project—> StandardExe), u glavnom meniju Visual Basic-a,potrebno je izabrati Project —> References, a zatim ekirati opciju

Microsoft Excel 5.0 Object Library iliMicrosoft Excel 11.0 Object Library.Ovim se omogu ava rad sa Excel dokumentima iz Visual Basic-a. Poslije toga

otpo inje pisanje koda, tako to se prvo defini u objekti, promjenljive i konstante.Slijedi dio koda programa koji otvara Excel dokument pod nazivom "MokraM.xls",koji ima dvije stranice sa nazivima "Stranica1" i "Sranica2". Pokaza emo kako se uExcel mogu upisivati podaci, odnosno iz Excel-a mogu preuzimati podaci. Prvo jepredstavljen dio koda napisanog u Modul-u, gdje su deklarisane globalne (javne)promjenjive.Public appMokraM As Excel.Application

Rem promjenjiva za povezivanje sa Excel programomPublic wbMokraM As Excel.Workbook Rem promjenjiva za povezivanje sa Excel radnom knjigomPublic AA As DoublePublic HHMAX As IntegerPublic q(52) As Single Slijedi kod koji predstavlja globalnu proceduru napisanu u modulu, pomo ukoje se iz Visual Basic-a otvara Excel program.Sub Setup() Set appMokraM = GetObject(, "Excel.Application") Rem Gledanje otvorenog Excel dokumenta If Err.Number <> 0 Then Ako Excel nije pokrenut Set appMokraM = CreateObject("Excel.Application")

Rem Pokrenuti Excel End If Set wbMokraM = appMokraM.Workbooks.Open_(App.Path & "\MokraM.xls")End Sub

Slijedi kod koji predstavlja globalnu proceduru napisanu u modulu, pomo ukoje se iz Visual Basic-a zatvara predhodno otvoreni Excel program.Sub CleanUp() Zatvaranje Excel dokumenta wbMokraM.Application.Quit Set appMokraM = Nothing Set wbMokraM = NothingEnd Sub

Page 222: Visual Basic programski jezik

8 PRIMJERI VISUAL BASIC PROGRAMA 222

Slijedi kod koji predstavlja lokalnu proceduru koja se aktivira klikom mi a nakomandno dugme Command1. U njoj je opisan postupak pristupa stranicama"Stranica1" i "Stranica2" Excel dokumenta "MokraM.xls".

Private Sub Command1_Click() Dim shtStranica1, shtStranica2 As Excel.Worksheet Rem dvije promjenjive za povezivanje sa stranicama Dim rngList1, rngList2 As Excel.Range Rem dvije promjenjive za pristup elijama na stranicama Setup ' Poziv globalne procedure za otvaranje Excela. Forma1.Visible = False Zatvaranje otvorene forme wbMokraM.Application.Visible = True Rem Da Excel program bude vidljiv Set shtStranica1 = wbMokraM.Sheets("Stranica1") Rem Definisanje Excel lista Stranica1 Set shtStranica2 = wbMokraM.Sheets("Stranica2") Rem Definisanje Excel lista Stranica2 Set rngList1 = shtStranica1.Rows(1) Rem Promjenjiva za list Stranica1 Set rngList2 = shtStranica2.Rows(1) Rem Promjenjiva za list Stranica2

rngList1.Cells(7, 2) = "Adresa" rngList1.Cells(9, 2) = "Datum" Rem upis podataka u list Stranica1 AA=Text1.Text rngList2.Cells(10 + AA, 5) = VSTVARNO Rem upis podataka u list Stranica2 BB=rngList1.Cells(10, 2) Rem upis u promjenjivu BB iz lista Stranica1

Set shtStranica1 = Nothing Set shtStranica2 = Nothing Set rngList1 = Nothing Set rngList2 = NothingEnd Sub

Slijedi kod koji predstavlja lokalnu proceduru u kojoj je opisan postupakpristupa stranicama "Stranica1" i "Stranica2" Excel dokumenta "MokraM.xls".

Private Sub Command2_Click() ' dugme izlazporuka = MsgBox(" Da li ste Zatvorili EXCEL dokumentMokraM?", vbYesNo, "Poruka")

Page 223: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 223

If poruka = vbNo Then Rem Zatvaranje Excela iz Visual Basica, jer Excelnije predhodno zatvaren sa X. CleanUp ' Poziv procedure za zatvaranje Excela.End If

poruka = MsgBox("Da li eli da spasi ove podatke ubazu podataka?", vbYesNo, "Poruka")

If poruka = vbYes Then GoTo Izlaz4

Rem Onemogu iti izlaz iz forme Form1 sve dok sene spase eljeni podaci.

Command1.Enabled = False Command3.Enabled = FalseEnd IfUnload Forma1Forma2.Show vbModalIzlaz4: Rem labela na koju se ska e sa naredbom GoToEnd Sub

8.5. ZADACI ZA SAMOSTALNI RAD

U ovom poglavlju bi e dati problemi, koji se mogu rije iti pomo u programanapisanih u Visual Basic-u. Da bi se rije ili ovi problemi, potrebno je prvo da seizaberu potrebni objekti i dodaju na radnu povr inu. Tek zatim se pi e odgovaraju ikod programa.

8.5.1. Zadaci sa grananjem

Slijede zadaci koji u sebi sadr e razna grananja. Svi oni se mogu rije iti uzupotrebu If Then Else strukture, a neki i uz upotrebu Case strukture.

Zadatak 1.Napraviti program koji se pokre e klikom na komandno dugme. Unesite prekopreko TextBox-a proizvoljan realan broj RBA i broj ZBI. Gdje je ZBI zadnji brojindeksa studenta (ukoliko je nula, onda se uzima 10). Na i zbir i razliku broja RBAi broja ZBI, a rezultat prikazati u dva TextBox-a. Podjeliti i pomno iti broj RBA sabrojem ZBI, a rezultat prikazati u druga dva TextBox-a. Manji broj (RBA ili ZBI)pomno iti sa ZBI, a rezultat prikazati u petom TextBox-u.

Page 224: Visual Basic programski jezik

8 PRIMJERI VISUAL BASIC PROGRAMA 224

Zadatak 2.Napraviti program koji se pokre e klikom na komandno dugme. U itajte prekopreko TextBox-a jedan proizvoljan realan broj X i broj ZBI. Gdje je Gdje je ZBIzadnji broj indeksa studenta (ukoliko je nula, onda se uzima 2). Za ovu unesenuvrijednost X i ZBI izra unati vrijednost funkcije Y= )1(*)5( −−+ XZBIX .Rezultat prikazati u jednom TextBox-u.

Zadatak 3.Napraviti program koji se pokre e klikom na komandno dugme. U itajte prekopreko TextBox-a proizvoljan realan broj X i broj ZBI. Gdje je Gdje je ZBI zadnjibroj indeksa studenta (ukoliko je nula, onda se uzima 3). Izra unati vrijednostfunkcije Y

Y=ZBI)-(X*ZBI)-(X

8X*5X*2X 23 +−+.

Rezultat prikazati u jednom TextBox-u.

Zadatak 4.Napraviti program koji se pokre e klikom na komandno dugme. U itajte prekoTextBox-a iznos iznos broja bodova koje je student osvojio na testu. Preko drugogTextBox-a unesite broj bodova koje je student osvojio na prisustvo nastavi(maksimalno 5 bodova). Do 55 osvojenih bodova, student dobija ocjenu 5. Od 56do 65 bodova, student dobija ocjenu 6. Od 66 do 73 boda, student dobija ocjenu 7.Od 74 do 82 boda, student dobija ocjenu 8. Od 83 do 91 bod, student dobija ocjenu9. Preko 92 boda, student dobija ocjenu 10. Na osnovu unesenog broja bodova,izra unati ocjenu koju student treba da dobije. Rezultat prikazati u jednomTextBox-u.

8.5.2. Zadaci sa upotrebom gotovih funkcija

Ovi zadaci se rje avaju upotrebom funkcija, koje su ugra ene u Visual Basic.

Zadatak 5.Napraviti program koji se pokre e klikom na komandno dugme. U itajte prekopreko TextBox-a iznos kredita (PV=5000 KM), iznos godi nje kamate na uzetikredit (RATE=15,3%), vrijeme koliko se kredit vra a (NPER= 1 godina).Izra unati mjese nu ratu kredita pomo u finansijske funkcije PMT. Rezultatprikazati u jednom TextBox-u.

Page 225: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 225

Zadatak 6.Napraviti program koji se pokre e klikom na komandno dugme. U itajte prekoTextBox-a iznos iznos kredita (PV) koji uzimate kod banke na 6 godina. Za kreditedo 200 KM, iznos godi nje kamate na uzeti kredit je 18,3%. Za kredite od 200 KMdo 600 KM, iznos godi nje kamate na uzeti kredit je 14,8%. Za kredite od 600 KMdo 900 KM, iznos godi nje kamate na uzeti kredit je 13,5%. Za kredite od 900 KMdo 1500 KM, iznos godi nje kamate na uzeti kredit je 12,3%. Za kredite preko1500 KM, iznos godi nje kamate na uzeti kredit je 11,8%. Izra unati mjese nu ratukredita pomo u finansijske funkcije PMT. Rezultat prikazati u jednom TextBox-u.

Zadatak 7.Napraviti program koji se pokre e klikom na komandno dugme. U itajte prekoTextBox-a proizvoljan realan broj X koji ima 7 decimalna mjesta. Na i cjelobrojnuvrijednost broja X, a rezultat prikazati u jednom TextBox-u. Na i realnu vrijednostbroja X (vrijednost iza decemalne zapete), a rezultat prikazati u drugom TextBox-u.Zaokru iti vrijednost broja X na 5 decimalna mjesta, a rezultat prikazati u tre emTextBox-u.

Zadatak 8.Napraviti program koji se pokre e klikom na komandno dugme. U itajte prekoTextBox-a proizvoljan tekst koji ima maksimalno 9 karaktera. Na i du inuunesenog teksta, a rezultat prikazati u jednom TextBox-u. Pretvoritu uneseni teksttako da ima sve velika (mala) slova, a rezultat prikazati u drugom TextBox-u. Salijeve (desne) strane unesenog teksta izdvojiti 4 karaktera, a rezultat prikazati utre em TextBox-u. Ulazni tekst napisati u obrnutom redoslijedu, a rezultat prikazatiu etvrtom TextBox-u.

Zadatak 9.Napraviti program koji se sastoji od dvije forme. Na prvoj formi postaviti osnovnepodatke o studentu i dugme za prelazak na narednu formu. U sredini druge formepostaviti jedan digitalni sat, koji pokazuje sistemsko vrijeme, koje mjenjavrijednost svake 0,4 sekunde. Postaiti drugi digitalni sat, koji pokazuje sistemskovrijeme, koje mjenja vrijednost svake 1,4 sekunde i pri tome se pomjera po formiod jedne do druge ivice.

Zadatak 10.Napraviti program koji simulira generisanje trocifrenog cijelog broja. Svaka cifrase generi e pomo u odvojenog komandnog dugmeta, uz upotrebu generatoraslu ajnih brojeva. Generisani broj podijeliti sa brojem 13. Na i i prikazati uodgovaraju im TextBox-ovima rezultat realnog dijeljenja sa 3 decimalna mjesta,rezultat cjelobrojnog dijeljenja i ostatak cjelobrojnog dijeljenja.

Page 226: Visual Basic programski jezik

8 PRIMJERI VISUAL BASIC PROGRAMA 226

8.5.3. Zadaci sa petljama

Slijede zadaci koji u sebi sadr e razna ponavljanja. Svi oni se mogu rije iti uzupotrebu For, Do While ili Do Until petlje.

Zadatak 11.Napraviti program koji se pokre e klikom na komandno dugme. U itajte prekoInputBox-a niz AA od N = 5 + ZBI elemenata i niz CC od M = 3 + ZBI elemenata.Gdje je ZBI zadnji broj indeksa studenta, koji se unosi preko TextBox-a (ukoliko jenula, onda se uzima 10). Elementi niza mogu biti proizvoljni cijeli brojevi. Sabratisve elemente niza AA (ZbirA), a rezultat prikazati u jednom TextBox-u. Sabratisvaki drugi element (1, 3, 5, ...) niza CC (ZbirC2), a rezultat prikazati u drugomTextBox-u. Sabrati svaki peti element niza CC (ZbirC5), a rezultat prikazati utre em TextBox-u. Sve elemente niza prikazati u jednoj koloni FlexGrid tabele.

Zadatak 12.Napraviti program koji se pokre e klikom na komandno dugme. U itajte prekoInputBox-a niz AA od N = (14 - ZBI) elemenata i niz BB od M = 5 + ZBIelemenata. Gdje je ZBI zadnji broj indeksa studenta, koji se unosi preko TextBox-a(ukoliko je nula, onda se uzima 5). Elementi niza mogu biti proizvoljni realnibrojevi. Na i srednju vrijednost niza AA (SredA), a rezultat prikazati u jednomTextBox-u. Na i maksimalni element niza BB (MaxB), a rezultat prikazati udrugom TextBox-u. Na i minimalni element niza BB (MinB), a rezultat prikazati utre em TextBox-u. Zatim pomno iti SredA sa MaxB, a rezultat prikazati u etvrtomTextBox -u. Sve elemente niza prikazati u jednoj koloni FlexGrid tabele.

Zadatak 13.Napraviti program koji se pokre e klikom na komandno dugme. U itajte prekoInputBox-a niz AA od N = (14 - ZBI) elemenata. Gdje je ZBI zadnji broj indeksastudenta, koji se unosi preko TextBox-a (ukoliko je nula, onda se uzima 4).Elementi niza mogu biti proizvoljni cjeli brojevi ve i od 5 i manji od 100. Na i zbirelemenata niza AA, koji su manji od 13 (JedA), a rezultat prikazati u jednomTextBox-u. Na i zbir elemenata niza A koji su ve i ili jednaki 13 i manji od 21(DvaA), a rezultat prikazati u drugom TextBox-u. Na i zbir elemenata niza A kojisu ve i ili jednaki 21 i manji od 55 (TriA), a rezultat prikazati u tre em TextBox-u.Na i zbir elemenata niza A koji su ve i ili jednaki 55 (CetA), a rezultat prikazati uetvrtom TextBox-u. Sve elemente niza prikazati u jednoj koloni FlexGrid tabele.

Zadatak 14.Napraviti program koji se pokre e klikom na komandno dugme. U itajte prekoInputBox-a niz AA od N = (7 + ZBI) elemenata. Gdje je ZBI zadnji broj indeksa

Page 227: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 227

studenta, koji se unosi preko TextBox-a (ukoliko je nula, onda se uzima 6).Elementi niza mogu biti proizvoljni realni brojevi. Na i minimalni i maksimalnielement niza AA, a rezultate prikazati u dva TextBox-a. Sortirati elemente nizaprema opadaju em (rastu em) redoslijedu, a rezultat prikazati u tre em Text box-u(ili u tabeli). Sve elemente niza prikazati u jednoj koloni FlexGrid tabele.

Zadatak 14.Napraviti program koji uz pomo generatora slu ajnih brojeva pounjava, realnimbrojevima u rasponu od 1 do 5, FleksGrid tabelu sa 6 kolona i 4 reda. Trebaonemogu iti da do e do ponavljanja brojeva. Zatim prona i maksimalni iminimalni broj iz tabele, a rezultate prikazati u odgovaraju im TextBox-ovima.

8.5.4. Zadaci za pristup Excel dokumentu i Access bazi

Slijede zadaci gdje je potrebno iz Visual Basic-a pristupiti postoje em Exceldokumentu, a zatim i zadatak u kome je potrebno izvr iti povezivanje sa Accessbazom podataka. Dat je i jedan zadatak sa primjenom OLE strukture.

Zadatak 15.Potrebno je napraviti novi Excel dokument pod imenom Ispit.xls koji ima jednustranicu, koja se zove List1. U eliju A3 upisati tekst Excel22. Ovaj dokument jepotrebno snimiti na direktorijumu na koji se snimi i glavni program.U Visual Basic-u naprviti tri TextBox-a i etiri dugmeta. Klikom mi a na prvodugme potrebno je da se otvori Excel dokument Ispit.xls i u eliju B5 upi e sadr ajprvog TextBox-a, a u eliju C5 sadr aj drugog TextBox-a. Klikom na drugo dugmepotrebno je iz Excela preuzeti sadr aj elije A3 u tre i TextBox. Pomo u tre egdugmeti izvr iti prenos formule za sabiranje tri elije (=D4+D5+D6) u eliju D7.

etvrto dugme iskoristiti za zatvaranje otvorenog Excel dokumenta i kompletnogprograma.

Zadatak 16.Napraviti bazu podataka Ispit.mdb u Access-u. Baza treba da ima jednu tabelu podimenom Student, sa 3 kolone RedBroj (za unos rednog broja studenta), Ime (zaunos imena studenta) i Prezime (za unos prezimena studenta). Zatim u napravljenubazu podataka unijeti podatke za 10 studenata. Bazu je potrebno snimiti nadirektorijumu, na koji se snimi i glavni program u Visual Basic-u.Pomo u komandnog dugmeta cijeli sadr aj tabele Student prikazati u jednojFlexGrid tabeli. Iz tabele Student u koloni RedBroj prona i broj 4. Za tajprona eni broj (taj RECORDSET) ispisati sadr aj kolone Ime u jedan TekstBox isadr aj kolone Prezime u drugi TekstBox.

Page 228: Visual Basic programski jezik

8 PRIMJERI VISUAL BASIC PROGRAMA 228

Pomo u komandnog dugmeta iz tabele Student u koloni Ime prona i studenta podimenom Ilija. Za to prona eno ime zamjeniti sadr aj kolone Prezime u Rosic.Pomo u komandnog dugmeta iz tabele Student izbrisati sve studente, koji imajuprezime Covic. Izbrojati koliko je izbrisano studenata iz baze podataka, a dobijenibroj prikazati u jednom TekstBox-u.Pomo u komandnog dugmeta dodati novi red u tabelu Student, sa sljede impodacima: 12, Mihailo, Rosic.Pomo u komandnog dugmeta izmjenjeni sadr aj tabele Student prikazati u drugojFlexGrid tabeli.Pomo u komandnog dugmeta napraviti SQL upit nad tabelom Student, tako da seprika u samo imena i prezimena onih studenata, koji imaju redne brojeve ve e od 3i manje od 8. Rezultat SQL upita prikazati prikazati u tre oj MSFlexGrid tabeli ili uMHSFlexGrid tabeli.Napraviti dugme za zatvaranje Access baze podataka i cijelog programa.

Zadatak 17.Napraviti program koji omogu uje da se pomo u OLE strukture pristupi jednomWord dokumentu, jednom Excel dokumentu sa dijagramom i jednoj Power Pointprezentaciji. Iskopirati dijagram iz Excel-a u Word i dinami ki ga povezati, tako dase promjene podataka u Excel-u, automatski odra avaju na dijagram u Word-u.

Page 229: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 229

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

10 Dr Jozo J. Dujmovi , Programski jezici i metode programiranja, Akademska misao,Beograd, str.3.98 do str.3.106, 2003.

Page 230: Visual Basic programski jezik

9. PROIZVODNJA I PRODAJA PROGRAMA 230

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 231: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 231

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 232: Visual Basic programski jezik

9. PROIZVODNJA I PRODAJA PROGRAMA 232

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 233: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 233

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 234: Visual Basic programski jezik

9. PROIZVODNJA I PRODAJA PROGRAMA 234

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 235: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 235

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 236: Visual Basic programski jezik

9. PROIZVODNJA I PRODAJA PROGRAMA 236

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 237: Visual Basic programski jezik

Programski jezik Visual Basic Zbirka zadataka 237

L I T E R A T U R A

[1] Microsoft Visual Basic 6.0 Help, Microsoft, 1999.[2] Dr Jozo J. Dujmovi , Programski jezici i metode programiranja,

Akademska misao, Beograd, 2003.[3] Dr Tihomir Latinovi , Osnove programiranja (Visual Basic), Biblioteka

Informacione tehnologije, Banja Luka, 2007.[4] Dr Lazar Mili evi , Mr Lazar Radovanovi , Programiranje (Visual Basic),

Ekonomski fakultet, Br ko, 2005.[5] Sr an Damjanovi , Predrag Katani , Borislav Drakul, Zbirka zadataka iz

poslovne informatike, Fakultet spoljne trgovine, Bijeljina, 2008.[6] Sr an Damjanovi , Predrag Katani , Programski jezik VEE Pro,

Elektrotehni ki Fakultet, Isto no Sarajevo, 2011.[7] Ascii kod, http://frank.harvard.edu/aoe/images/t10r3.pdf, 28.01.2011.

Page 238: Visual Basic programski jezik