diff --git a/lekcije/nizovi_uvod.md b/lekcije/nizovi_uvod.md index 21cdeb8..c6e3276 100644 --- a/lekcije/nizovi_uvod.md +++ b/lekcije/nizovi_uvod.md @@ -78,4 +78,24 @@ Kada ga pokrenemo, ovaj program ispisuje: 7. broj u nizu je 49 8. broj u nizu je 64 9. broj u nizu je 81 -``` \ No newline at end of file +``` + +## Određivanje dužine niza + +Kao što ste primetili, prilikom stvaranja (deklaracije) niza potrebno mu je dati neku dužinu - broj elemenata u tom nizu. Dužina niza ne može da se promeni nakon stvaranja. Štoviše, dužina mora biti poznata pre pokretanja programa, te ne možemo koristiti promenljive za njeno postavljanje. + +Dakle, sledeći kod **nije dozvoljen**: +```c++ +int n; +cin >> n; +int niz[n]; // ovo ne sme! +``` + +Kako onda rešiti zadatak u kom je potrebno napraviti niz baš dužine `n`? Obično će nam unapred biti poznat opseg mogućih vrednosti za `n`, na primer da važi `1 ≤ n ≤ 1000`. U takvom slučaju dužinu niza ćemo postaviti na najveću moguću vrednost `n`, u ovom slučaju 1000: +```c++ +int n; +cin >> n; +int niz[1000]; // sve OK +``` + +Ovakav kod će da radi, ali će deo niza ostati neiskorišćen. Za `n = 10`, 990 od 1000 ostaju neiskorišćeni. U praksi se to rešava korišćenjem dinamičkih nizova, odnosno strukture `vector`, ali o tome kasnije : )