Professional Documents
Culture Documents
Visual Basic Zbirka Zadataka
Visual Basic Zbirka Zadataka
Mr Predrag Katani
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
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
SADR AJ
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.
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
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
INSTRUKCIJA
ULAZNI
PODACI
IZVR AVANJE
REZULTATI
EPNI KALKULATOR
12
1 OSNOVE PROGRAMIRANJA
13
Uzmi instrukciju
A/L
JEDINICA
Analiziraj instrukciju
R0
Izvr i instrukciju
R1
R 16
14
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)
16
1 OSNOVE PROGRAMIRANJA
17
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.
18
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
20
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.
22
P1
Da
xRy
Ne
P2
P3
Kraj
1 OSNOVE PROGRAMIRANJA
23
24
y=
(-1)ixi
( 1.1)
i =0
1 OSNOVE PROGRAMIRANJA
25
BLOK
BLOK-2
BLOK-1
BLOK-2
USLOV
26
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
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)
28
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.
1 OSNOVE PROGRAMIRANJA
29
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
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
34
1 OSNOVE PROGRAMIRANJA
35
36
1 OSNOVE PROGRAMIRANJA
37
A, B
Z=A+B
Z
Kraj
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.
38
po etak
po etak
x1 , x 2
y = ((x1+x2)*x3-x4)*x5
x1< x2
T
y = x1 + x2
y
kraj
y = x1 - x2
y
kraj
x
x<0
y=x
y= -x
y
kraj
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
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
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
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
(-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'
kraj
Zadatak 1.14
Sastaviti algoritam za odre ivanje najve e vrednosti (max M) nekog niza Ai,
i=1...N.
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.
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
44
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
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?
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
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
48
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
49
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.
50
51
Petar Pravica, Ivan Bagari , Metologija elektri nih veli ina op ti deo, Nauka, Beograd,
1993, str.247 do 252.
52
53
54
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.
56
ime objekta,
natpis na objektu,
font, boja i veli ina slova,
boje pojedinih dijelova objekta,
dimenzije objekta,
vidljivost ili nevidljivost objekta,
dostupnost objekta.
57
58
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
60
3 TIPOVI PODATAKA
61
62
3 TIPOVI PODATAKA
63
http://frank.harvard.edu/aoe/images/t10r3.pdf
64
3 TIPOVI PODATAKA
65
66
3 TIPOVI PODATAKA
67
68
4 POGLAVLJE
69
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.
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.
72
Rem prvi If
Rem drugi If
Rem tre i 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
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
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.
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
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
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
4
-1
2
14
-3
-1
0
2
21
-23
-1
52
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.
83
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
84
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
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
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
86
87
88
89
90
91
Rem potvr en
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.
93
94
95
96
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
98
99
100
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
101
102
103
104
&hFFFFFF bijela
105
106
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
108
109
110
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)
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
112
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,
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"
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"
116
117
118
119
120
121
122
123
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.
125
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
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.
128
129
130
131
132
LITERATURA
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
[12]
[13]
[14]
[15]
[16]
[17]
[18]
[19]
[20]
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