Do sada smo naučili šta su promenljive i upoznali osnovne tipove podataka u C++ jeziku:
intfloatdoublecharboolstring
Sada dolazimo do jedne veoma važne osnove koja pravi razliku između početničkog i pravilnog programiranja:
deklaracija i inicijalizacija promenljivih
Početnici često koriste promenljive bez jasnog razumevanja:
- kada promenljiva nastaje,
- kada dobija vrednost,
- šta znači deklarisati promenljivu,
- i zašto neinicijalizovane promenljive mogu napraviti ozbiljne probleme.
Ovo je izuzetno važna tema jer loše upravljanje promenljivama vodi do:
- nepredvidivih rezultata,
- grešaka tokom izvršavanja,
- teškog debugovanja,
- i loše prakse u pisanju koda.
U ovoj lekciji naučićemo:
- šta je deklaracija,
- šta je inicijalizacija,
- razliku između ta dva pojma,
- različite načine inicijalizacije,
- kako računar vidi promenljive,
- i najčešće greške koje studenti prave.
Šta je deklaracija promenljive?
Deklaracija znači:
pravljenje promenljive
Odnosno:
govorimo programu da određena promenljiva postoji.
Primer:
int broj;
Ovde:
int= tip podatkabroj= ime promenljive
Program sada zna:
napravljena je promenljiva koja može da čuva ceo broj.
Ali:
ona još nema definisanu korisnu vrednost.
Deklaracija ne znači dodelu vrednosti
Ovo je veoma važna razlika.
Primer:
int godine;
Da li promenljiva ima vrednost?
Ne sigurnu.
Promenljiva postoji.
Memorija je rezervisana.
Ali sadržaj može biti nepredvidiv.
To je jedna od klasičnih početničkih grešaka.

Šta je inicijalizacija?
Inicijalizacija znači:
dodela početne vrednosti promenljivoj
Primer:
int godine = 21;
Ovde:
- promenljiva je kreirana
- odmah dobija vrednost
To je deklaracija + inicijalizacija.
Sada program tačno zna:
godine = 21
Deklaracija i inicijalizacija odvojeno
Možemo ih raditi odvojeno.
Primer:
Deklaracija:
int broj;
Kasnije:
broj = 15;
Ovde:
prvo smo napravili promenljivu
zatim joj dodelili vrednost.
To je potpuno ispravno.
Vizuelno objašnjenje
Bez inicijalizacije:
int x;
Zamisli:
kutija postoji
ali ne znaš šta je unutra.
Sa inicijalizacijom:
int x = 10;
Kutija postoji
i jasno znamo sadržaj.

Problem neinicijalizovanih promenljivih
Primer:
#include <iostream>
using namespace std;
int main() {
int broj;
cout << broj;
return 0;
}
Početnici često očekuju:
0
Ali to nije garantovano.
Možemo dobiti:
18472
-3921
0
652144
ili neku drugu vrednost.
Zašto?
Jer memorija sadrži prethodne podatke.
Program samo koristi ono što se tamo nalazi.
Ovo se zove:
neinicijalizovana promenljiva
Veoma važna tema.
Zašto se ovo dešava?
Kada napišemo:
int broj;
program rezerviše memoriju.
Ali ne čisti automatski sadržaj te memorije.
To znači da unutra može ostati prethodna vrednost.
Zato nikada ne treba koristiti promenljivu pre inicijalizacije.
Ispravan pristup
Umesto:
int broj;
bolje:
int broj = 0;
Ili:
cin >> broj;
pre korišćenja.
Inicijalizacija različitih tipova
int
int broj = 10;
double
double cena = 99.99;
float
float temperatura = 36.6f;
char
char slovo = 'A';
bool
bool aktivan = true;
string
string ime = "Marko";
Svaki tip može biti inicijalizovan.

