You are on page 1of 30

SVEUČILIŠTE / UNIVERZITET

“VITEZ” VITEZ

FAKULTET INFORMACIONIH
TEHNOLOGIJA
VJEŽBE 6

Profesor: Prof. dr. Zoran Ž. Avramović (zoran.avramovic@sf.bg.ac.rs)

Asistent: Amna Terzić, BA (amna.terzic@unvi.edu.ba)


Nizovi
- Niz je list, tabela odnosno višedimenzionalni skup podataka koji se
predstavljaju istim imenom varijable

- Niz ima svojstva koja posjeduje svaka varijabla: svrha mu je čuvanje i


predstavljanje podataka i ima područje validnosti koje ovisi od toga koja
ključna riječ je korištena (Dim, Private ili Public) te na kojem mjestu je
izvršeno deklarisanja niza (Declarations sekcija ili zaglavlje procedure /
funkcije)

- Međutim, pored ovih općih osobina koje ima svaka varijabla jedan niz
posjeduje svojstvo da mu se podaci mogu organizirati u jednoj, dvije ili više
dimenzija

- Svaki podatak unutar jednog niza jedinstveno je određen brojem ili


indeksom niza
- Pri ovome kod jednodimenzionalnih nizova postoji indeks sastavljen od
jednog broja, kod dvodimenzionalnog niza, tabele, indeks je sastavljen od
dva broja koja predstavljaju red i kolonu tabele podataka itd.

- Visual Basic nudi mogućnost kreiranja maksimalno 60 dimenzionalnog


niza

Jednodimenzionalni nizovi

- Jednodimenzionalni niz se deklariše koristeći ključne riječi Public, Private


ili Dim u ovisnosti od željenog dosega varijable:

Public nizX(N) As Tip


Private nizX(N) As Tip
Dim nizX(N) As Tip
- N je broj koji označava maksimalan predviđeni broj elemenata niza

- U principu broj elemenata niza će biti N+1 jer se uzima da je prvi član niza
varijabla sa ineksom 0 (nula)

- U Visual Basic-u se podrazumijeva da je prvi član niza predstavljen


indeksom 0

- Međutim postoji naredba koja omogućava da je definisanje početka


indeksiranja od 1

- Naredba koja eksplicitno određuje od kojeg broja započinje indeksiranje je


naredba Option Base
- Naredba se mora upotrijebiti u modulu prije bilo koje deklaracije niza

- Oblik naredbe za slučaj definiranja početka indeksiranja od 1 je slijedeći:


Option Base 1

- Visual Basic dozvoljava također kreiranje niza kod kojeg prvi član ima
indeks koji je proizvoljan redni broj

- Moguće je dakle deklarisati niz kod kojeg se indeksi nalaze između dva
redna broja

- Primjer za ovo je:


Public nizX (N to M) As Tip

- U ovom primjeru deklarisan je niz pod nazivom nizX koji ima indekse koji
polaze od vrijednosti N pa sve do vrijednosti M
Višedimenzionalni nizovi

- U slučaju višedimenzionalnih nizova potrebno je za svaku dimenziju da se


odrede maksimalne vrijednosti ili raspon indeksa

- Za slučaj dvodimenzionalnog niza, kod kojeg se zadaju samo krajnje


vrijednosti indeksa deklaracija ima oblik:
Public nizX (N, M) As Tip

- U slučaju kreiranja dvodimenzinalnog niza sa indeksima u željenim


granicama onda deklaracija ima oblik:
Public nizX (N1 To N2, M1 To M2) As Tip

- Na isti način višedimenzionalni niz se deklariše na slijedeći način:


Public nizX (N1 To N2, M1 To M2, ... W1 To W2) As Tip

- Broj dimenzija je ograničen na 60


Dinamički nizovi

- Kada se deklariše niz u kojem se odredi tačan broj elemenata niza, tzv. niz
fiksne dužine, onda se nakon toga više, tokom izvođenja programa, ne može
mijenati broj elemenata tog niza

- Na primjer, ako se definiše niz:


Public struja(5) As Single

- Ovaj niz ima tačno 6 elemenata tipa Single, ako je Option Base podešena
na 0 što je podrazumijevana (default) vrijednost, odnosno niz će imati 5
elemenata ako je Option Base podešen na 1

- Tokom izvođenja programa broj članova niza se ne može mijenjati

- Visual Basic rezerviše memorijski prostor za ovaj niz i to tačno onoliko


