You are on page 1of 133

Dr Sr an Damjanovi

Mr Predrag Katani

PROGRAMSKI JEZIK VISUAL BASIC


ZBIRKA ZADATAKA

FAKULTET POSLOVNE EKONOMIJE


BIJELJINA, 2O12.

Recenzent:
Prof. dr
Prof. dr

Izdaje:
Bijeljina

Za izdava a:
Prof. dr Sr an Damjanovi

tampa:
Bijeljina

Tira :
200 primjeraka

ISBN:

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

Posveta
Ovu knjigu posve ujem djeci Teodori i
Mihailu, koji su sa puno razumjevanja
omogu ili moj rad na ovoj knjizi.
Sr an Damjanovi

Programski jezik Visual Basic Zbirka zadataka

S A D R

A J

UVOD........................................................................................................ 7
1 OSNOVE PROGRAMIRANJA ............................................................ 9
1.1 H A R D V E R ........................................................................................ 10
1.1.1 Osnovne komponente ra unarskog sistema ......................................... 10
1.1.2 Centralni procesor .............................................................................. 13
1.1.3 Primarna memorija............................................................................. 14
1.2 S O F T V E R.......................................................................................... 15
1.3 PISANJE PROGRAMA.......................................................................... 18
1.3.1 Definisanje problema ......................................................................... 18
1.3.2 Izrada algoritma ................................................................................. 19
1.3.3 Pisanje i uno enje programa u ra unar ................................................ 27
1.3.4 Testiranje programa i ispravke gre ke................................................. 28
1.3.5 Implementacija programa i obuka korisnika........................................ 33
1.3.6 Odr avanje i nadogradnja programa ................................................... 34
1.4 RJE ENI PRIMJERI PRAVLJENJA ALGORITMA.......................... 37

2 UVOD U PROGRAMSKI JEZIK VISUAL BASIC ........................... 50


2.1 PRIMJENA RA UNARA U METROLOGIJI..................................... 51
2.2 INSTALIRANJE VEE PRO PROGRAMA........................................... 51
2.3 POKRETANJE VEE PRO PROGRAMA ............................................. 52
2.4 SKRA ENICE U PROGRAMU VEE PRO .......................................... 54
2.5 PRAVLJENJE PRVOG PROGRAMA ................................................. 54
2.5.1 Izbor potrebnih objekata za rje avanje postavljenog zadatka .............. 54
2.5.2 Definisanje osobina objekata ............................................................. 55
2.5.3 Me usobno povezivanje objekata ...................................................... 56
2.5.4 Testiranje programa i pravljenje izvr ne verzije programa ................. 57

3 TIPOVI PODATAKA ........................................................................ 59


3.1
3.2
3.3
3.4
3.5
3.6
3.7

LOGI KE PROMJENJIVE (BOOLEAN)............................................ 60


CIJELI BROJEVI (INTEGER) ............................................................. 61
REALNI BROJEVI................................................................................ 62
TEKST (STRING) .................................................................................. 63
NOV ANE VRIJEDNOSTI (CURRENCY).......................................... 65
DATUM (DATE) .................................................................................... 65
NEODRE ENI TIP (VARIANT)........................................................... 67

SADR AJ

4 NAREDBE SELEKCIJE I ITERACIJE ........................................... 68


4.1 NAREDBE SELEKCIJE ........................................................................ 68
4.1.1 If Then Else struktura........................................................................ 68
4.1.2 Case struktura .................................................................................. 73
4.2 NAREDBE ITERACIJE......................................................................... 77
4.2.1 For ... Next struktura......................................................................... 77
4.2.2 Do While ... Loop struktura............................................................... 81
4.2.3 Do ... Loop While struktura............................................................... 83
4.2.4 Do ... Loop Until struktura................................................................ 84

5 OBJEKTI VISUAL BASICA .............................................................. 87


5.1 OBJEKAT LABEL................................................................................. 87
5.2 OBJEKAT TEXTBOX............................................................................ 87
5.3 OBJEKAT COMMANBUTTON ............................................................ 89
5.4 OBJEKTI CHECKBOX I OPTIONBUTTON ....................................... 89
5.5 OBJEKAT FRAME................................................................................ 91
5.6 OBJEKTI LISTBOX I COMBOBOX ..................................................... 92
5.7 OBJEKTI KLIZNE TRAKE HSCROLLBAR I VSCROLLBAR........... 95
5.8 OBJEKAT TIMER................................................................................. 96
5.9 OBJEKAT DRIVELISTBOX ............................................................... 101
5.10 OBJEKAT DIRECTORYLIST BOX .................................................. 102
5.11 OBJEKAT FILELISTBOX ................................................................ 103
5.12 OBJEKTI LINE I SHAPE ................................................................. 104
5.12 OBJEKTI IMAGE I PICTUREBOX.................................................. 105
5.13 OBJEKAT MS FLEXGRID ZA TABELARNI PRIKAZ.................. 106
5.14 OBJEKAT DATA ............................................................................... 112
5.15 OBJEKAT OLE.................................................................................. 115
5.16 KOLEKCIJA OBJEKATA................................................................ 117

6 PRIMJERI VISUAL BASIC PROGRAMA..................................... 118


6.1 PRIMJERI IZ HELPA VISUAL BASIC PROGRAMA...................... 118
6.2 KOMUNIKACIJA SA PROGRAMABILNIM URE AJIMA........... 120

7 SIMULACIJA LABORATORIJSKIH VJE BI NA RA UNARU 121


7.1 OBRADA REZULTATA MJERENJA .............................................. 122
5.15 KRETANJE KROZ OBJEKTE SA TAB TASTEROM................... 122
5.16 KOLEKCIJA OBJEKATA................................................................ 122

8 PROIZVODNJA I PRODAJA PROGRAMA ................................. 123


8.1 PRODAJA PROGRAMA .................................................................... 123

Programski jezik Visual Basic Zbirka zadataka

8.2 PRAVO KOPIRANJA PROGRAMA ................................................. 124


8.3 GARANTNE OBAVEZE..................................................................... 125
8.4 ODR AVANJE PROGRAMA............................................................ 127
8.5 OZNA AVANJE VERZIJA I MODIFIKACIJA PROGRAMA....... 128
8.6 SPECIFIKACIJA PROGRAMSKIH PROIZVODA........................... 129

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

UVOD

UVOD
Visual Basic je objektno orjentisani programski jezik. Zbog svoje
jednostavnosti u pisanju programa i lakom pra enju toka izvr enja programa, ovaj
programski jezik mo e da poslu i po etnicima u programiranju za savladavanje
prvih koraka u programiranju. Ovaj programski jezik do sada ima vi e uspje nih
verzija. Cilj ovog izdanja je da se prilagodi potrebama studenata u po etnoj fazi
enja programiranja, kao i svima onima koji su se ranije bavili programiranjem ali
u nekom drugom programskom jeziku. Izdavanjem ove knjige nadomje tena je
literatura, koja nedostaje za izvo enje vje bi iz predmeta Uvod u programiranje i
Programski jezici na Fakultetu poslovne ekonomije u Bijeljini.
Tako e je evidentan nedostatak sadr aja koji se odnosi na pravljenje algoritma.
Autori su, uvidjev i tu prazninu, bri ljivo razradili primjere algoritama. Na osnovu
toga su studentima i ostaloj stru noj javnosti ponudili jedan ovakav nastavni
sadr aj. Na relativno skromnom broju stranica izlo ena je jedna konzistentna
cjelina pogodna za edukaciju u obrazovnim ustanovama. Knjiga je posebno
aktuelna za studente i itaoce, koji se samostalno bave programiranjem u
programskom jeziku Visual Basic. Ponu eni primjeri su, zbog konciznosti
izlaganja, djelimi no upro eni, ali se nevelikim trudom mogu brzo i efikasno
dovesti do profesionalne aplikacije. Obra ene oblasti su raznovrsne i bri ljivo
birane, kako bi itaoci mogli da uvide vi estruke primjene obra enog materijala u
praksi.
Knjiga je napisana zbog nedostatka na tr tu literature na srpskom jeziku sa
prakti nim primjerima za programski jezik Visual Basic. Naime, postoje samo
uputstva za rad sa raznim verzijama programskog jezika Visual Basic, koja su na
engleskom jeziku i u elektronskom obliku. To su, uglavnom, obimne
dokumentacije izlo ene na vi e stotina, ak i oko hiljadu stranica, a uglavnom se
odnose na jedan segment problema, koji se obra uje.
Knjiga je u osnovi podijeljena na osam poglavlja, koja ine tri zasebne cjeline.
Prvu cjelinu ine poglavlja od jedan do est, u kojima su date osnove programskog
jezika Visual Basic. Drugu cjelinu ini sedmo poglavlje u kome su predstavljeni
programi za simulaciju laboratorijskih vje bi na ra unaru. Tre u cjelinu ini osmo
poglavlje u kome je opisan postupak procjene mjerne nesigurnosti.
Za svakog programera je bitno da poznaje kako funkcioni e hardver na kome se
njegov program pokre e. To je razlog za to su u prvom poglavlju predstavljene
osnovne hardverskih komponente ra unara. Zatim je ukratko opisan pojam
softvera. Na kraju ovog poglavlja su dati osnovni koraci, koji ine proces pisanja
programa.

Programski jezik Visual Basic Zbirka zadataka

Postupak instaliranja programa Visual Basic predstavljen je u drugom


poglavlju. Na kraju je opisano, kako mo e izgledati postupak pravljenja prvog
programa u ovom programskom jeziku.
U tre em poglavlju opisani su osnovni tipovi podataka, koji se koriste prilikom
pisanja programa u programskom jeziku Visual Basic. Uz svaki tip podatka
prikazan 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 in
vi estrukog ponavljanja nekih naredbi, kako da se zna ajno smanjio broj kodnih
linija u programu. Dati su primjeri sa rje enim ispitnim zadacima.
U petom poglavlju predstavljeni gotovi objekti, koji postoje u standardnoj paleti
objekata u programskom jeziku Visual Basic. Za svaki objekat su dati primjeri
programa za kori enje ovih objekata.
Primjeri programa napisanih u programskom jeziku Visual Basic predstavljeni
su u estom poglavlju. Prvo su predstavljeni primjeri programa, koji se mogu na i
u Help-u programskog jezika Visual Basic. Zatim su predstavljeni prakti ni
primjeri kodova programa, koji slu e za komunikaciju sa Access bazom podataka i
Excel dokumentom.
U sedmom poglavlju su predstavljeni programi, koji se mogu koristiti za
simulaciju na ra unaru labaratorijskih vje bi iz predmeta Elektri na mjerenja.
Pravni i ekonomski aspekti proizvodnje programa opisani su u osmom
poglavlju. Ovo poglavlje je dodato u knjigu, kako bi studenti dobili odgovaraju u
literaturu iz ove oblasti, koja nagla ava da je i program proizvod koji se prodaje
kupcima. Program ima odre ene specifi nosti prilikom proizvodnje, ali i prilikom
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 bave
programiranjem u programskom jeziku Visual Basic. Sugestije i pitanja mogu se
slati na adresu srdamjan@yahoo.com i predrag@telrad.net.

1 OSNOVE PROGRAMIRANJA

1 OSNOVE PROGRAMIRANJA
Svjedoci smo da ivimo u informati kom dobu i najjednostavnije odluke se ne
mogu donijeti, ako se ne posjeduje prava informacija1. Za rje avanje kompleksnih
problema neophodno je obraditi ogromnu koli inu podataka, kako bi se do lo do
pravih informacija. Svi ovi poslovi oko dobijanja informacije (prikupljanje,
uriranje, obrada, preno enje podataka, itd.) su nezamislivi bez upetrebe
ra unarskih sistema.
Ra unari su ma ine za obradu podataka. One na osnovu odre enog skupa
ulaznih podataka koje zadaje korisnik generi u odgovaraju i skup izlaznih
podataka. Ulazni podaci redovno predstavljaju veli ine na osnovu kojih se obavlja
rje avanje nekog problema, a izlazni podaci predstavljaju rezultate obrade datog
problema. Stoga se podrazumijeva da svaki ra unar posjeduje jedinicu za ulaz
(u itavanje) podataka i jedinicu za izlaz (prikazivanje) rezultata. U slu aju kada
korisnik ra unara interaktivno komunicira sa ra unarom onda je naj es e ulazna
jedinica tastatura, a izlazna jedinica ekran. Naravno, postoje i brojni drugi ulazni i
izlazni ure aji.
U svakodnevnom ivotu ljudi upotrebljavaju cifre i slova, koje jednim imenom
nazivamo alfanumjeri ki znaci, za me usobno sporazumijevanje. Za prenos
informacija ljudi koriste slike i zvuk, kao i neke posebne znakove. Ra unar ne radi
s decimalnim brojevima. To su uobi ajeni brojevi s kojima ra unamo i brojimo. U
ra unaru ne postoje elektronska kola i sklopovi, koji mogu raditi s tim brojevima.
Da bi se u ra unaru moglo manipulisati informacijama, koje su opisane pomo u
cifara, slova, slike, zvuka itd. potrebno ih je binarno predstaviti. Binarni brojevi su,
barem na prvi pogled, udni. Oni postaju uobi ajeni i razumljivi tek onda kada se
nau i brojanje sa njima i kada se zna njihovo pretvaranje u decimalne brojeve.
Binarni brojni sistem ima bazu dva, to zna i da koristi samo skup cifara 0 i 1.
Stoga se esto naziva i "dualni" sistem brojeva. Koliko god je decimalni brojni
sistem zna ajan i uobi ajen za na svakodnevni ivot, toliko je i binarni brojni
sistem zna ajan za predstavljanje i shvatanje principa rada ra unara. Ovo dolazi
otuda to elementarne elektronske i magnetne komponente ra unara u stvari mogu
prikazati (tj. zauzeti) samo dva mogu a stanja, uklju eno (On) ili isklju eno (Off).
Primjeri funkcionisanja u binarnom obliku prisutni su i u na em svakodnevnom
ivotu kod elektri nog zvonca na vratima, sijalice u ku i itd. ak i samo 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 hardverske
komponente mogu izvr avati programe pisane na razli itim programskim jezicima,
1

Sr an Damjanovi , Predrag Katani , Borislav Drakul, Zbirka zadataka iz poslovne


informatike, Fakultet spoljne trgovine, Bijeljina, 2008, str.17.

Programski jezik Visual Basic Zbirka zadataka

10

da mogu raditi u razli itim re imima kori enja i pod razli itim operativnim
sistemima. Ovo je dovelo do toga, da pojam ra unar nedovoljno opisuje
kompleksnost ovakvog sistema, pa se esto pojam ra unara uop tava pojmom
ra unarski sistem. Pod pojmom ra unarski sistem podrazumijevamo slo en ure ajma inu, ije su mogu nosti u obradi podataka rezultat jedinstvenog djelovanja
njenog hardvera i softvera. Ovakav pristup ra unarskom sistemu nas dovodi do
grubog 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 korisnik
radi.
Osnovni cilj ovog teksta je da defini e osnovne principe i mehanizme pomo u
kojih se jedno takvo okru enje stvara i kako ono funkcioni e. Bolje razumijevanje
okru enja, omogu ava i efikasnije kori enje mogu nosti koje ono pru a.
1.1 H A R D V E R
Pod hardverom podrazumijevamo fizi ke komponente ra unarskog sistema kao
to su: sistemska jedinica (ku te ra unara u koje su smje teni: mati na plo a,
procesor, memorijski ure aji, napojna jedinica, itd) i periferni ure aji (ulazni i
izlazni). Ulazni periferni ure aji su oni ure aji preko kojih sistem dobija naredbe ili
podatke. U ra unarskom sistemu sre emo ulazne periferne ure aje kao to su:
tastatura, mi , skener, mikrofon, olovka za crtanje i sl. Izlazni periferni ure aji su
oni ure aji putem kojih sistem proslije uje informacije o izvr enoj naredbi,
obra enim podacima i sl., korisniku sistema. U ra unarskim sistemima sre emo
sljede e izlazne ure aje: monitor, tampa , ploter, zvu nik, projektor, razni
kompjuterski kontrolisani ure aji i sl.
U ovom tekstu emo se zadr ati samo na sistemskoj jedinici i njenim
komponentama 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 i
njegovog funkcionisanja, po i emo od pore enja ru ne i automatske obrade
podataka.
U op tem slu aju, ru na obrada podataka odvija se tako to se prethodno na
papiru pripremi uputstvo (opis postupka obrade, instrukcije) i podaci sa kojima se
po inje obrada. U samom izvr avanju obrade, ovjek ita jednu po jednu
instrukciju (korak obrade) sa papira i potom obavlja dvije radnje. Prva radnja je

1 OSNOVE PROGRAMIRANJA

11

vezana za upravljanje, odnosno tuma enje instrukcije i dono enje odluke o


operaciji koja e se izvr iti. Druga radnja je samo izvr avanje operacije, pri emu
se naj
e podaci potrebni za njeno izvr enje itaju sa papira, a rezultat operacije
se tako e zapisuje na papir. Blok dijagram koji predstavlja opisani postupak
prikazan je na slici 1.1.
PAPIR
UPRAVLJANJE

INSTRUKCIJA
ULAZNI
PODACI

IZVR AVANJE

REZULTATI
EPNI KALKULATOR

Slika 1.1 Ru na obrada podataka


Na slici 1.1 tako e je prikazana i uloga kalkulatora u obradi podataka, pri emu
se mo e uo iti da kalkulator mo e zamijeniti ovjeka samo u izvr enju operacija, a
ne i u upravljanju obradom. Naime, ovjek mora da unese podatke u kalkulator i da
mu zada operaciju koju treba izvr iti sa tim podacima. Po izvr enju jedne zadate
operacije i dobijanju rezultata, kalkulator miruje. Da bi se obrada nastavila, ovjek
mora da unese nove podatke u kalkulator i da mu zada novu operaciju itd.
igledno, kalkulator nije automat, odnosno ma ina koja mo e da po izvr enju
jedne operacije, automatski, bez intervencije ovjeka, pre e na izvr avanje
sljede e operacije. Automatska ma ina bi o igledno morala da zamijeni ovjeka, ne
samo u izvr avanju operacija sa podacima, ve i u upravljanju obradom. Takva
automatska ma ina jeste sistemska jedinica ra unara sa komponentama ra unara
koje imaju specijalna zadu enja, tj. takva ma ina je ra unarski sistem ili kra e
ra unar.

Slika 1.2 Osnovna blok ema ra unara

Programski jezik Visual Basic Zbirka zadataka

12

Kako je to prikazano na slici 1.2, osnovna komponenta hardvera ra unarskog


sistema je centralni procesor (central processing unit) iji je zadatak da uzima
instrukcije 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 s
njegovom okolinom. Ulazni ure aji vr e pretvaranje podatak i instrukcija iz forme
razumljive ovjeku u formu prilago enu skladi tenju u memoriji ra unara. Izlazni
ure aji pretvaraju rezultate obrade iz forme u kojoj su zapisani u memoriji
ra unaru, u formu razumljivu za ovjeka.
Ne to detaljnija konfiguracija ra unarskog sistema prikazana je na slici 1.3, na
kojoj se mo e uo iti, da su u cilju bolje preglednosti razdvojeni ulazni i izlazni
ure 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, operativne
memorije, uprkos tome to se stalno pove ava, nije dovoljno veliki da uskladi ti
sve programe i podatke, koji se koriste u automatskoj obradi podataka. Usljed toga,
prakti no svaka konfiguracija ra unarskog sistema posjeduje i dodatne memorijske
ure aje, koji se nazivaju sekundarnim memorijama i na kojima se trajno uvaju
programi i podaci. Kako u toku rada centralni procesor pristupa samo onim
instrukcijama i podacima, koji se nalaze u primarnoj memoriji, programi koji se
trenutno izvr avaju i podaci nad kojima se vr i obrada, prebacuju se po potrebi iz
sekundarnih memorija u primarnu memoriju.
U nastavku izlaganja, kako bismo lak e shvatili su tinu funkcionisanja
ra unarskog sistema za ta je zadu en operativni sistem, ograni emo se na
osnovni opis strukture i funkcije dvije klju ne komponente: ra unarskog sistema centralnog procesora i primarne memorije.

Slika 1.3 Detaljna konfiguracija ra unarskog sistema

1 OSNOVE PROGRAMIRANJA

13

1.1.2 Centralni procesor


Tipi na, iako jo uvijek nedovoljno detaljna struktura centralnog procesora, ili
jednostavnije procesora, prikazana je na slici 1.4. Osnovna funkcija upravlja ke
jedinice je da uzima instrukcije iz memorije, analizira ih i i alje odgovaraju e
komande 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 naziva
uzmi-izvr i ciklus (fetch-execute cycle).
PROCESOR
UPRAVLJA KA
JEDINICA

Uzmi instrukciju

A/L
JEDINICA

Analiziraj instrukciju

R0

Izvr i instrukciju

R1
R 16

Slika 1.4 Struktura centralnog procesora


Aritmeti ko-logi ka (A/L) jedinica, kako samo ime govori, sastoji se od
elektronskih kola koja obavljaju razli ite aritmeti ke, logi ke, kao i neke druge
operacije nad podacima. Za A/L jedinicu se ka e da je jedina aktivna komponenta
ra unarskog sistema, u smislu da je jedina komponenta koja mo e da stvara nove
podatke. Jedna od bitnih karakteristika procesora je skup instrukcija koje on mo e
da izvr i. Detaljniji opis tipova intrukcija prevazilazi ovaj kurs.
Pored navedenih komponenti, centralni procesor sadr i i skup posebnih
hardverskih jedinica, registara, obi no 8 do 16, koji igraju ulogu interne, brze
memorije samog procesora. Kako je brzina pristupa registrima pribli no za red
veli ine ve a od brzine pristupa memoriji, procesor u toku izvr avanja programa u
ovim, kako se esto nazivaju op tim registrima, uva podatke kojima mora esto da
pristupa.
Napredak u razvoju ra unara je na po etku tekao sporo, a zatim je do lo do
postepenog ubrzavanja razvoja, da bi danas imali takvu situaciju da se razvoj
ra unarske tehnike ne mo e ni pratiti tj. gotovo svakodnevno se pojavi novo
rje enje u cilju napretka ra unarskih sistema. Razvoj tehnologije posebno se ogleda
na polju razvoja procesora, tako da pojedine komponente procesora poprimaju
nove oblike, kao npr. registri procesora koji sada predstavljaju internu memoriju
takvih memorijskih dimenzija da omogu avaju mnogo rje e pristupe sporijoj RAM

Programski jezik Visual Basic Zbirka zadataka

14

memoriji to drasti no pove ava brzinu rada procesora (interna memorija


procesora se naziva ke memorija). Dana nji ra unarski sistemi imaju i po
desetak mikroprocesora (srce ra unara), koji rade brzinama reda GHz.

1.1.3 Primarna memorija


Primarna (operativna) memorija, ili kra e memorija, je pasivna komponenta
ra unarskog sistema, ija je funkcija da skladi ti programe i podatke. Memorija se
sastoji od velikog broja elija (memorijskih lokacija) jednake du ine, pri emu
svaka elija ima svoj redni broj u okviru memorije. Numjerisanje memorijskih
elija po inje od 0. O igledno je da redni broj elije predstav1ja njenu jedinstvenu
adresu. Uvedimo sada predpostavku da jedna memorijska elija mo a da sadr i
jednu i samo jednu instrukciju ili samo jedan podatak. Tada mo emo da izvedemo
zaklju ak da svaka instrukcija, odnosno, svaki podatak ima sopstvenu adresu adresu lokacije u kojoj je smje ten.
Uvo enjem koncepta adresa i adresiranja stvoren je bitan mehanizam za
funkcionisanje ra unara, stvorena je mogu nost da se svaka instrukcija i svaki
podatak smije ta u odre enu memorijsku adresu, da bi mu se kasnije, posredstvom
te adrese moglo pristupiti. Pri tome su nad memorijom mogu e dvije operacije upisivanje i itanje sadr aja neke adrese. Realizacija ovih operacija omogu ena je
posredstvom dva registra, od kojih se jedan naziva adresnim registrom memorije
(ARM), a drugi prihvatnim registrom memorije (PRM). Operacija itanja sadr aja
odre ene memorijske lokacije, obavlja se tako, to se adresa lokacije kojoj se eli
pristupiti, upisuje u ARM, a zatim se inicira izvr enje same operacije, da bi se kao
rezultat njenog dejstva sadr aj posmatrane lokacije upisao u PRM.
Operacija upisivanja podatka u odre enu memorijsku lokaciju odvija se na
sli an na in. Podatak koji treba da se upi e unosi se u PRM, a adresa lokacije u
koju se vr i upisivanje unosi se u ARM, a zatim se inicira operacija upisivanja.
Rezultat operacije upisivanja je da se podatak iz PRM upisuje u posmatranu eliju,
pri emu se, naravno, njen prethodni sadr aj uni tava.
Vrijeme koje protekne od trenutka iniciranja jedne operacije nad memorijom,
bez obzira da li je u pitanju itanje ili upisivanje, do zavr etka posmatrane
operacije, naziva se vremenom memorijskog ciklusa. Jednostavnije re eno, vrijeme
memorijskog cilusa je vrijeme koje mora da protekne izme u dva uzastopna
pristupa memoriji. Pri tome, treba napomenuti da je vrijeme pristupa jednako za
sve lokacije operativne memorije, to se razlikuje od situacije kod sekundarnih
memorija, gdje vrijeme pristupa nekoj lokaciji zavisi ne samo od fizi ke pozicije te
lokacije, ve i od toga kojoj se lokaciji prethodno pristupilo. Zbog toga se primarna
memorija esto naziva memorija sa slu ajnim pristupom. Ovaj naziv je zapravo
doslovan i pomalo nespretan prevod originalnog izraza (random access memory RAM).

1 OSNOVE PROGRAMIRANJA

15

1.2 S O F T V E R
Softver (eng. software) ra unara predstavlja skup programskog koda - programa
i podataka, smje tenih u memoriju ra unara, koji kao cjelina, povremeno ili stalno,
kontroli e i upravljanja radom ra unara. Ovdje se pod memorijom podrazumijeva
sva dostupna memorija ra unaru (hard disk - HD, flopy disk - FD, CD ROM, DVD
medij, traka kao softverski medij itd.). Grubo softver mo emo podijeliti na:
softver operativnog sistema (OS),
aplikativni softver.
Operativni sistemi su se razvijali sa razvojem ra unarskih sistema tj. potrebama
ovjeka za sve ve om koli inom informacija. Sa stanovi ta OS-a, hardverska
komponenta ra unarskog sistema grubo se mo e podijeliti u dva dijela, sistemski
dio hardvera (procesor, memorija i dr.) i dio hardvera koji ini interfejs sa
korisnikom (monitor, tastatura, mi i dr.). Za vrijeme pionirskog razvoja
ra unarskih sistema, a samim tim i pionirskog razvoja OS-a, cijena sistemske
komponente je bila neuporedivo ve a od interfejsa (terminal) tj. rad ma ine je
bio daleko skuplji od rada korisnika. Iz ove injenice nastaje ideja da prvi
operativni sistemi budu tako koncipirani kako bi se omogu ilo 100% iskori enje
procesora. Iz ovog ugla OS se posmatra na njegovom najni em nivou, kada poput
nadzornika pazi na disk, procesor, memoriju, tampa e i dr.
Interpretacija komandnog jezika
Planiranje i evidencija poslova
Upravljanje podacima (fajlovima)
Upravljanje U/I ure ajima
Upravljanje
memorijom
Upravljanje
procesima (Jezgro)

Slika 1.5 Struktura ra unara

Slika 1.6 Struktura operativnog sistema

Sa razvojem tehnologije izrade hardvera dolazi do pada cijene sistemskog


hardvera, te rad korisnika ra unara dobija na vrijednosti, pa se ovoj injenici
prilago ava i operativni sistem tj. u prvi plan dolaze odgovornosti OS-a na nivou
korisnika. Iz ovog se jasno vidi, da OS ima ulogu posrednika izme u korisni kih
programa i sredstava potrebnih za njihovo izvo enje (hardvera). Ovakva filozofija
ra unarskog sistema je prikazana na slici 1.5, gdje se jasno mo e vidjeti mjesto i
zadatak operativnog sistema.

Programski jezik Visual Basic Zbirka zadataka

16

Kompleksnost operativnog sistema ote ava preciznu definiciju. Sa zadr anom


uop teno u, mo e se re i, da pod operativnim sistemom podrazumijevamo skup
sistemskih programa koji djeluju kao posrednik izme u hardvera i korisnika. Pri
tome pru a korisniku usluge, koje olak avaju projektovanje, implementaciju i
odr 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 koji
upravlja radom razli itih komponenti ra unarskog sistema, sa ciljem da omogu i
efikasan rad korisnika i efikasno kori enje resursa samog sistema. Pri tome se
poslovi (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 struktuirani
na razli ite na ine: kao monolitni sistemi, kao hijerarhija slojeva, kao virtuelne
ma ine i kao klijent server model. Jedna od mogu ih struktura operativnog sistema
prikazana je na slici 1.6. Navedimo neke od poslova koje obavljaju ove
komponente operativnog sistema:
1) Jezgro (kernel ili nucleus) operativnog sistema obezbje uje realizaciju sljede ih
funkcija:
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 memorijom
ra 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,
realizaciju odre ene strategije dodjele ure aja,
dodjelu ure aja,
realizaciju odre ene strategije osloba anja ure aja.

