27. Prioritet operatora i redosled izvršavanja izraza u C++
U prethodnim lekcijama upoznali smo aritmetičke operatore, operatore poređenja, logičke operatore, operatore dodele, kao i inkrement i dekrement. Naučili smo kako da sabiramo i množimo brojeve, upoređujemo vrednosti, proveravamo uslove i menjamo sadržaj promenljivih. Međutim, šta se dešava kada u jednom izrazu koristimo više različitih operatora? Pogledajmo jednostavan primer: int rezultat = 5 + 3 […]
20. октобар 2026.16 min čitanjaLekcija 27/30
Mala škola C++Lekcija 27 od 30
U prethodnim lekcijama upoznali smo aritmetičke operatore, operatore poređenja, logičke operatore, operatore dodele, kao i inkrement i dekrement. Naučili smo kako da sabiramo i množimo brojeve, upoređujemo vrednosti, proveravamo uslove i menjamo sadržaj promenljivih.
Međutim, šta se dešava kada u jednom izrazu koristimo više različitih operatora?
Pogledajmo jednostavan primer:
int rezultat = 5 + 3 * 2;
Da li će rezultat biti 16 ili 11?
Ako računamo sleva nadesno, mogli bismo prvo sabrati 5 i 3, a zatim rezultat pomnožiti sa 2. Dobili bismo 16.
Ali C++ ne grupiše ovaj izraz na taj način.
Množenje ima viši prioritet od sabiranja, pa se izraz tumači kao:
int rezultat = 5 + (3 * 2);
Zato je rezultat 11.
Ovo jednostavno pravilo postaje mnogo važnije kada kombinujemo aritmetičke, logičke i relacione operatore, kao i operatore dodele.
U ovoj lekciji detaljno ćemo objasniti prioritet operatora (operator precedence), asocijativnost (associativity) i redosled evaluacije (evaluation order). Naučićemo kako C++ tumači složene izraze, kako zagrade utiču na rezultat i zbog čega dva naizgled slična izraza mogu proizvesti potpuno različite vrednosti.
Posebnu pažnju posvetićemo tipičnim fakultetskim zadacima i greškama koje se često pojavljuju na kolokvijumima i ispitima.
Šta ćemo naučiti u ovoj lekciji?
Nakon završetka lekcije znaćete da:
Objasnite šta je prioritet operatora.
Razlikujete prioritet i asocijativnost operatora.
Razumete razliku između grupisanja izraza i redosleda evaluacije.
Koristite zagrade za jasno definisanje matematičkih izraza.
Pravilno kombinujete aritmetičke, relacione i logičke operatore.
Objasnite kako se tumače izrazi sa operatorima &&, || i !.
Razumete prioritet operatora dodele.
Prepoznate problematične izraze sa inkrementom i dekrementom.
Samostalno rešavate složenije zadatke sa više operatora.
1. Šta je prioritet operatora?
Prioritet operatora određuje kako se operatori grupišu u izrazu kada nisu korišćene zagrade koje bi drugačije odredile strukturu izraza.
U matematici već poznajemo pravilo da množenje i deljenje imaju prednost nad sabiranjem i oduzimanjem.
Na primer:
[ 5 + 3 times 2 = 11 ]
Isto pravilo važi i u C++ jeziku.
#include <iostream>
using namespace std;
int main() {
int rezultat = 5 + 3 * 2;
cout << "Rezultat: " << rezultat;
return 0;
}
Rezultat:
Rezultat: 11
Zašto?
Zato što se izraz grupiše ovako:
5 + (3 * 2)
Najpre izračunavamo vrednost proizvoda 3 i 2, a zatim je sabiramo sa 5.
Šta ako želimo drugačiji rezultat?
Koristićemo zagrade:
int rezultat = (5 + 3) * 2;
Sada je rezultat 16.
Zagrade nam omogućavaju da jasno odredimo kako se izraz grupiše.
2. Pregled prioriteta operatora u C++
C++ ima više nivoa prioriteta operatora.
Za početak je najvažnije da razumemo redosled operatora koje smo do sada naučili.
U sledećoj tabeli prikazani su najvažniji operatori, od višeg ka nižem prioritetu.
| Prioritet | Operatori | Značenje | |—|—|—| | 1 — najviši | x++, x-- | Postfiksni inkrement i dekrement | | 2 | ++x, --x, !, unarni +, unarni - | Prefiksni i unarni operatori | | 3 | *, /, % | Množenje, deljenje, ostatak | | 4 | +, - | Sabiranje i oduzimanje | | 5 | <, <=, >, >= | Relacioni operatori | | 6 | ==, != | Jednakost i nejednakost | | 7 | && | Logičko I | | 8 | || | Logičko ILI | | 9 | =, +=, -=, *=, /=, %= | Operatori dodele |
Ovo je pojednostavljena tabela namenjena početnicima. C++ ima i druge operatore, kao što su bitovski operatori, operator uslovnog izraza ?:, operatori pomeranja bitova, operator pristupa članovima i drugi. Njih ćemo obrađivati u odgovarajućim lekcijama.
Važno je zapamtiti da veći prioritet određuje čvršće grupisanje operatora, ali ne znači automatski da se svaki operand tog operatora izračunava pre svih ostalih operanada u izrazu.
3. Aritmetički operatori i njihov prioritet
Aritmetički operatori predstavljaju najjednostavniji primer prioriteta.
Pogledajmo:
int rezultat = 20 - 4 * 3;
Izraz se grupiše kao:
20 - (4 * 3)
Dobijamo:
20 - 12 = 8
Primer sa više operatora
#include <iostream>
using namespace std;
int main() {
int rezultat = 10 + 20 / 5 * 2 - 3;
cout << rezultat;
return 0;
}
Rezultat:
15
Kako dolazimo do rezultata?
Prvo se grupišu deljenje i množenje, koji imaju isti prioritet i levu asocijativnost:
10 + ((20 / 5) * 2) - 3
Računamo:
20 / 5 = 4
4 * 2 = 8
10 + 8 - 3 = 15
Konačan rezultat je 15.
Važna napomena o celobrojnom deljenju
Pogledajmo:
int rezultat = 5 + 7 / 2;
Pošto su oba operanda deljenja celobrojna:
7 / 2 = 3
Zato je:
5 + 3 = 8
Ako želimo decimalni rezultat, možemo koristiti:
double rezultat = 5 + 7.0 / 2;
Rezultat je 8.5.
Ovo pokazuje da rezultat ne zavisi samo od prioriteta operatora već i od tipova podataka.
4. Asocijativnost operatora
Šta se dešava kada dva operatora imaju isti prioritet?
Tada je važna njihova asocijativnost.
Asocijativnost određuje način grupisanja operatora istog prioriteta.
Većina aritmetičkih operatora grupiše se sleva nadesno.
Primer — oduzimanje
int rezultat = 20 - 5 - 3;
Izraz se grupiše ovako:
(20 - 5) - 3
Rezultat:
15 - 3 = 12
Ne grupiše se ovako:
20 - (5 - 3)
jer bi tada rezultat bio 18.
Primer — deljenje
int rezultat = 100 / 10 / 2;
Grupisanje je:
(100 / 10) / 2
Rezultat je 5.
Primer — operator dodele
Operator dodele ima desnu asocijativnost.
int a, b, c;
a = b = c = 10;
Izraz se grupiše kao:
a = (b = (c = 10));
Sve tri promenljive dobijaju vrednost 10.
Poređenje
Izraz
Grupisanje
Rezultat
20 - 5 - 3
(20 - 5) - 3
12
100 / 10 / 2
(100 / 10) / 2
5
2 * 3 * 4
(2 * 3) * 4
24
a = b = 10
a = (b = 10)
Obe promenljive su 10
5. Prioritet nije isto što i redosled evaluacije
Ovo je jedno od najvažnijih pravila u celoj lekciji.
Studenti često pretpostavljaju da se operator sa višim prioritetom uvek izvršava prvi.
Međutim, prioritet određuje strukturu izraza, dok pravila evaluacije određuju kada se izračunavaju pojedini operandi i kada nastupaju njihove promene stanja.
Pogledajmo:
int rezultat = funkcijaA() + funkcijaB() * funkcijaC();
Zbog prioriteta operatora izraz se grupiše kao:
int rezultat = funkcijaA() +
(funkcijaB() * funkcijaC());
Ali to ne garantuje da će funkcijaB() i funkcijaC() biti pozvane pre funkcijaA().
Redosled evaluacije operanada aritmetičkih operatora uglavnom nije određen.
Demonstracija
#include <iostream>
using namespace std;
int funkcijaA() {
cout << "A ";
return 2;
}
int funkcijaB() {
cout << "B ";
return 3;
}
int funkcijaC() {
cout << "C ";
return 4;
}
int main() {
int rezultat =
funkcijaA() + funkcijaB() * funkcijaC();
cout << "nRezultat: " << rezultat;
return 0;
}
Numerički rezultat je 14, ali redosled ispisa slova A, B i C ne treba unapred pretpostavljati.
Zato je u ozbiljnom programiranju važno razlikovati grupisanje operatora od redosleda pozivanja funkcija.
Ako nam je potreban tačno određen redosled, bolje je da pozive napišemo u odvojenim naredbama.
int a = funkcijaA();
int b = funkcijaB();
int c = funkcijaC();
int rezultat = a + b * c;
Sada je redosled pozivanja funkcija jasan.
6. Zagrade i njihova uloga
Zagrade su najjednostavniji način da složeni izraz učinimo jasnijim.
Primer:
int rezultat = 5 + 3 * 2;
Rezultat je 11.
Ali:
int rezultat = (5 + 3) * 2;
Rezultat je 16.
Više nivoa zagrada
Pogledajmo:
int rezultat = ((10 + 5) * 2) - (12 / 3);
Prvo izračunavamo izraze u unutrašnjim zagradama:
10 + 5 = 15
12 / 3 = 4
Zatim:
15 * 2 = 30
Na kraju:
30 - 4 = 26
Rezultat je 26.
Zagrade nisu korisne samo kada menjamo uobičajeno grupisanje. One mogu učiniti kod preglednijim čak i kada nisu matematički neophodne.
Na primer:
Ovaj zapis je čitljiviji od izraza bez zagrada, iako se u ovom slučaju grupisanje ne menja.
7. Prioritet relacionih operatora
Relacioni operatori služe za poređenje vrednosti.
To su:
<
<=
>
>=
Oni imaju niži prioritet od aritmetičkih operatora.
Pogledajmo:
bool rezultat = 5 + 3 > 7;
Izraz se grupiše kao:
bool rezultat = (5 + 3) > 7;
Prvo računamo zbir:
5 + 3 = 8
Zatim proveravamo:
8 > 7
Rezultat je true.
Kompletan primer
#include <iostream>
using namespace std;
int main() {
int a = 5;
int b = 3;
bool rezultat = a + b > 7;
cout << boolalpha;
cout << rezultat;
return 0;
}
Rezultat:
true
Manipulator boolalpha omogućava da se logičke vrednosti ispisuju kao true i false, umesto kao 1 i 0.
8. Relacioni operatori i operatori jednakosti
Operatori jednakosti su:
==
!=
Oni imaju niži prioritet od operatora <, <=, > i >=.
Pogledajmo:
bool rezultat = 5 < 10 == true;
Izraz se grupiše kao:
bool rezultat = (5 < 10) == true;
Prvo se proverava:
5 < 10
Rezultat je true.
Zatim se poredi:
true == true
Konačan rezultat je true.
Česta greška — lančana poređenja
U matematici možemo napisati:
[ 1 < x < 10 ]
Međutim, u C++ jeziku sledeći izraz ne znači isto:
1 < x < 10
On se grupiše kao:
(1 < x) < 10
Prvi deo daje logičku vrednost true ili false, koja se zatim konvertuje u 1 ili 0 radi sledećeg poređenja.
Pošto su i 0 i 1 manji od 10, ceo izraz će u ovom primeru biti tačan bez obzira na vrednost promenljive x, pod pretpostavkom da je njeno poređenje sa 1 ispravno definisano.
Ispravno zapisujemo:
x > 1 && x < 10
Ovo je posebno važno kod zadataka koji proveravaju da li se broj nalazi u određenom intervalu.
9. Prioritet logičkih operatora
Logički operatori omogućavaju kombinovanje više uslova.
Do sada smo upoznali:
!
&&
||
Njihov prioritet je:
! — logička negacija.
&& — logičko I.
|| — logičko ILI.
Pogledajmo primer:
bool rezultat = true || false && false;
Izraz se grupiše kao:
bool rezultat = true || (false && false);
Prvo posmatramo:
false && false = false
Zatim:
true || false = true
Konačan rezultat je true.
Primer sa zagradama
Ako napišemo:
bool rezultat = (true || false) && false;
rezultat je false.
Dakle, zagrade mogu potpuno promeniti značenje logičkog izraza.
Logički operatori && i || imaju još jednu veoma važnu osobinu.
To je kratkospojna evaluacija.
Operator &&
Kod operatora &&, ako je prvi operand netačan, drugi se ne evaluira.
Primer:
int x = 0;
bool rezultat = (x != 0) && (10 / x > 2);
Pošto je:
x != 0
netačno, drugi deo izraza se ne evaluira.
Zbog toga ne dolazi do deljenja nulom.
Operator ||
Kod operatora ||, ako je prvi operand tačan, drugi se ne evaluira.
Primer:
int x = 5;
bool rezultat = (x > 0) || (x++ > 10);
Pošto je prvi uslov tačan, drugi se ne evaluira.
Zato promenljiva x ostaje 5.
Kompletan primer
#include <iostream>
using namespace std;
int main() {
int x = 5;
bool rezultat = (x > 0) || (x++ > 10);
cout << boolalpha;
cout << "Rezultat: " << rezultat << endl;
cout << "x = " << x << endl;
return 0;
}
Rezultat:
Rezultat: true
x = 5
Ovo pravilo je izuzetno korisno za pisanje bezbednih uslova.
11. Operatori dodele imaju nizak prioritet
Operator dodele = ima niži prioritet od većine operatora koje smo do sada učili.
Primer:
int x;
x = 5 + 3 * 2;
Izraz se grupiše kao:
x = (5 + (3 * 2));
Rezultat je 11.
Kombinovana dodela
int x = 10;
x += 5 * 2;
Ovo znači da promenljivoj x dodajemo proizvod 5 i 2.
Rezultat je 20.
Primer sa više dodela
int a, b, c;
a = b = c = 5 + 3;
Prvo se računa vrednost izraza 5 + 3, a zatim se ona dodeljuje promenljivama.
Sve tri promenljive dobijaju vrednost 8.
12. Inkrement, dekrement i prioritet operatora
U prethodnoj lekciji naučili smo razliku između prefiksnog i postfiksnog inkrementa.
Sada ćemo videti kako se oni ponašaju u izrazima.
Primer 1 — prefiksni inkrement
int x = 5;
int rezultat = ++x * 2;
Prvo se promenljiva povećava na 6.
Rezultat je:
12
Primer 2 — postfiksni inkrement
int x = 5;
int rezultat = x++ * 2;
Izraz x++ daje prethodnu vrednost 5.
Zato je:
rezultat = 10
Nakon naredbe x ima vrednost 6.
Primer 3 — inkrement i sabiranje
int x = 4;
int rezultat = 10 + ++x;
Rezultat je 15, a x postaje 5.
Primer 4 — postfiksni dekrement
int x = 8;
int rezultat = x-- + 2;
Rezultat je 10, a x postaje 7.
Važno upozorenje
Nemojte kombinovati više promena iste promenljive u izrazu bez razumevanja pravila sekvenciranja.
Na primer:
int x = 5;
int rezultat = x++ + ++x;
Ovaj izraz ima nedefinisano ponašanje.
Ne postoji jedan garantovan rezultat.
Najbolja praksa je da složene promene promenljivih razdvojimo u više naredbi.
13. Interaktivni kalkulator prioriteta operatora
Pogledajmo kako zagrade i prioritet utiču na rezultat matematičkog izraza.
Promenite vrednosti i uporedite rezultate
Grupisanje izraza
5 + (3 × 2)
Rezultat
11
Simulator koristi decimalnu aritmetiku JavaScript-a za prikaz primera. U C++ jeziku tipovi podataka i opseg vrednosti mogu uticati na rezultat.
Napravimo program koji omogućava korisniku da unese tri broja i uporedi rezultate izraza sa različitim grupisanjem.
Program će izračunati:
a + b * c
i:
(a + b) * c
Kompletan program
#include <iostream>
using namespace std;
int main() {
double a, b, c;
cout << "Unesite a: ";
cin >> a;
cout << "Unesite b: ";
cin >> b;
cout << "Unesite c: ";
cin >> c;
if (!cin) {
cout << "Neispravan unos.";
return 1;
}
double rezultat1 = a + b * c;
double rezultat2 = (a + b) * c;
cout << "n--- REZULTATI ---n";
cout << "a + b * c = "
<< rezultat1 << endl;
cout << "(a + b) * c = "
<< rezultat2 << endl;
return 0;
}
Primer izvršavanja
Unesite a: 5
Unesite b: 3
Unesite c: 2
--- REZULTATI ---
a + b * c = 11
(a + b) * c = 16
Ovaj program pokazuje koliko zagrade mogu uticati na rezultat.
Dodatni zadatak
Proširite program tako da računa i sledeće izraze:
a * b + c
a * (b + c)
(a + b + c) / 3
Proverite da li različito grupisanje menja rezultat i objasnite zbog čega.
16. Najčešće greške početnika
Greška 1 — pretpostavka da se sve računa sleva nadesno
int x = 5 + 3 * 2;
Rezultat nije 16, već 11.
Greška 2 — pogrešno korišćenje zagrada
int x = (5 + 3 * 2);
Ove zagrade ne menjaju grupisanje unutrašnjeg izraza.
Ako želimo rezultat 16, pišemo:
int x = (5 + 3) * 2;
Greška 3 — mešanje prioriteta i redosleda evaluacije
Prioritet operatora ne garantuje redosled evaluacije svih operanada.
Greška 4 — lančana poređenja
Pogrešno:
if (1 < x < 10)
Ispravno:
if (x > 1 && x < 10)
Greška 5 — pogrešno grupisanje logičkih operatora
a || b && c
grupiše se kao:
a || (b && c)
Ako želimo drugačije ponašanje, koristimo zagrade.
Greška 6 — opasni izrazi sa inkrementom
int rezultat = x++ + ++x;
Ovakav izraz ima nedefinisano ponašanje.
Greška 7 — zanemarivanje tipova podataka
double rezultat = 5 / 2;
Rezultat je 2.0, a ne 2.5, jer se prvo izvršava celobrojno deljenje.
Ispravno:
double rezultat = 5.0 / 2;
Greška 8 — nepotrebno složeni izrazi
Kod poput:
int rezultat = a + b * c - d / e + f % g;
može biti ispravan, ali nije uvek najčitljiviji.
Kada je izraz složen, često je bolje koristiti dodatne zagrade ili pomoćne promenljive.
17. Kako pravilno rešavati ispitne zadatke?
Kada na kolokvijumu dobijete složen izraz, preporučuje se sledeći postupak:
Proverite koje promenljive i tipovi podataka učestvuju u izrazu.
Uočite zagrade i odredite strukturu izraza.
Prepoznajte operatore višeg i nižeg prioriteta.
Proverite asocijativnost operatora istog prioriteta.
Ako izraz menja promenljive, proverite pravila sekvenciranja.
Izračunajte vrednosti jednostavnijih podizraza.
Proverite moguće celobrojno deljenje i konverzije tipova.
Tek na kraju odredite konačan rezultat.
Posebno je važno da ne pokušavate da izračunate numerički rezultat izraza koji ima nedefinisano ponašanje.
18. Zaključak
U ovoj lekciji naučili smo kako C++ tumači složene izraze koji sadrže više operatora.
Najvažnije je zapamtiti:
Prioritet određuje grupisanje operatora.
Asocijativnost određuje grupisanje operatora istog prioriteta.
Redosled evaluacije nije isto što i prioritet.
Zagrade omogućavaju jasno definisanje strukture izraza.
Množenje, deljenje i modulo imaju viši prioritet od sabiranja i oduzimanja.
Relacioni operatori imaju viši prioritet od operatora jednakosti.
Operator && ima viši prioritet od ||.
Operatori dodele imaju nizak prioritet.
Logički operatori && i || koriste kratkospojnu evaluaciju.
Složeni izrazi sa višestrukim promenama iste promenljive mogu imati nedefinisano ponašanje.
Razumevanje prioriteta operatora nije samo važno za polaganje ispita — ono predstavlja osnovu za pisanje tačnog, čitljivog i pouzdanog C++ koda.
19. Mini-test — proverite svoje znanje
Pokušajte da odgovorite bez pokretanja programa.
Pitanje 1. Koliko iznosi rezultat?
int x = 5 + 3 * 2;
a) 16
b) 11
c) 13
Pitanje 2. Koliko iznosi rezultat?
int x = (5 + 3) * 2;
a) 11
b) 16
c) 13
Pitanje 3. Koliko iznosi rezultat?
int x = 20 - 5 - 3;
a) 12
b) 18
c) 22
Pitanje 4. Koji operator ima viši prioritet?
a) +
b) *
c) =
Pitanje 5. Koliko iznosi rezultat?
bool x = true || false && false;
a) true
b) false
Pitanje 6. Kako se grupiše izraz?
a = b = 10;
a) (a = b) = 10
b) a = (b = 10)
Pitanje 7. Koliko iznosi rezultat?
int x = 5;
x += 2 * 3;
a) 21
b) 11
c) 30
Pitanje 8. Da li prioritet operatora uvek određuje redosled evaluacije operanada?
a) Da.
b) Ne.
Pitanje 9. Šta nije u redu sa sledećim izrazom?
int x = 5;
int y = x++ + ++x;
a) Izraz uvek daje 12.
b) Izraz ima nedefinisano ponašanje.
c) Izraz uvek daje 11.
Pitanje 10. Koliko iznosi rezultat?
double x = 5 / 2;
a) 2.5
b) 2.0
c) 3.0
Rešenja mini-testa
Proverite odgovore nakon što završite test.
Prikaži rešenja
20. Zadaci za samostalnu vežbu
Zadatak 1 — aritmetički operatori
Odrediti rezultat:
int x = 10 + 5 * 2;
Zadatak 2 — zagrade
Odrediti rezultat:
int x = (10 + 5) * 2;
Zadatak 3 — deljenje i množenje
Odrediti rezultat:
int x = 100 / 5 * 2;
Zadatak 4 — logički operatori
Odrediti rezultat:
bool x = true && false || true;
Zadatak 5 — relacioni operatori
Odrediti rezultat:
bool x = 5 + 3 > 7;
Zadatak 6 — kombinovana dodela
Odrediti konačnu vrednost promenljive:
int x = 10;
x += 3 * 2;
x -= 4;
Zadatak 7 — inkrement
Odrediti konačne vrednosti:
int x = 5;
int a = ++x;
int b = x++;
Zadatak 8 — interval
Napisati ispravan C++ uslov koji proverava da li se broj nalazi između 10 i 20, uključujući obe granice.
Zadatak 9 — složeni izraz
Odrediti rezultat:
int x = 5 + 3 * 4 - 12 / 3;
Zadatak 10 — analiza ispravnosti
Objasniti zašto sledeći izraz nije bezbedan:
int x = 5;
int rezultat = x++ + ++x;
21. Domaći zadatak — kalkulator prioriteta operatora
Napraviti C++ program koji omogućava korisniku da unese tri broja i uporedi rezultate različitih matematičkih izraza.
Program treba da izračuna:
a + b * c
(a + b) * c
a * b + c
a * (b + c)
(a + b + c) / 3
Zatim treba da prikaže sve rezultate i objasni zašto se pojedini rezultati razlikuju.
Dodatni zahtevi:
Koristiti tip double.
Proveriti ispravnost unosa.
Prikazati rezultate u preglednom formatu.
Dodati bar jedan primer sa logičkim operatorima.
Koristiti zagrade tamo gde poboljšavaju čitljivost.
Dodatni izazov: Omogućiti korisniku da izabere jedan od ponuđenih izraza i da program prikaže postupak njegovog izračunavanja.
Najava naredne lekcije
U sledećoj lekciji prelazimo sa operatora na jednu od najvažnijih oblasti programiranja — upravljanje tokom izvršavanja programa.
Tema 28 — Uslovna naredba if u C++: donošenje odluka u programu
Naučićemo kako program može da donosi odluke na osnovu određenih uslova, kako se koristi naredba if i kako da pišemo programe koji različito reaguju na različite ulazne podatke.
U prethodnim lekcijama našeg serijala „Mala škola programiranja — C++“ naučili smo kako program donosi odluke pomoću naredbi if, if-else i else if. Videli…
U prethodnoj lekciji naučili smo kako se koristi uslovna naredba if u programskom jeziku C++. Videli smo da ona omogućava programu da proveri određeni…
Do sada smo u našem serijalu „Mala škola programiranja — C++“ naučili kako da definišemo promenljive, unosimo i ispisujemo podatke, koristimo različite tipove podataka,…
Koristimo neophodne kolačiće da bi sajt i forme za upit ispravno radili, a uz vašu dozvolu i opcionalne kolačiće za analitiku, personalizaciju i marketing. Saznajte više.
PRIVATNOST
Podešavanja kolačića
Izaberite koje opcionalne kategorije dozvoljavate. Neophodni kolačići su uvek aktivni jer su potrebni za rad sajta, slanje upita i bezbednost.
NeophodniOmogućavaju osnovne funkcije sajta i zaštitu formi i ne mogu se isključiti.
FunkcionalniPamte vaša podešavanja, kao što su izabrani jezik prevoda i svetla ili tamna tema.
AnalitičkiPomažu nam da razumemo posećenost i način korišćenja sajta.
MarketinškiKoriste se za merenje kampanja i relevantnije oglase.