prostora koliko će zauzeti broj elemenata koji je definisan u deklaraciji niza te
u ovisnosti od tipa niza
- Nizovi fiksne dužine su dobro rješenje u svim slučajevima kada se
unaprijed zna tačan broj elemenata niza

- Ali u nekim slučajevima, broj elemenata niza se određuje dinamički tokom


faze korištenja programa, tj. može postojati potreba da se broj elemenata
mijenja tokom faze izvođenja programa

- I ovdje je moguće koristiti niz fiksne dužine koji može da bude tako
deklarisan da ima veoma mnogo elemenata, odnosno onoliko mnogo koliko
zahtjevi programa sigurno neće biti veliki

- Ali ovakvo deklarisanje niza je neprimjereno crpljenje resursa računara jer


se u tom slučaju za sve elemente definiše memorijski prostor iako u većini
slučajeva taj prostor nikada neće biti korišten
- Rješenje u ovakvim slučajevima je da se koriste tzv. dinamički nizovi

- Visual Basic rezerviše memorijski prostor za dinamičke nizove tokom faze


izvršavanja programa i ovaj memorijski prostor može da se mijenja u
ovisnosti od broja elemenata u dinamičkom nizu

- Deklarisanje dinamičkih nizova se vrši na sličan način kao što se to radi sa


nizovima fiksne dužine, korištenjem ključnih riječi Public, Private ili Dim
ispred naziva varijable niza, ali se u zagrade ne upisuje broj kojim se
unaprijed definiše broj elemenata niza

- U prethodnom primjeru, definiranje niza struja, promjenjive dužine bilo bi:


Public struja() As Single
- Vrlo važno je da se prije korištenja varijable niza, bilo gdje u programu,
koristi ključna riječ Redim kojom se definira trenutna dužina (broj elemenata
niza)

- Dakle, ako se u prethodnom primjeru želi raditi sa varijablom struja, i to sa


prva 3 elementa, bez nultog elementa, potrebno je prije pozivanja varijabli
struja(1), struja(2) i struja(3) da se izvrši dinamičko podešavanje dužine niza
na slijedeći način:
Redim struja(3)

- Ako se dalje tokom faze izvršavanja programa ponovo želi promijeniti


dužina niza, koristeći ponovo prethodni primjer, ako se želi promijeniti broj
elemenata varijable struja sa 3 na 10 moguće je to izvršiti na dva načina:
1. Ponovnim korištenjem iste ključne riječi Redim i upisivanjem novog
ukupnog broja elemenata niza:
Redim struja(10)

- Na ovaj način se ukupan broj elemenata povećava na 10 (pod


pretpostavkom da je Option Base podešen na 1)

-Međutim, ako su prije korištenja ove naredbe varijable struja(1), struja(2) i


struja(3) već bile korištene i imale neke vrijednosti, nakon ove naredbe
redimenzioniranja niza, vrijednosti u ova tri elementa niza se gube

- Dakle potrebno je biti oprezan sa redimenzioniranjem niza jer se sve


prethodne vrijednosti varijabli poništavaju

- Nekada je to i potrebno pa se u tim slučajevima redimenziniranjem prazni


memorijski prostor za smještaj novih vrijednosti.
2. Ukoliko se ipak žele zadržati prethodno izračunate vrijednosti u
elementima niza, u prethodnom primjeru u elementima niza struja(1),
struja(2) i struja(3), a potrebno je da se poveća broj elemenata niza, onda se
zajedno sa ključnom riječi Redim koristi i ključna riječ Preserve

- Na primjer naredba
Redim Preserve struja(10)

će sačuvati vrijednosti koje su prethodno pridružene elementima niza i


istovremeno povećat će broj elemenata niza na 10

- Treba imati na umu da se Redim naredba može koristiti za podešavanje


broja elemenata samo dinamičkog, nikako ne niza fiksne dužine.
Zadatak 1. Napraviti program u kojem ćete deklarisati niz
pod nazivom „nizM“ sa 5 elemenata, te koristeći For petlju i
funkciju InputBox incijalizovati sve elemente niza a nakon
toga na formi ispisati sve elemente niza.

- Za izradu zadatka potrebno je:

- definisati formu, ime, naziv u kodu, te pozicija


- 1 CommandButton – dugme start
Zadatak 2. Napraviti program u kome ćete deklarisati niz od
10 cijelih brojeva koristeći unaprijed deklarisanu konstantu.
Niz inicijalizirajte vrijednostima parnih brojeva u rasponu od
2 do 20. Na kraju program treba ispisati sve vrijednosti niza
na ekran.

- Za izradu zadatka potrebno je:

- definisati formu, ime, naziv u kodu, pozicija


- 1 CommandButton – dugme start
Zadatak 3. Napraviti program u kojem se od korisnika zahtijeva
da unese broj članova matrice, nakon što korisnik klikne na
dugme „Start“ pokreće se InputBox funkcija za incijalizaciju svih
elemenata matrice. Program treba da ispiše elemente matrice
te zbir brojeva ispod i iznad glavne dijagonale.

- Za izradu zadatka potrebno je:

- definisati formu, ime, naziv u kodu, pozicija


- 1 CommandButton – dugme start
- 2 Label-a (za broj članova i za ispis vrijednosti)
- 1 TextBox – za unos broja članova
Zadatak 4. Napraviti program u kojem se od korisnika zahtijeva
da unese broj elemenata niza te da incijalizuje sve elemente
niza, a zatim program treba da uradi sortiranje i da ispiše
sortiran niz (tj. sortirane elemente niza).

- Za izradu zadatka potrebno je:

- definisanje forme, ime, naziv u kodu, pozicija


- CommandButton – dugme start
- Label za članove niza
- Label za ispis
- TextBox za unos članova niza
Pristup Access bazi iz Visual Basic-a

- Data kontrola je jedna od složenijih kontrola Visual Basic-a, služi za pristup


različitim bazama podataka.

- Automatizam koja ona nudi omogućava zaista najbrži i najlakši način za


kreiranje formi za pregled podataka, međutim taj automatizam može
ponekad i smetati.

-Također, postavlja se pitanje perfomansi, jer je pristup pomoću Data


kontrole najsporiji.

-Može biti primjerena za desktop baze podataka kao što je Access, koje ne
podržavaju klijent – server arhitekturu.

-Nalazi se u osnovnom setu kontrola i ne može se ukloniti iz programa.


Ključna svojstva Data kontrole

1. Connect (konekcija)

Svojstvo tekstualnog tipa koje određuje tip baze podataka. Na raspolaganju


su slijedeće mogućnosti koje su prikazane u prozoru svojstava Data kontrole:

• Access (default)
• DBASE III, IV, 5.0
• Excel 3.0, 4.0, 5.0, 8.0
• FoxPro 2.0, 2.5, 2.6, 3.0
• Lotus WK1, WK3, WK4
• Paradox 3.x, 4.x, 5.x
• Text
2. DataBaseName

Svojstvo tekstualnog tipa koje daje puni naziv baze podataka na koju se
vezujemo. Zavisno od tipa baze podataka može sadržati samo direktorijum
gdje se nalaze podaci (na primjer DBASE format). Sa desne strane ovog
svojstva postoji komandno dugme koje otvara standardni Open dijalog za
izbor datoteke.

3. RecordSource (Izvor podataka)

Svojstvo, također tekstualnog tipa, koje definiše (u slučaju Access-a) nešto


od sljedećih mogućnosti:

• Ime tabele iz baze koja je postavljena u DataBaseName svojstvu


• Ime snimljenog upita iz baze
• Tekst SQL upita koji se zadaje direktno iz Visual Basic-a
- Ova tri svojstva je moguće izmijeniti za vrijeme izvršavanja programa,
što nam otvara mogućnosti za lakšu izmjenu parametara i run time izmjene
tipa baze, same baze podataka i izvora podataka iz te baze

- Sada ćemo korak po korak postaviti ova svojstva kako bi se povezali sa


našom bazom podataka

1. Pokrenite Visual Basic i izaberite tip projekta Standard Exe.


2. Postavite Data kontrolu na inicijalnu formu, kao što je prikazano na slici:
3. Selektujte data kontrolu i otvorite njen prozor svojstava

4. Za svojstvo Connect ostavite inicijalnu vrijednost Access

5. Za svojstvo DataBaseName ukucajte ili izaberite iz Open dijaloga


lokaciju i ime baze podataka npr. NovaBaza.mdb. Zavisno od toga gdje
ste smjetili bazu na vašem disku vrijednost ovog svojstva može na
primjer biti: C:\BOOK\Klijenti\NovaBaza.mdb

6. U svojstvu RecordSource otvorite combo box, i ako je sve u redu


postavljeno u tačkama 4 i 5, trebali bi da u listi vidite i selektujete tabelu
npr. Klijenti. Dakle, vrijednost ovog svojstva je Klijenti.

Data kontrola, kao korisnički interface posjeduje četiri komandna dugmeta


koja služe za navigaciju kroz slogove.
PITANJA

You might also like