1 OSNOVE PROGRAMIRANJA

17

4) Upravljanje podacima treba da obezbijedi softverska sredstva za organizovanje


i pristup podacima na na in koji odgovara korisniku ra unarskog sistema. Funkcije
koje 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 i
odre ivanje poretka u kojem e se oni izvr avati. Funkcije koje se realizuju na
ovom nivou su:
izbor novog posla za izvr enje,
dodjela prioriteta poslovima,
realizacija strategije dodjele resursa.
6) Evidencija obuhvata vo enje evidencije kori enja resursa sistema po
korisnicima i izdavanje ra una korisnicima za potro ene resurse.
igledno je da akcenat na rije i upravljanje u navo enju funkcija operativnog
sistema nije slu ajan. Naime, u situaciji, kada se u ra unaru odvija vi e aktivnih
procesa (programi koji se izvr avaju), jasno je da e ti procesi konkurisati jedan
drugom u pogledu kori enja resursa ra unara (procesora, memorije, razli itih
ure aja, datoteka tj. podataka itd.). Zadatak operativnog sistema je da omogu i
neometano odvijanje svih procesa na takav na in, da se svi resursi sistema to
efikasnije iskoriste.
Aplikativni ili korisni ki programi koriste se na ra unaru za obavljanje nekih
specifi nih poslova. Danas postoji veliki broj aplikativnih programa, koji se
razlikuju po namjeni i po veli ini. Recimo Word se koristi za pisanje i ure ivanje
teksta, Excel za razne matemati ke prora une i grafi ki prikaz podataka, Access za
pravljene baze podataka itd. Aplikativni programi se mogu pisati u raznim
programskim jezicima, ali se svi prepoznaju, u odnosu na druge podatke na
ra unaru, po tome to imaju ekstenziju .EXE.

Programski jezik Visual Basic Zbirka zadataka

18

1.3 PISANJE PROGRAMA


Programi se pi u, kako bi pomogli ovjeku da pomo u ra unara rije i neki
problem. Postoje dva pristupa u razvoju programa 2:
- od ra unara ka problemu i
- od problema ka ra unaru.
U prvom pristupu se polazi od toga da korisnik najprije upozna ra unar i
njegove mogu nosti, a zatim pristupi rje avanju problema uz pomo ra unara. U
drugom pristupu se prvo nastoji dobro razumjeti problem, zatim napraviti
odgovaraju i model kako da se taj problem rije i, a tek zatim se pristupa pisanju
programa u odgovaraju em programskom jeziku na ra unaru.
Programiranje u u em smislu predstavlja proces pisanja programa za ra unar. U
irem smislu to je proces pripreme, razrade i pisanja programa radi rje avanja
nekog problema na ra unaru. Proces programiranja zavisi od problema koji se
rje ava. Me utim, mogu se uvesti neki tipi ni postupci koji se odvijaju u toku
razvoja 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 tekstualnih
zapisa, 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 koje
slijede. U ovoj fazi treba da se uo i problem, odre uje se na in rje avanja, vr i se
analiza postoje eg stanja, analiziraju se iskustva u radu sa ovakvim i sli nim
zadacima, biraju metode rada. U ovoj fazi rada esto je neophodno definisati fizi ki
i matemati ki model sistema ili procesa ije pona anje se eli implementirati na
ra unaru. Fizi ki model uvijek predstavlja model realnog sistema ili procesa, koji
se odvija u prirodi. Matemati ki model je skup matemati kih postupaka i relacija
kao i puteva njihovog rje avanja, koji moraju egzaktno odrediti postavljeni fizi ki
model. Matemati ki model zapravo predstavlja skup matemati kih relacija koje
dovoljno ta no opisuju pojavu ili proces, koji elimo da opi emo programom.
2

Dr Tihomir Latinovi , Osnove programiranja (Visual Basic), Biblioteka Informacione


tehnologije, Banja Luka 2007, str. 2.

1 OSNOVE PROGRAMIRANJA

19

Naj
e se pri tome koristimo jedna inama i sistemima jedna ina, nejedna inama
i 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 e
kompleksne, probleme (zadatke). To mogu biti zadaci na radnom mjestu, u ku i ili
u ivotnoj sredini, ovjeka uop te. ovjek ne bi dorastao ni najobi nijem
problemu, da ne koristi razna pomagala tj. alate, ma ine ure aje itd. Jedno od
pomagala jeste i ra unar sa svim svojim prednostima. Me utim, iako je ra unar
mo na ma ina, jo uvijek ne posjeduje razum, tj. ne mo emo se potpuno osloniti na
njegov automatizam u obavljanju razli itih poslova.
Zna ajna sposobnost ljudi jeste da uo e zadatak, da ga dobro postave, a zatim
da ga rije e. Zadatak sadr i skup informacija na osnovu kojih treba izvesti izvjesne
zaklju ke, koji predstavljaju rje enje zadatka. Ovakav skup informacija ini ulazne
veli ine zadatka, a rje enja zadatka zovu se izlazne veli ine zadatka.
Izbor informacija koje ine ulazne veli ine zadatka, kao i ta no formulisanje
samog zadatka mo emo zvati postavka zadatka. Jasno je da prije nego to se
pristupi rje avanju, mora se izvr iti ta na postavka zadatka. Rad na postavci
zadatka zahtijeva dobro poznavanje oblasti kojoj pripada zadatak.
Kada je izvr ena postavka zadatka mo e se pristupiti rje avanju istog. Ure en
skup pravila koja se formuli e u cilju rje avanja zadatka zove se algoritam. Ulazne
veli ine zadatka zovu se ulazne veli ine algoritma, a izlazne veli ine zadatka zovu
se izlazne veli ine algoritma. Svako pravilo, iz skupa pravila formulisanih u cilju
rje avanja zadatka, zove se algoritamski korak. Prema tome, algoritam se sastoji od
niza algoritamskih koraka, kroz koji se vr i transformacija ulaznih veli ina
algoritma, sve dok se ne do e do izlaznih veli ina algoritma tj. rje enja. U
ovakvom nizu algoritamskih koraka mora se znati prvi i zadnji algoritamski korak,
a za sve ostale algoritamske korake jednozna no je odre en sljede i algoritamski
korak. Veze izme u algoritamskih koraka odre uju strukturu algoritama.
1.3.2.1 Grafi ki zapis algoritma
Algoritmi za rje avanje pojedinih problema mogu da budu veoma slo eni3. U
takvim slu ajevima algoritmi sa tekstualnim opisom pojedinih koraka dosta su
nepregledni. Zato je za zapis algoritama pogodno koristiti njihovo grafi ko
prikazivanje. Kod ovakvog prikazivanja algoritama svaki algoritamski korak je
prikazan grafi kim simbolom, koji su izme u sebe povezani linijama saglasno
3

Dr Lazar Mili evi , Mr Lazar Radovanovi , Programiranje (Visual Basic), Ekonomski


fakultet, Br ko, 2005, str.11.

Programski jezik Visual Basic Zbirka zadataka

20

strukturi algoritma. Oblik grafi kog simbola za algoritamski korak ukazuje na


funkciju koju obavlja odre en algoritamski korak. U tabeli 1.1 dati su grafi ki
simboli za pojedine algoritamske korake i opisana njihova funkcija.
Tabela 1.1 Grafi ki simboli algoritamskih koraka
Grafi ki simbol algoritamskih
koraka
po etak/kraj

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 informacija
Grafi ki zapis algoritma zove se blok- ema algoritma. Ovakav zapis algoritma
odlikuje 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 e program biti pisan.

1 OSNOVE PROGRAMIRANJA

21

Posljednja osobina je posebno zna ajna, jer grafi ko prikazivanje algoritma nije
orijentisano na preno enje algoritma na ra unar to omogu uje da algoritam u
obliku 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 od
namjene blok- eme algoritma. Blok- ema algoritma treba da je toliko detaljna da
svaki algoritamski korak bude razumljiv za onog ko e koristiti algoritam. Za
slo enije algoritme pogodno je koristiti i blok- eme razli itog nivoa detaljisanja
algoritamskih koraka.
Ako se za prikaz algoritma koriste razli iti nivoi detaljisanja algoritma, onda se
koristi op ta blok- ema i detaljna blok- ema algoritma. Op ta blok- ema algoritma
sadr i algoritameke korake koji predstavljaju ve e funkcionalne ili logi ke cjeline
u slo enom algoritmu. Detaljna blok- ema algoritma sadr i algoritamske korake u
kojima je jasno nazna ena funkcija svakog algoritamskog koraka. Op ta blok- ema
slu i za uvid u logi ku strukturu slo enog algoritma, a detaljna za uvid u sve
detalje 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 medju sobom bitno razlikuju sa gledi ta izvr avanja algoritma.
Linijska struktura algoritma
Niz 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 enog
jednog algoritamskog koraka mo e pre i samo na algoritamski korak koji nije
prethodno izvr en, u toku jednog izvr avanja algoritma. Linijska struktura
algoritma mo e biti prosta ili razgranata.
Prosta linijska struktura
Prosta linijska struktura algoritma je ona linijska struktura kod koje se svaki
algoritamski korak izvr ava 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 algoritamskim
strukturama redoslijed izvr avanja algoritamskih koraka ne zavisi od ulaznih
veli ina, niti od me u rezultata u procesu izvr avanja algoritma. Primjer ove
strukture prikazan je na slici 1.7.

Programski jezik Visual Basic Zbirka zadataka

22

Razgranata linijska struktura


Razgranata linijska struktura je ona linijska struktura algoritma, kod koje se
svaki algoritamski korak izvr ava najvi e jedanput u toku jednog izvr avanja
algoritma. To zna i da u razgranatoj algoritamskoj strukturi postoje algoritamski
koraci koji se jedanput izvr e, ali postoje i algoritamski koraci koji se ne izvr e u
toku jednog izvr avanja algoritma. U razgranatim algoritamskim strukturama mora
postojati barem jedan uslovni algoritamski korak, koji omogu uje grananje
algoritma.
Po etak

P1
Da
xRy
Ne
P2

P3

Kraj

Slika 1.7 Prosta linijska struktura

Slika 1.8 Razgranata linijska struktura

Elementarna razgranata struktura mo e se komponovati od 3 proste linijske


strukture i jednog uslovnog algoritamskog koraka. Na slici 1.8 prikazana je
elementarna razgranata struktura sa prostim linijskim strukturama P1, P2 i P3 i
uslovnim algoritamskim korakom xRy, gdje su x i y prethodno definisane veli ine,
a R relacija izme u veli ina x i y. Relacija R mo e biti ispunjena i tada se prelazi
na prostu linijsku strukturu P3 ili neispunjena i tada se prelazi na prostu linijsku
strukturu P2. Va no je uo iti da se pri izvr avanju algoritma, na slici 1.8, izvr ava
uvijek jedna od prostih linijskih struktura P2 ili P3, u zavisnosti od relacije xRy.
Veli ine x i y mogu biti definisane sa ulaza ili to mogu biti me u rezultati odre eni
u prostom linijskom programu P1. Relacija izme u veli ina x i y odgovara prirodi
ovih veli ina. Ako su x i y brojne veli ine mo e se ispitivati da li su jednake ili
koja je od ovih veli ina manja, odnosno ve a. Kasnije emo vidjeti da ove veli ine
mogu biti i nizovi.

1 OSNOVE PROGRAMIRANJA

23

Cikli na struktura algoritma


Niz 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 nu
strukturu ili ciklus.
Cikli na struktura mo e biti konstantna i promjenljiva cikli na struktura. Svaka
od ovih, cikli nih struktura u najop tijem obliku sastoji se od dvije proste linijske
strukture P1 i P2 (slika 1.9) i uslovnog algoritamskog koraka xRy. Ako je relacija
navedena u uslovnom algoritamskom koraku ispunjena vr i se izlazak iz ciklusa, a
ako uslov nije ispunjen prelazi se na prostu linijsku strukturu P2, poslije ega se
ciklus ponavIja. Relacija koja defini e izlazak iz ciklusa zove se izlazni kriterijum
ciklusa. Naravno, da se mo e ciklus organizovati i tako da se izlazak iz ciklusa vr i
ako uslov, koji defini e izlazni kriterijum, nije ispunjen, a ciklus nastavIja ako je
uslov ispunjen.

Slika 1.9 Konstantna cikli na struktura

Slika 1.10 Izra unavanje stepena

Konstantna cikli na struktura


Cikli 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 ponavljanja
ciklusa ili dostignuta ta nost pri ra unanju po interativnim postupcima. Uka imo
samo da kod iterativnih ciklusa broj prolazaka kroz ciklus nije unaprijed poznat.
Primjer 1.1: Sastaviti algoritam za izra unavanje stepena y = xn
gdje je x nepoznata, a stepen mo e imati vrijednosti n =0,1,2,...
Ovdje su x i n ulazne veli ine, a y izlazna veli ina. Po to je eksponent cio broj,
stepen se mo e izra unati uzastopnim mno enjem. Prema tome, algoritam za
rje 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).

Programski jezik Visual Basic Zbirka zadataka

24

Va no je uo iti da je u ovom zadatku vrijednost n promjenljiva (zadaje se kao


ulazna veli ina) te je nemogu e algoritam za ovaj zadatak sastaviti kao linijsku
algoritamsku strukturu. U ovom zadatku kori en je simbol, koji predstavlja
operaciju dodjeljivanja vrijednosti promjenljivoj. Uo imo da ovaj simbol odre uje
proces izra unavanja vrijednosti na lijevoj strani, a zatim ovako izra unata
vrijednost se dodjeljuje promjenljivoj na desnoj strani simbola. Zapis " y = x " ita
se "vrijednoet x dodjeljuje se promjenljivoj y ''. Treba imati u vidu da ovaj simbol
opisuje proces formiranja vrijednosti x, a zatim dodjeljivanje ove vrijednosti
promjenljivoj y. Ovo zna i da na mjesto x mo e stajati i aritmeti ki izraz, iji
argument mo e biti i vrijednost y.
Tako je u algoritmu, u ovom primjeru, kori en zapis n = n - 1 to zna i da se
vrijednost promjenljive n umanjuje za jedan i tako formirana vrijednost dodjeljuje
kao nova vrijednost promjenljive n.
Algoritam na slici 1.10 ima konstantnu cikli nu strukturu, jer zakon obrade u
svim algoritamskim koracima, koji se nalaze u ciklusu, ne mijenja se za vrijeme
izvr avanja algoritma.
Promjenljiva cikli na struktura
Cikli 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 na
struktura. Promjena zakona obrade mo e
se odnositi na promjene operacija koje
vr e obradu informacija ili na promjene
promjenljivih koje u estvuju u pojedinim
algoritamskim koracima.
Primjer 1.2: Sastaviti algoritam koji
izra unava sumu
n

y=

(-1)ixi

( 1.1)

i =0

Rje enje: Ovdje su ulazne veli ine u


algoritam n, x0, x1, x2, ..., xn , a izlazna
veli ina y. Razvijanjem, suma ( 1.1) se
mo e zapisati u obliku
y = x0 x1 + x2 - ...
Ovo izra unavanje je u algoritmu sa slike
1.11 rije eno tako da se operacija z
mijenja naizmjeni no (+ ili -).
Slika 1.11 Promjenljiva struktura

1 OSNOVE PROGRAMIRANJA

25

Prvo je to operacija sabiranja (+ z), a zatim operacija oduzimanja ( - z),


pa opet sabiranja itd. Prema tome, u ovom algoritamskom koraku zakon obrade se
mijenja u toku izvr avanja algoritma, naizmjeni no sabiranje i oduzimanje. Pored
toga, u istom algoritamskom koraku dolazi do promjena promjenljivih koje
estvuju u obradi, to su redom promjenljive x0, x1, x2, ... , xn. Ciklusi u kojima
postoje algoritamski koraci sa ovakvim vrstama promjena, u toku izvr avanja
algoritma, su promjenljive 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 shvati
globalna 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 principe
struktuiranog programiranja. Struktuirano programiranje se zala e za algoritme i
programe sa jasno definisanom i lako razumljivom strukturom. Pored strukture
programa, posebna pa nja se posve uje i strukturi obra ivanih podataka. Jedan od
va nih elemenata struktuiranog programiranja je i razvoj algoritma ili programa u
koracima preciziranja. Osnovni cilj je u teda programerskog truda u sastavljanju,
ispitivanju i prepravljanju kako sopstvenih tako i tu ih programa. Ovaj cilj se
ponekad posti e ve im utro kom potrebnog memorijskog prostora za podatke i
programe, 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 trud
najskuplji i da to treba najvi e da se tedi. Na slici 1.12 prikazane su osnovne vrste
elemenata struktuiranih dijagrama toka. Svi elementi su pravougaonog oblika sa
ulazom na vrhu i izlazom na dnu. To omogu uje laku dekompoziciju bilo kog
bloka dijagrama na preciznije korake.
USLOV
T

BLOK

BLOK-2
BLOK-1

BLOK-2

Slika 1.12 Elementi struktuiranih dijagrama toka

USLOV

Programski jezik Visual Basic Zbirka zadataka

26

Elementi struktuiranih dijagrama toka predstavljaju logi ke cjeline koje se


nazivaju osnovnim upravlja kim strukturama. Tako, selekcija predstavlja vrlo estu
strukturu, uslovno izvr avanje jednog od blokova BLOK-1 ili BLOK-2 zavisno od
toga da li je USLOV ispunjen (T) ili nije (F). Pored ove osnovne selekcije, postoje
i druge vrste selekcija. One su prikazane, zajedno sa kori enim oznakama u
struktuiranim dijagramima toka. Druga esta upravlja ka struktura je ciklus to
podrazumijeva izvr avanje BLOK-a sve dok se ne ispuni USLOV. Postoje i druge
varijante ciklusa.
USLOV-1

USLOV-1
F

BLOK-1
BLOK-11

BLOK12

F
BLOK111

BLOK121

BLOK112

USLOV-12
USLOV-21
F

BLOK

BLOK-2

BLOK-21

USLOV-2

BLOK211

BLOK212

USLOV-2

Slika 1.13 Pravljenje slo enog struktuiranog dijagrama


Na slici 1.13 prikazan je primjer formiranja slo enog struktuiranog dijagrama
toka. U prvom koraku cio dijagram je jedan blok koji predstavlja cio algoritam. U
drugom koraku taj blok je podijeljen na dva uzastopna bloka BLOK-1 i BLOK-2. U
tre em koraku BLOK-1 je pretvoren u selekciju sa uslovom USLOV-1 i uslovno
izvr avanim blokovima BLOK-11 i BLOK-12. Istovremeno BLOK-2 je pretvoren u
ciklus sa sadr ajem BLOK-21 i uslovom zavr etka USLOV-2. Na kraju, u etvrtom
koraku BLOK-11 je podijeljen na dva uzastopna bloka, BLOK-12 je pretvoren u
ciklus, a BLOK-21 je pretvoren u selekciju.
Dobra osobina struktuiranih dijagrama toka je spre avanje sastavljanja
nepreglednih algoritama. Pored toga, struktuirani dijagrami toka su kompaktniji.
Na istoj povr ini mo e da se iska e vi e informacija nego pomo u standardnih
dijagrama toka. Mana im je, ako to smije da se uzme kao mana, to se koristi vi e
razli itih elemenata nego kod standardnih dijagrama toka i za njihovo
razumjevanje nije dovoljna samo intuicija.
Na slici 1.14 a) prikazan je standardni dijagram toka, koji se sastoji od dva
uklopljena ciklusa, a na slici 1.14 b) prikazan je ekvivalenti struktuirani dijagram
toka. Standardni dijagram toka na slici 1.14 c) se, na prvi pogled, neznatno

1 OSNOVE PROGRAMIRANJA

27

razlikuje od dijagrama na slici 1.14 a). Me utim, kada se bolje pogleda, uo ava se
da dva ciklusa u dijagramu vi e nisu uklopljena jedan u drugi. Oni se djelimi no
preklapaju. Ovakva struktura algoritma ne mo e da se iska e struktuiranim
dijagramom toka.

BLOK - 1

BLOK - 2

USLOV - 2
USLOV - 1

a)

b)
Slika 1.14 Pravljenje struktuiranog dijagrama

c)

1.3.3 Pisanje i uno enje programa u ra unar


Algoritam zapisan u obIiku blok- eme ne mo e biti prihva en i izvr en od
strane ra unara. Da bi algoritam bio prihva en i izvr en od strane ra unara mora
biti zapisan na na in, koji obezbje uje odre en nivo detaljizacije algoritma, to ne
mora biti u blok- emi algoritma.
Algoritam zapisan tako da je prihvatljiv od strane ra unara zove se program, a
proces pisanja programa zove se programiranje.
Da bi program mogao da se izvr i na ra unaru mora biti zapisan na ma inskom
jeziku ra unara. Me utim, pisanje programa na ma inskom jeziku predstavlja
takvu detaljizaciju algoritma, da je to vrlo te ak posao za ovjeka, a uz to i vrlo
podlo an gre kama. Pored toga, pisanje programa na ma inskom jeziku zahtijeva
poznavanje konstruktivnih osobina ra unara, to tako e onemogu uje da se ve i
broj ljudi obu i za ovaj posao.
Da bi se omogu ilo efikasnije pisanje programa po eli su se stvarati posebni
jezici za komunikaciju izme u ovjeka i ra unara. Tako su razvijeni simboli ki i
programski jezici. Programi zapisani na ovim jezicima mogu se pomo u posebnih
programa za prevodjenje tj. prevodioca, prevesti na ma inski jezik i zatim izvr iti
na ra uaru.

Programski jezik Visual Basic Zbirka zadataka

28

Programski jezici su vje ta ki jezici konstruisani za pisanje progama, pri emu,


po pravilu nije potrebno poznavanje konstruktivnih osobina ra unara. Va no je
uo iti da su programski jezici algoritamski orijentisani, tj. oni omogu uju korisniku
da zapi e algoritam za rje avanje odre enog zadatka pomo u ra unara. Prema
tome, da bi jedan zadatak rije ili na ra unaru moramo prije svega sastaviti
algoritam, koji opisuje rje enje zadatog problema.

1.3.4 Testiranje programa i ispravke gre ke


Kada se program napi e potrebno je prvo uraditi njegovo testiranje. Prilikom
testiranja programa otkrivaju se gre ke u pisanju programa. Gre ke mogu da budu
sintakti ke i logi ke. Sintakti ke gre ke nastaju prilikom kucanja naredbi u
programu. U programskom jeziku Visual Basic, to su naredbe koje se kucaju u
gotovim objektima od kojih se sastavlja program. Naj
e gre ke su izostavljanje
nekog slova ili da se neko slovo 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 da program 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. A upravo jedna od velikih gre aka programera je da
su po eli da pi u program, a da nisu prije toga napravili algoritam. Drugi na in
otklanjanja logi kih gre aka je da se u programu postave kontrolne ta ke. Primjer
koda programa u kome su postavljene kontrolne ta ke prikazan je na slici 1.15.

Slika 1.15 Kontrolne ta ke

Kontolne ta ke se postavljaju u
kodu programa, tako to se mi em
klikne lijevo do radne povr ine za
kucanje koda. Nakon toga se
lijevo od kodne linije pojavi
crveni krug, a pozadina izabrane
kodne linije postaje crvena. U
jednom programu mo e se
postaviti kontrolna ta ka na svaku
kodnu liniju. Kada se program
pokrene na dugme Start, on e se
izvr avati samo do kontrolne
ta ke. Dalje izv enje programa je
mogu e ponovnim klikom na
dugme Start.

Kada se program zaustavi na kontrolnoj ta ci, mogu se provjeravati trenutne


vrijednosti svih promjenljivih koje se nalaze u kodu programa. Ova jednostavna

1 OSNOVE PROGRAMIRANJA

29

provjera se vr i postavljanjem kursora mi a na eljenu promjenjivu u kodu


programa, nakon ega se odmah prika e trenutna vrijednost te promjenjive (u
primjeru na slici 1.15 prikazana je vrijednost promjenjive BB). Na ovaj na in se
najlak e dolazi do otkrivanja gre aka, a zatim i ispravljanja gre aka u kodu
programa.
Kada se program u potpunosti istestira, potrebno je napraviti izvr nu verziju
programa preko opcije Make imeprograma.exe u glavnom meniju File. Na ovaj
na in se od razvojne verzije programa koja ima ekstenziju ".VBP", pravi izvr na
verzija programa koja ima ekstenziju ".EXE". Korisnik bi trebalo da radi samo sa
izvr nim verzijama programa. Ako korisnik radi sa razvojnom verzijom programa
tada vrlo lako mo e da pokvari program pomjeranjem ili brisanjem samo jednog
slova u kodu programa. Sa druge strane pisac programa titi svoj autorski rad
isporu ivanjem korisniku samo izvr ne verzije programa.
Distribucija va ih aplikacija
Nakon to stvorite Visual Basic aplikaciju, mo i ete je distribuirati drugim
korisnicima. Mo ete slobodno distribuirati svaku aplikaciju koju stvorite sa Visual
Basicom, svakome ko upotrebljava Microsoft Windows. Va e aplikacije mo ete
distribuirati pomo u CD-a, USB-a, putem intraneta ili Interneta.
Kad distribuirate aplikaciju, postoje dva koraka kroz koje morate pro i:
Pakiranje morate zapakirati datoteke va e aplikacije u jedan ili vi e datoteka
tipa .cab koje mogu biti raspakovane na mjestu koje odaberete, i morate stvoriti
aplikaciju pode avanja za odre ene tipove pakovanja. Datoteka tipa .cab je sa eta
datoteka koja je dobro opremljena za distribuciju na diskovima ili putem Interneta.
Raspore ivanje (raspakivanje) va u zapakovanu aplikaciju morate premjestiti
na mjesto sa koga je korisnici mogu instalirati. To mo e zna iti kopiranje paketa na
diskete ili na lokalni ili mre ni disk, ili postavljanje paketa na Web stranicu.
Mo ete koristiti dva alata za pakovanje i raspore ivanje va ih aplikacija.
arobnjaka za pakovanje i raspore ivanje (Package and Deployment Wizard, u
opciji Add-Ins Visual Basica), ili alat za pode avanje (Setup Toolkit), koji dolaze sa
va om instalacijom Visual Basica. arobnjak za pakovanje i raspore ivanje
automatizuje puno postupaka uklju enih u distribuiranje aplikacija predstavljaju i
vam mogu nosti sa kojima mo ete oblikovati va e .cab datoteke. Alat za
pode avanje dopu ta vam prilago ivanje dijela onog to se doga a tokom postupka
instalacije.
arobnjak za pakovanje i raspore ivanje (Package and Deployment Wizard)
Visual Basica poma e vam pri stvaranju .cab datoteka za va u aplikaciju, njihovom
grupisanju u cjelinu, ili paket, koji sadr i sve informacije potrebne za instalaciju, te
isporuku tih paketa krajnjim korisnicima.
arobnjaka za pakovanje i
raspore ivanje mo ete upotrijebiti za stvaranje paketa koji se distribuiraju na
disketama, CD-ima, lokalnom ili mre nom disku, ili Internetom. arobnjak za
pakovanje i raspore ivanje automatizuje ve inu posla upletenog u stvaranje i

Programski jezik Visual Basic Zbirka zadataka

30

