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
4
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
5
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
6
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
7
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
8
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
[email protected] i
[email protected].
1 OSNOVE PROGRAMIRANJA
9
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
Z
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
F
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.
4
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
T
F
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
T
x1 = (-b-(D)1/2)/2a x2 = (-b+(D)1/2)/2a
'nema realnih korjena'
y
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
T
x1=1/2(x0+x/x0)
n=n-1
y
y=y*x
kraj
x0-x1<ε
T
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=yαx
G/100 T y kraj
α=+
G/400 t = 'Jeste'
t = 'Nije'
t
T
α←-
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
T
L1
T
F
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 (Start→Programs→VEE 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.40282347E±38), 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 (0–9). [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
8
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