Višestruka deklaracija
Možemo deklarisati više promenljivih odjednom.
Primer:
int a, b, c;
Ili:
int x = 5, y = 10, z = 15;
Radi.
Ali kod početnika je često preglednije:
int x = 5;
int y = 10;
int z = 15;
Lakše za čitanje.
Moderni načini inicijalizacije
Klasično:
int broj = 10;
Alternativno:
int broj(10);
Moderni C++:
int broj{10};
Sve su ispravne forme.
Za početnike je najjasnije:
=
forma.
Kasnije ćemo detaljnije o modernom C++.
Dodela nakon inicijalizacije
Primer:
int broj = 10;
Kasnije:
broj = 25;
Ovo više nije inicijalizacija.
To je:
dodela nove vrednosti
Važna razlika:
Prvi put = inicijalizacija
Kasnije = dodela
Primer
int poeni = 50;
poeni = 80;
Prva linija:
inicijalizacija
Druga:
promena vrednosti
Deklaracija bez inicijalizacije + unos
Čest obrazac:
int godine;
cin >> godine;
Ovde promenljiva prvo postoji
zatim korisnik unosi vrednost.
To je potpuno validno.
Konstantna inicijalizacija
Kasnije ćemo učiti konstante.
Primer:
const double PI = 3.14159;
Ovde vrednost mora odmah postojati.
Realni primer
Primer prodavnice:
int komada = 5;
double cena = 149.99;
double ukupno = komada * cena;
Primer studenta:
string ime = "Nikola";
int indeks = 12345;
bool aktivan = true;
Primer igre:
int zivoti = 3;
int poeni = 0;
bool igraTraje = true;
Najčešće greške početnika
1. Korišćenje promenljive bez vrednosti
Pogrešno:
int broj;
cout << broj;
2. Mešanje deklaracije i dodele
Ne razumevanje razlike:
int x;
x = 5;
vs
int x = 5;
3. Pogrešan tip pri inicijalizaciji
Pogrešno:
int cena = 99.99;
Rezultat:
gubitak decimala
4. Očekivanje da sve bude 0
Početnici misle:
“ako nema vrednost, biće nula”
Ne mora.
5. Nepregledna višestruka deklaracija
Teže za čitanje:
int a=1,b=2,c=3,d=4,e=5;
Primer programa
#include <iostream>
#include <string>
using namespace std;
int main() {
string ime = "Marko";
int godine = 21;
double prosek = 9.35;
bool aktivan = true;
char grupa = 'A';
cout << ime << endl;
cout << godine << endl;
cout << prosek << endl;
cout << aktivan << endl;
cout << grupa << endl;
return 0;
}

Zašto je ova tema važna?
Promenljive su osnova svega.
Ako njima loše upravljamo:
- program daje pogrešne rezultate
- debugging postaje težak
- kod postaje nepouzdan
Dobra praksa:
inicijalizuj promenljivu čim možeš.
Rezime
U ovoj lekciji naučili smo:
Deklaracija
pravljenje promenljive
Primer:
int broj;
Inicijalizacija
dodela početne vrednosti
Primer:
int broj = 10;
Važna pravila:
- ne koristiti neinicijalizovane promenljive
- birati pravi tip podataka
- kod držati preglednim
Ovo je jedna od osnovnih tema ozbiljnog programiranja.
Mini test
- Šta je deklaracija?
a) Dodela vrednosti
b) Pravljenje promenljive - Šta je inicijalizacija?
a) Brisanje promenljive
b) Dodela početne vrednosti - Šta je problem ovde?
int x;
cout << x;
a) Sve je ispravno
b) Neinicijalizovana promenljiva
- Šta je inicijalizacija?
int broj = 10;
a) Da
b) Ne
- Šta je:
broj = 20;
ako je broj već postojao?
a) Nova inicijalizacija
b) Dodela nove vrednosti
Zadaci za vežbu
- Deklariši 5 promenljivih različitih tipova.
- Inicijalizuj svaku vrednošću.
- Napravi primer sa unosom korisnika.
- Namerno koristi neinicijalizovanu promenljivu i posmatraj rezultat.
- Prepravi program da bude ispravan.
Domaći zadatak
Napravi mini profil studenta sa:
- imenom
- prezimenom
- godinama
- prosekom
- aktivnim statusom
- grupom
Sve promenljive pravilno deklarisati i inicijalizovati.