raspore ivanje tih datoteka. arobnjak za pakovanje i raspore ivanje nudi sljede e
mogu nosti:
Opcija Package poma e vam pri pakovanju datoteka projekta u .cab datoteku
koja zatim mo e biti raspore ena. U nekim slu ajevima ova opcija stvara program
pode avanja koji instalira .cab datoteke. arobnjak ustanovljava koje datoteke
trebate pakovati i vodi vas kroz izbore koji trebaju biti napravljeni kako bi se
stvorila jedna ili vi e .cab datoteka za va projekt.
Opcija Deploy poma e vam pri isporuci va ih zapakovanih aplikacija na
pogodan medij distribucije, kao to su diskete, dio mre e, ili Web stranica.
Opcija Manage Scripts omogu uje vam pregled i upravljanje skriptima koje
ste snimili u prethodnim radovima pakovanja i raspore ivanja s arobnjakom.
Svaki put kad koristite arobnjaka, snimate skript koja sadr e sve izbore koje ste
napravili. Taj skript mo ete ponovno upotrijebiti u kasnijim upotrebama
arobnjaka, ako elite upotrijebiti sli ne postavke i napraviti iste izbore kao i
pro li put.
arobnjak za pakovanje i raspore ivanje vodi vas kroz stvaranje i distribuiranje
profesionalnih programa pode avanja za va e Visual Basic aplikacije. Osim
stvaranja .cab datoteka za va u aplikaciju, arobnjak tako e stvara program
pode avanja aplikacije prevo enjem projekta alata za pode avanje (Setup Toolkit)
instaliranog sa Visual Basicom. Program pode avanja se naziva setup1.exe.
Pokretanje arobnjaka za pakovanje i raspore ivanje
Mo ete ga pokrenuti iz Visual Basica kao dodatak. Ako pokre ete arobnjaka
kao dodatak, prvo morate postaviti potrebna uputstva u kreatoru dodataka kako bi
itali arobnjaka. Kad upotrebljavate arobnjaka kao dodatak, Visual Basic
pretpostavlja da elite raditi sa projektom koga trenutno imate otvorenog. Ako
elite raditi sa drugim projektom, morate otvoriti taj projekt prije pokretanja
arobnjaka, ili morate upotrijebiti arobnjaka kao samostalan dio.
Nakon to pokrenete arobnjaka, niz ekrana e od vas tra iti informacije o
va em projektu i omogu it e vam biranje opcija za pakovanje. Svaki ekran
obja njava kako se upotrebljava, uklju uju i neobavezne informacije, te
informacije koje moraju biti upisane prije nego to se mo ete pomaknuti na idu i
ekran. Ako trebate vi e informacija o bilo kom ekranu, pritisnitetaster F1 ili
kliknite dugme Help. Posebno napominjemo da bi trebali snimiti i prevesti svoj
projekt u EXE verziju prije nego to pokrenete arobnjaka za pakovanje i
raspore ivanje.
Pokretanje arobnjaka za pakovanje i raspore ivanje iz Visual Basica vr i se u
sljede im koracima:
1. Otvorite projekt kojeg elite zapakovati ili rasporediti kori tenjem
arobnjaka. (Napomena: Ako radite u projektnoj grupi ili imate vi e istovremeno
itanih projekata, projekat kojeg elite zapakovati ili rasporediti mora biti trenutan
projekt prije nego to pokrenete arobnjaka.)

1 OSNOVE PROGRAMIRANJA

31

2. Upotrijebite menad era dodacima (Add-In Manager) za u itavanje


arobnjaka za pakovanje i raspore ivanje. U izborniku Visual Basica Add-Ins
odaberite stavku Add-In Manager, odaberite stavku Package and Deployment
Wizard sa popisa, i kliknite OK.
3. Odaberite stavku Package and Deployment Wizard iz menija Add-Ins za
pokretanje arobnjaka.
4. Na glavnom ekranu odaberite jednu od sljede ih opcija:
Ako elite stvoriti standardno pakovanje, pakovanje za Internet ili datoteku
zavisnosti za projekt, kliknite Package.
Ako elite rasporediti projekt, kliknite Deploy.
Ako elite pregledati, mijenjati ili obrisati skript, kliknite Manage Scripts.
5. Nastavite kroz ekrane arobnjaka.
Pokrenuti arobnjaka za pakovanje i raspore ivanje kao samostalan dio vr i se
na sljede i na in:
1. Ako je projekt kojeg elite zapakovati otvoren, snimite ga i zatvorite Visual
Basic.
2. Kliknite glavno dugme Start, pa kliknite stavku All Programs pa Microsoft
Visual Studio 6.0, pa zatim Microsoft Visual Studio 6.0 Tools, pa zatim iz liste
opciju Package and Deployment Wizard.
3. U popisu Project na uvodnom ekranu, odaberite projekt kojeg elite
zapakovati. (Napomena: Mo ete kliknuti dugme Browse ako va projekt nije na
popisu.)
4. Na glavnom ekranu, odaberite jednu od sljede ih opcija:
Ako elite stvoriti standardno pakovanje, pakovanje za Internet ili datoteku
zavisnosti za projekt, kliknite Package.
Ako elite rasporediti projekt, kliknite Deploy.
Ako elite pregledati, mijenjati ili obrisati skripte, kliknite Manage Scripts.
5. Nastavite kroz ekrane arobnjaka.
Mo ete slobodno distribuirati svaku aplikaciju ili sastavni dio kojeg ste stvorili
sa Visual Basicom. Uz izvr ne (.exe) datoteke, va a aplikacija mo e zahtijevati
druge datoteke, kao to su dinami ke biblioteke (DLL), ActiveX kontrole (.ocx
datoteke) ili bitmapirane slike (.bmp datoteke).
Nezavisno o tipu pakovanja kojeg stvarate ili alatu kojeg upotrebljavate kako bi
ga stvorili, postoje neki koraci koji moraju biti preduzeti.
1. Odredite tip paketa kojeg elite stvoriti. Mo ete stvoriti standardni paket
za aplikacije temeljene na Windows-ima koje e biti distribuirane na disketama,
CD-ima ili putem mre e. Umjesto toga, mo ete stvoriti Internet paket za aplikacije
koje e biti distribuirane putem Weba. 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 e

Programski jezik Visual Basic Zbirka zadataka

32

stvoriti paket. Projektne datoteke su datoteke koje su uklju ene u sam projekt na
primjer, .vbp datoteka i njezin sadr aj. Datoteke zavisnosti su datoteke ili sastavni
dijelovi izvo enja koje va a aplikacija zahtijeva za izvo enje. Informacije o
zavisnosti su spremljene u datoteci VB6dep.ini, ili u raznim .dep datotekama koje
odgovaraju sastavnim dijelovima va eg projekta.
3. Odredite gdje na ra unaru korisnika instalirati datoteke. Programske
datoteke i datoteke pode avanja se obi no instaliraju u poddirektorij direktorija
Program Files, dok se sistemske datoteke i datoteke zavisnosti obi no instaliraju u
direktorije \Windows\System ili \Winnt\System32. Va program pode avanja to
mora 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 ovog
koraka je jedna ili vi e .cab datoteka i sve potrebne datoteke pode avanja.
5. Rasporedite svoj paket. Postupak raspore ivanja sadr i stvaranje va eg
medija distribucije i kopiranje svih potrebnih datoteka na mjesto gdje mu korisnici
mogu pristupiti.
Postoji nekoliko datoteka koje su uvijek dio va ih standardnih paketa. Tu su
uklju 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 postupku
instaliranja, i izvodi potrebne obrade koje se moraju pojaviti prije po etka glavne
instalacije.
Datoteka setup1.exe. Ova datoteka djeluje kao glavni program pode avanja
za va u aplikaciju.
Kad korisnik instalira va u aplikaciju, program pode avanja kopira uslu ni
dodatak St6unst.exe za uklanjanje aplikacije u direktorije \Windows ili \Winnt.
Svaki put kad upotrijebite Visual Basic program pode avanja za instalisanje
aplikacije, stvara se evidencijska datoteka za uklanjanje aplikacije (St6unst.log) u
direktorijumu 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 iste datoteke. Evidencijska datoteka
ozna ava je li datoteka djeljiva te ako jeste, je li zamijenila postoje u datoteku.
Stvorene ili mijenjane unose registara.
Samoregistriraju e .dll, .exe ili .ocx datoteke.

1 OSNOVE PROGRAMIRANJA

33

1.3.5 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 da
napravi detaljno uputstvo za kori enje programa. Uputstvo treba da sadr i slike
svih ekrana, koji se mogu pojaviti u toku izvr enja programa, a za svaki objekat na
slici treba dati njegove funkcije, tip i raspon ulaznih (izlaznih) podataka. Uputstvo
mo e biti napravljeno u papirnoj ili elektronskoj formi, ali najbolje i u jednoj i
drugoj formi. Pored uputstva programer mora da korisniku pru i obuku u kori enju
isporu enog programa.
Proizvodnja programa 4 za tr te je djelatnost sli na proizvodnji svih drugih
vrsta proizvoda. Kupac obi no o ekuje sli ne uslove kupoprodaje, kao u
slu ajevima kupovine uobi ajenih tehni kih proizvoda. Me utim, program je
veoma specifi an proizvod i njegova za tita nije nimalo jednostavna. Pravni
aspekti proizvodnje i kori enja programa predstavljaju u op tem slu aju delikatnu,
prilikom sporova komplikovanu i ponekad kontroverznu oblast. Klasi na prodaja
programa je dosta rijetka pojava. Pod "klasi nom prodajom" programa
podrazumijevamo u stvari kupovinu programa i prava na njegovu preprodaju.
Drugim rije ima kupovina programa je "klasi na kupovina" onda kada je sli na
kupovini nekretnina ili automobila. Tada kupac ima potpuno pravo raspolaganja
svojim vlasni tvom i mo e zatim da ga po volji proda, pokloni, ili uni ti. Kupovinu
programa praktikuju dr avne organizacije i/ili kompanije (vlada, vojska, policija,
elektrane, banke, itd.) gdje program mo e bitno da uti e na sigurnost rada ili
poslovanja, 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 kao
i povreda patentnih prava ili piratsko kopiranje i distribucija knjiga, muzi kih i
video diskova. Ako bi neko neovla eno lice uzelo na primjer neku knjigu i bez
odobrenja izdava a i autora po elo da tu knjigu samostalno kopira i kopije stavlja u
prodaju, onda bi to bio prekr aj i pravno i moralno. Treba razumjeti da zakon koji
titi izdava a i autora titi u stvari najvi i dru tveni interes. Ako bi proizvo u
knjige, ili programa, njegov proizvod bio neka njeno piratski ukraden, onda bi kao
direktna posljedica toga opao interes za proizvodnju tako riskantnog proizvoda.
Dru tvo bi neminovno bilo suo eno sa usporenim razvojem ili nazadovanjem. To
je razlog to neovla eno kori enje softvera nije samo pravno nedopustiv akt, ve
predstavlja i ozbiljno kr enje profesionalnog morala jer potkopava temelje zdravih
odnosa u okviru programske profesije.

Dr Jozo J. Dujmovi , Programski jezici i metode programiranja, Akademska misao,


Beograd, 2003, str 3.98 do 3.104.

Programski jezik Visual Basic Zbirka zadataka

34

1.3.6 Odr avanje i nadogradnja programa


aljiva izreka ka e da svi programi sadr e gre ke dok se ne doka e suprotno,
to je ina e nemogu e. Imaju i u vidu da u svakoj ali ima i po malo istine i
ale, dolazimo do toga da je veoma te ko pri proizvodnji programa pru iti bilo
kakvu garanciju. Ta nije proizvo i programa umjesto garancije za svoje
proizvode naj
e daju izjavu da ne prihvataju bilo kakvu odgovornost za
primjenu i posljedice primjene svog softvera.
ak i softveri koji slu e za rje avanje nekih matemati kih problema, koji imaju
izuzetnu vrijednost i mogu se koristiti sa visokim stepenom pouzdanosti daju
ovakve izjave. Ipak, uvijek postoji mogu nost da se, i pored vrlo male
vjerovatno e, desi slu aj da se pri nekim ulaznim parametrima pojavi gre ka u
nekom programu. I ako bi se taj program koristio u prora unu ili u radu nekog
veoma 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 prihvatiti
odgovornost. Stoga se i daje izjava o ne prihvatanju odgovornosti.
Izjave o ne prihvatanju odgovornosti postale su uobi ajena pravna forma 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 rezultat
gre ke u programu za obradu teksta, a da pri tome autor teksta ili njegov izdava ne
budu krivi, nego da svu krivicu snosi programer koji je pisao program ili
kompanija koja program distribuira. Naravno, mo e se dogoditi da zbog gre ke u
programu neki podatak u tekstu ne eljeno promjeni vrijednost i da to ima neke
neprijatne posljedice, ali normalno bi bilo je da je kriv onaj ko je koristio no na
naopak na in, a ne proizvo
no a. Poenta je me utim u tome da program za
obradu teksta ne mo e da se izvr ava u apsolutnoj izolaciji. On upisuje podatke
po disku i mo e da gre kom dovede do direktnog ili poslijedi nog gubitka nekih
korisni kih programa ili podataka, pa se proizvo
softvera sa razlogom odlu io
na sli nu formulaciju kao i autori biblioteke numjeri kih programa.
Imaju i u vidu da ve ina programa radi u okru enju drugih programa i podataka
i da se teta drugim podacima i/ili programima ipak mo e dogoditi i pored najve e
pa nje u programiranju, slijedi da je u ovim slu ajevima uputno koristiti izjavu o
nepriznavanju garancije. Tim prije to su korisnici softvera navikli da programski
proizvodi u odre enom malom procentu sadr e gre ke, tako da potpunu garanciju i
ne o ekuju. Garancija se stoga u ve ini slu ajeva odnosi samo na besplatnu
zamjenu medijuma sa programima, koji nisu itki zbog gre aka na medijumu.
Druga forma garancije koju proizvo i unikatnog ili maloserijskog softvera
ponekad nude kupcima je garancija za interventno odr avanje u ograni enom
periodu. Ova garancija ima za cilj da obezbjedi da proizvo
softvera u
ograni enom periodu (naj
e godina dana) bude u obavezi da po reklamaciji
kupca izvr i sitnije popravke i dorade isporu enog programskog proizvoda.

1 OSNOVE PROGRAMIRANJA

35

Sa druge strane, imaju i u vidu izuzetnu lako u i brzinu kojom se i veoma


veliki programski proizvodi mogu neovla teno iskopirati, proizvo i programa
redovno poku avaju da svoj proizvod za tite od toga. Pa pored pravne za tite
putem copiryght koriste i razne tehni ke norme za tite od neovla enog
kopiranja njihovih proizvoda. Postoji veliki broj metoda kako se to mo e posti i, a
neke od njih se zasnivaju i na specijalnom hardveru. Jedan od oubi ajenih na ina
da se obezbjedi da odre eni program mo e da radi isklju ivo na odre enom
ra unaru, sastoji se u tome da se serijski broj procesora (koji se programski mo e
itati) dostavi proizvo u softvera, koji zatim taj broj upisuje (naj
e
kriptografisano) u program koji treba da radi na tom ra unaru. U toku rada
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 jedna
kopija jedan korisnik (na bilo kom mjestu i na bilo kom ra unaru), ve jedna
kopija, jedan ra unar. Pri tome broj simultanih korisnika takvog softvera mo e, ali
ne mora, da bude ograni en. Osnovna ideja proizvo a softvera je obi no da
njegova zarada treba da bude proporcionalna koristi koju kori enjem softvera
ostvaruje njegov korisnik.
Proizvo i softvera (naro ito ako se radi o unikatnom softveru) esto
korisnicima nude ugovorno odr avanje softvera. Pod odr avanjem se obi no
podrazumijevaju popravke i dorade koje se rade na zahtjev korisnika, koji je otkrio
gre 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. To
naj
e mo e biti:
1) vremenski rok u kome proizvo
softvera treba da otkloni otkrivene
gre 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 datog
softvera, ali obi no bez obaveze da se ispune neki specifi ni zahtjevi.
Budu i da je proizvo
softvera spreman na odre ene intervencije u
softveru na zahtjev kupca, to se ponekad mo e smatrati kao odre ena
forma garancije.
Primjeri navedene forme odr avanja softvera obuhvataju obi no intervencije u
dva osnovna pravca. Korisnik u datom periodu (npr. u toku godine dana) mo e da
detaljno ispita programski sistem sa mnogo irim spektrom kombinacija ulaznih
podataka od onoga to je mogao da uradi proizvo
prilikom razvoja
programskog proizvoda. Tom prilikom postoji mogu nost da korisnik identifikuje
takve kombinacije ulaznih parametara za koje programi daju neispravne rezultate.
Obaveza proizvo a se svodi na to da modifikuje program tako da se navedene
neispravnosti otklone. Drugi pravac se sastoji u tome, da se modifikuje korisni ka
forma, odnosno onih dijelova koji defini u tip i formu unosa ulaznih podataka od

Programski jezik Visual Basic Zbirka zadataka

36

strane korisnika. Korisnik koji rutinski koristi program du e vremena redovno


otkrije 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 za
manjim izmjenama programa. Treba naglasiti da pod ovaj vid modifikacije ne
spadaju su tinske modifikacije algoritamske prirode, jer bi to iziskivalo pravljenje
nove verzije programa.
Druga vrsta ugovora o odr avanju softvera, koja se primjenjuje u domenu
sistemskog softvera, ne obuhvata interventno odr avanje, ve periodi nu isporuku
novih verzija instaliranog softvera. U takvim slu ajevima proizvo
ima ekipu
programera, koji permanentno dora uju i usavr avaju postoje i softver. Kada se
broj intervencija u postoje em softveru nakupi, tako da se nova verzije softvera po
svojim osobinama u dovoljnoj mjeri razlikuje od predhodne, onda se ta nova
verzija automatski distribuira korisnicima, koji imaju ugovor o odr avanju
softvera.
Gotovo svaki program je do ivio neke modifikacije, a razvoj programa ima
obi 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 e
imati veliki broj raznih modifikacija dok se ne dobije kompletan proizvod, koji
pro e zavr no testiranje i spreman je za tr 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 softvera vodi uredna i precizna evidencija
o modifikacijama koje su u toku. Vremenom se nagomila veliki broj listinga
programa od kojih mnogi mogu biti zastarjeli, ali se to ne mo e otkriti ako na njima
ne stoji odgovaraju a oznaka. Prema tome, u toku razvoja i testiranja programa
potrebno je poslije svake modifikacije programa unijeti na programima izmjenjenu
oznaku. 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 tokom
razvoja softvera distribuiraju verzije V1.1, V1.2, itd. Po pravilu poslije manje od
10 modifikacija prelazi se na verziju V2.0. Podrazumijeva se, da se ovaj proces
odvija saglasno sa potrebama tr ta, pa V2.0 treba da obuhvati pored popravki
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 ivjeli su ve i
broj verzija, ali rijetko vi e od 10.
Lako je uvidjeti da ne postoji nikakva vrsta definicija i ujedna eni pogled na to
nakon koliko modifikacija treba da se pojavi nova verzija programa. Tako da
ozna avanje brojeva modifikacija i verzija u prili noj mjeri zavisi od mjere, ukusa i
tradicije koja je svojstvena nekom proizvo u programa. Ipak, relativno visoki
broj verzija i modifikacija programa predstavlja neku formu priznanja da
posmatrani programski proizvod uspje no ivi na tr tu i da po svojoj prilici ima
razvijenu korisni ku bazu.

1 OSNOVE PROGRAMIRANJA

37

1.4 RJE ENI PRIMJERI PRAVLJENJA ALGORITMA


U ovom poglavlju dati su zadaci za koje je potrebno napraviti grafi ki
algoritam. Za ve inu zataka su predlo eni grafi ki algoritmi, koji predstavljaju
mogu 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

A, B

Z=A+B

Z
Kraj

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
za zadate vrijednosti: X1 X2 X3 X4 i X5
Rje enje:
Rje enje ovog algoritma dato je na slici 1.17.

Y=[(X1+X2)*X3-X4]*X5

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.

Programski jezik Visual Basic Zbirka zadataka

38

po etak

po etak

x1 , x 2

x1, x2, x3, x4, x5


F

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

x1< x2
T

y = x1 + x2

y
kraj

y = x1 - x2

y
kraj

Slika 1.17 Zadatak 1.3

Slika 1.18 Zadatak 1.4


po etak

x
x<0

y=x

y= -x

y
kraj

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.

1 OSNOVE PROGRAMIRANJA

39

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 ine
Y = 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<0

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

'nema realnih
korjena'

kraj

Slika 1.21 Zadatak 1.8


Zadatak 1.9
Sastaviti algoritam za izra unavanje korjena kvadratne jedna ine
Y = a*X2 + b*X +c
u skupu kompleksnih brojeva ( Z ).
Rje enje:
Rje enje ovog algoritma dato je na slici 1.22.
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.

Programski jezik Visual Basic Zbirka zadataka

40

po etak

a, b, c
D=b2-4ac
D<0
1/2

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

R1=R2= -b/2a

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

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

I1=I2=0

I2 = -I1
R1, I1, R2, I2
kraj

Slika 1.22 Zadatak 1.9


po etak

po etak

x, n

x,

y=1

x0 = x + 1

n=0

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

n=n-1

y=y*x

kraj

x0-x1<

y = x1
x0 = x1
y
kraj

Slika 1.23 Zadatak 1.10

Slika 1.24 Zadatak 1.11

1 OSNOVE PROGRAMIRANJA

41

Zadatak 1.11
Sastaviti algoritam za izra unavanje kvadratnog korena y = x po Njutnovoj
iterativnoj 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 , tako da je xi - xi+1 < .


Rje enje:
Rje enje ovog algoritma dato je na slici 1.24.
Zadatak 1.12
n

Sastaviti algoritam koji izra unava sumu y =

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

x2 + x3 - ....

i =1

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

po etak

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

G
i=0

G/4

y=0
+
i=n
i=i+1
y=yx

G/100
T
y
kraj

=+

G/400
t = 'Jeste'

t = 'Nije'

Slika 1.25 Zadatak 1.12

kraj

Slika 1.26 Zadatak 1.13

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

Programski jezik Visual Basic Zbirka zadataka


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

Slika 1.27 Zadatak 1.14

Slika 1.28 Zadatak 1.15

Zadatak 1.16
Sastaviti algoritam za ispisivanje niza u nerastu em poretku.
Rje enje analogno prethodnom zadatku.
Zadatak 1.17
Sastaviti algoritam za ispisivanje broja lanova niza djeljivih sa 5.
Rje enje:
Rje enje ovog algoritma dato je na slici 1.29.

42

1 OSNOVE PROGRAMIRANJA

43

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

Slika 1.29 Zadatak 1.17

Slika 1.30 Zadatak 1.18

Zadatak 1.19
Algoritamski opisati kori enje telefonskog aparata, koriste i sljede e algoritamske
korake:
1 PREKID VEZE
2 DA LI JE ZAUZETA LINIJA
3 DA LI JE DOBIJEN TEL SIGNAL
4 PODIZANJE SLU ALICE
5 BIRANJE TEL. BROJA
6 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?
Rje enje:
1) Ciklus A= 10, B= 20, Uslov zadovoljen (T), A= 20, B= 122
Na kraju: A = 20,
B= 122

Programski jezik Visual Basic Zbirka zadataka

Slika 1.31 Zadatak 1.19

44

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), koje vrijednosti 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 na
kraju poprimiti izlazi algoritma A i B?
Rje enje:
1) Ciklus A= 10, B= 20, uslov L1 zadovoljen (T), uslov L2 zadovoljen (T),
A= 90, B= 192
Na kraju: A = 90,
B= 192

1 OSNOVE PROGRAMIRANJA
Po etak

Po etak

A=10

A=10

B=20

B=20

L1

T
F

L2
B=A

A = B + 102
B= A - 10

L1

45

L2

F
A=B

A=B+70

B =B+102

B =A+102

T
B= A - 10

F
A = B + 202

A=B

A=B+70

B= A - 10

B =B+102

B =A+102

A, B

Kraj

A, B

Kraj

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) i
logi ki izraz L2 datog algoritma nije ta an (L2=FALSE), koje vrijednosti e na
kraju poprimiti izlazi algoritma A i B?
Rje enje:
1) Ciklus A= 10, B= 20, uslov L1 nije zadovoljen (F), uslov L2 nije vi e
uop 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) i
logi ki izraz L2 datog algoritma je ta an (L2= TRUE), koje vrijednosti e na kraju
poprimiti izlazi algoritma A i B?
Rje enje:
1) Ciklus A= 10, B= 20, uslov L1 nije zadovoljen (F), uslov L2 zadovoljen
(T), A= 20, B= 122
Na kraju: A = 20,
B= 122
Zadatak 1.26
Ako logi ki izraz L1 algoritma prikazanog na slici 1.34 nije ta an (L1= FALSE) i
logi ki izraz L2 datog algoritma nije ta an (L2= FALSE), koje vrijednosti e na
kraju poprimiti izlazi algoritma A i B?

Programski jezik Visual Basic Zbirka zadataka

46

Rje enje:
1) Ciklus A= 10, B= 20, uslov L1 nije zadovoljen (F), uslov L2 nije
zadovoljen (F), A= 222, B= 212
Na kraju: A = 222,
B= 212
Zadatak 1.27
Ako je logi ki izraz L1 algoritma prikazanog na slici 1.33 ta an (L1= TRUE) i
logi ki izraz L2 datog algoritma nije ta an (L2=FALSE), koje vrijednosti e na
kraju poprimiti izlazi algoritma A i B?
Rje enje:
1) Ciklus A= 10, B= 20, uslov L1 je zadovoljen (F), uslov L2 nije vi e
uop 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) i
logi ki izraz L2 datog algoritma je ta an (L2= TRUE) i logi ki izraz L3 datog
algoritma je ta an (L3= TRUE), koje vrijednosti e na kraju poprimiti izlazi
algoritma 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) i
logi ki izraz L2 datog algoritma nije ta an (L2= FALSE) i logi ki izraz L3 datog
algoritma je ta an (L3= TRUE), koje vrijednosti e na kraju poprimiti izlazi
algoritma A i B?
Rje enje:
1) Ciklus A= 10, B= 20, uslov L1 nije zadovoljen (F), uslov L2 nije
zadovoljen (F), uslov L3 nije vi e uop te bitan, A= 222, B= 0, A= 102
Na kraju: A = 102,
B= 0
Zadatak 1.30
Ako logi ki izraz L1 algoritma prikazanog na slici 1.34 je ta an (L1= TRUE) i
logi ki izraz L2 datog algoritma nije ta an (L2= FALSE) i logi ki izraz L3 datog
algoritma je ta an (L3= TRUE), koje vrijednosti e na kraju poprimiti izlazi
algoritma A i B?
Rje enje:
1) Ciklus A= 10, B= 20, uslov L1 je zadovoljen (T), uslov L2 i L3 nisu vi e
uop te bitni, B= 40, A= 110, B= 212
Na kraju: A = 110,
B= 212

1 OSNOVE PROGRAMIRANJA

47

Po etak
A=10
B=20
T

L1
F
L2
F
A=B+ 202

T
T

B= A + 30

L3
F

B= A - 10

A=B+70
B =A+102

B= A -10

A=B

A=B

A=B +102

B =B+102

B =B+102

A, B

Kraj

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)
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)
3) Ciklus A= 3, B= 7, Uslov nije zadovoljen (F)
4) Ciklus A= 5, B= 12, Uslov nije zadovoljen (F)
5) Ciklus A= 7, B= 19, Uslov nije zadovoljen (F)
6) Ciklus A= 9, B= 28, Uslov zadovoljen (T)
Broj ciklusa 6, A = 9 ,
B= 28

Programski jezik Visual Basic Zbirka zadataka

Slika 1.37 Zadatak 1.32

48

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)
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)
4) Ciklus A= 6, Uslov1 nije zadovoljen (F), B= 10, Uslov2 nije zadovoljen (F)
5) Ciklus A= 7, Uslov1 nije zadovoljen (F), B= 17, Uslov2 nije zadovoljen (F)
6) Ciklus A= 8, Uslov1 nije zadovoljen (F), B= 25, Uslov2 zadovoljen (T)
Broj ciklusa 6, A = 8 ,
B= 25

1 OSNOVE PROGRAMIRANJA

Slika 1.39 Zadatak 1.34

49

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.
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 ELSE
strukture i jedne WHILE petlje u Visuel Basic-u realizujete zadnji algoritam. To
govori da zadnji algoritam nije struktuiran.

Programski jezik Visual Basic Zbirka zadataka

50

2 UVOD U PROGRAMSKI JEZIK VISUAL BASIC


