Do sada smo naučili kako C++ radi sa:
- celim brojevima (
int) - decimalnim brojevima (
float,double) - karakterima (
char)
Ali programiranje nije samo čuvanje podataka.
Program često mora da donosi odluke.
Na primer:
- da li je korisnik punoletan?
- da li je lozinka tačna?
- da li je broj paran?
- da li je korisnik prijavljen?
- da li je temperatura previsoka?
- da li je proizvod na stanju?
Za ovakve situacije ne trebaju nam brojevi ili tekst.
Treba nam odgovor koji ima samo dva moguća stanja:
- DA
- NE
U programiranju to predstavljamo pomoću tipa:
bool
Ovo je jedna od najvažnijih osnova programiranja, jer bez logike nema:
- uslova,
- odluka,
- kontrolisanja toka programa,
- ozbiljnih aplikacija.
U ovoj lekciji naučićemo:
- šta je
bool, - šta su logičke vrednosti,
- kako rade
trueifalse, - kako nastaju logički izrazi,
- kako se koriste poređenja,
- kako računar vidi logičke vrednosti,
- i koje greške početnici najčešće prave.
Šta je bool?
bool je skraćenica od:
boolean
Naziv dolazi od matematičara:
George Boole
koji je razvio logičku algebru — osnovu modernog računarstva.
Tip:
bool
može sadržati samo dve vrednosti:
true
false
što znači:
tačno
netačno
Primer:
bool prijavljen = true;
znači:
korisnik je prijavljen.
Primer:
bool admin = false;
znači:
korisnik nije administrator.

Zašto su logičke vrednosti važne?
Bez logike program ne može da odlučuje.
Na primer:
Ako korisnik ima više od 18 godina:
dozvoli registraciju.
Ako nema:
zabrani pristup.
Ako je stanje računa pozitivno:
odobri plaćanje.
Ako nije:
prikaži grešku.
Sve ove odluke zasnivaju se na logičkim vrednostima.
Deklaracija bool promenljive
Primer:
bool aktivan = true;
Ovde:
bool= tipaktivan= ime promenljivetrue= vrednost
Još primera:
bool upaljeno = true;
bool pristupDozvoljen = false;
bool ispravanKod = true;
bool korisnikPostoji = false;
Ispis bool vrednosti
Primer:
#include <iostream>
using namespace std;
int main() {
bool stanje = true;
cout << stanje;
return 0;
}
Rezultat:
1
Ako napišemo:
bool stanje = false;
rezultat:
0
Zašto?
Jer računar interno vidi:
true = 1
false = 0
Kako računar vidi bool?
Interno:
true → 1
false → 0
To je veoma važno.
Primer:
bool x = true;
cout << x;
ispisuje:
1
Primer:
bool y = false;
cout << y;
ispisuje:
0
Ako želimo pravi tekst:
true
false
kasnije ćemo koristiti posebne opcije ispisa.

Šta je logički izraz?
Logički izraz je izraz koji daje rezultat:
true
ili:
false
Primer:
5 > 3
rezultat:
true
Primer:
2 > 10
rezultat:
false
To su logički izrazi.
Operatori poređenja
Najčešći operatori:
Jednako:
==
Nije jednako:
!=
Veće:
>
Manje:
<
Veće ili jednako:
>=
Manje ili jednako:
<=
Primeri
5 == 5
Rezultat:
true
5 == 7
Rezultat:
false
10 > 3
Rezultat:
true
2 < 1
Rezultat:
false
Čuvanje rezultata u bool promenljivoj
Možemo rezultat logičkog izraza sačuvati.
Primer:
bool rezultat = 10 > 5;
Pošto:
10 > 5
jeste tačno:
rezultat = true
Primer:
cout << rezultat;
Rezultat:
1
Primer sa korisnikom
int godine = 20;
bool punoletan = godine >= 18;
Pošto:
20 >= 18
važi:
punoletan = true
Ovo je veoma praktično.

Direktna poređenja
Ne moramo uvek koristiti promenljive.
Možemo direktno:
cout << (5 > 2);
Rezultat:
1
Primer:
cout << (10 == 7);
Rezultat:
0
Bool i if uslovi
Najveća snaga bool tipa dolazi kod uslova.
Primer:
bool prijavljen = true;
if (prijavljen) {
cout << "Pristup dozvoljen";
}
Pošto je:
prijavljen = true
kod se izvršava.
Ako je:
false
ne izvršava se.
Bool i unos korisnika
Možemo uneti broj:
bool status;
cin >> status;
Ako korisnik unese:
1
dobijamo:
true
Ako unese:
0
dobijamo:
false
Kombinovanje logike
Kasnije ćemo koristiti:
AND:
&&
OR:
||
NOT:
!
Primer:
bool uslov = (godine >= 18 && prijavljen == true);
Ovo ćemo detaljno učiti kasnije.
Razlika između = i ==
Ovo je jedna od NAJVAŽNIJIH početničkih grešaka.
Pogrešno:
if (x = 5)
Ovo nije poređenje.
To je:
dodela vrednosti
Ispravno:
if (x == 5)
Ovde proveravamo jednakost.
Veoma česta greška na ispitima.

Bool iz realnog života
Login sistem:
bool prijavljen = true;
E-commerce:
bool proizvodNaStanju = false;
Bankarstvo:
bool transakcijaUspešna = true;
Igra:
bool igracZiv = true;
Alarm sistem:
bool alarmAktivan = false;
Najčešće greške početnika
1. Mešanje = i ==
Pogrešno:
if (x = 10)
2. Očekivanje true/false ispisa
Početnik očekuje:
true
a dobije:
1
3. Pogrešno korišćenje brojeva
Primer:
bool x = 5;
Tehnički radi:
jer sve osim 0 postaje:
true
ali početnicima ovo zbunjuje.
4. Nerazumevanje poređenja
Pogrešno:
5 = 5
Ispravno:
5 == 5
5. Pogrešno očekivanje od if
if (false)
nikad se ne izvršava.
Veoma praktičan primer
#include <iostream>
using namespace std;
int main() {
int godine;
cout << "Unesi godine: ";
cin >> godine;
bool punoletan = godine >= 18;
cout << punoletan;
return 0;
}
Ako korisnik unese:
20
rezultat:
1
Ako unese:
15
rezultat:
0
Zašto je bool jedna od najvažnijih osnova?
Bez logičkih vrednosti nema:
- if uslova
- while petlji
- login sistema
- validacija
- poslovnih pravila
- sigurnosnih provera
- algoritama odlučivanja
Ovo je jedna od najvažnijih osnova programiranja.
Rezime
U ovoj lekciji naučili smo:
bool
tip koji čuva:
true
false
Interno:
1 i 0
Koristi se za:
- poređenja
- odluke
- kontrolu toka programa
Jedna od najvažnijih početničkih tema.
Mini test
- Koje vrednosti može imati bool?
a) 0–100
b) true / false
c) tekst - Šta daje:
5 > 2
a) true
b) false
- Šta znači:
==
a) dodela
b) poređenje jednakosti
- Šta je:
=
a) poređenje
b) dodela
- Šta ispisuje:
bool x = true;
cout << x;
a) true
b) 1
Zadaci za vežbu
- Napravi bool promenljivu za login status.
- Proveri da li je broj veći od 10.
- Sačuvaj rezultat poređenja u bool promenljivu.
- Napravi proveru punoletstva.
- Namerno napravi grešku sa
=umesto==.
Domaći zadatak
Napravi program koji:
- traži unos godina
- proverava punoletstvo
- proverava da li je broj pozitivan
- ispisuje rezultate
