diff --git a/README.md b/README.md index 800d1bc..2978712 100644 --- a/README.md +++ b/README.md @@ -5,3 +5,4 @@ - [Šta su biblioteke u jeziku C++?](/lekcije/sta_su_biblioteke.md) (iostream, iomanip, cmath, ...) - [Matematičke funkcije](/lekcije/matematicke_funkcije.md) (sqrt, pow, min, max i druge) - [Ispis realnih brojeva](/lekcije/ispis_realnih.md) (i lekcija o snalažljivosti!) +- [Uvod u nizove](/lekcije/nizovi_uvod.md) diff --git a/lekcije/nizovi_uvod.md b/lekcije/nizovi_uvod.md new file mode 100644 index 0000000..21cdeb8 --- /dev/null +++ b/lekcije/nizovi_uvod.md @@ -0,0 +1,81 @@ +[↩ Nazad na sadržaj](../README.md) + +# Uvod u nizove + +Do sada, ako ste hteli da deklarišete 5 promenljivih, morali biste da uradite nešto poput: +```c++ +int i_1,i_2,i_3,i_4,i_5; +``` + +Šta da ste hteli da deklarišete 100 promenljivih? To bi potrajalo. I zašto bismo uopšte hteli da ikad imamo 100 promenljivih? + +Zamislite situaciju u kojoj pravimo program koji treba da analizira temperature u prethodnoj godini, i za njegov rad je potrebno sačuvati prosečne dnevne temperature za svaki dan u toj godini. + +Praviti 365 * 2 promeljivih očigledno nije dobro rešenje, i nama u pomoć tu dolaze nizovi (eng. *array*). Uz pomoć nizova možemo sačuvati veliki broj podataka u samo jednoj promeljivoj, to jest da ti podaci imaju zajedničko ime. Na primer: +```c++ +int temperature[365]; +``` + +U ovom slučaju promeljiva `temperature` čuva 365 vrednoti tipa `int`, i njih možemo postavljati ili očitavati korišćenjem kvadratnih zagrada: +```c++ +temperature[0] = -2; +temperature[1] = +1; +temperature[2] = +4; +``` + +Svaki podatak u nizu ima svoj redni broj, pri čemu odbrojavanje kreće od nule. U primeru gore vrednost u `temperature[0]` bi zapravo odgvarala prvom januaru, i postavili smo tu vrednost na -2. + +Dakle, prosečna temperature u prva 3 dana u toj godini bi na primer mogla da se izračuna po formuli: +```c++ +double prosek = (temperature[0] + temperature[1] + temperature[2]) / 3.0; +``` + +## Korišćenje nizova uz pomoć petlji + +Kako niz služi za čuvanje velikog broja podataka, i kako svaki od njih ima svoj redni broj; najčešći način baratanja nizovima je unutar petlji. + +Temperature u mesecu januaru možemo da ispišemo tako što pristupimo 31-om elementu niza, od 0-og do 30-og (još jednom, odbrojavanje kreće od 0!): +```c++ +cout << "Temperature u januaru su:" << endl; +for(int dan = 0; dan < 31; dan++) { + cout << temperature[dan] << endl; +} +``` +--- + +Naravno, ovaj primer neće da radi ukoliko ne popunimo niz sa pravim vrednostima, pa u nastavku dajemo primer programa koji niz od 10 elemenata popunjava kvadratima brojeva od 0 do 9, i zatim ispisuje njegove elemente: + +```c++ +#include + +using namespace std; + +int main() +{ + int kvadrati[10]; + + for (int i = 0; i < 10; i++) { + kvadrati[i] = i * i; + } + + for (int i = 0; i < 10; i++) { + cout << i << ". broj u nizu je " << kvadrati[i] << endl; + } + + return 0; +} +``` + +Kada ga pokrenemo, ovaj program ispisuje: +``` +0. broj u nizu je 0 +1. broj u nizu je 1 +2. broj u nizu je 4 +3. broj u nizu je 9 +4. broj u nizu je 16 +5. broj u nizu je 25 +6. broj u nizu je 36 +7. broj u nizu je 49 +8. broj u nizu je 64 +9. broj u nizu je 81 +``` \ No newline at end of file