Hewlett Packard je ve dugo jedan od vode ih proizvo a mjerne opreme i
mjernih instrumenata visoke klase ta nosti. Mo e se re i da ve ina metrolo kih
laboratorija u itavom svijetu ima bar jedan njihov instrument. Kompanija Hewlett
Packard je jedna multinacionalna kompanija, koja se bavi i proizvodnjom
ra unara, ra unarske opreme i softvera. Zato se prije par godina iz ove kompanije
izdvojila kompanija pod nazivom Agilent, koja se specijalizovala za proizvodnju
mjerne opreme, mjernih instrumenata, mjerno-akvizicionih sistema i programa za
podr ku u procesu mjerenja i obradi rezultata mjerenja. Koliko je Hewlett Packard
zna ajan u proizvodnji mjernih instrumenata, govori i podataka da je GPIB
interfejs za povezivanje mjernih instrumenata sa ra unarom postao standard, koji
danas koriste i ostali vrhunski proizvo i mjerne opreme. Ovaj interfejs je
omogu io, da se na vrlo jednostavan na in istovremeno pove e sa ra unarom vi e
programabilnih instrumenata. Tako su nastali i prvi sistemi za automatsko
etaloniranje, koji su inili kalibratori i mjerni instrumenti koji su se etalonirali.
Sa po etkom proizvodnje programabilnih mjernih instrumenata Hewlett
Packard je po eo da pravi i specijalizovane programe, koji su slu ili za
uspostavljanje dvosmjerne komunikacije izme u ra unara i mjernih instrumenata.
Me u svim tim programima najbolje se pokazao programski jezik VEE Pro.
VEE Pro je linijski programski jezik prvenstveno namijenjen za programsko
povezivanje ra unara sa Hewlett Packard (odnosno danas Agilent) mjernim
instrumentima, ali i programabilnim mjernim instrumenata od ostalih najpoznatijih
svjetskih proizvo a. Ovaj programski jezik do sada ima vi e uspje nih verzija
(VEE 3.0, VEE 4.0, VEE 5.0, VEE 6.0, VEE 7.0, VEE 8.0 i VEE 8.5). Ovaj
programski jezik se preporu uje onima koji su savladali elementarne osnove bar
nekog drugog programskog jezika, na primjer C++, Visual Basic, Pascal, Delfi itd.
Zbog svoje jednostavnosti u pisanju programa i pra enju toka izvr enja programa,
ovaj programski jezik mo e da poslu i i po etnicima za savladavanje prvih koraka
programiranja. Nadam se da e ova knjiga bar malo doprinjeti tome.
Osnovne prednosti upotrebe programskog jezika VEE Pro su:
1) Jednostavnost do krajnjih granica je jedna od osobina, koja ga izdvaja od
ostalih razvojnih programskih paketa.
2) Veliki broj gotovih i raznolikih objekata za upravljanje.
3) Funkcionalan i raznolik grafi ki interfejs za unos i prikaz podataka.
4) Virtuelni generatori funkcija, impulsa i uma sa promjenljivom
amplitudom i frekvencijom.
5) Podr ava komunikaciju sa svim programima iz Windows okru enja, tako
da se ne gubi vrijeme na programiranje onoga to Windows ve sadr i.
6) Mogu nost povezivanja sa svim Hewlett Packard (odnosno danas Agilent)
mjernih instrumentima, ali i programabilnim mjernim instrumenata od
ostalih najpoznatijih svjetskih proizvo a.

2 UVOD U PROGRAMSKI JEZIK VEE PRO

51

2.1 PRIMJENA RA UNARA U METROLOGIJI


Bez obzira na mnogobrojne uspje no izvedene automatizacije mjernih procesa 5
u vremenu prije primjene ra unara, mo e se sa pravom re i da doba automatizacije
u mjerenjima zapo inje sa primjenom modernih ra unara. Posmatraju i elektri ne i
neelektri ne veli ine, bilo je sasvim logi no da se automatizacija mjerenja
zasnovana na primjeni ra unara iroko razvije, prvo kod mjerenja elektri nih
veli ina, s obzirom da je tu mjerna informacija sadr ana u elektri nom signalu. Sa
druge strane, dodatni uslov za razvoj automatizacije mjerenja neelektri nih veli ina
bio je nastanak nove generacije mjernih pretvara a neelektri nih u elektri ne
veli ine.

2.2 INSTALIRANJE VEE PRO PROGRAMA


Program VEE Pro se mo e instalirati na ra unar automatski, kada se ubaci
instalacioni disk ili kori enjem Setup aplikacije. Prvo se pojavi ekran prikazan na
slici 2.1. Na njemu se mo e izabrati instaliranje tri programa: Agilent VEE Pro,
Agilent VEE Runtime i Agilent VEE Express. Program Agilent VEE Pro se koristi
za pisanje novih programa. Program Agilent VEE Runtime se koristi za pravljenje
izvr ne verzije programa, koja ima ekstenziju .vxe. Izvr na verzija programa se
mo e poslije pokretati nezavisno od programa VEE Pro. Program Agilent VEE
Express posjeduje gotova rje enja za pode avanje programabilnih mjernih
instrumentima i prikupljanje rezultata mjerenja.
Slika 2.1 Instaliranje VEE Pro programa
Kada se pokrene postupak instaliranja VEE Pro program i ostali dijelovi
programskog paketa instaliraju se na hard disk. Nije dovoljno samo prekopirati
datoteke sa instalacionog diska na hard disk ra unara. Mora se upotrijebiti Setup
aplikacija, koja e dekomprimirati i instalirati sve potrebne datoteke na
odgovaraju e direktorijume. Po to je VEE Pro licenciran softver potrebno je imati
ifru, kako bi mogli da nastavimo proces instaliranja programa. ifra se unosi u
polje Product Key. Prije instaliranja ovog programa potrebno je provjeriti da li
ra unar zadovoljava minimalne zahtjeve za instalaciju i rad programa. Da bi
utvrdili minimalne zahtjeve ra unara potrebno je na instalacionom disku pro itati
datoteku Readme.
Da bi se ovaj program mogao koristiti za povezivanje ra unara sa
programabilnim instrumentima, potrebno je uz ovaj program dodatno instalirati na
5

Petar Pravica, Ivan Bagari , Metologija elektri nih veli ina op ti deo, Nauka, Beograd,
1993, str.247 do 252.

Programski jezik Visual Basic Zbirka zadataka

52

ra unaru i odgovaraju e biblioteke koje se nalaze na posebnom instalacionom


disku (Agilent IO Libraries).

2.3 POKRETANJE VEE PRO PROGRAMA


Aktiviranje programa VEE Pro u Windows operativnim sistemima vr i se kroz
Start meni (StartProgramsVEE Pro). Naravno, da ovo nije jedini na in da se
pokrene program VEE Pro. Kao i za bilo koji drugi program u Windows
operativnim sistemima postoji vi e na ina za njihovo pokretanje npr. mo e se
napraviti ikona-pre ica (Shortcut) pa preko nje pokretati program.
Pokretanjem VEE Pro programa, odmah se uo ava da prozor programa pripada
grupi standardnih prozora u Windows okru enju, samim tim njegovo radno
okru enje ini naslovna linija sa dugmadima za automatsko upravljanje veli inom
prozora, linija menija, palete sa alatima, radni prostor, kliza i za vertikalno i
horizontalno listanje sadr aja dokumenta i statusna linija.
Nakon pokretanja programa pojavljuje se prozor prikazan na slici 2.2. Na njemu
se mo e izabrati jedna od sljede ih opcija ako je potrena neka pomo u radu:
-

Instruction - ako nikada prije nije kori en ovaj program da se sazna ne to


o osnovnom konceptu rada sa objektima u ovom programu.
Whats New - ako se eli saznati ta ovaj program pru a novo u odnosu na
druge sli ne programe.
Tutorijal - ako se eli pregledati multimedijalno uputstvo za rad sa ovim
programom koje se nalazi na instalacionom disku.
MATLAB Demo - ako se eli raditi sa MATLAB Demo programom koji
pru a vi e mogu nosti za grafi ki prikaz rezultata.
Example Programs - ako se ele otvoriti gotovi primjeri sa ve ura enim
programima.

2 UVOD U PROGRAMSKI JEZIK VEE PRO

53

Slika 2.2 Po etni ekran nakon pokretanja programa VEE Pro


U slu aju kada ste ve ranije radili sa ovim programom ili elite da otvorite
prethodno napravljen program tada je potrebno kliknuti na dugme Close. Nakon
toga se pojavljuje prozor prikazan na slici 2.3. Tu je prikazana radna povr ina na
koju se mogu dodavati objekti za na novi program. U slu aju da se eli otvoriti
ve postoje i program, potrebno je oti i na paletu menija na File pa Open i iz ve
poznatog okru enja (kao i kod ostalih programa Windows okru enja) iz eksplorer
menija izabrati program koji elimo da pokrenemo.

Slika 2.3 Radna povr ina za pisanje programa

Programski jezik Visual Basic Zbirka zadataka

54

2.4 SKRA ENICE U PROGRAMU VEE PRO


Program VEE Pro je dosta specifi an i razli it u odnosu na ostale klasi ne ili
objektno orjentisane programske jezike, kod kojih se sve naredbe pi u preko koda.
U ovom programskom jeziku ve ina naredbi pi e se preko gotovih objekata, koji se
samo pode avaju za izvr enje odre enih naredbi. U ovom programskom jeziku
novi programi se prave tako to se objekti dodaju na radnu povr inu, pa se onda
spajaju linijama, koje predstavljaju tok izvr avanja programa. Da bi se olak alo i
zna ajno ubrzalo pisanje programa korisno je poznavati skra enice na tastaturi,
koje se mogu koristiti u programu. Bez upotrebe skra enica na tastaturi esto je
prakti no i nemogu e uraditi izmjene u programima. Ovo pogotovo dolazi do
izra aja u onim programima koji imaju puno objekata, kada svi objekti ne mogu da
stanu na jedan ekran. Osnovne skra enice koje se koriste u programskom jeziku
VEE Pro prikazane su u Tabeli 2.1.
Tabela 2.1 Skra enice u programu VEE Pro
2.5 PRAVLJENJE PRVOG PROGRAMA
U ovom poglavlju opisani su osnovni koraci za kreiranje programa, kroz izradu
jednostavnog primjera. Kroz ovaj primjer po etnici u radu sa ovim programskim
jezikom mogu da uo e veliku jednostavnost i lako u pravljenja programa.
Programski jezik Visual Basic se najlak e u i kroz rje avanje prakti nih problema.
Zadatak opisanog primjera je sabiranje dva broja, koji se unose preko tastature.
Potrebno je postaviti i dugme pomo u koga se program zavr ava.
Osnovni koraci za kreiranje programa u programskom jeziku Visual Basic su:
1) Izbor i postavljanje na radnu povr inu potrebnih objekata za rje avanje
postavljenog zadatka.
2) Definisanje osobina svakog postavljenog objekta.
3) Me usobno povezivanje objekata.
4) Testiranje programa.
5) Pravljenje izvr ne verzije programa (Make Sabiranje1 .exe).
2.5.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 koje
slijede. U ovoj fazi treba da se uo i problem, odre uje se na in rje avanja, vr i se
analiza postoje eg stanja, analiziraju se iskustva u radu sa ovakvim i sli nim
zadacima. Kada je izvr ena postavka zadatka, mo e se pristupiti pravljenju
algoritma. Zatim je potrebno izvr iti izbor objekata, koji su nam potrebni za
rje avanje postavljenog zadatka. Za pisanje programa u programskom jeziku Visual

2 UVOD U PROGRAMSKI JEZIK VEE PRO

55

Basic, sa kojim elimo da rije imo postavljeni problem, potrebni su nam sljede i
objekti:
- 2 objekata za unos brojeva (Text Box),
- 1 objekat prikaz izra unate vrijednosti (Text Box),
- 3 objekata koji opisuju objekte za unos i prikaz vrijednosti (Label),
- 2 komandna dugmeta 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.4.

Slika 2.4 Postavljanje potrebnih objekata na radnu povr inu


2.5.2 Definisanje osobina objekata
Kada se objekti postave na radnu povr inu za pravljenje programa potrebno je
izvr iti pode avanje osobina svakog objekta. Na taj na in se objekti prilago avaju
njihovoj namjeni. Pode avanje osobina se

Programski jezik Visual Basic Zbirka zadataka

56

vr i u prozoru Propertes. Do osobina svakog


objekta se dolazi klikom mi a na objekat.
Pojavljuje se prozor prikazan na slici 2.6.
Svaki objekat u programskom jeziku Visual
Basic ima razli ite osobine, pa samim tim i
razli ite palete za pode avanje. Preko ovih
paleta se naj
e pode avaju neke od
sljede ih osobina:
-

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

Slika 2.6 Verzija VEE Pro 8.5


2.5.3 Me usobno povezivanje objekata
Kada su objekti postavljeni na radnu povr inu i kada su im postavljene eljene
osobine, potrebno je izvr iti povezivanje svih objekata. Objekti se me usobno
povezuju pisanjem koda programa. Do prozora za pisanje koda programa se dolazi
tako to se klikne mi em na bilo koji objekat koji je postavljen na formu, ili desni
klik mi a i izbor opcije View Code. Izgled prozora za pisanje koda programa
prikazan je na slici 2.7.

2 UVOD U PROGRAMSKI JEZIK VEE PRO

57

Slika 2.7 Kod programa

2.5.4 Testiranje programa i pravljenje izvr ne verzije programa


Kada se program napi e, potrebno je prvo uraditi njegovo testiranje. Prilikom
testiranja programa otkrivaju se gre ke u pisanju programa. Gre ke mogu da budu
sintakti ke i logi ke. Sintakti ke gre ke nastaju prilikom kucanja naredbi u kodu
programa. Naj
e gre ke su izostavljanje nekog slova ili da se neko slovo 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 da program ne mo e
da se zavr i do kraja ili se na kraju dobije rezultat, koji nije dobar. Jedan od na ina
otklanjanja logi kih gre aka je da se u programu postave kontrolne ta ke, kao na
slici 2.8. Kontrolne ta ke se postavljaju klikom mi a lijevo od linije koja sa lijeve
strane ograni ava prostor za kucanje koda programa. Kontrolne take se ozna avaju
kao 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 program
izvr ava postepeno od jedne do druge kontrolne ta ke, pri emu se provjeravaju
vrijednosti promjenljivih dolaskom mi a na pojedine promjenjive. U primjeru sa
slike 2.8 to je promjenjiva Y koja ima vrijednost 28 (y=28). Na ovaj na in se i
najlak e dolazi do otkrivanja gre aka, a zatim i ispravljanja gre aka u programu.

Programski jezik Visual Basic Zbirka zadataka

58

Slika 2.8 Kontrolne ta ke u kodu programa


Kada se program u potpunosti istestira, potrebno je napraviti izvr nu verziju
programa preko opcije Make Sabiranje1 .exe u glavnom meniju File. Na ovaj na in
se od razvojne verzije programa koja ima ekstenziju ".vbp", pravi izvr na verzija
programa koja ima ekstenziju ".exe". Korisnik bi trebao da radi samo sa izvr nim
verzijama programa. Ako korisnik radi sa razvojnom verzijom programa, tada vrlo
lako mo e da pokvari program pomjeranjem ili brisanjem samo jednog objekata.
Sa druge strane pisac programa titi svoj autorski rad isporu ivanjem korisniku
samo izvr ne verzije programa.
Na slici 2.9 prikazan je izgled izvr ne verzije ovog programa.

Slika 2.9 Izgled izvr ne verzije programa

3 TIPOVI PODATAKA

59

3 TIPOVI PODATAKA
Sve komande u ra unaru se izvr avaju u ma inskom jeziku. Ma inski jezik radi
samo sa podacima predstavljenim u obliku nizova binarnog alfabeta, odnosno sa
nulama i jedinicama. Me utim, za obi nog ovjeka binarni zapis je te ko razumljiv
i te ak za izvo enje ak i osnovnih matemati kih operacija. Ljudi su nau eni da
rade sa slovima i decimalnim brojevima, sa kojima ve ina lako izvode razne
matemati ke operacije. Zato su i nastali vi i programski jezici gdje se naredbe za
komunikaciju sa ra unarem pi u preko slova i brojeva. Da bi se olak alo
programiranje i kontrolisala upotreba memorije ra unara uvedeni su tipovi
podataka. Tip podataka je skup vrijednosti koje imaju izvjesne zajedni ke
karakteristike. Najzna ajnija od ovih karakteristika je skup operacija koje su
definisane nad vrijednostima tog tipa. Za svaki tip podataka su definisane odre ene
operacije, ali i gotove funkcije u svakom programskom jeziku. Kapacitet RAM
memorije ra unara je uvijek bio jedan od glavnih ograni avaju ih faktora za brzinu
rada ra unara. Razli iti tipovi podataka zauzimaju i razli it kapacitet memorije, pa
zato pravilan izbor tipova podataka u programu mo e zna ajno da ubrza ili uspori
rad ra unara. Ovo posebno dolazi do izra aja kod pisanja programa, koji imaju
veliki broj promjenljivih.
Osnovni tipovi i strukture podataka se mogu se podijeliti na:
- stati ki skalarni tipovi (elementarni podaci koji su skalari),
- stati ki struktuirani tipovi (povezuju elementarne podatke u preciznu
strukturu),
- dinami ki tipovi sa promjenljivom veli inom,
- dinami ki tipovi sa promjenljivom strukturom.
Pod stati kim tipovima 6 (ili tipovima sa stati kom strukturom)
podrazumijevamo tipove podataka kod kojih je unaprijed fiksno definisana
unutra nja struktura svakog podatka, a veli ina (koliko memorije zauzima) fiksno
se defini 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 su
vrijednosti skalari, odnosno takve veli ine koje se tretiraju kao elementarne cjeline
i za koje nema potrebe da se dalje razla u na prostije komponente.
Pod struktuiranim tipovima podataka podrazumijevamo sve slo ene tipove
podataka, koji se realizuju povezivanjem nekih elementarnih podataka u precizno
definisanu strukturu. U ulozi elementarnih podataka obi no se pojavljuju skalari ili
6

Dr Jozo J. Dujmovi , Programski jezici i metode programiranja, Akademska misao,


Beograd, 2003, str 2.3.

Programski jezik Visual Basic Zbirka zadataka

60

neke jednostavnije strukture. Primjer jednog struktuiranog tipa podataka je zapis


(eng. Record). Na primjer zapis student mo e da se sastoji od polja: broj indeksa
(tip Integer), ime i prezime (tip String), datum ro enja (tip Date), godina studija
(tip Integer) i smjer (tip String). Skalarni tipovi podataka mogu biti linearno
ure eni ili linearno neure eni. Linearno ure eni tipovi podataka su tipovi kod kojih
se vrijednosti osnovnog skupa preslikavaju na jedan interval iz niza cijelih brojeva.
Tada se za svaki podatak zna redni broj podatka. Stoga svaki podatak izuzev
po etnog ima svog predhodnika u nizu, odnosno svaki podatak ima svog
slijedbenika izuzev krajnjeg.
Pod dinami kim tipovima podataka podrazumijevamo tipove podataka kod
kojih se veli ina i/ili struktura podataka slobodno mijenja u toku obrade. Kod
dinami kih tipova sa promjenljivom veli inom podrazumijevamo da je struktura
podataka fiksna, ali se njihova veli ina dinami ki mijenja tokom obrade. Saglasno
tome se dinami ki mijenjaju i memorijski zahtjevi. Primjer dinami kog tipa
podataka je niz (eng. Array), koji mo e da ima promjenljiv broj elemenata, ali svi
njegovi elementi moraju biti istog tipa.
Kod dinami kih tipova sa promjenljivom strukturom unaprijed je fiksno
definisan jedino princip po kome se formira struktura podataka, dok se sama
konkretna struktura i koli ina podataka u memoriji slobodno dinami ki mijenjaju.
Sve promjenljive koje e se koristiti u programu, prije njihove upotrebe moraju
se eksplicitno definisati i specificirati tip, osim za univerzalni tip podataka variant.

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) ili
isklju eno (Off). Primjenom relacionih operatora =, >, <, >=, <=, <> dobijaju se
veli ine logi kog tipa.
Osnovne logi ke operacije nad logi kim tipom podataka su :
1) NOT - negacija
2) AND - konjukcija (i)
3) OR - disjunkcija (ili)
Negacijom se dobija suprotna logi ka vrijednost i za nju vrijedi
not(false) = true
not(true) = false.
Konjukcijom dva logi ka izraza se dobije ta na vrijednos, samo ako obadva (ili svi
izrazi ako ih ima vi e) izraza za rezultat imaju ta nu vrijednost i za nju vrijedi
false and false = false
false and true = false

3 TIPOVI PODATAKA

61

true and false = false


true and true = true
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 i za
nju vrijedi
false or false = false
false or true = true
true or false = true
true 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).
3.2 CIJELI BROJEVI (INTEGER)
Cjelobrojni tip podataka (eng. Integer) predstavlja najjednostavniji brojni tip
podataka. On predstavlja podskup skupa cijelih brojeva. Koji je to ta no podskup,
zavisi od konkretne definicije ovog tipa u programskom jeziku Visual Basic.
Definicija sadr i broj koji govori sa koliko bita se predstavlja taj decimalni broj u
binarnom obliku, to automatski odre uje minimalni (po etni) i maksimalni
(krajnji) broj, koji ovaj tip podatka mo e da uzme. U programskom jeziku VEE
Pro postoje sljede e definicije 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 i
pozitivne, ali i negativne cjelobrojne brojeve u rasponu (-2147483648 do
2147483647).
Kada se pi e program za svaki objekat i promjenljivu, a na osnovu maksimalno
ekivanog broja koji se mo e pojaviti, treba izabrati odgovaraju 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.
Kao i na svakom drugom standardnom tipu, tako je i na tipu Integer definisan
ta no odre eni skup operacija. To su u ovom slu aju uobi ajene cjelobrojne
aritmetri ke operacije: sabiranje (+), oduzimanje (-), mno enje (*), cjelobrojno
dijeljenje (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 sa
ovim tipom podataka.

Programski jezik Visual Basic Zbirka zadataka

62

3.3 REALNI BROJEVI


Realni tip podataka (eng. Real) predstavlja podskup skupa realnih brojeva. Koji
je to ta no podskup, zavisi od konkretne definicije ovog tipa u programskom jeziku
Visual Basic. Definicija sadr i broj koji govori sa koliko bita se predstavlja taj
decimalni broj u binarnom obliku, to automatski odre uje minimalni (po etni) i
maksimalni (krajnji) broj koji ovaj tip podatka mo e da uzme. Za ovaj tip podataka
je 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. Ovo
je potrebno uraditi kako nam program ne bi automatski dodijelio 4, 8 ili 16
zna ajnih cifri iza decimalne ta ke realnog broja. U programskom jeziku Visual
Basic postoje sljede e definicije realnog tipa podataka:
1) Single (single-precision floating-point) je 32-bitno predstavljanje, a ovaj
tip podataka sadr i realne brojeve u rasponu (3.40282347E38), sa
pribli no 8 zna ajnih decimalnih mjesta).
2) Double (double-precision floating-point) je 64-bitno predstavljanje, a
ovaj
tip
podataka
sadr i
realne
brojeve
u
rasponu
(1.7976931348623157E308), sa pribli no 16 zna ajnih decimalnih
mjesta).
3) Decimal je 112-bitno predstavljanje, a ovaj tip podataka sadr i cijele
brojeve u rasponu (+/-79 228 162 514 264 337 593 543 950 335), realne
brojeve u rasponu (+/-7.9228162514264337593543950335), sa 28
zna ajnih decimalnih mjesta). Pri tome je najmanja vrijednost
pozitivnog/negativnog broja (+/-0.0000000000000000000000000001).
Na tipu Real definisane su osnovne aritmetri ke operacije: sabiranje (+),
oduzimanje (-), mno enje (*) i dijeljenje (/). U programskom jeziku Visual Basic
postoji dosta gotovih funkcija koje rade sa ovim tipom podataka. Neke od funkcija
koje se naj
e koriste za konverziju realnog u cijeli broj su:
1) Round - zaokru ivanje realnog broja na bli u cjelobrojnu vrijednost.
2) Int - uzimanje samo cjelobrojne vrijednosti realnog broja, pri emu se
zaokru ivanje radi na manju vrijednost.
3) Fix - uzimanje samo cjelobrojne vrijednosti realnog broja, pri emu se
zaokru ivanje radi na manju vrijednost, ali po apsolutnoj vrijednosti za
negativne brojeve.
Primjer:
Round([23.0, 23.1, 23.9, 23.5, (-23.5), 24.5]), daje [23, 23, 24, 24, -24, 24].
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 TIPOVI PODATAKA

63

3.4 TEKST (STRING)


Znakovni tip podataka (eng. String) predstavlja skup: malih i velikih slova
engleskog alfabeta, cifri od 0 do 9, specijalnih karaktera i kontrolnih znakova. U
Visual Basicu promjenjive ovog tipa podatka mogu imati od 1 do 65400 znakova.
Ovaj tip podataka je zna ajan, jer kada korisnik komunicira sa ra unarom preko
ulaznih i izlaznih ure aja, vrlo je bitno da se podaci pojavljuju u formi koja je
itljiva 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").
Kada se posmatra izlaz iz nekog objekta (na kontrolnoj liniji koja spaja dva
objekta) koji je znakovnog tipa, dobijeni tekst e uvijek biti prikazan izme u
apostrofa.
ASCII kod (Amjerican Standard Code for Information Interchange7) je jedan
od najzna anijih na ina predstavljanja znakovnog tipa podataka. ASCII kod je
poznat u 7-bitnoj verziji sa 128 znakova i 8-bitnoj verziji sa 256 znakova. ASCII
kod sa 128 znakova prikazan je u tabeli 3.1.
U programskom jeziku Visual Basic postoji veliki broj gotovih funkcija koje
rade 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) - izdvaja pod tekst odre ene du ine, od
startnog znaka.
[Left("Teodora je mala",6), daje "Teodor"]
4) Right(UlazniString, BrojSlova) - izdvaja pod tekst odre ene du ine, od
krajnjeg znaka.
[Right("Teodora je mala",4), daje "mala"]
5) Mid(UIazniString,Pozicija[,Du ina]) - izdvaja pod tekst, od startnog do
zadnjeg znaka.
[Mid("Teodora je mala",0,6), daje "Teodor"]
[Mid("Teodora je mala",9,2), daje "je"]
6) Len(str) - daje broj znakova u tekstu.
[Len("Mihailo"), daje 7] i [Len("123456"), daje 6]
7) InStr([start,] string1, string2 [, compare]) - Vra a poziciju prvo
prona enog stringa u stringu.
[InStr("Mirko je ve i", "je"), daje 7] i InStr(7, "Mirko je ve i", " "), daje 9]
8) strRev(str) - daje tekst sa obrnutim redoslijeda znakova.
[strRev("Mihailo") daje "oliahiM")]
7

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

Programski jezik Visual Basic Zbirka zadataka

64

Tabela 3.1 ASCII kod

9) Trim(string) - pravi tekst bez praznih karaktera na po etku i kraju teksta.


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

3 TIPOVI PODATAKA

65

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 u tekstu u broj, prema ASCII
standardu.
[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 zamjenu
znakova u tekstu.
[RTrim ("Mihailo je veliki.", "je", "nije"), daje "Mihailo nije veliki."]

3.5 NOV ANE VRIJEDNOSTI (CURRENCY)


Nov ani tip podataka (eng. Currency) predstavlja podskup skupa realnih brojeva sa
4 zna ajna decimalna mjesta. Currency je 64-bitno predstavljanje brojeva u
rasponu (922 337 203 685 477,5808). Definicija sadr i broj koji govori sa koliko
bita se predstavlja taj decimalni broj u binarnom obliku, to automatski odre uje
minimalni (po etni) i maksimalni (krajnji) broj koji ovaj tip podatka mo e da
uzme.
3.6 DATUM (DATE)
Datum (eng. Date) tip podataka se koristi za prikaz datuma i vremena u raznim
formatima. Ovaj tip podataka u su tini predstavlja realni broj sa 64 bita. Ovaj realni
broj predstavlja broj sekundi od 1. januara 1900. godine poslije Hrista, prema UTC
(Universal Coordinated Time) vremenu. UTC vrijeme predstavlja korekciju
lokalne vremenske zone, koja je pode ena na ra unaru (Control Panel => Date
and Time => Time Zone => (GMT +01:00) Belgrade, Ljubljana), u odnosu na
GMT (Greenwich Mean Time) vrijeme. U na oj zemlji UTC vrijeme iznosi +1 sat,
jer na a vremenska zona prednja i u odnosu na Greenwich kod Londona za jedan
sat. Manje vremenske jedinice od dana (sati, minute i sekunde) predstavljaju
decimalni dio racionalnog broja. 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.

Programski jezik Visual Basic Zbirka zadataka

66

Vremenu 5 sati, 25 minuta i 35 sekundi,


na dan 21. 07. 2002. godine pridru uje se broj 37.458, 226099537.
Programski jezik Visual Basic ima gotove funkcije, koje omogu uju razne
operacije sa datumima i vremenom. Neke od tih funkcija su:
1) now() - koja uzima sistemsko vrijeme sa ra unara, a na svom izlazu daje
realni broj u formatu Real64. Dobijeni realni broj predstavlja broj sekundi
od 1. januara 1900. godine poslije Hrista, pa 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 je
od 1 do 31.
6) Month(Datum) - daje broj mjeseca u trenutnoj godini, kada je ulazna
vrijednost u ovu funkciju datum. Opseg vrijednosti izlaza 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 obliku
stringa koji simboli ki prikazuje vremensku jedinicu (godinu, mjesec, dan,
sat, minut, sekund). Vremenske jedinice baziraju se na razlici izme u dva
datuma 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.

3 TIPOVI PODATAKA

67

3.7 NEODRE ENI TIP (VARIANT)


Variant je neodre eni tip podataka, koji postoji u programskom jeziku Visual
Basic, a vezan je za deklaraciju globalnih i lokalnih promjenljivih. Kada se neka
promjenljiva deklari e kao varijant, to zna i da ona mo e da poprimi bilo koji do
sada opisani tip podatka. Promjenjva se prilago ava onom tipu podatka, koji do e
na 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 svih
ostalih tipova podataka, a to je 128-bitno predstavljanje brojeva.
Ovaj tip podatka se posebno koristi kod deklarisanja promjenljivih koje se
koriste za povezivanje sa drugim programima instalisanim na ra unaru.

Programski jezik Visual Basic Zbirka zadataka

