Uvod u nizove

This commit is contained in:
ratatuj 2025-01-28 21:50:15 +01:00
parent e091200ca9
commit f6ec99eb17
2 changed files with 82 additions and 0 deletions

View File

@ -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)

81
lekcije/nizovi_uvod.md Normal file
View File

@ -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 <iostream>
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
```