Ova oblast objašnjava nizove (polja-area) i ilustruje njihovu upotrebu pri definisanju promenljivih.

  1. Niz se sastoji iz niza objekata (koji čine elemente niza), koji su istog tipa i zauzimaju neprekidan memorijski prostor.
  2. Opšte, niz ima simboličko ime, a ne njegovi elementi.
  3. Svaki element(objekat) je identifikovan njegovim JEDINSTVENIM indeksom, koji pokazuje položaj nekog elementa u nizu. Vrednost indeksa za prvi član je 0, za drugi 1, trći 2 itd. Zbog činjenice da su svi elementi niza istog tipa, lako je pristupiti svakom elementu niza pomoću njegovog indksa.
  4. Broj elementa u nizu nazivaju se dimenzija niza.
  5. Dimenzija niza je fiksirana i prethodno oređena, i ne može se promeniti u toku izvršavanja programa.

Niz je pogodan za predstavaljanje podataka koji se sastoje od mnogo sličnih, individualnih objekata. Primeri za to su liste imena, tabela gradova, i njihovih sezonskih temperatura. Ovakav način pristupa elementima niza omogućava brzo i lako pretraživanje, sortiranje ili neke druge operacije. Indeks niza je isključivo tipa int. Svi elementi niza nalaze se u susednim (sekvencijalnim) memorijskim lokacijama (na primer, element sa indeksom 0 ima najnižu adresu, a najvišu adresu ima poslednji element niza)

DEFINISANJE (DEKLARACIJA) NIZA

Kao i sve druge promenljive i nizovi se moraju deklarisati pre upotrebe.

Deklaracijom se prevodiocu saopštavaju tip, ime i veličina niza. Opšti oblik deklaracije niza izgleda ovako:

tip ime_niza [velicina_niza]

ime_niza je komponenta preko koje se pristupa samom nizu.

velicina_niza je konstanta (ili konstantni izraz) tipa int.

INICIJALIZACIJA NIZA

Inicijalizacjom niza se elementima niza dodeljuju konkretne početne vrednosti. Vrednosti kojima se inicijalizuju elementi moraju da budu uokvirene vitičastim zagradama ({,}). Na primer:

int niz_brojeva[8]={1,3,2,4,5,6,10,9}

Moguće je čak da se prilikom inicijalizacije izostavi veličina_niza u uglastim zagradama [,] .

Na primer:

int niz_brojeva[]={1,3,2,4,5,6,10,9}

Ukoliko se prilikom inicijalizacije ne navode vrednosti svih elemenata, već samo određeni broj na početku niza, tada se radi o delimičnoj inicijalizaciji.

Promenljiva niza je definisana davanjem specifikacije njegove dimenzije i tipa njegovih elemenata. NPR. niz koji obuhvata 10 merenja visine (od kojih je svaka ceo broj) može se definisati na ledeći način:

int visina[10];

Pristup individualnom elementu niza vrši se indeksiranjem niza.

Prvi element niza uvek ima indeks 0. Na taj način, visina[0] i visina[9] označavaju prvi i poslednji element niza visina respektivno. Svaki elemt niza se može tretirati kao promenljiva tipa celi broj. Tako, npr., da bi smo trećem članu niza dodelili vrednost 177, pisali bi:

visina[2]=177;

Pokušaj pristupa nepostojećem elementu nekog niza (npr. visina[-1] ili visina [10] može uzrokovati ozbiljnu grešku (tzv. runtime greška, ili „greška indeks izvan granica„)

Primer štampanja petog elementa prethodno inicijalizovanog niza realizovao bi se na sledeći način:

pritnf(„5.element niza je: %d\n“, visina[4]);

JEDNODIMENZIONI NIZOVI

Često ih nazivaju i jednodimenzioni vektori ili samo vektori.

Primer: Program kojim se inicijalizuje niz (niz[] od 10 elemenata i prikazuju na ekranu indeksi i vrednosti elemenata niza.

slika programskog koda


Definisanje bilo kog niza obično uključuje korišćenje petlje, koja ide kroz niz od elementa do elementa.

Primer pokazuje jedan način na koji može da se računa srednja vrednost  niza iz prethodnog primera:


slika programskog koda


Ceo program je prikazan na sledećoj slici:

slika programskog koda


Kao i kod svih promenljivih, vrednosti elementa niza treba da se iniciraju (dodele). Za te potrebe koriste se zagrade {}, između kojig se specificira lista početnih vrednosti elemenata niza koji su odvojeni zarezom. NPR.

int broj [3]={5,10,15};

definiše niz broj, i nicira tri elemtna ovog niza na vrednosti 5,10,15, respektivno. Ovo je eksplicitno inicijalizovanje.

Kada je broj vrednosti u inicijalizatoru manji od dimenzije niza, ostali elementi su inicirani na NULU kao NPR.

int broj [3]={5,10} // broj[2] je iniciran na NULU

Kada se korisi potpuni inicijalizator ( broj početnih vrednosti odgovara dimenziji niza), dimenzija niza postaje suvišna i može se izostaviti, tj. broj elemenata je iniciran u inicijalizatoru (implicirana inicijalizacija). U ovom slučaju inicijalizacija niza broj može se izvršiti na sledeći način.

int broj[]={5,10,15} // dimenzija nije potrebna

Last modified: Tuesday, 5 June 2018, 6:29 PM