68

4 NAREDBE SELEKCIJE I ITERACIJE


Skup naredbi ije se izvr avanje odvija u onom redoslijedu u kome su i
navedene naziva se sekvencija. U programima se pojavljuju i ta ke grananja,
odnosno mjesta u kojima se vr i izbor odgovaraju e odluke, poslije kojih
izvr avanje programa je mogu e nastaviti u raznim smjerovima, zavisno od
postavljenih uslova. Postupak izbora jednog od mogu ih smjerova naziva se
selekcija.
U programu sekvencija ini jednu logi ku cjelinu. U praksi se esto javlja
potreba da se jedan sekvencija naredbi izvr i vise puta. Vi estruko izvr avanje
jedne sekvencije naziva se iteracija (ponavljanje).
4.1 NAREDBE SELEKCIJE
Programski jezik Visual Basic ima dvije osnovne strukture selekcije. To su
strukture:
- If Then Else i
- Case.
Bilo koji problem grananja u programu se mo e rije iti preko ove dvije
strukture. Koju e se struktura izabrati zavisi prvenstveno od broja grananja u
konkretnom problemu. Kada postoji jedno do tri grananja naj
e se koristi
struktura If Then Else. Me utim, kada postoji vi e od tri grananja naj
e se
koristi struktura Case.

4.1.1 If Then Else struktura


If Then Else predstavlja struktura grananja, koja se koristi u skoro svim
programskim jezicima. Standardni dijagram ove strukte prikazan je na slici 4.1., a
struktuirani na slici 4.2. Osnovu ovog grananja ini logi ki uslov. Ako je ovaj
logi ki uslov zadovoljen (True) izvr ava se jedna naredba (ili blok naredbi), a ako
ovaj logi ki uslov nije zadovoljen (False) izvr ava se druga naredba (ili blok
naredbi). Postoji vi e verzija ove strukture. Prva verzija ove strukture je samao If
Then struktura, a njena sintaksa je
If uslov Then naredba
pri emu je:
- uslov - uslov iskazan preko logi kih operatora =, >, <, < >, >=, <=.
- naredba - mora da bude samo jedna nardba.

4 POGLAVLJE

Slika 4.1 Standardni dijagrama toka

69

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 razli it od nule i tada naredba glasi:
If Imenilac < >0 Then Rezultat = Brojilac/Imenilac
U slu aju da uslov nije zadovoljen (Imenilac = 0) navedena naredba
bi e ignorisana (presko ena) i po e izvr avanje sljede eg programskog reda.
Druga verzija ove strukture je If ... Then ... End If struktura, a njena sintaksa je
If uslov Then
Blok1
End If
pri emu je:
- uslov - uslov iskazan preko logi kih operatora =, >, <, < >, >=, <=.
- Blok1 - mo e da bude samo jedna nardba, ali i vi e naredbi.
- End If - predstavlja naredbu koja ozna ava kraj strukture grananja.
Sada se kod programa iz primjera 1 mo e napisati kao:
If Imenilac < >0 Then
Rezultat = Brojilac/Imenilac
End If
U jednom programu mo e postojati vi e struktura grananja, pa je tada puno
prakti nija ova druga varijanta u odnosu na prvu varijantu, jer se lako uo ava kraj
svake strukture grananja End If.

Programski jezik Visual Basic Zbirka zadataka

70

Tre a verzija ove strukture je If ... Then ... Else ... End If struktura, a njena
sintaksa je
If uslov1 Then
Blok1
Else
Blok2
End If
pri emu se Blok1 naredbi izvr ava 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 = X
Else
Rezultat = -X
End If
etvrta verzija ove strukture je If ... Then ... ElseIf ... Else ... End If struktura,
a njena sintaksa je
If uslov1 Then
Blok1
ElseIf uslov2
Blok2
ElseIf uslov3
Blok3

.
.
.
Else
Blok4 ' naredbe koje se izvr avaju ako nije ispunjen
nijedan prethodni uslov
End If
Pri 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 uspunjen
izvr ava se Blok2 naredbi. Ako ni uslov2 nije ispunjen tada se provjerava da li je
ispunjen uslov3 i ako je on uspunjen izvr ava se Blok3 naredbi. Me utim, ako nije
ispunjen ni jedan od postavljenih uslova u ElseIf strukturama, tada se izvr ava
Blok4 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 je
potrebno postaviti.

4 POGLAVLJE

71

Primjer 4.3
Neka se vr i progresivno oporezivanje zaposlenih radnika po sljede em principu:
iznos plate do 1000 KM oporezuje se po stopi od 15%, od 1000 KM do 1500 KM
po stopi od 20%, od 1500 KM do 2000 KM po stopi od 25% i preko 2000 KM po
stopi od 30%. Kod ovog programa za obra un poreza, primjenom navedene
strukture, bi izgledao:
If Plata <= 1000 Then
Porez = Plata * 0.15
Elself Plata <= 1500 Then
Porez = 150 + (Plata - 1000) * 0.2
Else If Plata <= 2000 Then
Porez = 150 + 100 + (Plata - 1500) * 0.25
Else
Porez = 150 + 100 + 125 + (Plata - 2000) * 0.3
End If
U ovoj strukturi grananja treba posebno voditi ra ina da se uslovni izrazi moraju
pretpostaviti u rastu em redoslijedu promjenljive. Dakle, prethodni uslov ne smije
u sebi da sadr i naredni uslov. U primjeru 5.4. prikazan je kod programa koji e za
isti tekstst zadatka kao u Primjeru3. vr iti pogre no izra unavanje poreza za plate
koje se nalaze u opsegu od 1000 KM do 1500 KM, jer prvi uslov u sebi ve sadr i
naredni uslov.
Primjer 4.4
Pogre no izra unavanje poreza.
If Plata <= 1000 Then
Porez = Plata * 0.15
Else If Plata <= 2000 Then
Porez = 150 + 100 + (Plata - 1500) * 0.25
Elself Plata <= 1500 Then
Porez = 150 + (Plata - 1000) * 0.2
Else
Porez = 150 + 100 + 125 + (Plata - 2000) * 0.3
End If
Rezervisane rije i If i End If uvijek se pi u u paru da bi se znao po etak i kraj
strukture. Prilikom obavljanja nekoliko uzastopnih logi kih testiranja razli ite
prirode potrebno je umetnuti jednu strukturu unutar druge. Pri tome je po eljno da
se prilikom pisanja koda programa, svaka unutra nja struktura uvu e za nekoliko
karaktera od po etka reda i da pri tome sve naredbe istog nivoa budu u istoj liniji.

Programski jezik Visual Basic Zbirka zadataka

72

Da bi se postigla bolja preglednost i kontrola koda programa po eljno je da se


prilikom pisanja programa u kodu pi u komentari. to postoji vi e komentara u
kodu, to je program razumljiviji. Ovo posebno dolazi do izra aja kada jedna osoba
pi e program, a druga osoba treba da program analizira ili dora uje.
Primjer 4.5
Pregledno pisanje vi estrukog grananja pomo u strukture If ... Then... End If .
If MP > (HHMAX / 2 - 16) Then
If K < 4 Then
SR = MP + 8
MP = Int(SR)
K = K + 1
Else
MP = SR + SS * KORAK
MP = Int(MP)
If SS = 10 Then
SS = 0
Else
SS = SS + 1
End If
End If
End If

Rem prvi If
Rem drugi If

Rem tre i If

Rem kraj tre eg If


Rem kraj drugog If
Rem kraj prvog If

Primjer 4.6
Nepregledno pisanje vi estrukog grananja pomo u strukture If ... Then... End If .
If MP > (HHMAX / 2 - 16) Then
If K < 4 Then
SR = MP + 8
MP = Int(SR)
K = K + 1
Else
MP = SR + SS * KORAK
MP = Int(MP)
If SS = 10 Then
SS = 0
Else
SS = SS + 1
End If
End If
End If

4 POGLAVLJE

73

4.1.2 Case struktura


Select Case predstavlja struktura grananja, koja se koristi u skoro svim
programskim jezicima. Standardni dijagram ove strukte prikazan je na slici 4.3.
Struktura Select Case upotrebljava se, obi no, kada se na odre enom mjestu u
programu donosi odluka o razli itim smjerovima izvr avanja programa na osnovu
vrijednosti jedne promjenljive. Takvi slu ajevi mogu se katkada rje avati i
upotrebom strukture If ...Then, ali je, esto, struktura Select Case jasnija i
efikasnija. Ova struktura je posebno pogodna za obradu menija sa vise opcija,
odnosno liste sa vise stavki prilikom primjene metode Addltem.
Struktura se obavezno zavr ava propisanim rije ima End Select kako bi ra unar
prepoznao kraj ove strukture.

Slika 4.3 Standardni dijagrama toka Case strukture


Postoji vi e verzija ove strukture. Prva verzija ove strukture je samao Select
Case struktura, a njena sintaksa je
Select Case promjenljiva
Case vrijednost1
Blok1
Case vrijednost2
Blok2
:
.
Case Else
Rem Ovo mo e biti opcioni uslov
Blok4
Rem naredbe ako nijedan predhodni uslov nije ispunjen
End Select

Programski jezik Visual Basic Zbirka zadataka

74

Pri emu se Blok1 naredbi izvr ava samo ako promjenjiva po kojoj se ispituje
Select Case struktura poprimila vrijednost1. Blok2 naredbi izvr ava se samo ako
promjenjiva po kojoj se ispituje Select Case struktura poprimila vrijednost2. Case
Else je opcioni dio Select Case struktura, koji e se izvr iti samo ako promjenjiva
po kojoj se radi selekt nije poprimila nijednu predhodno navedenu vrijednost. Broj
Case blokova (odnosno uslova) u jednoj Select Case strukturi nije ograni en i
zavisi samo od broja uslova koje je potrebno postaviti. Za ovaj vid strukture nije
bitan redoslijed postavljanja Case vrijednosti.
Primjer 4.7
Napisati program koji ispisuje poruku sa ocjenom koju je dobio u enik, na osnovu
ocjene koja se upisuje preko Text boxa.
Ocjena = Text1
Select Case Ocjena
Case 2
poruka = "Ucenik je dobio ocjenu
Case 3
poruka = "Ucenik je dobio ocjenu
Case 4
poruka = "Ucenik je dobio ocjenu
Case 5
poruka = "Ucenik je dobio ocjenu
Case Else
poruka = "Ucenik je dobio ocjenu
End Select
MsgBox(poruka, vbYesNo, "Ocjena")

2"
3"
4"
5"
1"

Druga verzija ove strukture je Select Case Is struktura. Case Is naredba koristi
se u kombinaciji sa relacionim operatorima >, <, <=, >=, a njena sintaksa je
Select Case promjenljiva
Case Is relacioni operator vrijednost1
Blok1
Case 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 ispunjen
End Select

4 POGLAVLJE

75

Pri emu se Blok1 naredbi izvr ava samo ako promjenjiva po kojoj se ispituje
Select Case struktura poprimila vrijednost koja zadovoljava logi ki uslov zadat
pomo u relacionog operatora. Blok2 naredbi izvr ava se samo ako promjenjiva po
kojoj se ispituje Select Case struktura poprimila vrijednost loja zadovoljava jedan
od dva logi ka uslova.
U ovoj strukturi grananja treba posebno voditi ra ina da se uslovni izrazi moraju
pretpostaviti u rastu em redoslijedu promjenljive. Dakle, prethodni uslov ne smije
u sebi da sadr i naredni uslov.
Primjer 4.8
Neka se vr i progresivno oporezivanje zaposlenih radnika po sljede em principu:
iznos plate do 1000 KM oporezuje se po stopi od 15%, od 1000 KM do 1500 KM
po stopi od 20%, od 1500 KM do 2000 KM po stopi od 25% i preko 2000 KM po
stopi od 30%. Kod ovog programa za obra un poreza bi izgledao:
plata = Text1
Select Case plata
Case Is <= 1000
porez = plata
Case Is > 2000
porez = 150 +
Case Is > 1500
porez = 150 +
Case Is > 2000
porez = 150 +
End Select

* 0.15
(plata - 1000) * 0.2
100 + (plata - 1500) * 0.25
100 + 125 + (plata - 2000) * 0.3

Tre a verzija ove strukture je Select Case To struktura. Ova struktura se koristi
kada elimo uslov grananja zadati kao interval brojeva. Uslov je zadovoljen i kada
promjenjiva poprimi vrijednost brojeva preko kojih je interval odre en, a njena
sintaksa je
Select Case promjenljiva
Case Broj1 To Broj2
Blok1
Case Broj3 To Broj4
Blok2
:
.
Case Else
Rem Ovo mo e biti opcioni uslov
Blok4
Rem naredbe ako nijedan predhodni uslov nije ispunjen
End Select

Programski jezik Visual Basic Zbirka zadataka

76

Pri emu se Blok1 naredbi izvr ava samo ako promjenjiva po kojoj se ispituje
Select Case struktura poprimila vrijednost koja se nalazi u intervalu izme u broja1
i broja2. Za ovaj vid strukture je bitan redoslijed postavljanja Case logi kih uslova,
jer predhodni u sebi ne smije sadr ati naredni logi ki uslov.
Primjer 4.9
Jedna trgova ka ku a prodaje robu uz razli ite iznose popusta. Za iznos robe koji je
izme u 100 KM i 499 KM uz 8% popusta. Za iznos robe koji je izme u 500 KM i
2000 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 Cijena
Case Is < 100
Popust = 0
Case 100 To 499
Popust = Cijena * 0.08
Case 500 To 2000
Popust = Cijena * 0.12
Case Is > 2000
Popust = Cijena * 0.15
End Select
etvrta verzija ove strukture je kombinacija Case To i Case Is struktura. Ova
struktura se koristi kada elimo na napravimo slo en uslov grananja. Uslov je
zadovoljen i kada promjenjiva poprimi vrijednost brojeva ili iz intervala brojeva ili
ako je zadovoljen logi ki uslov, a njena sintaksa je
Select Case promjenljiva
Case Broj1 To Broj2, relacioni operator vrijednost1
Blok1
Case Broj3 To Broj4, 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 = 777
Case 500 To 2000, Is > 5000

4 POGLAVLJE

77

Case struktura mo e biti nepregledna, ako svaki blok unutar Case strukture ima
proizvoljnu du inu. To bi dovelo do toga da program postaje nepregledan, ako bi
imali vi e Case grananja. Zbog toga je po eljno da blokovi unutar Case strukture
ne budu previ e dugi. A ako blok treba da bude dug onda ga treba napisati kao
proceduru, tako da se u Case strukturi pi e samo poziv procedura koje se pozivaju,
a ne itav kod tih procedure. Na ovaj na in Case stuktura postaje puno preglednija
za programera.
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 preko
ovih struktura. Koju e se struktura izabrati zavisi prvenstveno od toga da li se
neka struktura 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 svim
programskim jezicima. Struktuirani dijagram ove strukte prikazan je na slici 4.4.
For ... Next petlja omogu ava da se odre ena
naredba (ili skup naredbi) ponavlja ta no
predvi eni broj puta. Sintaksa ove naredbe glasi:
For promjenljiva = po etak To kraj [Step korak]
Iterativne naredbe
[Exit For]
Next promjenljiva

Slika 4.4 Dijagram For Next


Memorijska promjenljiva uve
svakom sljede em ponovnom
Step korak. Promjenljiva je,

Vrijednost promjenljive kojom po inje


izvr avanje sekvencije je po etak. Iteracija traje
sve dok promjenljiva ne dostigne vrijednost kraj.
ava se za jedan (promjenljiva = promjenljiva + 1) u
izvr avanju sekvencije ukoliko nije odabrana opcija
u stvari, broja ija vrijednost zavisi od veli ine

Programski jezik Visual Basic Zbirka zadataka

78

koraka. Ako je korak 1 onda ga nije potrebno pisati u For ... Next strukturi.
Me utim, ako elimo da korak bude razli it od jedan onda se on mora navesti.
Korak ponavljanja mo e biti cijeli, realan, ali i negativan broj, a mo e se napisati
kao:
- For x = 1 To 10 Step 0.5 (ponavljanje 19 ciklusa)
- For x = 1 To 10 Step 2
(ponavljanje 5 ciklusa)
- For x = 10 To 1 Step -1 (ponavljanje 10 ciklusa)
U primjeru 4.11. opisano je kako funkcioni e jedna For petlja koja ima 4
ciklusa ponavljanja dvije naredbe.
Primjer 4.11
AA = 6
BB = 0
For j = 1 To 4
AA = AA - BB - j
BB = BB + j
Next j

Rje enje
1) Ciklus j = 1, AA = 5, BB = 1
2) Ciklus j = 2, AA = 2, BB = 3
3) Ciklus j = 3, AA = -4, BB = 6
4) Ciklus j = 4, AA = -14, BB = 10
Na kraju AA= -14, BB = 10

Unutar jedne For petlje mo e postojati jedna, ali i vi e If Then struktura


grananja. U primjeru 4.12. opisano je kako funkcioni e jedna For petlja koja ima 4
ciklusa ponavljanja dvije naredbe i jednog grananja (sa 5 kodnih linija).
Primjer 4.12
AA = 2
BB = 3
For J = 1 To
BB = AA +
AA = AA +
If BB = 6
AA =
Else
AA =
End If
Next J

4
BB - J
J
Then
-6

Rje enje
1) Ciklus j = 1, BB = 4, AA = 3, Else, AA = 4
2) Ciklus j = 2, BB = 6, AA = 6, Then, AA = -6
3) Ciklus j = 3, BB = -3, AA = -3, Else, AA = 0
4) Ciklus j = 4, BB = -7, AA = 4, Else, AA = 8
Na kraju AA= 8, BB = -7

AA + J

Unutar jedne For petlje mo e postojati jedna, ali i vi e Select Case struktura
grananja. Unutar jedne For petlje mo e se kombinovati vi e grananja od kojih su
neka If Then, neka Select Case. Bez obzira kako se kombinuju ova grananja, uvijek
treba izvr avati jednu po jednu kodnu liniju. U primjeru 4.13. opisano je kako
funkcioni e jedna For petlja koja ima 4 ciklusa ponavljanja jedne naredbe i jednog
Case grananja (sa 10 kodnih linija).

4 POGLAVLJE

79

Primjer 4.13
AA = 3
BB = -1
For 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 Select
Next J

Rje enje
1) Ciklus j = 1, BB = 4, AA = 3, Else, AA = 4
2) Ciklus j = 2, BB = 6, AA = 6, Then, AA = -6
3) Ciklus j = 3, BB = -3, AA = -3, Else, AA = 0
4) Ciklus j = 4, BB = -7, AA = 4, Else, AA = 8
Na kraju AA= 8, BB = -7

Primjer 4.14
AA = 0
BB = 3
With MSFlexGrid1
For 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 J
Next I
End With

Rje enje
1) Ciklus I = 1, If 1 - Else, AA = 1, J = 1,
If2 - Then, AA = 1, BB = 3,
If3 - Else, elija Tabele(1,1) = BB = 3
2) Ciklus I = 1, J = 2,
If2 - Then, AA = 2, BB = 2,
If3 - Else, elija Tabele(1,2) = BB = 2
3) Ciklus I = 1, J = 3,
If2 - Then, AA = 4, BB = -1,
If3 - Else, elija Tabele(1,3) = BB = -1
4) Ciklus I = 1, J = 4,
If2 - Else, AA = 6, BB = 5,
If3 - Then, elija Tabele(1,4) = AA = 6
5) Ciklus I = 2, If 1- Then, BB = -1, J = 1,
If2 - Else, AA = 9, BB = 8,
If3 - Then, elija Tabele(2,1) = AA = 9
6) Ciklus I = 2, J = 2,
If2 - Then, AA = 9, BB = 1,
If3- Then, elija Tabele(2,2) = AA = 9
7) Ciklus I = 2, J = 3,
If2 - Else, AA = 10, BB = 11,
If3 - Then, elija Tabele(2,3) = AA = 10
8) Ciklus I = 1, If1- Else, AA = 1, J = 1,
If2 - Then, AA = 12, BB = 1,
If3 - Then, elija Tabele(2,3) = AA = 12

Programski jezik Visual Basic Zbirka zadataka

80

Unutar jedne For petlje mo e postojati druga For petlja. Ovo se uglavnom
koristi kod popunjavanja dvodimenzionih matrica. Ukupan broj ciklusa se odre uje
kao umno ak broja ciklusa vanjske i broja ciklusa unutra nje petlje. U primjeru
4.14. opisano je kako funkcioni e program u kome vanjska For petlja koja ima 2
ciklusa (odre uje redni broj reda tabele), a unutra nja petlja ima 4 ciklusa
(odre uje redni broj kolone tabele). Pokaza e se da u ovom programu ima ukupno
8 ciklusa u kojima se upisuju podaci u MSFlexGrid dvodimenzionu tabelu.
Na kraju popunjena tabela e izgledati
3
9
Primjer 4.15
AA = 0
BB = 3
With MSFlexGrid1
For 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 I
Next K
End With

2
9

-1
10

6
12

Rje enje
1) Ciklus K = 0, I = 1, J = 1, If1 - Then, AA = 0,
BB = 4, If2 - Else, Tabele(0,1,1) = BB = 4
2) Ciklus K = 0, I = 1, J = 2, If1 - Then, AA = 1,
BB = 4, If2 - Else, Tabele(0,1,2) = BB = 4
3) Ciklus K = 0, I = 1, J = 3, If1 - Then, AA = 3,
BB = 2, If2 - Else, Tabele(0,1,3) = BB = 3
4) Ciklus K = 0, I = 1, J = 4, If1 - Then, AA = 6,
BB = -3, If2 - Else, Tabele(0,1,4) = BB = -3
5) Ciklus K = 0, I = 2, J = 1, If1 - Else, AA = 11,
BB = 8, If2 - Then, Tabele(0,2,1) = AA = 11
6) Ciklus K = 0, I = 2, J = 2, If1 - Then, AA = 11,
BB = -1, If2 - Else, Tabele(0,2,2) = BB = -1
7) Ciklus K = 0, I = 2, J = 3, If1 - Else, AA = 14,
BB = 13, If2 - Then, Tabele(0,2,3) = AA = 14
8) Ciklus K = 0, I = 2, J = 4, If1 - Then, AA = 16,
BB = -1, If2 - Else, Tabele(0,2,4) = BB = -1
9) Ciklus K = 1, I = 1, J = 1, If1 - Else, AA = 19,
BB = 19, If2 - Then, Tabele(1,1,1) = AA = 19
10) Ciklus K = 1, I = 1, J = 2, If1 - Then, AA =19,
BB = 0, If2 - Else, Tabele(1,1,2) = BB = 0
11) Ciklus K = 1, I = 1, J = 3, If1 - Else, AA = 21,
BB = 22, If2 - Then, Tabele(1,1,3) = AA = 21
12) Ciklus K = 1, I = 1, J = 4, If1 - Then, AA =23,
BB = -1, If2 - Else, Tabele(1,1,4) = BB = -1
13) Ciklus K = 1, I = 2, J = 1, If1 - Else, AA = 27,
BB = 27, If2 - Then, Tabele(1,2,1) = AA = 27
14) Ciklus K = 1, I = 2, J = 2, If1 - Then, AA =26,
BB = 2, If2 - Else, Tabele(1,2,2) = BB = 2

4 POGLAVLJE

81

15) Ciklus K = 1, I = 2, J = 3, If1 - Then, AA =26,


BB = -23, If2 - Else, Tabele(1,2,3) = BB = -23
16) 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, ali
prakti no se koriste samo tri nivoa For petlje. Program koji ima tri nivoa For petlje
obi no se koristi za kod popunjavanja trodimenzionih matrica. Ukupan broj ciklusa
se odre uje kao umno ak broja ciklusa vanjske, prve unutra nje petlje i druge
unutra nje petlje. U primjeru 4.15. opisano je kako funkcioni e program u kome
vanjska For petlja koja ima 2 ciklusa (odre uje dubinu tabele), prva unutra nja For
petlja koja ima 2 ciklusa (odre uje redni broj reda tabele), a unutra nja petlja ima 4
ciklusa (odre uje redni broj kolone tabele). Pokaza e se da u ovom programu ima
ukupno 16 ciklusa u kojima se upisuju podaci u trodimenzionu tabelu.
Na kraju popunjena trodimenziona matrica e izgledati
Tabela u prvom redu (K = 0)
4
11

4
-1

2
14

-3
-1

Tabela u drugom redu (K = 1)


19
27

0
2

21
-23

-1
52

FOR ... ENDFOR struktura ima sintaksu


FOR i = 1 TO 10
a=a+i
ENDFOR
Za razliku od For ... Next strukture kod koje se ponavljanje nekog bloka naredbi
vr i ta no odre eni broj puta nakon naredbe Next, kod strukture FOR ... ENDFOR
ponavljanje nekog bloka naredbi vr i ta no odre eni broj puta kada se do e do
naredbe ENDFOR.

4.2.2 Do While ... Loop struktura


Do While ... Loop predstavlja strukturu ponavljanja, koja se koristi u skoro svim
programskim jezicima. Blok dijagram ove strukte prikazan je na slici 4.5. Petlja
Do While ... Loop omogu ava da se odre ena naredba (ili skup naredbi) ponavlja
sve dok postavljeni uslov ne bude ispunjen. Prema ovom blok dijagramu blok
naredbi (Blok1) e se izvr avati sve dok je uslov P ispunjen. U ciklusu ponavljanja
kada uslov P ne bude ispunjen program izlazi iz petlje. Tada po inje da se izvr ava

Programski jezik Visual Basic Zbirka zadataka

82

blok naredbi (Blok2) koji se nalazi izvan ove petlje. Kod ove strukture treba voditi
dobro 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 na ulazu 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 trajno izgubljene. Za ovu petlju
je karakteristi no da se blok koji se ponavlja (Blok1) ne mora nikada biti izvr avan,
ako uslov za ponavljanje (Uslov P) u prvom prolazu kroz petlju nije ispunjen. Tada
e se izvr avati samo naredbe Blok1.

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 predstavlja izraz sastavljen od jedne ili vi e
promjenjivih povezanih logi kim operatorima (=, <,>, < >, >= ili <=). Ovaj uslov
mo e biti ispunjen ili ne ispunjen. Iterativne naredbe predstavljaju jednu ili vi e
naredbi koje se ponavljaju u ovoj petlji. LOOP predstavlja klju nu rije koja
ozna ava da se od ove naredbe program vra a na po etak petlje. Ovo kao i naredba

6 PRIMJERI VISUAL BASIC PROGRAMA

83

EXIT predstavlja opcionu komandu u ovoj strukturi. EXIT predstavlja komandu


koja omogu uje trenutni izlazak iz ove petlje, bez obzira da li je po etni uslov
ispunjen.
U primjeru 4.16. opisano je kako funkcioni e jedna Do While ... Loop petlja
koja ima 4 ciklusa ponavljanja tri naredbe.
Unutar jedne Do While ... Loop petlje mo e postojati jedna, ali i vi e If Then
ili Case struktura grananja. U primjeru 4.17. opisano je kako funkcioni e jedna
Do While ... Loop petlja koja ima 4 ciklusa ponavljanja dvije naredbe i jednog
grananja (sa 5 kodnih linija).
Primjer 4.16
Rje enje
AA = 3
1) Ciklus, uslov ispunjen, AA = 4, BB = 3, j = 2
BB = 2
2) Ciklus, uslov ispunjen, AA = 5, BB = 5, j = 3
J = 1
3) Ciklus, uslov ispunjen, AA = 7, BB = 8, j = 4
Do While J < 5
4) Ciklus, uslov ispunjen, AA = 11, BB = 12, j = 5
AA= AA + BB - J 5) Ciklus se ne e izvr iti jer uslov nije ispunjen i
BB = BB + J
nakon 4 ciklusa petlja se zavr ava.
J = J + 1
Na kraju AA= 11, BB = 12
Loop
Primjer 4.17
AA = 1
BB = 2
J = 0
Do While J < 4
BB = AA + BB - J
AA = AA + J
If BB = 4 Then
AA = -1
Else
AA = AA + J
End If
J = J + 1
Loop

Rje enje
1) Ciklus, uslov ispunjen, BB = 3, AA = 1, If - Else,
AA = 1, j = 1
2) Ciklus, uslov ispunjen, BB = 3, AA = 2, If - Else,
AA = 3, j = 2
3) Ciklus, uslov ispunjen, BB = 4, AA = 5, If - Then,
AA = -1, j = 3
4) Ciklus, uslov ispunjen, BB = 0, AA = 2, If - Else,
AA = 5, j = 4
5) Ciklus se ne e izvr iti jer uslov nije ispunjen i
nakon 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 na
strukturi Do While ... Loop. Glavna razlika izme u ove dvije strukture le i u
injenici 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 naredbi
nije morao izvr iti ni jedan put. Blok dijagram ove strukte prikazan je na slici 4.6.

Programski jezik Visual Basic Zbirka zadataka

84

Sintaksa ove naredbe glasi:


DO
Iterativne naredbe
LOOP WHILE logi ki uslov
U ovoj strukturi logi ki uslov predstavlja izraz sastavljen od jedne ili vi e
promjenjivih povezanih logi kim operatorima (=, <,>, < >, >= ili <=). Ovaj uslov
mo e biti ispunjen ili ne ispunjen. Iterativne naredbe predstavljaju jednu ili vi e
naredbi koje se ponavljaju u ovoj petlji. LOOP WHILE predstavlja klju nu rije
koja ozna ava da se od ove naredbe program vra a na po etak petlje, ali samo ako
je logi ki uslov ispunjen.
Kod ove strukture treba tako e voditi ra una da ne do e do pojave koja se zove
beskona 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 = 3
BB = 2
J = 1
Do
AA = AA + BB - J
BB = BB + J
If AA = 6 Then
BB = -7
Else
BB = BB + J
End If
J = J + 1
Loop While J < 5

Rje enje
1) Ciklus, uslov ispunjen, AA = 4, BB = 3, If - Else,
BB = 4, j = 2
2) Ciklus, uslov ispunjen, AA = 6, BB = 6, If - Then,
BB = -7, j = 3
3) Ciklus, uslov ispunjen, AA = -4, BB = -4, If - Else,
BB = -1, j = 4
4) Ciklus, uslov ispunjen, AA = -9, BB = 3, If - Else,
BB = 7, j = 5
5) Ciklus se ne e izvr iti jer uslov nije ispunjen i
nakon 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 na
strukturi Do ... Loop While. Glavna razlika izme u ove dvije strukture le i u
injenici da se u strukturi Do ... Loop Until blok naredbi koji se eli ponavljati
(Blok1) izvr ava sve dok logi ki uslov nije ispunjen, za razliku od predhodne
strukture Do ... Loop While kod koje se ovaj blok naredbi izvr ava dok je logi ki

6 PRIMJERI VISUAL BASIC PROGRAMA

85

uslov ispunjen. I kod ove strukture se blok naredbi za ponavljanje mora izvr iti bar
jednom. Blok dijagram ove strukte prikazan je na slici 4.7.
Sintaksa ove naredbe glasi:
DO
Iterativne naredbe
LOOP UNTIL logi ki uslov

Slika 4.7 Dijagram Do Loop Until

U ovoj strukturi logi ki uslov predstavlja


izraz sastavljen od jedne ili vi e
promjenjivih
povezanih
logi kim
operatorima (=, <,>, < >, >= ili <=). Ovaj
uslov mo e biti ispunjen ili ne ispunjen.
Iterativne naredbe predstavljaju jednu ili
vi e naredbi koje se ponavljaju u ovoj
petlji. LOOP UNTIL predstavlja klju nu
rije koja ozna ava da se od ove naredbe
program vra a na po etak petlje, ali samo
ako logi ki uslov nije ispunjen.
Kod ove strukture treba tako e voditi
ra una da ne do e do pojave koja se zove
beskona na petlja.

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 = 0
BB = 1
j = 0
Do
AA= AA - BB + 2
If AA < 2 Then
BB = 5
Else
BB = AA + 1
End If
j = j + 1
Loop Until j > 3

Rje enje
1) Ciklus, uslov ispunjen, AA = 1, If - Then,
BB = 5, j = 1
2) Ciklus, uslov ispunjen, AA = -2, If - Then,
BB = 5, j = 2
3) Ciklus, uslov ispunjen, AA = -5, If - Then,
BB = 5, j = 3
4) Ciklus, uslov ispunjen, AA = -8, If - Then,
BB = 5, j = 4
5) Ciklus se ne e izvr iti jer uslov nije ispunjen i
nakon 4 ciklusa petlja se zavr ava.
Na kraju AA= -8, BB = 5

Programski jezik Visual Basic Zbirka zadataka

86

6 PRIMJERI VISUAL BASIC PROGRAMA

87

5 OBJEKTI VISUAL BASICA


Visual Basic posjeduje veliki broj gotovih objekata, koji stoje programeru na
raspolaganju. U ovom poglavlju bi e predstavljeni samo neki objekti koji se
naj
e koriste u Visual Basicu. Za ve inu objekata su dati primjeri programa,
kako se navedeni objekti mogu koristiti prilikom pisanja programa. Svi oni koji
ele da prona u dodatne objekte, mogu ih lako prona i u helpu Visual Basica.
5.1 OBJEKAT LABEL
U pogramskom jeziku Visual Basic objekat Label
se uglavnom koristi za
prikaz teksta koji se pojavljuje uvijek na istom mjestu na formi. Tekst koji se
ispisuje mo e se mijenjati preko osobina (Properties) ili preko programa kroz kod.
Labele se obi no postavljaju lijevo ili iznad drugih objekata, kako bi tekst u njima
bli e opisivao te druge objekte ili itavu formu. Najbitnije osobine ovog objekta su:
- Name za definisanje imena objekta.
- Alignment za izbor poravnanja ispisa teksta u objektu (lijevo, desno, centrirano ili
uz obadvije strane).
- Appearance za izbor 3-D ili ravnog izgleda objekta.
- AutoVel omogu uje automatsko pro irenje irine objekta na onu veli inu koja
odgovara 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.
5.2 OBJEKAT TEXTBOX
Objekat TextBox
se koristi za unos vrijednosti u program, ali i za prikaz
rezultata obrade programa. Najbitnije osobine ovog objekta su:
- Name za definisanje imena objekta.
- Alignment za izbor poravnanja ispisa teksta u objektu (lijevo, desno, centrirano ili
uz obadvije strane).
- Appearance za izbor 3-D ili ravnog izgleda objekta.
- AutoVel omogu uje automatsko pro irenje irine objekta na onu veli inu koja
odgovara 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 koji se ispisuje.

Programski jezik Visual Basic Zbirka zadataka

88

- PasswordChar za izbor karaktera koji e se koristiti za skriveno prikrivanje


teksta. Naj
e se koristi karakter *, kada se ovaj objekat koristi za unos lozinke.
- 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, a kursor se nalazi u ovom
objektu.
- MouseUp, MouseDown, MouseMove se pokre e prelaskom mi a preko objekta.
U ovaj objekat (sa imenom Text1) se programski preko koda upisuje eljeni
tekst (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 e
sintakse
Proba1 = Text1.Text
Ovaj objekat se mo e vrlo lako iskoristiti za pravljenje forme preko koje se
omogu uje dalji pristup programu kao na slici 5.1. Za ovo su nam potrebna samo
dva ova objekta od kojih jedan koristimo za unos korisnika, a drugi za unos
lozinke. TextBoks u koji se unosi korisnik ima standardnu postavku i omogu uje da
se potpuno vidi tekst koji se unosi u njega (odnosno da se vidi ime korisnika).
Drugi TextBoks za unos lozinke potrebno je podesiti, tako da tekst koji se upisuje u
njega bude nevidljiv. To se posti e pode avanjem osobine PasswordChar na *. U
osobinu Text se unosi tekst koji elimo da poslu i kao lozinka (u na em primjeru je
to tekst "Mira"), kao na slici 5.2.

Slika 5.1 Forma za unos lozinke

Slika 5.2 Unos lozinke

Slijedi kod programa koji omogu uje provjeru lozinke.


Private Sub Form_Load()
Txtkorisnik.Text = ""
TxtLozinka.Text = ""
End Sub

6 PRIMJERI VISUAL BASIC PROGRAMA

89

Private Sub Dalje_Click()


Korisnik = Txtkorisnik.Text
Lozinka = TxtLozinka.Text
If Korisnik = "Mirko" Then
If Lozinka = "Mira" Then
MsgBox "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

5.3 OBJEKAT COMMANBUTTON


Pomo u komandnog dugmeta
se naj
e vr i upravljanje
u programu. Koristi se za pokretanje i zaustavljanje nekih procesa u programu.
Kada se ovaj objekat postavi na formu i zatim uradi klik mi a na njega, u kodu
programa se automatski generi e procedura za rad sa ovim objektom. Na jednoj
formi obi no ima vi e ovih objekata. Najbitnije osobine ovog objekta su:
- Name za definisanje imena objekta.
- Appearance za izbor 3-D ili ravnog izgleda 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 klik
mi a na ovaj objekat.
5.4 OBJEKTI CHECKBOX I OPTIONBUTTON
je objekat koji omogu uje da korisnik u
Kontrolna ku ica CheckBox
programu na jednoj formi mo e istovremeno da izabere vi e ponu enih opcija. Sa
druge strane dugme izbora OptionButton
je objekat koji se koristi kada
korisnik u programu mo e istovremeno da izabere samo jednu od vi e ponu enih
opcija. Izbor jednog dugmeta izbora, klikom mi a, trenutno poni tava sve ostale
izbore koji se nalaze na formi ili na jednoj grupi, ako forma ima vi e grupa.

Programski jezik Visual Basic Zbirka zadataka

90

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, izabran
1-vbChecked, ili uslovno izabran 2-Grayed) i objekta OptionButton (mo e biti ne
izabran False ili izabran True).
Nad ovim objektima se naj
e koristi doga aj Click, a to je jednostruki klik
mi a na ovaj objekat ime se objekti biraju ili poni tavaju.
Na slici 5.1 prikazan je izgled programa u kome se pomo u dva objekta
CheckBox biraju oblici fonta (Bold ili Italic), a pomo u tri objekta OptionButton
bira se samo jedna veli ina fonta (8 ili 12 ili 16). Doga aj Click kontrolne ku ice
pojavljuje se onog trenutka kad kliknete na tu kontrolu. Potprogram ovog doga aja
ispituje je li kontrolna ku ica potvr ena (je li Value = vbChecked). Ako je, tekst se
pretvara u podebljano ili nako eno pismo postavljanjem svojstava Bold ili Italic
objekata u kome se nalazi tekst koji se pode ava.

Slika 5.1 Upotreba objekta CheckBox i OptionButton


Kod koji prati ovaj program je:
Private Sub ChkBold_Click()
If ChkBold.Value=vbChecked Then Rem ako je potvr en
TxtDisplay.Font.Bold = True
Else
Rem ako nije potvrden
TxtDisplay.Font.Bold = False
End If
End Sub

6 PRIMJERI VISUAL BASIC PROGRAMA


Private Sub ChkItalik_Click()
If ChkItalik.Value=vbChecked Then
TxtDisplay.Font.Italic = True
Else
Rem ako nije potvrden
TxtDisplay.Font.Italic = False
End If
End Sub

91

Rem potvr en

Private Sub Opt12_Click()


TxtDisplay.Font.Size = 12
End Sub
Private Sub Opt16_Click()
TxtDisplay.Font.Size = 16
End Sub
Private Sub Opt8_Click()
TxtDisplay.Font.Size = 8
End Sub
Da bi se inicijalno postavile osobine ovih objekata kada se program pokrene,
potreno je u proceduri Form_Load inicijalno postaviti vrijednosti svakog objekta
na True (ako elimo da objekat bude selektovan) ili na False (ako elimo da
objekat ne bude selektovan). Kod koji prati ovaj program je:
Private Sub Form_Load()
ChkBold.Value = False
ChkItalik.Value = False
Opt8.Value = True
Opt12.Value = False
Opt16.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 5.2 prikazan je
izgled programa u kome je prikazan program u kome se bira jelo sa prilozima.
5.5 OBJEKAT FRAME
Objekat okvir Frame
se koristi za grupisanje objekata istog tipa na jednoj
formi. Na jednoj formi mo e postojati vi e okvirova, kao u primjeru programa
prikazanom na slici 5.2. Postupak grupisanja objekata dugme izbora u okviru
odvija se u sljede im koracima:
1) Odaberite objekat okvira (frame) u alatnom okviru i kreirajte okvir na formi.
2) Odaberite objekat dugme izbora u alatnom okviru i kreirajte ga unutar okvira.

Programski jezik Visual Basic Zbirka zadataka

92

3) Ponavljajte 2. korak za svako dodatno dugme izbora koji elite dodati u okvir.
Kreiranje okvira pa tek zatim kreiranje objekata na okviru dopu ta vam
pomicanje okvira zajedno sa objektima. Ako ve postoje e objekte pomaknete na
okvir, oni se ne e pomicati pri pomaku okvira. Ako imate ve kreirane objekte na
formi, a koje elite grupisati na novom okviru, prvo odaberite sve objekte. Zatim ih
odsijecite sa cut i nalijepite sa paste na objekat okvira.
Najbitnije osobine ovog objekta su:
- Name za definisanje imena objekta.
- Caption za upis teksta koji e biti ispisan kao naslov na ovom objektu.
- Font za izbor tipa, stila i veli ine fonta.

Slika 5.2 Upotreba objekta CheckBox i OptionButton u vi e okvira


5.6 OBJEKTI LISTBOX I COMBOBOX
Okviri sa popisom - listom (list box slika 5.3) i kombinovani okviri (combo box
slika 5.4) daju listu iz koje korisnik bira eljenu vrijednost. Okviri s popisom i
kombinovani okviri su djelotvoran na in predstavljanja velikog broja stavki
korisniku na ograni enom prostoru. U pravilu, stavke su ispisane okomito u jednoj

6 PRIMJERI VISUAL BASIC PROGRAMA

93

koloni, iako se mo e napraviti i okvir sa vi e kolona. Ako je broj stavki ve i od


onog to okvir sa popisom ili kombinovani okvir mogu prikazati, u kontroli e se
automatski pojaviti trake za pomicanje (ScrollBar). Ove kontrole imaju ugra ene
metode za dodavanje, brisanje i pronala enje vrijednosti iz njihovih zbirki tokom
rada aplikacije.

Slika 5.3 list box

Slika 5.4 combo box

Najbitnije osobine ovih objekata su:


- Name za definisanje imena objekta.
- Appearance za izbor 3-D ili ravnog izgleda objekta.
- List polje u koje se unose stavke koje se nalaze u listi.
- ItemData broj stavke koja mo e biti izabrana u listi.
- MultiSelekt pokazuje koliko se stavki mo e izabrato, 0-samo jedna stavka, 1-vi 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 (combo box).
U Visual Basicu postoji nekoliko komandi za programsko upravljanje listama:
AddItem - programski dodavanje novog lana liste.
Clear - bri e sve stavke iz liste.
Removeitem - bri e pojedina ne stavke iz liste.
Nad ovim objektom se naj
e koristi doga aj Click (jednostruki klik mi a na
ovaj objekat) i doga aj DblClick (dvostruki klik mi a).
Kod koji prati ove naredbe u programu je:
Private Sub Brisi_Click()
List1.RemoveItem 3 Rem brisanje 4 lana liste
End Sub
Private Sub Brisisve_Click()
List1.Clear
Rem brisanje svih lanova liste
End Sub

Programski jezik Visual Basic Zbirka zadataka

94

Private Sub Dodaj_Click()


List1.AddItem "Dodatak1" Rem dodavanje novog lana
End 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 se
dodaje prikazuje se odmah u listi. Mo ete dodati stavke okvirima sa popisom bez
ponavljaju eg kori tenja postupka AddItem tako da upi ete stavke u osobinu List u
prozoru s svojstvima. Nakon upisa svake stavke, pritisnite CTRL + ENTER za
prelaz u idu u liniju. Ovakav postupak omogu uje vam upis vi estrukih unosa u
vi ekolonsku listu sa popisom.
Lista se mo e puniti i sa podacima koji se preuzimaju iz baze podataka, a
primjer jednog takvog koda je
Rezervoar.MoveFirst
Do While Rezervoar.EOF = False
priv = Rezervoar("Regbroj")
List1.AddItem (priv)
Combo1.AddItem (priv)
Rezervoar.MoveNext
Loop
Podaci se iz liste mogu preuzimati u promjenjive ili u druge objekte (naj
e
TextBox). Preuzimanje podataka iz liste se naj
e radi preko procedure klik mi a
na listu, a primjer jednog takvog koda je
Private Sub List1_DblClick()
Text1.Text = List1.Text
End Sub
Kako bi stvorili okvir s popisom s vi e kolona i mogu no u vi estrukog izbora,
trebate odrediti njegova svojstva Columns i MultiSelect.
Columns=2 (za dvije kolone)
Columns=3 (za tri kolone)
Ako stvorite listu dovoljno veliku da prikazuje sve stavke u jednoj koloni, druga
kolona e biti prazna, ostale stavke e biti prelomljene, a vodoravna klizna traka e
se automatski pojaviti samo ako okvir s popisom nije dovoljno dug.
Svaki zapis u listi odgovara stavci popisa i postavljen je na True, ako je stavka
izabrana, ili na False, ako nije odabrana. Nakon to korisnik odabere stavke iz
popisa, provjerava se svaki zapis matrice kako bi se vidjelo je li odabran (True).
Izbor istovremeno dvije stavke (druge i etvrte) u listi
pod imenom LstSedmica programski preko koda se vr i
naredbama
LstSedmica.Selected(1) = True
LstSedmica.Selected(3) = True
Slika 5.5 Izbor u listi

6 PRIMJERI VISUAL BASIC PROGRAMA

95

5.7 OBJEKTI KLIZNE TRAKE HSCROLLBAR I VSCROLLBAR


Klizne trake HScrollBar (vodoravna traka) i VScrollBar (vertikalna traka) su
esto 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 na
skali, oni se mogu koristiti zasebno za unos podataka u aplikaciji na primjer, za
kontrolu ja ine zvuka ili za prilago avanje boja na slici. Ovi objekti kliznih traka
djeluju nezavisno od ostalih objekata i imaju vlastitu zbirku doga aja, svojstava i
postupaka. 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 dobijemo
klikom na kliza lijevo ili desno od gumba kliza a.
- SmallChange je inkrementalna ili dekrementalna vrijednost koju dobijemo
klikom 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 kliza .
- Scroll je doga aj kada se kliza pomjera mi em.

Slika 5.6 Primjer kori enja kliznih traka


Na slici 5.6 prikazano je kako se klizne trake mogu koristiti kao ulazni objekti u
programu. Sada slijedi dio koda koji pokazuje kako se kliza i koriste.
Private Sub HScGodina_Change()
Text1.Text = HScGodina.Value
Rem upis vrijednosti kliza a u TextBox
End Sub

Programski jezik Visual Basic Zbirka zadataka

96

Private Sub HScGodina_Scroll()


Text1.Text = HScGodina.Value
End Sub
Form_Load()
Rem na po etku se kliza i postavljaju na nulu
Dim x, y, z As Integer
x = 0
y = 0
z = 0
Text4.Text = x
Text5.Text = y
Text6.Text = z
End Sub
Private Sub HScBoja_Change()
Text4.Text = HScBoja.Value
x = CInt(Text4.Text)
y = CInt(Text5.Text)
z = CInt(Text6.Text)
Text3.BackColor = RGB(x, y, z)
Rem pravljenje boje funkcijom RGB
End Sub
Private Sub HScBoja_Scroll()
Text4.Text = HScBoja.Value
x = CInt(Text4.Text)
y = CInt(Text5.Text)
z = CInt(Text6.Text)
Text3.BackColor = RGB(x, y, z)
End Sub
5.8 OBJEKAT TIMER
Pomo u objekta Timer
u Visual Basic-u mogu e je izvr avati programsku
proceduru tokom datog perioda, odnosno da ponavljamo neke operacije u
razli itim vremenskim intervalima. Koristi se i za mjerenje proteklog vremena od
nekog fiksnog trenutka, ali i za izradu pauza u toku rada programa. Objekat Timer
posjeduje svojstvo kori enja sistemskog sata ra unara na kome se program
izvr ava. U ovom objektu se vremenski interval mo e postavljati sa rezolucijom
koja iznosi do hiljaditog dijela sekunde. Objekat Timer prenosi se, na uobi ajeni

6 PRIMJERI VISUAL BASIC PROGRAMA

97

na in, u istoj veli ini iz palete dizajnera na radnu formu. Objekat je vidljiv dok se
program pravi, ali kada se program pokrene ovaj objekat ne e biti vidljiv na formi.
Najbitnije osobine objekta Timer su:
- Name za definisanje imena objekta.
- Enabled za aktiviranje objekta dodjeljivanjem vrijednosti True. Zavr etak
izvr avanja procedure mo e se podesiti isklju ivanjem objekta Timer,
postavljanjem svojstva Enabled na False.
- Interval je brojna vrijednost, koja pokazuje koliko traje dejstvo objekta u mili
sekundama (hiljaditi dio sekunde).
Nad ovim objektom se mo e koristi samo jedan doga aj Timer. U njega se
upisuje kod koji elimo da se izvr i kada se objekat Timer starta.
Jedna od primjena objekta Timer je postavljanje digitalnog sata na radnoj formi
u labeli namijenjenoj za te svrhe. Digitalni sat pokazuje sistemsko vrijeme u
). Da bi sat funkcionisao pod nadzorom
formatu: sat:minuta:sekunda (
objekta Timer i uz sistemsko vrijeme objektu Timer potrebno je zadati samo
vrijednosti True za svojstvo Enabled i 1000 za svojstvo Interval, da bi objekat bio
uklju en i da bi a urirao vrijeme svake sekunde. Da bi se dobio zvu ni signal
nakon svakog aktiviranja objekta Timer koristi se komanda Beep. Slijedi dio koda
koji pokazuje kako se digitalni sat pojavljuje u labeli pod imenom Label1.
Private Sub Form_Load()
Timer1.Interval = 1000
Rem Interval 1 sekunda.
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
Label1.Caption = Time
Beep
End Sub
Druga zna ajna primjena objekta Timer jeste definisanje vremena ekanja.
Naime, objekat Timer mo e se uklju iti kako bi se program zaustavio na izvjesno
vrijeme i na taj na in omogu ili korisniku izvr enje neke akcije. Na primjer
pomo u ovog objekta se mo e podesiti potrebno vrijeme za uno enje lozinke. Ako
se akcija uspje no ne obavi u predvidenom vremenu objekat Timer onemogu ava
nastavak rada na aplikaciji. Slijedi dio koda koji pokazuje kako na jednoj formi
mogu koristiti dva objekta Timer. Objekat Timer1 se koristi za prikaz digitalnog
sata u labeli Label1 svake 2 sekunde i prikazivanje dugmeta Comand1. Objekat
Timer2 se koristi za pravljenje ka njenja od 6 sekundi nakon ega se ovaj objekat
isklju uje.
Private Sub Form_Load()
Timer1.Interval = 2000
Rem Podesiti 2 sekunde.
Timer2.Interval = 6000
Rem Podesiti 3 sekunde.
End Sub

Programski jezik Visual Basic Zbirka zadataka

98

Private Sub Command1_Click()


Command1.Visible = False
Timer1.Enabled = True
End Sub
Private Sub Command2_Click()
Command2.Visible = False
Timer2.Enabled = True
End Sub
Private Sub Timer1_Timer()
Label1.Caption = Time
Command1.Visible = True
End Sub
Private Sub Timer2_Timer()
Label1.Caption = "drugo dugme"
Command2.Visible = True
Timer2.Enabled = False
End Sub
Slijedi primjer programa u kome se objekat Timer koristi za periodi no
mjesanje 4 karte. Na slici 5.7 prikazana je razvojna forma ovog programa na kojoj
se vidi objekat Timer, jedna labela, jedan TextBox (za unos vremenskog ka njenja u
sekundama), tri komandna dugmeta i 8 okvira za unos slika. Okviri za unos slike su
podjeljeni u dvije cjeline organizovane kao dva niza od po etiri okvira (Karta(0),
Karta(1), Karta(2), Karta(3), Ulaz(0), Ulaz(1), Ulaz(2) i Ulaz(3)). Organizovanje
objekata u niz omogu uje lak e ponavljanje iste komande nad vi e sli nih objekata
upotrebom For petlje. Na slici 5.8 prikazana je izvr na verzija ovog programa na
kojoj se vide samo 4 okvira za slike, ali u kojima se stalno u istim vremenskim
razmacima mijenjaju slike. Tako e se mo e uo iti da se u izvr noj verziji programa
ikonica objekata Timer ne pojavljuje.

Slika 5.7 Izgled razvojne forme

Slika 5.8 Izvr na verzija programa

6 PRIMJERI VISUAL BASIC PROGRAMA

99

Kod ovog programa je sljede i


Private Sub Form_Load()
Timer1.Enabled = Fals Rem zaustavljanje tajmera
End Sub
Private Sub Stop_Click()
Rem dugme za zaustavljanje tajmera
Timer1.Enabled = False
End Sub
Private Sub Mjesaj_Click()
Rem dugme za pokretanje procesa mje anja karti
Timer1.Interval = Val(Text1.Text) * 1000
Rem preuzimanje vremena ponavljanja iz TextBoxa
Timer1.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
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 J
End Sub
Za navedeni kod programa provjerite da li sve etiri karte imaju istu
vjerovatno u pojavljivanja? Ako je potrebno sami doradite kod da to provjerite.
Posebno zna ajnu ulogu ima primjena objekta Timer prilikom kreacije raznih
animacija u kombinaciji sa naredbom Move. Naredbom Move defini e se smjer i
pravac pomjeranja objekta (ili vi e njih), dok se uz pomo Timer- odre uje brzina
kretanja. Format naredbe Move ima sljede i oblik:
Format naredbe Move ima sljede i oblik:
imeobjekta.Move left[, top[, width[, height] ] ]
gdje je
left - 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.

Programski jezik Visual Basic Zbirka zadataka

100

Primjena naredbe Move nad objektom pod imenom Picture1 :


Picture1.Move X
Picture1.Move X,Y
Picture1.Move Picture1.Left X, Picture1.Top Y
gdje X i Y predstavljaju koordinate za vodoravno i vertikalno pomjeranje objekta
slike (Picture1). U tom slu aju podrazumijeva se da je gornje lijevo tjeme (vrh)
obrasca koordinatni po etak sistema iji prvi red ta aka predstavlja x-osu, a prva
kolona ta aka obrasca y-osu. Da bi dobili kontinuirano pomjeranje objekta
potrebno je da se vrijednost kordinata x i y mijenja u nekoj petlji ili pomo u
objekta tajmer. Brzina pokreta objekta odre uje se zadavanjem vrijednosti broja
milisekundi osobini Interval objekta Timer.
Slijedi primjer koda programa koji omogu uje da se u objekat Label (pod
imenom Label1) prvo postavi digitalni sat. Zatim se ovaj objekat kontinuirano
pomjera 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 taj
na in se simulira odbijanje objekta od ivice. to je vremenski period ponavljanja
kra i i du ina skoka manja to se dobija bolja animacija, odnosno osje aj da se
objekat kontinuirano kre e.
Private Sub Form_Load()
Timer1.Interval = 500
Rem postavljanje vremena
DeX = 100
Rem du ina skoka po x osi
DeY = 100
Rem du ina skoka po y osi
End Sub
Private 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 If
End Sub

6 PRIMJERI VISUAL BASIC PROGRAMA

Slika 5.9 Forma sa 3 tajmera

101

Slika 5.10 Izvr na verzija programa

U jednom programu mo e da postoji vi e tajmera, koji mogu imati razli ita


vremena i razli ite funkcije. Na slici 5.9 prikazan je primjer programa sa tri
tajmera. Prvi tajmer se koristi za prikaz digitalnog sata u labeli. Drugi tajmer se
koristi za ka njenje od 4 sekunde. Tre i tajmer unosi ka njenje od 6 sekundi, a
nakon toga se aktiviraju prva dva tajmera. Slijedi primjer koda programa koji
omogu uje da se izra una vrijeme trajanja nekog procesa pomo u DoWhile petlje.
Private Sub Command2_Click()
PauseTime = 5 ' postaviti trajanje 5 sekundi.
Start = Timer
' Postaviti start time.
Do While Timer < Start + PauseTime
Label4.Caption = "Pocela pauza od 5 sekundi"
DoEvents
' Rezultat drugog procesa.
Loop
Finish = Timer
' Postaviti vrijeme kraja.
TotalTime =Finish-Start 'Racunanje ukupnog vremena.
Label4.Caption = "Zavrsila pauza od 5 sekundi"
MsgBox "Pauza trajala " & TotalTime & " secondi"
End Sub
5.9 OBJEKAT DRIVELISTBOX
Okvir za prikaz drajva (DriveListBox) namjenjen je
za prikaz i izbor svih onih drajvova koji se trenutno
nalaze na ra unaru (a:, c:, d:, e:, itd.). Ovaj objekat se
naj
e kombinuje sa objektom DirectoryListBox za
izbor direktorijuma i FileListBox za izbor fajlova.
Najbitnija osobina ovog objekta je Drive pomo u koje
se vra a sadr aj trenutno izabranog drajva.

Slika 5.7 Drive List Box

Programski jezik Visual Basic Zbirka zadataka

102

Nad ovim objektom se naj


e koristi doga aj Change, koji se starta kada se u
ponu enoj listi drajvova ra unara izabere eljeni drajv. Primjer koda programa za
upis izabranog drajva u objekat za izbor direktorijuma je sljede i
Private Sub DrivLista_Change()
DirLista.Path = DrivLista.Drive
End Sub
5.10 OBJEKAT DIRECTORYLIST BOX
Okvir za prikaz direktorijuma (DirectoryListBox) namjenjen je za prikaz i izbor
svih direktorijuma koji se trenutno nalaze na izabranom drajvu. Ovaj objekat
ispisuje korisni ku strukturu direktorija i podirektorija. Struktura se prikazuje u
obliku stabla kao u Windows Exsploru, a primjer kori enja ovog objekta prikazan
je na slici 5.11. Ovaj objekat se naj
e kombinuje sa objektom Drive List Box za
izbor drajva i FileListBox za izbor fajlova.

Slika 5.11 Drive List Box, DirectoryListBox i FileListBox


Najbitnija osobina ovog objekta je Path koja sadr i teku u putanju do
direktorijuma, koji je trenutno selektovan.
Nad ovim objektom se naj
e koristi doga aj Change, koji se starta kada se u
ponu enoj listi izabere eljeni direktorijum. Primjer koda programa za upis
izabranog direktorijuma u objekat za izbor fajlova je sljede i
Private Sub DirLista_Change()
FilLista.Path = DirLista.Path
End Sub

6 PRIMJERI VISUAL BASIC PROGRAMA

103

5.11 OBJEKAT FILELISTBOX


Okvir za prikaz fajlova (FileListBox) namjenjen je za prikaz i izbor svih fajlova
koji se trenutno nalaze na izabranom direktorijumu. Ovaj objekat ispisuje fajlove u
vidu liste. Primjer kori enja ovog objekta prikazan je na slici 5.11. Ovaj objekat se
naj
e kombinuje sa objektom Drive List Box za izbor drajva i DirectoryListBox
za izbor direktorijuma.
Najbitnija osobina ovog objekta je Path koja sadr i teku u putanju do
direktorijuma, koji je trenutno selektovan.
Najbitnije osobine okvira za prikaz fajlova su:
- Name za definisanje imena objekta.
- Path koja sadr i teku u putanju do direktorijuma na kome se nalazi izabrani fajl.
- Pattern koja sadr i string koji odre uje koja e grupa fajlova biti izabrana. Ova
osobina 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 FileListBox
prikazuje u objektu Image (ImgSlika1), a putanju do izabrane slike u objektu Label
(LabSlika). Ovaj kod se pokre e klikom na dugme (ComPrikaz).
Private Sub ComPrikaz_Click()
Dim ImeSlike As String
Rem provjera korjena direktorijuma
If Right(FilLista.Path, 1) = "\" Then
ImeSlike = FilLista.Path + FilLista.FileName
Else
ImeSlike=FilLista.Path+ "\" + FilLista.FileName
End If
LabSlika.Caption = ImeSlike
ImgSlika1.Picture = LoadPicture(ImeSlike)
End Sub
U kodu programa ili prilikom pode avanja nekih osobina objekata u Visual
Basicu primjenjuju se sljede i zamjenski karakteri:
? - simbol koji mjenja jedan karakter.
* - simbol koji mjenja jedan ili vi e karaktera.
# - simbol koji mjenja jedan broj (09).
[niz karaktera] - bilo koji jednostruki karakter iz niza karaktera (d-s, rezultat
mogu biti sva slova izme u slova d i s).
[!niz karaktera] - bilo koji jednostruki karakter koji nije iz navedenog niza
karaktera. (!d-s, rezultat mogu biti sva slova koja nisu izme u slova d i s).

Programski jezik Visual Basic Zbirka zadataka

104

Slijedi primjer kori enja zamjenskih karaktera u kombinaciji sa funkcijom Like


i promjenjivom, koja je logi kog tipa.
Dim Provjera as Boolean
Provjera = "aBBBa" Like "a*a"
Rem daje True.
Provjera = "F" Like "[A-Z]"
Rem daje True.
Provjera = "F" Like "[!A-Z]"
Rem daje False.
Provjera = "a2a" Like "a#a"
Rem daje True.
Provjera = "aM5b" Like "a[L-P]#[!c-e]" Rem True.
Provjera = "BAT123khg" Like "B?T*"
Rem True.
Provjera = "CAT123khg" Like "B?T*"
Rem False.
5.12 OBJEKTI LINE I SHAPE
koristi se za crtanje prave linije, a objekat Shape
za
Objekat Line
crtanje figura u obliku kvadrata, krugova i ovala na formi. 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.
Nema doga aja koji se mogu aktivirati nad ovim objektima.
Crtanje linija i osnovnih oblika se mo e vr iti i programski preko koda. U
sljede im primjerima prikazano je crtanje osnovnih objekata, pri emu su x i y
brojne vrijednosti kordinata, a Boja linije se zadaje u heksadecimalnom kodu ili
preko imena boje prema tabeli 5.1. Ime objekta ozna ava na kom objektu se crta
eljeni oblik, a to je obi no glabna forma (Form1).
- Crtanje ta ke
Tabela 5.1 Naziv boja
imeobjekta.PSet (X,Y), Boja
Naziv
Vrijednost Opis
- Crtanje linije
&h00 crna
vbBlack
imeobjekta.Line (X1, Y1)-(X2, Y2), Boja
- Pravljenje rama
&hFF crvena
vbRed
imeobjekta.Line (X1, Y1)-(X2, Y2), Boja, B
- Popunjavanje rama
&hFF00 zelena
vbGreen
imeobjekta.Line (X1, Y1)-(X2, Y2), Boja, B, BF
&hFFFF uta
vbYellow
- Crtanje krive linije
imeobjekta.Line (X1, Y1)-(X2, Y2), Boja
&hFF0000 plava
vbBlue
imeobjekta.Line -( X2, Y3), Boja
- Crtanje kruga (x i y kordinate centra kruga)
&hFFFF00 cyan
vbCyan
imeobjekta.Circle (x, y),polupre nik, Boja
vbWhite

&hFFFFFF bijela

6 PRIMJERI VISUAL BASIC PROGRAMA

105

Brisanje svih grafi kih objekata radi se sa funkcijom CLS


imeobjekta.Cls
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&, B
Rem pravljenje rama koji je popunjen bojom
Form1.Line (550, 550)-(3300, 3300), &HFF&, BF
Rem pravljenje krive linije od dvije prave linije
koje 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
5.12 OBJEKTI IMAGE I PICTUREBOX
Ova dva tipa okvira za sliku se koriste za postavljanje slika na formu, direktno
preko osobina objekta ili programski kroz kod programa. Slike koje se postavljaju
trebaju biti snimljene negdje na ra unaru u nekom od sljede ih formata: Bitmap,
Icon, Jpeg i Gif.
Najbitnije osobine ovih objekata su:
- Name za definisanje imena objekta.
- AutoSize omogu uje mijenjanje veli ine okvira za sliku (objekta PictureBox)
tako da bude prikazana kompletna slika, kada se ova osobina postavi na True. Ako
je ova osobina postavljena na False onda je okvir uvijek fiksan bez obzira na
veli inu slike. Ako je slika ve a od okvira bi e prikazan samo njen gornji lijevi dio.
- Picture za povezivanje okvira sa gotovom slikom.
- Strech omogu uje mijenjanje veli ine slike tako da ona u potpunosti popuni okvir
za sliku (objekta Image), kada se ova osobina postavi na True. Tada mo e do i do
deformacije slike. Ako je ova osobina postavljena na False onda se bez obzira na
veli inu okvira slika prikazuje u punoj veli ini. Ako je slika velika mo e se desiti
da ona onda prekrije ostale objekte na formi.
Programski se slika mo e postavljati u okvir za slike preko procedure
LoadPicture. Sintaksa koda kada se slika preuzima sa ta no poznatog
direktorijuma je sljede a
slika1.Picture=LoadPicture(c:\slike\vjezba.gif)

Programski jezik Visual Basic Zbirka zadataka

106

Sintaksa koda kada se slika preuzima sa direktorijuma na kome se nalazi


snimljen 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 je
jednostruki 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.Cls
ImeOkvira.Print "proba"
5.13 OBJEKAT MS FLEXGRID ZA TABELARNI PRIKAZ
Tabelarno prikazivanje podataka predstavlja najpregledniji na in prikaza
podataka u tekstualnim editorima, pa samim tim i na ekranu ra unara. Tabelarni
prikaz posebno dobija na zna aju, ako se zna da je danas veoma rasprostranjena
upotreba relacionih baza podataka koje su organizovane u obliku
dvodimenzionalnih tabela. Upotreba struktura For... Next i Do... Loop, u radu sa
velikim dvodimenzionalnim nizovima, mo e zna ajno da u tedi vrijeme upisa i
itanja podataka iz tabela. Upotrebom programskih petlji kod rada sa tabelama se
zna ajno skra uje programski kod.
Za tabelarni prikaz podataka Visual Basic posjeduje FlexGrid objekat. Budu i
da su podaci u relacionim bazama podataka ure eni u obliku dvodimenzionalnih
tabela, FlexGrid objekat mo e posluziti i za prikazivanje informacija iz takvih
baza podataka. FlexGri tabele, koriste se za tabelarni prikaz podataka, kao i za
prikazivanje podataka iz dvodimenzionalnih promjenljivih. MS FlexGrid objekat se
ne nalazi na standardnoj listi objekata (paleta alatki), ve ga treba prethodno
prona i i postaviti. Potrebno je prvo klikom mi a na meni Project (na liniji menija)
otvariti listu opcija. Od ponu enih treba odabrati opciju Components. Nakon toga,
pojavljuje se okvir za dijalog sa spiskom svih objekata (kontrola) kao na slici 5.12.
ekiranjem komponente Microsoft FlexGrid 6.0 i klikom na dugmi OK na paleti
alatki pojavi e se objekat MSFlexGrid kao na slici 5.13. Pomo u dobijenog
objekta kreira se, na uobi ajen na in, tabela MSFlexGrid na Formi. Tako dobijena
tabela ima samo dva reda i dvije kolone. Potreban broj kolona i redova odre uje se
upisom vrijednosti u svojstva Cols i Rows. Na slici 5.14 prikazan je izgled prozora
u kome se pode avaju osnovne osobine tabele. Prvi, odnosno nulti red predvi en je
za zaglavlje, i prva (nulta) kolona predvi ena je za upis imena redova. elije koje
predstavljaju zaglavlje su osjen ene sivom bojom, da bi bile lak e uo ljive. elije u
FlexGrid tabeli posjeduju indekse, kao i niz dvodimenzionalnih promjenljivih. Prvi
indeks ozna ava broj reda, a drugi broj kolone. Indeksi po inju sa 0. Nulta vrsta i

6 PRIMJERI VISUAL BASIC PROGRAMA

107

kolona mogu se, po potrebi, i rasjen iti, ako se svojstvima FixedCols i FixedRows
dodijele vrijednosti 0, umjesto 1. U tabeli mo e biti osjen eno vi e kolona i redova,
ali to nema veliku prakti nu primjenu. Preko prozora za pode avanje osobina
tabele se mogu pode avati i druge osobine, kao to su fontovi i boje.

MS FlexGrid
Slika 5.12 Izbor novih kontrola

Slika 5.14 Pode avanje osobina tabele

Slika 5.13 Objekat MSFlexGrid

Slika 5.15 Primjer upisa u tabelu

Adresa odgovaraju e elije u tabeli odre uje se pomo u imena objekta i


svojstva TextMatrix (i, j), gdje i predstavlja broj reda, a j predstavlja broj kolone,
ijim presjecima u tabeli elija pripada. Na taj na in, svakoj eliji u tabeli (matrici)
mo e se dodijeliti eljena vrijednost, na primjer:
ImeTabele.TextMatrix (2, 3) = "Mirko"
to zna i da e se u eliju koja se nalazi na presjeku drugog reda i tre e kolone
upisati tekst Mirko. Slijedi primjer koda za upis podataka u tabelu pod imenom
MSFlexGrid1, a rezultat ovog koda je prikazan na slici 5.15.

Programski jezik Visual Basic Zbirka zadataka

108

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 Sub
Ina e, elije se mogu birati u kodu i pomo u svojstava Row i Col, na primjer:
ImeTabele.Row = 1
Prvi red
ImeTabele.Col = 2
Druga kolona
Prilikom nabrajanja osobina za jednu ili vise elija, a koje se odnose na isti
objekat (tabelu) mo e se koristiti zapis:
With ImeObjekta
Svojstva
End With
Naj
e osobine koje se pode avaju za tako odabrane elije obi no su sljede a:
With ImeTabele
CelFontBold = True (False)
Tamna slova
CelFontltalic = True (False)
Kosa slova
CelFontUnderline = True (False) Podvu ena slova
CelFontSize = 12
Veli ina fonta
CelFontName = "Times"
Izbor fonta
CelAlignment = FlexAlignCenterCenter
Vertikalno i horizontalno poravnanje
CelBackColor = "White"
Boja pozadine
CelForeColor = "Blue"
Boja teksta ili slike
RowHeight (i) = 1500
Visina celije
ColWidth (j) = 2000
irina kolone
End With
Ako 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 ImeTabele
Row = i
Col = j
RowSel = k
ColSel = m
FillStyle = FlexFillRepeat
End With
gdje su (i, j) koordinate gornje lijeve elije, (k, m) koordinate donje desne elije.
Vrijednost osobine FlexFillRepeat zna i da e se novonavedena osobina odnositi
na sve elije u okviru pravougaonika sa navedenim dijagonalnim tjemenima.

6 PRIMJERI VISUAL BASIC PROGRAMA

109

Karakteristike FlexGrid matrice (tabele) obi no se daju u okviru procedure


FormLoad, tako da je tabela spremna za prikaz i unos podataka im se ta forma
pojavi na ekranu.
Programski kod za popunjavanje elija tabele (MSFGOcjene) iz predhodno
popunjenog dvodimenzionog niza, u primjeru prikaza mjese nih ocjena za 5
radnika, imao bi sljede u formu. Rezultat ovog koda je prikazan na slici 5.16.
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"
.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 i
End With
U radu sa tabelama potrebno je definisati poravnanje sadr aja u elijama.
Funkcija za poravnanje teksta u koloni tabele je ColAlignment, a njena sintaksa
glasi
imeobjekta.ColAlignment( number ) [= value ]
gdje je
number - redni broj kolone
value - broj koji defini e poravnanje prema sljede oj tabeli 5.1

Programski jezik Visual Basic Zbirka zadataka

110

Tabela 5.1 Poravnanje teksta u FlexGrid Tabeli


Vrijednost
0
1
2
3
4
5
6
7
8
9

Na in poravnanja
Lijevo gore (Left Top)
Lijevo sredina (Left Center) (podrazumjevano za tekst)
Lijevo dole (Left Bottom)
Sredina gore (Center Top)
Sredina sredina (Center Center)
Sredina dole (Center Bottom)
Desno gore (Right Top)
Desno sredina (Right Center) (podrazumjevano za brojeve)
Desno dole (Right Bottom)
Op te: Lijevo sredina za tekst, Desno sredina za brojeve (General)

Slika 5.16 Program za prikaz mjese nih ocjena 5 radnika


Funkcija za poravnanje teksta u fiksnoj koloni tabele je ColAlignmentFixed, a
njena sintaksa glasi
imeobjekta.ColAlignmentFixed(index) [=value]
gdje je
index - redni broj kolone
value - broj koji defini e poravnanje prema tabeli 5.1

6 PRIMJERI VISUAL BASIC PROGRAMA

111

Broj fiksnih kolona i redova u tabeli se mo e pode avati direktno preko prozora
Properties, 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 reda
pomo u funkcije RowHeight, koje imaju sljede u sintaksu
imeobjekta.ColWidth( number ) [= value ]
imeobjekta.RowHeight( number )[= value ]
gdje je:
number - redni broj kolone ili reda
value - broj koji defini e irinu/visinu u pikselima
Primjer za 1 i 3 kolonu
FG1.ColWidth(0) = 600
FG1.ColWidth(2) = 2000

Primjer za 2 i 4 red
FG1.RowHeight(1) = 400
FG1.RowHeight(3) = 800

irina jedne kolone se mo e prograski su avati ili pro irivati. Primjer koda za
su avanje na polovinu druge kolone.
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 prvo polje tabele
FG1.SetFocus
Pomo u funkcije Sort mo e se vr iti sortiranje sadr aja kolone u tabeli, a
sintaksa ove funkcije je
imeobjekta.Sort [=value]
gdje je:
value - broj koji defini e sortiranje( 1-rastu e, 2-opadaju e)
Primjer za rastuce sortiranje po
tre oj koloni.
FG1.Col = 2
FG1.Sort = 1

Primjer za opadaju e sortiranje po


etvrtoj koloni.
FG1.Col = 3
FG1.Sort = 2

Dodavanje novog reda u tabeli se vr i pomo u funkcije AddItem, koja ima


sintaksu
imeobjekta.AddItem [ "tekst koji se eli upisati" ]
Brisanje sadr aja cijele tabele vr i se pomo u funkcije Clear, koja ima sintaksu
imeobjekta.Clear

Programski jezik Visual Basic Zbirka zadataka

112

5.14 OBJEKAT DATA


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

Slika 5.17 Objekat Data i TextBox

Slika 5.18 Objekat Data i Tabela

Najbitnije osobine ovog objekta su:


- Name za definisanje imena objekta.
- Appearance za izbor 3-D ili ravnog izgleda 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 preuzimaju
podaci (D:\Srdjan\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 povezuje
ovaj objekat (mo e biti: 0 - Table , 1 - Dynaset (difolt), 2 - Snapshot).
- RecordSource za izbor odgovaraju e tabele iz padaju e liste, a na osnovu
predhodno izabrane baze podataka.
Nad ovim objektom se naj
e koristi doga aj Validate koji se pokre e kada se
klikne mi em na strelice objekta.

6 PRIMJERI VISUAL BASIC PROGRAMA

113

Sve osobine se mogu pode avati preko prozora Properties, ali i preko koda kao
u sljede em primjeru
Data1.RecordsetType = vbRSTypeDynaset
Data1.DatabaseName = "Student97.MDB
Data1.RecordSource = "Student
Data1.Refresh
Podaci iz baza podataka mogu se prikazivati, a zatim i obra ivati pomo u niza
VB 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 dvije
osobine TextBox-a: DataSource i DataField. Pode avanje DataSource svojstva
TextBox objekta vr i se preko objekta Data, pomo u kojeg je ve uspostavljena
veza sa bazom podataka.
Postupak dodjele svojstva te e sljede im redom. Prvo se odabere eljeni TextBox
objekat, pa se, zatim, u prozoru Properties klikne na svojstvo DataSource. Klikom
na strelicu koja se pojavljuje u produ etku reda navedenog svojstva razvija se lista
svih objekata Data od kojih treba odabrati odgovaraju i. Na sli an na in pode ava
se i svojstvo DataField. U istom prozoru Properties se bira svojstvo DataField
koje ima strelica okrenuta nadole. Klikom na ovu strelicu pojavljuje se spisak svih
kolona iz tabele i potrebno je odabrati onu kolonu koje e imati interakciju sa
odgovarajucim tekstualnim poljem. Tekstualnim objektima mogu se, izme u
ostalog, odrediti svojstvo Name, kojim se imenuje doti na kolona, i svojstvo Text
koji je, uglavnom, prazan. Slijedi primjer koda, koji prikazuje pode avanje objekta
Data i objekata TextBox.
Data3.RecordsetType = vbRSTypeDynaset
Data3.DatabaseName = "Student97.MDB" ' izbor baze
Data3.RecordSource = "Student"
' izbor tabele
Data3.Caption = "Unos preko koda"
Text1.DataField = "Indeks"
' kolona tabele
Text2.DataField = "Ime"
' kolona tabele
Text3.DataField = "Prezime"
' kolona tabele
Text4.DataField = "Smer"
' 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,

Programski jezik Visual Basic Zbirka zadataka

114

- kopiranje i, eventualno
- tampanje.
Zadatak pojedinih operacija defini e se, skoro redovno, pomo u komandnog
dugmeta. Naredbe za tu namjenu temelje se, uglavnom, na svojstvima objekta
RecordSet, na primjer:
With ImeBaze.RecordSet
.Index = ImePoIja Rem odre uje se polje po kome e
biti obavljeno indeksiranje i pretraga.
.Seek = Vrijednost Rem zadata vrijednost po kojoj
se vr i tra enje.
.NoMatch - zna i da slog nije prona en.
.MoveFirst Rem prelazak na prvi slog.
.MoveNext Rem prelazak na sljede i slog.
.MoveEOF ili Last Rem prelazak na zadnji slog.
.AddNew Rem dodavanje novog sloga, pri
emu se
naredbom
ImeObjektaTekst.Fokus
postavlja
poenter
u
ono
tekstualno polje od kojeg po inje upis podataka za
novi slog.
.Delete
Rem bri e se odgovaraju i slog. Naravno,
da bi slog bio izbrisan potrebno ga je prethodno
prona i.
Prilikom rada sa bazama podataka zbog sigurnosti bitno je povremeno praviti
rezervnu kopiju baze. Rezervna kopija bilo kog fajla na ra unaru se kreira pomo u
sljede 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 istim
imenom.
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, ali
pod istim imenom kao i originalni fajl.
FileCopy "C:\Proba3.doc", App.Path & "\Proba3.doc"

6 PRIMJERI VISUAL BASIC PROGRAMA

115

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 na
kome se nalazi teku i projekat Visual Basica sa kojim radimo, ali pod drugim
imenom "\Kopi4.doc".
FileCopy App.Path & "\Proba.doc",App.Path & "\Kopi4.doc"

5.15 OBJEKAT OLE


OLE objekat
(OLE Container) mo ete povezati ili umetnuti bilo koji
objekat koji podr ava automatizaciju. Koriste i ovaj objekat, va a Visual Basic
aplikacija mo e prikazati i upravljati podacima iz drugih Windows temeljenih
aplikacija, kao to su Microsoft Excel i Microsoft Word. OLE objekat koristi se za
stvaranje aplikacije usmjerene na dokumente. U takvoj aplikaciji, korisnik
kombinuje podatke iz razli itih aplikacija kako bi stvorio jedan dokument. Takav
tip aplikacije mo e biti ure iva teksta, koji korisniku omogu uje upis teksta te
zatim umetanje Excel tabele ili grafikona kao na slici 5.19.

Slika 5.19 Povezani dokumenti pomo u OLE objekata


Kad pove ete objekat, u svoju aplikaciju ubacujete oznaku mjesta (a ne same
stvarne podatke) za povezan objekat. Na primjer, kad pove ete niz elija Excel
tabele sa Visual Basic aplikacijom, podaci pridru eni sa elijama spremljeni su u
drugoj datoteci. U OLE objektu nalazi se samo veza prema podacima i slika
podataka. Tokom rada sa va om Visual Basic aplikacijom, korisnik mo e aktivirati

Programski jezik Visual Basic Zbirka zadataka

116

povezani objekat (na primjer dvoklikom na objekat), a aplikacija Excel tabele e se


automatski pokrenuti. Korisnik zatim mo e mijenjati te elije Excel tabele koriste i
aplikaciju Excel tabele. Kod mijenjanja povezanog objekata, izmjena se obavlja u
odvojenom prozoru izvan kontrole OLE kontejnera. Kad je objekat povezan sa
Visual Basic aplikacijom, trenutni podaci objekata mogu se vidjeti iz bilo koje
aplikacije, koja sadr i veze sa tim podacima.

Slika 5.20 Izbor dokumenata za povezivanje sa OLE objektom


Svaki put kad na formi stvorite OLE objekat, Visual Basic prikazuje dijalo ki
okvir Insert Object kao na slici 5.20. Taj dijalo ki okvir se upotrebljava za
ubacivanje povezanih ili umetnutih objekata tokom izrade aplikacije. Dijalo ki
okvir Insert Object predstavlja listu dostupnih objekata koje mo ete povezati ili
umetnuti u svoju aplikaciju. Postupak povezivanja odvija se kroz sljede e korake:
1) Postaviti OLE objekat na formu. Prikazat e se dijalo ki okvir Insert Object. Taj
dijalo ki okvir se mo e, tako e, prikazati u svako vrijeme klikom desnom tipkom
mi a na OLE objekat, te izborom naredbe Insert Object.
2) Odaberite dugme izbora Create from File.
3) Odaberite dugme Browse. Prikazat e se dijalo ki okvir Browse sli an Windows
Explorer.
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 odaberite
dugme OK za stvaranje povezanog objekata.
Kad koristite povezani objekat, svaki korisnik koji pokrene va u aplikaciju
mora imati pristup (valjanu putanju) povezanoj datoteci i kopiju aplikacije koja je
stvorila datoteku. Ina e, kad se pokrene va a aplikacija, prikazat e se slika
originalnih podataka, ali korisnik ne e biti u mogu nosti mijenjati podatke, niti e
vidjeti promjene, koje su napravili drugi u povezanim podacima. To mo e biti

6 PRIMJERI VISUAL BASIC PROGRAMA

117

va no, ako se va a aplikacija izvodi u mre i. Ako va a aplikacija sadr i povezani


objekat, 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, promjene
u izvoru ne e se automatski pojaviti u OLE objektu. Kako bi prikazali trenutne
podatke u OLE objektu, upotrijebite postupak Update objekta:
ImeOLEObjekta.Update
Ako korisnik eli snimiti promjene u povezanom objekatu, mora ih snimiti iz
izbornika ActiveX sastavnog dijela. Postupak SaveToFile OLE objekta primjenjiv je
samo za umetnute objekate.
Drugi na in stvaranja objekata tokom izrade aplikacije je kori tenje dijalo kog
okvira Paste Special. Ovaj dijalo ki okvir je koristan, samo ako elite upotrijebiti
dio datoteke, na primjer, skup elija iz Exsel tabele, ili odlomak iz Word
dokumenta. Kori enje dijalo kog okvira Paste Special se vr i kroz sljede e
korake:
1) Pokrenite aplikaciju koja sadr i podatke koje elite povezati ili umetnuti.
2) Odaberite podatke koje elite povezati ili umetnuti.
3) U izborniku Edit ActiveX sastavnog dijela, odaberite Copy. Podaci e se
spremiti za kopiranje.
4) U Visual Basicu, kliknite na eljeni OLE objekat sa desnom tipkom mi a, i
odaberite naredbu Paste Special.
5) Odaberite dugme izbora Paste, ako elite stvoriti umetnuti objekat, ali koji nije
povezan sa izvornim dokumentom. Ako odaberite dugme izbora Paste Link stvara
se povezan objekat. Ako ve postoji objekat, koji je umetnut ili povezan, poruka e
vas upitati elite li obrisati taj postoje i objekat i stvoriti novi na njegovom mjestu.
Odaberite OK za stvaranje objekata.

5.16 KOLEKCIJA OBJEKATA


slajdovi 572 U Helpu HScrollBar Objekat za prikaz Drajva (Drive List Box)
(vodoravna traka) i VScrollBar programskog jezika Visual Basic postoji dosta
gotovih primjera programa, koji mogu poslu iti kao dobra osnova za u enje ovog
programskog jezika.

Programski jezik Visual Basic Zbirka zadataka

118

6 PRIMJERI VISUAL BASIC PROGRAMA


U ovom poglavlju bi e predstavljeni primjeri programa napisanih u
programskom jeziku Visual Basic. Prvo e biti predstavljeni primjeri programa,
koji se mogu na i u Helpu programskog jezika Visual Basic. Zatim e biti
predstavljeni prakti ni primjeri kodova programa, koji pokayuju kako mogu da se
koriste osnovni objekti koji postoje u Visual Basicu. Na kraju e biti predstavljeno
par programa, koji se mogu koristiti za komunikaciju sa Microsoft Excelom i
Accessom.
6.1 PRIMJERI IZ HELPA VISUAL BASIC PROGRAMA
U Helpu programskog jezika Visual Basic postoji dosta gotovih primjera
programa, koji mogu poslu iti kao dobra osnova za u enje ovog programskog
jezika. Svaki primjer se nalazi na posebnom direktorijumu i ima ve ura ene
gotove programske blokove, koji se mogu iskopirati u novi program, koji se pravi.
Do ovih primjera se najlak e mo e do i preko explorera na direktorijumu
"C:\Program Files\MicrosoftVisual Studio\MSDN98\98VS\1033\SAMPLES\
VB98", kao na sljede oj slici 6.1.

Slika 6.1 Prozor sa direktorijumima gdje se nalaze gotovi primjeri programa

6 PRIMJERI VISUAL BASIC PROGRAMA

119

Na direktorijumu ActXDoc nalazi se primjer programa, koji omogu uje


pozivanje nove forme i vezu prema nekom sajtu.
Na direktorijumu Alarm nalazi se primjer programa, koji prikazuje kori enje
objekta Timer.
Na direktorijumu Atm nalazi se primjer programa, koji simulira kori enje
bankomata. U ovom programu je prikazano kori enje Currency tipa podataka.
Na direktorijumu Calc nalazi se primjer programa, u kome je napravljen
digitron sa osnovnim matemati kim operacijama.
Na direktorijumu Calldlls nalazi se primjer programa, koji prikazuje slu ajno
kretanje objekta na formi.
Na direktorijumu ChrtSamp nalazi se primjer programa, koji omogu uje
crtanje dijagrama. U ovom programu je prikazano kori enje CommonDialog
objekta za pravljenje vlastitog padaju eg menija.
Na direktorijumu Control nalazi se primjer programa, koji prikazuje pravljenje
vlastitog menija i kori enje raznih kontrola. Prikazan je na in kori enja objekata:
CheckBox, Option Bootm, Frame, rad sa slikama i promjena mjesta slika, kroz
primjer mje anja karti.
Na direktorijumu CtlsAdd nalazi se primjer programa, koji prikazuje kori enje
objekta data grid. Podaci se prikazuju u tabeli.
Na direktorijumu DataRept nalazi se primjer programa, koji prikazuje
kori enje objekta toolbar za generisanje raznih izvje taja.
Na direktorijumu Datatree nalazi se primjer programa, koji prikazuje pravljenje
strukture eksplorera kori enjem objekata: Treeview, Listview, Imagelist,
CommonDialog.
Na direktorijumu DataAware nalazi se primjer programa, koji prikazuje
otvaranje i itanje podataka iz baze podataka.
Na direktorijumu Dialer nalazi se primjer programa, koji prikazuje simulaciju
pozivanja telefonskog broja.
Na direktorijumu Errors nalazi se primjer programa, koji prikazuje obra ivanje
gre aka koje mogu nastati u toku rada sa programom.
Na direktorijumu Filects nalazi se primjer programa, koji prikazuje
pretra ivanje dokumenata po diskovima i direktorijumima, kori enjem objekata:
DriveListBox, FileListBox, ListBox i PictureBox.
Na direktorijumu Firstapp nalazi se primjer programa, koji prikazuje kori enje
objekata Data i MsFlexGrid za pristup bazi podataka.
Na direktorijumu Geofacts nalazi se primjer programa, koji prikazuje pozivanje
Excel dokumenta iz Visual Basica.
Na direktorijumu Listcmbo nalazi se primjer programa, koji prikazuje
povezivanje sa Access bazom podataka koja se bira preko Open menija.
Na direktorijumu MCI nalazi se primjer programa, koji prikazuje simulaciju
muzi ke linije.

Programski jezik Visual Basic Zbirka zadataka

120

Na direktorijumu MDI nalazi se primjer programa, koji prikazuje pravljenje


padaju eg menija i menija sa vlastitim ikonicama.
Na direktorijumu Msflexgd nalazi se primjer programa, koji prikazuje
povezivanje sa bazom podataka i prikaz podataka u MsFlexGrid tabeli.
Na direktorijumu Olecnt nalazi se primjer programa, koji prikazuje kori enje
OLE kontrola za ot.varanje raznih dokumenata.
Na direktorijumu Optimize nalazi se primjer programa, koji prikazuje
kori enje objekta Timer da bi stvorili privid da se neke slike kre u.
Na direktorijumu Palmode nalazi se primjer programa, koji prikazuje
neprestanu promjenu slika na ekranu uz pomo objekta Timer.
Na direktorijumu Picclip nalazi se primjer programa, koji prikazuje simulaciju
leta leptira i okretanja igre uz pomo objekta Timer.
Na direktorijumu Vcr nalazi se primjer programa, koji prikazuje simulaciju leta
leptira. Let se prikazuje na simulaciji video plejera, uz pomo objekta Timer.

6.2 KOMUNIKACIJA SA PROGRAMABILNIM URE AJIMA


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

7 PRIMJERI VEE PRO PROGRAMA

121

7 SIMULACIJA LABORATORIJSKIH VJE BI NA


RA UNARU
Programski jezik VEE Pro mo e da poslu i za pisanje programa, koji
predstavljaju simulaciju na ra unaru laboratorijskih vje bi iz predmeta Elektri na
mjerenja. Simulacijom laboratorijskih vje bi na ra unaru studenti se na
predavanjima i kroz samostalan rad pripremaju za prakti ne laboratorijske vje be.
Ovo je posebno zna ajno za studente, koji se prvi put sre u sa mjernim
instrumentima. Simulacijom mjernih instrumenata na ra unaru studentima se mogu
predstaviti sve opasnosti koje prijete mjernim instrumentima, ali i osobama koje
vr e mjerenje. Te opasnosti naj
e proizilaze zbog nedovoljnog poznavanja
mjernih instrumenata i mjernih matoda koje su predmet laboratorijskih vje bi. Ovo
posebno dolazi do izra aja kada su u istom trenutku u laboratoriji postavljene
razli ite vje be, a to je uslovljeno nedovoljnim brojem istih mjernih instrumenata.
Sa druge strane na ra unaru se istovremeno mogu postaviti razne laboratorijske
vje be, a studenti se mogu za njih pripremati i kod ku e na svom ra unaru. Na ovaj
na in se prakti no rad laboratorije mo e pove ati na 24 sata, sa velikim brojem
radnih mjesta.
Iz dosada njeg iskustva u radu sa studentima, pokazalo se da i pored teoretskih
priprema za izvo enje laboratorijskih vje bi, u praksi esto dolazi do kvarova na
mjernim instrumentima. Ovi kvarovi obi no predstavljaju trajna fizi ka o te enja
mjernih instrumenata i mjerne opreme. Na taj na in nastaju problemi u daljem
izvo enju laboratorijskih vje bi, kao i velike materijalne tete za fakultet.
Simulacijom laboratorijskih vje bi na ra unaru studenti e se mo i puno bolje
pripremiti za prakti na mjerenja, a kvarovi na laboratorijskim mjernim
instrumentima prouzrokovani ljudskim faktorom treba da se smanje. Na ra unaru
se pomo u programskog jezika mogu simulirati i neka mjerenja, koja nije mogu e
obaviti u laboratoriji na fakultetu u realnim uslovima. Generatori funkcija,
generatori impulsa, generatori uma, kalibratori, osciloskopi, spektralni analizatori
i digitalni multimetri su izuzetno skupi mjerni instrumenti, da bi se u laboratoriji za
studente postavilo 10 radnih mjesta sa svim ovim mjernim instrumentima. U
programskom jeziku VEE Pro postoje gotovi objekti, koji vjerno simuliraju ove
mjerne instrumente. Pomo u ovih objekata mogu e je simulirati laboratorijske
vje be i iz drugih predmeta na Elektrotehni kom fakultetu. Na ovaj na in se
kvalitet nastave iz predmeta Elektri na mjerenja, ali i drugih predmeta podi e na
jedan vi i nivo.
Tako e emo nastojati stimulisati studente da i oni sami prave nove
laboratorijske vje be u programskom jeziku VEE Pro kroz projekte i diplomske
radove.

Programski jezik Visual Basic Zbirka zadataka

122

7.1 OBRADA REZULTATA MJERENJA


Prvo e biti predstavljena simulacija laboratorijske vje be za statisti ku obradu
rezultata mjerenja. Izgled izvr ne verzije ovog programa prikazan je na slici 7.1.
Slika 7.1 Obrada rezultata mjerenja

5.15 KRETANJE KROZ OBJEKTE SA TAB TASTEROM


U Helpu HScrollBar Objekat za prikaz Drajva (Drive List Box)
(vodoravna traka) i VScrollBar programskog jezika Visual Basic postoji dosta
gotovih primjera programa, koji mogu poslu iti kao dobra osnova za u enje ovog
programskog jezika.
5.16 KOLEKCIJA OBJEKATA
slajdovi 572 U Helpu HScrollBar Objekat za prikaz Drajva (Drive List Box)
(vodoravna traka) i VScrollBar programskog jezika Visual Basic postoji dosta
gotovih primjera programa, koji mogu poslu iti kao dobra osnova za u enje ovog
programskog jezika.

8 PRAVNI I EKONOMSKI ASPEKTI PROIZVODNJE PROGRAMA

123

8 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 proizvodnje
svakog programa je prodaja kupcima. Program ima odre ene specifi nosti prilikom
proizvodnje, ali i prilikom prodaje kupcu. Proizvo
programa mora kupcu da
obezbjedi garanciju za ispravan rad programa odre eni vremenski period, kao i
pomo korisniku prilikm problema u radu sa programom. Pravni i ekonomski
aspekti proizvodnje i prodaje programa bi e obja njeni u ovom poglavlju.
8.1 PRODAJA PROGRAMA
Proizvodnja programa za tr te je kao i proizvodnja svih drugih sli nih
proizvoda8. Kupac obi no o ekuje sli ne uslove kupoprodaje, kao u slu aju
kupovine uobi ajenih tehni kih proizvoda. Me utim, program je veoma specifi am
proizvod i njegova za tita nije nimalo jednostavna. Pravni aspekti proizvodnje i
kori enja programa predstavljaju u op tem slu aju delikatnu, prilikom sporova
komplikovanu 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 njegovu
preprodaju. Pri emu je pravo preprodaje u ve ini slu ajeva ekskluzivno. Drugim
rije ima, kupovina programa je klasi na kupovina onda kada je sli na kupovini
nekretnina ili automobila, tj. kada kupac ima potpuno pravo raspolaganja svojim
vlasni tvom i mo e zatim po volji da ga proda, pokloni, ili uni ti. Kupovinu
programa praktikuju dr avne institucije ili kompanije koje nemaju namjeru da
razviju odre eni program. Oni naru e proizvodnju programa od nekog proizvo a
koji zatim mo e, ali ne mora, posjedovati pravo da razvijeni program prodaje tr im
licima. Navedimo dva primjera.
Ministarstva odbrane i policije mnogih dr ava esto finansiraju razvoj
programa, koji zatim postaju njihovo potpuno vlasni tvo. Tada orginalni
proizvo
programa nema pravo da taj program prodaje tre im licima, nego ni da
daje bilo kakve informacije da je navedeni program proizveo.
Drugi primjer se odnosi na operativni sistem MS-DOS koji je firma IBM
naru ila kod firme Microsoft za svoj li ni ra unar PC. Pri tome je firma Microsoft
zadr ala pravo da i sama prodaje ovaj operativni sistem. Na osnovu ovog prava
ve ina sekundarnih proizvo a ra unara kompatibilnih sa ra unarima serije PC
svoje kupce je upu ivala na Microsoft, kao isporu ioca odgovaraju e verzije

Dr Jozo J. Dujmovi , Programski jezici i metode programiranja st.77 do st.9999

Programski jezik Visual Basic Zbirka zadataka

124

operativnog sistema. Pri tome je IBM isporu ivao svoje ra unare sa istim
operativnim sistemom, ali pod svojom firmom.
Iznajmljivanje programa se esto koristi, kao i prodaja programa. Pri tome se
razlikuju dvije varijante:
1) iznajmljivanje na ograni eni rok i
2) 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 trajnim
kori enjem. Primjer za ovo su programski sistemi za analizu osobina ra unarskih
konfiguracija, koji mnogi napredni korisnici iznajme na ograni eno vrijeme, da bi
odredili na koji na in da optimalno pro ire svoju postoje u konfiguraciju ili da
nabave novu. Po isteku perioda najamnine, sistemi mogu imati ugra ene dijelove
za samouni tenje poslije odre enog datuma.
Manji programski proizvodi, posebno oni za iroku upotrebu na li nim
ra unarima, obi no se iznajmljuju na neograni eni period. Pri tome je pla anje po
pravili jednokratno.
8.2 PRAVO KOPIRANJA PROGRAMA
Su tina svih formi iznajmljivanja programa je da korisnik iznajmljuje ta no
odre eni broj kopija datog programa. Drugim rije ima, korisnik ima licencu da
koristi program na isti na in, kao to bi koristio knjigu za svoju li nu upotrebu. To
zna i da se u bilo kom trenutku smije koristiti samo jedna kopija programa, pri
emu 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 da
uradi kopije iznajmljenog programa iz sigurnosnih razloga (zbog mogu nosti
te enja orginalne kopije). Kr enje zakona nastupa onog trenutka, kada se kopije
distribuiraju tako da ih istovremeno mo e koristiti vi e korisnika od broja licenci,
koje su nabavljene. Ako se licenca za kopiju programa nabavlja jednokratnim
pla anjem i vrijedi, za jednog korisnika, bez vremenskog ograni enja, onda se ova
forma 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 u
prava vlasnika knjige i prava vlasnika licence za kori enje programa. Vlasnik
knjige mo e da ode u antikvarnicu i da svoju knjigu izlo i prodaji. Antikvarnice za
program (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 kopiranjem
kopija ne gubi se ni ta od polaznih informacija. Stoga vlasnik knjige mo e da se
promjeni, a vlasni tvo licence za kori enje programa obi no nije prenosivo na
tre a lica.

8 PRAVNI I EKONOMSKI ASPEKTI PROIZVODNJE PROGRAMA

125

Ponekad se de ava da proizvo


programa nestane sa tr ta. U tim slu ajevim
se obi no pojavi druga firma koja otkupi pravo dalje distribucije i odr avanja
programskih proizvoda. Ona se zatim pojavljuje u istoj ulozi u kojoj je bio i
orginalni proizvo . Druga sli na pojava nastupa kada proizvo
programa
prestane da prodaje izvjesni svoj proizvod. Na primjer, firma IBM je razvila neke
specijalisti ke programe za slo ene matemati ke prora une. Vremenom su se na
tr tu pojavili programi sa boljim karakteristika, pa je firma IBM odlu ila da
prekine podr ku svome programu.
U pravnim dr avama piratsko kopiranje je jednako te ak prekr aj kao i povreda
patentnih prava ili piratsko kopiranje i distribucija knjiga, muzike itd. Ako bi neko
neovla eno lice uzelo na primjer neku knjigu i bez odobrenja izdava a i autora
po elo da tu knjigu samostalno kopira i kopije stavlja u prodaju, onda bi to bio
prekr aj i pravno i moralno. Treba razumjeti da zakon koji titi izdava a i autora
titi u stvari najvi i dru tveni interes. Ako bi proizvo u knjige, ili programa,
njegov proizvod bio neka njeno piratski ukraden, onda bi kao direktna posljedica
toga opao interes za proizvodnju tako riskantnog proizvoda. Dru tvo bi neminovno
bilo suo eno sa usporenim razvojem ili nazadovanjem. To je razlog to
neovla eno kori enje programa nije samo pravno nedopustiv akt, ve predstavlja
i ozbiljno kr enje profesionalnog morala jer potkopava temelje zdravih odnosa u
okviru programske profesije.
8.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 kakvu
garanciju. Ta nije proizvo i programa umjesto garancije za svoje proizvode
naj
e daju izjavu da ne prihvataju bilo kakvu odgovornost za primjenu i
posljedice primjene svog programa.
ak i programi koji slu e za rje avanje nekih matemati kih problema, koji
imaju izuzetnu vrijednost i mogu se koristiti sa visokim stepenom pouzdanosti daju
ovakve izjave. Ipak, uvijek postoji mogu nost da se, i pored vrlo male
vjerovatno e, desi slu aj da se pri nekim ulaznim parametrima pojavi gre ka u
nekom programu. I ako bi se taj program koristio u prora unu ili u radu nekog
veoma usjetljivog ure aja (tipi an primjer su letjelice i njihovi sastavni dijelovi),
moglo bi do i do fatalnih posljedica, za koje proizvo
programa ne mo e
prihvatiti odgovornost. Stoga se i daje izjava o ne prihvatanju odgovornosti. Izjave
o neprihvatanju odgovornosti postale su uobi ajena pravna forma 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 rezultat
gre ke u programu za obradu teksta, a da pri tome autor teksta ili njegov izdava ne

Programski jezik Visual Basic Zbirka zadataka

126

budu krivi, nego da svu krivicu snosi programer koji je pisao program ili
kompanija koja program distribuira. Naravno, mo e se dogoditi da zbog gre ke u
programu neki podatak u tekstu ne eljeno promjeni vrijednost i da to ima neke
neprijatne posljedice, ali normalno bi bilo je da je kriv onaj ko je koristio no na
naopak na in, a ne proizvo
no a. Poenta je me utim u tome da program za
obradu teksta ne mo e da se izvr ava u apsolutnoj izolaciji. On upisuje podatke
po disku i mo e da gre kom dovede do direktnog ili posljedi nog gubitka nekih
korisni kih programa ili podataka, pa se proizvo
programa sa razlogom odlu io
na 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 podataka
i da se teta drugim podacima i/ili programima ipak mo e dogoditi i pored najve e
pa nje u programiranju, slijedi da je u ovim slu ajevima dobro koristiti izjavu o
nepriznavanju garancije. Tim prije to su korisnici programa navikli da programski
proizvodi u odre enom malom procentu sadr e gre ke, tako da potpunu garanciju i
ne o ekuju. Garancija se stoga u ve ini slu ajeva odnosi samo na besplatnu
zamjenu medijuma sa programima, koji nisu itki zbog gre aka na medijumu.
Renomirani proizvo i programa ipak ele da korisnicima pru e razumnu
koli inu sigurnosti i poka u maksimalnu dozu povjerenja, pa ponekad idu i ne to
dalje od obi ne zamjene defektnog medijuma. To se obi no posti e "garancijom
povra aja bez obrazlo enja, tako da se pru i mogu nost da korisnik u odre enom
roku (obi no 30 dana od dana nabavke programa) mo e da vrati program
proizvo u (uz implicitnu argumentaciju da program ne odgovara korisnikovim
potrebama) i da povrati sredstva, koja je uplatio na ime licence programa.
Druga forma garancije koju proizvo i unikatnog ili maloserijskog programa
ponekad nude kupcima je garancija za interventno odr avanje u ograni enom
periodu. Ova garancija, o kojoj se vi e govori u narednom odeljku, ima za cilj da
obezbjedi da proizvo
programa u ograni enom periodu (naj
e godina dana)
bude u obavezi da po reklamaciji kupca 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 veoma
veliki programski proizvodi mogu neovla teno iskopirati, proizvo i programa
redovno poku avaju da svoj proizvod redovno za tite od toga. Pa pored pravne
za tite putem copiryght koriste i razne tehni ke norme za tite od neovla enog
kopiranja njihovih proizvoda. Postoji veliki broj metoda kako se to mo e posti i, a
neke od njih se zasnivaju i na specijalnom hardveru. Jedan od oubi ajenih na ina
da se obezbjedi da odre eni program mo e da radi isklju ivo na odre enom
ra 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
e
kriptografisano) u program koji treba da radi na tom ra unaru. U toku rada
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

8 PRAVNI I EKONOMSKI ASPEKTI PROIZVODNJE PROGRAMA

127

copyright za tite. Sada princip licence za kori enje programa nije vi e jedna
kopija jedan korisnik (na bilo kom mjestu i na bilo kom ra unaru), ve jedna
kopija, 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 da
njegova zarada treba da bude proporcionalna koristi koju kori enjem programa
ostvaruje njegov korisnik. Na primjer, cijena licence za kori enje operativnog
sistema je redovno proporcionalna maksimalnom broju korisnika koji na takvom
sistemu mo e da simultano radi.
8.4 ODR AVANJE PROGRAMA
Proizvo i programa (naru ito ako se radi o unikatnom programu) esto
korisnicima nude ugovorno odr avanje programa. Pod odr avanjem se obi no
podrazumjevaju popravke i dorade koje se rade na zahtjev korisnika koji je otkrio
gre ku ili nedostatak u programu koji koristi, a za koje ima ugovorno odr avanje.
Pri tome posmatrani program mo e biti kupljen ili iznajmljen. Ugovorom o
odr avanju se moraju precizno specificirati uslovi odr avanja. To naj
e mo e
biti:
1) vremenski rok u kome proizvo
programa treba da otkloni otkrivene
gre 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 datog
programa, ali obi no bez obaveze da se ispune neki specifi ni zahtjevi.
Budu i da je proizvo
programa spreman na odre ene intervencije u
programu na zahtjev kupca, to se ponekad mo e smatrati kao odre ena
forma garancije.
Primeri navedene forme odr avanja programa obuhvataju obi no intervencije u
dva osnovna pravca. Korisnik u datom periodu (npr. u toku godine dana) mo e da
detaljno ispita programski sistem sa mnogo irim spektrom kombinacija ulaznih
podataka, od onoga to je mogao da uradi proizvo
prilikom razvoja
programskog proizvoda. Tom prilikom postoji mogu nost da korisnik identifikuje
takve kombinacije ulaznih parametara, za koje programi daju neispravne rezultate.
Obaveza proizvo a se svodi na to da modifikuju program, tako da se navedene
neispravnosti otkolone. Drugi pravac se sastoji u tome da se modifikuje korisni ka
forma, tj. onih djelova koji defini u tip i formu unosa ulaznih podataka od strane
korisnika. Korisnik koji rutinski koristi program du e vremena redovno otkrije
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 za manjim
izmjenama programa. Treba naglasiti da pod ovaj vid modifikacije ne spadaju
su tinske modifikacije algoritamske prirode, jer bi to iziskivalo pravljenje nove
verzije programa.

Programski jezik Visual Basic Zbirka zadataka

128

Druga vrsta ugovora o odr avanju programa, koja se primjenjuje u domenu


sistemskog programa, ne obuhvata interventno odr avanje, ve periodi nu isporuku
novih verzija instaliranog programa. U takvim slu ajevima proizvo
ima ekipu
programera, koji permanentno dora uju i usavr avaju postoje i program. Kada se
broj intervencija u postoje em programu nakupi tako da se nova verzije programa
po svojim osobinama u dovoljnoj mjeri razlikuje od predhodne, onda se ta nova
verzija automatski distribuira korisnicima, koji imaju ugovor o odr avanju
programa.
8.5 OZNA AVANJE VERZIJA I MODIFIKACIJA PROGRAMA
Opisani evolutivni razvoj programa ima obi no svoju nomenklaturu u vidu
oznake v.m koja ozna ava
- verziju (v) i
- modifikaciju (m)
datog programa.
Kada se laboratorijski razvija prototip programa onda je to nulta verzija, koja
mo e imati veliki broj raznih modifikacija dok se ne dobije kompletan proizvod,
koji pro e zavr no testiranje i spreman je za tr 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 precizna
evidencija o modifikacijama koje su u toku. Vremenom se nagomila veliki broj
listinga programa od kojih mnogi mogu biti zastarjeli, ali se to ne mo e otkriti ako
na njima ne stoji odgovaraju a oznaka. Prema tome, u toku razvoja i testiranja
programa potrebno je poslije svake modifikacije programa unijeti na programima
izmjenjenu oznaku. 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 tokom razvoja programa distribuiraju verzije V1.1, V1.2, itd. Po pravilu poslije
manje od 10 modifikacija prelazi se na verziju V2.0. Podrazumjeva se da se ovaj
proces odvija saglasno sa potrebama tr ta, pa V2.0 treba da obuhvati pored
popravki 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 ivjeli
su ve i broj verzija ali rijetko vi e od 10.
Lako je uvidjeti da ne postoji nikakva vrsta definicija i ujedna eni pogled na to
nakon koliko modifikacija treba da se pojavi nova verzija programa. Tako da
ozna avanje brojeva modifikacija i verzija u prili noj mjeri zavisi od mjere, ukusa i
tradicije koja je svojstvena nekom proizvo u programa. Ipak, relativno visoki
broj verzija i modifikacija programa predstavlja neku formu priznanja da
posmatrani programski proizvod uspje no ivi na tr tu i da po svojoj prilici ima
razvijenu korisni ku bazu.

8 PRAVNI I EKONOMSKI ASPEKTI PROIZVODNJE PROGRAMA

129

8.6 SPECIFIKACIJA PROGRAMSKIH PROIZVODA


Da bi se lak e definisala prava i obaveze prilikom izrade i didtribucije
programskih sistema i pra enje dokumentacije korisno je uvesti jednu standardnu
specifikaciju uslova isporuke i kori enja programskih proizvoda po sljede im
obilje jima:
1) Pravo kopiranja i kori enja programskog proizvoda od strane kupca i
proizvo 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 u navedenoj specifikaciji mo e se opisati jednoslovnim kodom
ija je definicija:
1) Pravo kopiranja i kori enja programskog proizvoda od strane kupca i
proizvo a/prodavca mo e da bude trojako:
N - kupac dobija neekskluzivno pravo kori enja pri emu proizvo
zadr ava pravo kori enja proizvoda za sebe kao i pravo dalje neograni ene
prodaje tre im licima.
E - ekskluzivno pravo kori enja pri emu ni proizvo
ni kupac nemaju
pravo da taj proizvod proizvodaju 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 broja
korisnika.
n - kupac ima pravo kori enja koje je definisano tako da u svakom momentu
aktivno 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 ili
neograni en broj korisnika pri emu nema pravo kori enja na drugim
ra unarima.
L - ograni enje prava kori enja na jednu lokaciju kupca na kojoj mo e biti
smje teno vi e povezanih ili nepovezanih ra unara na kojima se koristi
programski sistem.
A - pravo kori enja za sve lokacije na kojima kupac trenutno ili u budu nosti
ima 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).

Programski jezik Visual Basic Zbirka zadataka

130

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 sistem
samostalno instalira i pusti u rad.
b) Uputstvo za kori enje, koje korisniku omogu ava samostalnu eksploataciju
programa.
c) Uputstvo za odr avanje programa, koje sadr i izvorni kod svih programa,
opis struktura podataka i opis na ina rada, tako da korisniku omogu ava
testiranje i samostalnu modifikaciju programa.
Imaju i u vidu navedene mogu nosti mogu se definisati sljede e opcije isporuke
dokumentacije:
K - dokumentacija koja obuhvata "Uputstvo za instalaciju" i "Uputstvo za
kori 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 na
odr 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,
omogu ava da se ponuda programa precizno formuli e i da za svaki programski
proizvod pomo u sedmoslovne specifikacije odrede uslovi pod kojima se proizvod
prodaje.
Tako je na primjer Klasa 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 ne
obuhvata finansijske uslove, koji se uglavnom svode na jednokratno ili periodi no
pla anje.

8 PRAVNI I EKONOMSKI ASPEKTI PROIZVODNJE PROGRAMA

131

Programski jezik Visual Basic Zbirka zadataka

132

LITERATURA
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
[12]
[13]

[14]
[15]
[16]
[17]
[18]
[19]
[20]

VEE PRO 8.5. Help, Agilent Technologies, 2007.


VEE PRO 6.0. Help, Agilent Technologies, 2000.
Agilent Technologies Libraries for Instrument Control Revision: L.02.00,
Agilent Technologies CD, 2002.
Microsoft Visual Basic 6.0 Help, Microsoft, 1999.
Dr Jozo J. Dujmovi , Programski jezici i metode programiranja,
Akademska misao, Beograd, 2003.
Dr Tihomir Latinovi , Osnove programiranja (Visual Basic), Biblioteka
Informacione tehnologije, Banja Luka, 2007.
Dr Lazar Mili evi , Mr Lazar Radovanovi , Programiranje (Visual Basic),
Ekonomski fakultet, Br ko, 2005.
Sr an Damjanovi , Predrag Katani , Borislav Drakul, Zbirka zadataka iz
poslovne informatike, Fakultet spoljne trgovine, Bijeljina, 2008.
Command Reference Manual HP3852A Data Acquisition/Control Unit,
Hewlettt Packard Company, 1987 .
User's Guide Agilent 3497A Data Acquisition/Switch Unit, 1999.
User's Guide Agilent 82357A USB/GPIB Interface for Windows, Agilent
Technologies, 2000.
Sr an Damjanovi , "Razvoj i etaloniranje akvizicionog sistema na stanici za
ispitivanje turbo-mlaznih motora," Magistarski rad, Beograd, 2004.
Sr an Damjanovi , "Nova re enja akvizicionog sistema na stanicama za
ispitivanje turbomlaznih motora sa smanjenom mernom nesigurnosti,"
Doktorski rad, Isto no Sarajevo, 2007.
Dragan Stankovi , Fizi ko tehni ka merenja - senzori, Nau na knjiga,
Beograd, 1997.
Dragan Stankovi , Predrag Osmokrakovi , Praktikum laboratorijskih ve bi
iz fizike, Zavod za fiziku tehni kih fakulteta u Beogradu, 2005.
Petar Pravica, Ivan Bagari , Metrologija elektri nih veli ina op ti deo,
Nauka, Beograd, 1993.
Guide to the Expression of the Uncertainty in Measurement, ISO, 1993.
EA-4/02 Expresion of the Uncertainty of Measurement in Calibration,
European co-operation for Accreditation, 1999.
EA-10/08 Calibration of Thermocouples, European co-operation for
Accreditation, 1997.
Ascii kod, http://frank.harvard.edu/aoe/images/t10r3.pdf, 28.01.2011.

POSVETA

CIP
,
004.432.2VEE Pro
,
Programski jezik VEE Pro / Sr an Damjanovi ,
Predrag Katani . - Isto no Sarajevo :
Elektrotehni ki fakultet, 2011 (Bijeljina :
Grafika Gole). - 197 str. : ilustr. ; 25 cm
Tira 200. - Napomene i bibliografske reference uz
tekst. - Bibliografija: str. 197.
ISBN 978-99938-624-7-5
1.
,
[
COBISS.BH-ID 2152728

133

You might also like