SVET PROGRAMIRANJA
  • Početna
  • WEB APLIKACIJE
    • Popularni programski jezici danas
    • Klase za stil naslovne strane
    • Trendovi u programiranju
    • Internet stvari
    • Kreiranje web sajtova i web aplikacija >
      • Kreiranje web aplikacija
      • Kreiranje web aplikacija 2
      • ASP.NET Core web aplikacije >
        • ASP.NET Core web aplikacije uvod
        • Servisiranje statičkih web strana pomoću web servera
        • Kreiranje sql web api servisa koji čita podatke iz baze
        • Kreiranje kontrolera u asp.net web API aplikaciji
        • Komunikacija Javascript web aplikacije sa API serverom
      • Kreiranje web sajta >
        • Logo Kreator - naslovna
      • Kreiranje Django Web Aplikacije >
        • Kreiranje aplikacije na Heroku Web Platformi 2 >
          • Kreiranje Python Web Aplikacije-početak
        • Python Web Aplikacije
        • Logo Kreator - Kreiranje Naslovne strane
        • Django aplikacija i baza podataka
        • Kreiranje aplikacije na Heroku Web Platformi >
          • Dodavanje modula za registraciju >
            • Dodavanje web strane za logovanje
  • Algoritmi
    • Algoritmi početna - Učenje i Primeri
    • Matematički algoritmi >
      • Fibonačijev niz
      • Prosti brojevi i faktorizacija
      • Eratostenovo sito
      • Euklidov algoritam
      • Maksimalna suma podniza
      • Brzo stepenovanje
    • Strukture podataka >
      • Mapa učenja Strukture podataka
      • Uvod u strukture i unije
      • Uvod u vektore
      • Povezane liste
      • Stek (Stack)
      • Red(Queue)
      • Disjoint Set Union (DSU) strukture+
      • Osnovne strukture podataka
    • Sortiranje nizova >
      • Sortiranje objedinjavanjem
      • Brzo Sortiranje
    • Binarna pretraga
    • Rekurzija i dinamičko programiranje >
      • Rekurzivni algoritmi >
        • Hanojske kule
      • Uvod u dinamičko programiranje
      • Fibonacijev niz DP i memoizacija – objašnjenje i primeri
      • DP: Problem ranca (Knapsack problem)
      • DP: Najduži zajednički podniz (LCS)
      • DP: Subset Sum -problem podskupa sa zadatom sumom
    • Zamena iteracija formulom
    • Grafovi i stabla >
      • Mapa učenja — Grafovi i stabla
      • Osnove i pretrage >
        • BFS i DFS (pretraga grafova)
        • Topološko sortiranje
        • Otkrivanje ciklusa u usmerenim grafovima
        • Najduži put u DAG-u (DP + topološko sortiranje)
      • Najkraći putevi >
        • Algoritmi grafovi Dijkstra-najkraći put
        • Bellman-Ford i Floyd-Warshall algoritmi
      • Minimalna stabla >
        • MST - Primov algoritam
        • Grafovi MST - Kruskalov algoritam
      • Grafovi Napredno >
        • Eulerovi putevi i ciklusi
        • Mostovi i Artikulisani čvorovi (Tarjanov algoritam)
        • SCC — Komponente jake povezanosti (Kosaraju i Tarjan)
        • DP na DAG-ovima — Primene
    • Napredne tehnike >
      • Podeli pa vladaj
      • Gramzivi algoritmi
  • Primeri - C,C++,Java,Python
    • Primeri iz programiranja – C, C++, Java, Python | Svet Programiranja
    • Osnovni primeri >
      • Podaci-primeri
      • Operatori-primeri
      • Grananje u programu - primeri
      • Petlje primeri >
        • Petlje - osnovni primeri
        • Ugnježdene petlje primeri
      • Stringovi - primeri
      • Nizovi primeri >
        • Nizovi-primeri
        • Sortiranje-primeri
        • Vektori i mape primeri
      • Matrice primeri
      • Funkcije u C/C++ jeziku -primeri
      • Primeri Algoritama >
        • Algoritmi-primeri >
          • Zamena iteracija formulom-primeri >
            • Nedostajući broj-uputstvo
        • Rekurzija-primeri >
          • Prvi i drugi na rang listi
        • Kombinatorika-primeri
        • Bektreking i gruba sila primeri
    • Dodatni primeri sa rešenjima >
      • Dodatni primeri sa rešenjima – algoritmi, petlje, grananje, OOP
      • Podaci i tipovi podataka-dodatni primeri
      • Dodatni primeri za vezbu - grananje u programu
      • Dodatni primeri iz petlji
      • Dodatni primeri za vezbu - Klase i objekti >
        • Ramovi za slike objekti-rešenje
        • Zadatak 2-Grupa radnika objekti
        • Salon Automobila rešenje
        • Zadatak 3. Kretanje automobila objekti-rešenje
        • Upravljanje porudžbinama u restoranu -rešenje zadatka
      • Kombinovani primeri za vezbu >
        • Zadatak 6-Interval-rešenje
    • Takmičenja-primeri >
      • Takmičenja primeri - vodič
      • Priprema za okružna takmičenja 1
      • Priprema za okružna takmičenja 2
      • Kvalifikacije za okružna takmičenja >
        • Datum sa najvećom zaradom-rešenje
        • Zbirovi nakon podele - rešenje
        • Zadatak Mešalica-rešenje
        • Zadatak Kuvar Rešenje
        • Zadatak Slovarica rešenje
        • Zadatak Note rešenje
        • Resenje zadatka Tačan Izraz
        • Zadatak Puž rešenje
        • Zadatak Seča Drva-rešenje
      • Opštinska takmičenja >
        • Zadatak Bejzbol Rešenje
      • Okružna takmičenja >
        • Zadatak Milioner rešenje
        • Zadatak Dve Slike Na Papiru
      • Priprema za državna takmičenja
      • Priprema za više nivoe takmičenja >
        • Priprema za drzavno takmičenje i SIO >
          • Zadatak Aritmetički trougao-rešenje
          • Obilazak konja-zadatak
          • Reči u mreži zadtak-rešenje
        • Interaktivni Algoritmi >
          • Zadatak Joker rešenje
          • Zadatak Boja rešenje
          • Zadatak Maksimizacija BTC
    • Objektno programiranje-primeri >
      • Klase i objekti - primeri
    • Testovi >
      • Testovi i kontrolni zadaci — vežbanje, mini-testovi i priprema
      • Kontrolni podaci
      • Kontrolni selekcije
      • Kontrolni petlje
      • Kontrolni - objekti i metode
      • Kontrolni Nizovi
  • Programski jezici
    • Programski jezici vodič
    • C >
      • C programski jezik
      • Uvod u programski jezik C
      • Elementi jezika C
      • Podaci u C jeziku
      • Operatori u C jeziku
      • Grananje u programu u C jeziku
      • Petlje u C programskom jeziku >
        • Petlje u programskom jeziku C
        • Ugnježdene petlje u C
      • Nizovi u jeziku C >
        • Nizovi u jeziku C
        • Dvodimenzionalni nizovi - matrice
        • Dvodimenzioni dinamički nizovi-matrice
      • C Stringovi
      • Pokazivači u C jeziku
      • Funkcije u C
    • C++ >
      • C++ programski jezik
      • Uvod u programski jezik C++
      • Podaci u C++ jeziku
      • Operatori u C++ jeziku
      • Grananje u programu u C++
      • Petlje u C++ programskom jeziku >
        • Petlje u programskom jeziku C++
        • Ugnježdene petlje u C++
      • Nizovi u C++ jeziku >
        • Nizovi u jeziku C++
        • Dinamički niz-vector
        • Rečnik podataka-mape u C++
        • Dvodimenzionalni nizovi - matrice u c++
        • Dvodimenzioni dinamički nizovi u c++
      • Stringovi u C++ jeziku
      • Pokazivači u C++
      • Funkcije u C++
    • C# >
      • C# – lekcije, primeri i vežbe
      • Uvod u C#
      • Kreiranje jednostavne aplikacije u C#
      • LINQ i Lambda izrazi u C#(Sharp)-u
      • Napredni C#(Sharp) primer
      • Konekcija sa bazom u C#-primer
      • Primer sa MySql bazom podataka
      • Kreiranje Windows Form App Sa SQLServer Bazom
    • JAVA >
      • Java – lekcije, primeri i zadaci
      • Uvod u Javu
      • Java osnove >
        • Podaci u JAVA programskom jeziku
        • Operatori u JAVI
        • Grananje u programu u programskom jeziku Java
        • Petlje u Javi
        • Nizovi u Javi
      • Objektno programiranje >
        • Klase i objekti
        • Metode i objekti
        • Nasleđivanje klasa
        • Apstraktne klase i interfejsi
      • Grafika u JAVI >
        • Grafika u Javi uvod
        • Grafički korisnički interfejs(GUI)
        • Događaji u JAVI
        • Crtanje u prozoru
        • Animacije u Javi-primer
        • Kreiranje 2D igrice u JAVI
        • Grafika u Javi-primer
        • Aplikacije u Javi-primeri
      • Simulacije u fizici >
        • Java i simulacije u fizici
        • Klase i objekti sa primenom u fizici
        • Upotreba ciklusa i nizova u simulacijama iz fizike
        • Primeri simulacija u EJS-u
    • Processing >
      • Processing – lekcije i primeri
      • Processing - uvod
      • Osnove processinga sa Javom
      • Processing i mikrobit
      • Vektori u Processing-u >
        • Opracije sa vektorima
      • Processing u 2D >
        • Kosi hitac u Processing-u
        • Primer kosog hica u processingu
        • Strma ravan u Processing-u
        • Analiza klizanja tela niz strmu ravan primer
        • Animacija Kružnog kretanja
      • Processing u 3D >
        • Uvod u 3D processing
        • Kretanje 3D objekata u processing-u
    • Arduino i ESP32 programiranje >
      • Arduino i ESP32 programiranje
      • Arduino programiranje >
        • DC motor-Upravljanje sa arduinom
      • ESP32 programiranje >
        • Uvod u ESP32
        • ESP32: Ultrazvučni senzor
        • ESP32-Primena kod servo motora
    • Python >
      • Uvod u python
      • Osnovni Python >
        • Python Osnovni Tutorijal — Početna za lekcije i primere
        • Python osnove >
          • Python za početnike – Instalacija i Prvi Program
          • Prvi program u python-u
          • Aritmetičke operacije u python-u
          • Mini projekti za početnike
          • Promenljive i tipovi podataka
          • Python input() — unos podataka za početnike
          • Formatiranje teksta-F string
          • Mini projekat-python
        • Kontrola toka programa >
          • Python grananje i logički operatori — if / elif / else
          • Grananje u Pythonu — if, elif, else | Svet Programiranjai
          • Mini zadaci- Temperatura i kviz
          • Petlje - while,for
          • Iteracije i osnovni algoritmi u Python-u
          • Mini zadaci — Petlje (for i while)
          • Nizovi i liste u python-u
          • Mini projekat: igra „Pogodi broj“
        • Funkcije i modularno programiranje >
          • Python funkcije
          • Python parametri i return
          • Opseg promenljivih
          • Modularno programiranje- moduli i import
        • Mini projekti i praktične vežbe >
          • Projekat: Pogodi broj
          • Mini projekat — Brojač bodova i statistika
          • Mini projekat — Tekstualni meni
          • Mini projekat — Simulacija semafora
          • Završni mini projekat — Digitalni brojač
      • MycroPython(microbit) >
        • Uvod u micropython
      • Python + Processing
      • Python za web
      • Projekti
    • Mikrobit i programiranje >
      • Microbit – Učenje programiranja za osnovce
      • Programiranje mikrobita snove >
        • Uvod u mikrobit
        • Naredbe u Makecode-u
        • Palete komandi Variables, Led. Temperatura i osvetljenje
        • Radio veza na mikrobitu
        • Upotreba promjenljivih i kontrolnih naredbi u programima
        • Kontrolne naredbe u programima mikrobita
        • Petlje-mikrobit
      • Programiranje mikrobita napredno >
        • Igrice i mikrobit
        • Mikrobit projekti i radionice
  • Politika Privatnosti
  • Linkovi
  • Učenje na daljinu
    • Učenje na daljinu-osnovci takmicari

Srpski | English

OPERATORI U JEZIKU C

U programskom jeziku C, operatori su osnovni alati za manipulaciju podacima i omogućavaju izvođenje matematičkih, logičkih, i bitovnih operacija. Operator definiše radnju koja se izvršava nad jednim ili više operanada, pri čemu rezultat može biti promena vrednosti, poređenje, ili logička procena.
Operatori su klasifikovani prema broju operanada na:
  • Unarne operatore – primenjuju se na jedan operand (npr. ++, --).
  • Binarne operatore – koriste se sa dva operanda (npr. +, -, *).
  • Ternarni operator – operator sa tri operanda, kao što je uslovni operator (? :).
Na primer, aritmetički operatori poput +, -, i * koriste se za osnovne matematičke operacije, dok relacijski operatori omogućavaju poređenje vrednosti (npr. ==, !=, >, <). Razumevanje operatora je ključ za efikasno programiranje u C jeziku jer omogućava preciznu kontrolu nad ponašanjem programa.

Karakteristike operatora

  • Operatori predstavljaju radnje koje se izvršavaju nad operandima, vraćajući određeni rezultat.
  • Izrazi u C jeziku mogu biti složeni sastavi operanada i operatora, što omogućava formiranje složenih logičkih i matematičkih operacija.
  • Operatori se primenjuju na jedan operand (kao kod unarnih operatora) ili na dva operanda (kod binarnih operatora).
  • Postoji jedan operator sa tri operanda - ternarni operator (? :), koji se koristi za jednostavne uslovne izraze (objašnjen detaljno kasnije).
​

Pročitajte  i Operatori u JAVI
​
Primer operatora:
int a = 10, b = 20;
int result = (a < b) ? a : b; // ternarni operator vraća 10 jer je a manje od b

Aritmetički operatori

​Koriste se za izraze sa osnovnim  računskim operacijama. U tabeli ispod je dat pregled aritmetičkih operatora
U sledećoj tabeli je dat pregled aritmetičkih podataka.
Operator Upotreba Opis
+ op1+op2 Sabira op1 i op2
- op1-op2 Oduzima op2 od op1
* op1*op2 Množi op1 sa op2
/ op1/op2 Deli op1 sa op2
% op1%op2 Računa ostatak deljenja op1 sa op2

U tabeli su dati aritmetički operatori koji se koriste u izrazima

Na primer: izračunati vrednost Re iz date jednačine: :1/Re=1/R1+1/R2

Resenje

double R1, R2, Re;
scanf(" %lf%lf ", &R1, &R2); //Korisnik unosi R1 i R2
Re=R1*R2 / (R1+R2); // Dobijeno rešenje zadate jednačine
printf("%f",Re);
Ukoliko su operacije istog prioriteta izvršava se kod sa leva na desno. Množenje i delenje imaju isti prioritet, a veći od sabiranja i oduzimanja koji su opet, između sebe, jednakog prioriteta. Ako se želi dati prednost računskoj operaciji manjeg prioriteta onda treba upotrebiti zagrade, kao što je i urađeno u primeru.

Ostatak deljenja dva broja. Operator "%"

Pretpostavimo da delimo dva cela broja: 7 i 3

Ako napišemo 7/3 dobićemo za rezultat 2. Rezultat je ceo broj jer smo delili dve celobrojne konstante

Ako želimo da dobijemo ostatak deljenja onda bi smo upotrebili operator %

7 % 3 = 1

Primer:   Učitati vreme u minutama i ispisati u obliku mm:ss

Rešenje:   Od podataka nam treba vreme u sekundama (Vr), a na izlazu za ispis minuti (mm) i sekunde (ss)
int Vr, mm, ss;
scanf(" %d ", &Vr); //Korisnik unosi vreme u sekundama
/* Pretpostavimo da je korisnik uneo za vreme 132s. Pošto jedan minut ima 60s,
od ovih 132s ćemo 2*60s pretvoriti u dva minuta, a ono što preostane staviti kao sekunde, u ovom
primeru to je 132-(2*60)= 12s. Ovo računski možemo dobiti korišćenjem operatora deljenja i ostatka deljenja, "/" i "%". */

mm=Vr / 60; // mm=132/60=2
ss=Vr % 60; // mm=132%60=12
printf("%2d : %2d",mm,ss);

Kada se kao operandi u jednoj aritmetičkoj operaciji koriste zajedno ceo broj i realan broj, rezultat je realan broj. Ceo broj se implicitno konvertuje u realan broj pre samog izračunavanja. U tabeli koja sledi su prikazani tipovi podataka koji se vraćaju iz aritmetičkih operacija, na osnovu tipova operanada. Potrebne konverzije se vrše pre nego što se obavi operacija.  
Tip podatka za rezultat Tipovi podataka za operande
long Nijedan od operanada nije float ili double (artiemtika celih brojeva), a najmanje jedan od operatora je tipa long
int Nijedan od operanada nije float ili double (aritmetika celih brojeva). Nijedan operand nije long.
double Najmanje jedan operand je tipa double
float Najmanje jedan operand je tipa float. Nijedan nije tipa double

Unarni operatori "++","--"

​Postoje i dva operatora koji omogućavaju skraćeno izračunavanje. To su operator ++(inkrement) koji operand povećava za 1 i operator – (dekrement) koji operand smanjuje za 1. Oba operatora mogu da se pojave ispred operanda (prefiks) i iza operanda (postfiks). Kod verzije prefiks, ++op/--op se prvo operand povećava za 1, pa se taj rezultat koristi dalje u izrazima. Kod verzije postfix se prvo operand primeni u izrazu (stara vrednost), a tek posle se ta vrednost promeni.
​

Relacioni i uslovni operatori

​Relacioni operator poredi dve vrednosti i određuje vrednost između njih. Na primer, != vraća tačno ako dva operanda nisu jednaka. U tabeli koja sledi su dati relacioni operatori:
Operator Upotreba Vraća tačno(true) ako je
> op1>op2 op1 veće od op2
>= op1 >= op2 op2 veće ili jednako op1
< op1 < op2 op1 manje od op2
<= op1 <= op2 op1 manje ili jednako op2
== op1 == op2 op1 jednako sa op2
!= op1 != op2 op1 različito od op2

Primer relacionih operatora

if (a > b) {
    printf("a je veće od b");
}
Ovaj operator poredi vrednosti  a i b i kao rezultat vraća vrednost true, ako jeste tačan izraz a>b, odnosno false, ako nije.
​Relacioni operatori se često koriste zajedno sa logičkim operatorima, čime se dobijaju složeni izrazi. U Javi postoje sledeći logički operatori:
Operator Upotreba Vraća tačno(true) ako je
&& op1 && op2 i op1 i op2 imaju vrednost true. op2 se izračunava samo ako je potrebno
|| op1 || op2 ili op1 ili op2 ima vrednost true (tačno). op2 se izračunava samo ako je potrebno
! !op op ima vrednost false (netačno)
& op1 & op2 i op1 i op2 imaju vrednost tačno. Uvek se izračunava i op1 i op2
| op1 | op2 Ili je op1 ili je op2 true (tačno). Uvek se izračunava i op1 i op2.
^ op1 ^ op2 ako su op1 i op2 različiti, odnosno ako jedan ima vrednost true, ali ne i oba
Koja je razlika između operatora && i &? Razlika je u brzini izvršavanja programa. Sa operatorom & se vrednost drugog operatora uvek izračunava, dok se sa operatorom && izračunava vrednost prvog operanda, a ako je to dovoljno da se izračuna vrednost celog izraza, drugi operand se ne izračunava.  

Logički operatori

Logički operatori se koriste za logičke operacije između booleanskih vrednosti (true i false). Najčešće se koriste u uslovima za kombinovanje više logičkih izraza. Primeri logičkih operatora su:
  • && - Logički AND (vraća tačno ako su oba izraza tačna).
  • || - Logički OR (vraća tačno ako je barem jedan od izraza tačan).
  • ! - Logički NOT (menja vrednost izraza u suprotno, tj. tačno postaje netačno i obrnuto).

Primeri logičkih operatora

bool x = true;
bool y = false;
bool rezultat = (x && y);  // rezultat je false jer oba izraza nisu tačna

Primer:   Za zadate vrednosti celobrojnih promenljivih a, b, c odredi vrednosti logičkih izraza: 

a=4,b=7, c=11
  1. a>b
  2. ! a > b && !(b<c)
  3. ​a !=0 || !(a>(b>c))
Vrednosti logičkih izraza u C jeziku su zapravo celi brojevi i to vrednost izraza ima vrednost 1 ako je logički izraz istinit(true), odnosno vrednost 0, ako je izraz logički ne istinit(false). Ako su definisana 3 cela broja čije su vrednosti redom 4,7 i 11onda će vrednosti traženih logičkih izraza biti:​
  1. a > b, daje vrednost 0,
    jer 4 nije veće od 7
  2. ! (a > b  &&  !(b<c)), imaće vrednost 1. 
    Ako zamenimo u izrazu vrednosti za a,b i c dobićemo
    ! ((4 > 7)  &&  !(7<11)) =
    !((0) && (1)) = !(0)=1

    Prikazane zagrade prikazuju kojim redom će se izvršavati operatori. Prvo se izvršavaju oni operatori koji imaju najviši prioritet(vidi poslednju tabelu dole). Dakle operatori ">" i "<" imaju viši prioritet od operatora "&&", pa se prvo izračunavaju izrazi 4>7 čija je vrednost 0(false) i 7<11 čija je vrenost 1(true). Zatim se izračunava 0 && 1 sto daje 0(false). Na kraju se izvršava negacija ! koja će ovu vrednost pretvoriti u 1(true).
  3. ​a !=0 || !(a>(b>c)) daje vrednost 1
    4 != 0 || (4> (7 > 11)) =
    (4 != 0) || (4> (7 > 11))  = 
    (0) || (4> (0))=
    0 || 1=
    1
Rešenje: ovog primera:


using namespace std;


int main()

{

int a,b,c;

bool e,f,g;


a=4;

b=7;

c=11;

//Izracunavanje logickih izraza

e=a > b;

f = !(a > b && !(b < c));

g = a!=0 || !(a > (b > c));


//Ispisivanje vrednosti izraza

cout << "e=" << e << endl;

cout << "f=" << f << endl;

cout << "g="<< g << endl;

return 0;
}
Na standardno izlazu tj. konzoli:
Picture

Razlika između relacionih i logičkih operatora

  • Relacioni operatori vrše poređenje između dve vrednosti, a rezultat poređenja je logička vrednost (tačno ili netačno). Na primer, da li je broj a veći od b.
  • Logički operatori kombinuju ili negiraju logičke vrednosti. Oni ne rade direktno na numeričkim vrednostima kao relacioni operatori, već na rezultatima koji su već true ili false.
Primer koji uključuje oba tipa operatora:
int a = 10;
int b = 20;
int c = 15;

// Prvo koristimo relacione operatore da dobijemo booleanske vrednosti
bool uslov1 = (a < b);   // true jer je 10 manje od 20
bool uslov2 = (c == 15); // true jer je c jednako 15

// Zatim koristimo logičke operatore da kombinujemo rezultate
bool konacanRezultat = uslov1 && uslov2; // true jer su oba uslova tačna
​U ovom primeru, relacione operacije (a < b i c == 15) vraćaju booleanske vrednosti, koje se zatim kombinuju pomoću logičkog AND operatora (&&).

Operatori po bitovima

Operatori po bitovima omogućavaju izvođenje operacija na nivou bitova unutar celobrojnih podataka. Postoje dve grupe operatora po bitovima:
  • operatori za izvođenje logičkih operacija između parova bitova na istim pozicijama unutar svojih operanada
  • operatori za pomeranje
Za izvođenje logičkih operacija po bitovima imamo sledeće operatore:
  • ~   Vrši komplementiranje(negaciju) vrednosti svog operanda po bitovima. Dakle, vrši pretvaranje iz stanja 0 u stanje 1 i obrnuto
  • &   Logičko "i" za operacije po bitovima.
  • |   Logičko uključivo "ili" za operacije po bitovima. 
  • ^   Logičko isključivo "ili" za operacije po bitovima. 
Za izvođenje logičkih operacija po bitovima imamo sledeće operatore za pomeranje:
  • <<   Vrši pomeranje levog operanda za onoliko binarnih mesta ulevo kolika je vrednost desnog operanda
  • >>   Vrši pomeranje levog operanda za onoliko binarnih mesta udesnokolika je vrednost desnog operanda. Pomeranje udesno za n pozicija ekvivalentno je deljenju broja sa 2^n

Primeri za operatore po bitovima 

Npr. za podatke tipa int koji imaju po 16 bitova memorije:
  •     25 & 5  = 1                    0000000000011001 &
                                                      0000000000000111 = 
                                                      0000000000000001


  •     25  |  5  =  29                0000000000011001 |    
                                                      0000000000000101 = 
                                                      0000000000011101


  •     25  ^  5  =  28                0000000000011001 ^    
                                                      0000000000000101 = 
                                                      0000000000011100


  • 25  << 2  =  100               0000000000011001 <<2 =                                                         
                                                     0000000001110100

  •     25  >>  3  =  3              0000000000011001 &    
                                                      0000000000000101 = 
                                                      0000000000000011

Operator dodele

Osnovni operator dodele je operator =, kojim se jedna vrednost dodeljuje drugoj.  U C, C++ postoje i operatori dodele kojim se odjednom izvršava više operacija. Pretpostavimo da želite da saberete vrednost promenljive sa nekim brojem i da rezultat dodelite istoj promenlivoj. Napisali biste: i = i + 2; Skraćeno se ovo može napisati pomoću operatora += na sledeći način: i += 2; Prethodna dva izraza su ekvivalentna.  U tabeli koja sledi su dati neki od operatora ovog tipa:  
Operator Upotreba Ekvivalentno sa:
+= op1 += op2 op1 = op1 + op2
-= op1 -= op2 op1 = op1 - op2
*= op1 *= op2 op1 = op1 * op2
/= op1 /= op2 op1 = op1 / op2
%= op1 %= op2 op1 = op1 % op2
&= op1 &= op2 op1 = op1 & op2
|= op1 |= op2 op1 = op1 | op2
^= op1 ^= op2 op1 = op1 ^ op2
Operatori po bitovima mogu da se kombinuju sa operatorima dodele:
Na primer:
int N=28;
N=N<<3;
Početni broj 28 ce se transformisati u broj 224 i ta vrednost se dodeljuje istoj memoriji N.
  • 28  << 3  =  224               0000000000011100 <<2 =                                                         
                                                     0000000011100000

Ostali operatori u C, C++

Uslovni izraz:  ?  :

Posmatrajmo sledeći problem:
​

Za unete cele brojeve a i b odrediti veći broj.
Rezervišimo memoriju za 3 podatka, a i b i veći od ta dva ćemo smestiti u novu promenljivu maxAB.

int a,b,maxAB;

Korisnik zatim unosi a i b sa konzole:

scanf("%d%d", &a, &b);

Da bi dodelili vrednost maxAB , moguće su dve varijante:
maxAB=a;    ako je  a >=b ili
maxAB=b,    ako je a<b


Ako bi stavili obe varijante, prvo bi vrednost maxAB bila a a kasnije bi se promenila u b i uvek bi na kraju bila b.
Potrebno je prvo postaviti pitanje da li je a>b, pa ako je to tačno onda se izvršava maxAB=a, u suprotnom maxAB=b;

Za to se koristi uslovni izraz:

maxAB=(a>b)  ?  a  :  b;
​

 Na kraju treba odštampati ovu vrednost:

printf("maxAB=%d", maxAB);


SIZEOF operator​

Pomoću ovog operatora se može odrediti veličina podatka u bajtovima. Sledeći primer to demonstrira:

#include < stdio.h > 
#include < stdlib.h >
int main(int argc, char *argv[])
{
int a;
char b;
short c;
long d;
long long e;
unsigned long int f;
printf("\nUnesi ceo broj a="); scanf("%d",&a);
printf("\nUnesi ceo broj b="); scanf("%d",&b);
printf("\nUnesi ceo broj c="); scanf("%d",&c);
printf("\nUnesi ceo broj d="); scanf("%d",&d);
printf("\nUnesi ceo broj e="); scanf("%d",&e);
printf("\nUnesi ceo broj f="); scanf("%d",&f);
printf("\nVelicina podatka int je %d bajta i to je jednako velicini a=%d bajta",sizeof(int),sizeof(a));
printf("\nVelicina podatka char je %d bajta i to je jednako velicini b=%d bajta",sizeof(char),sizeof(b));
printf("\nVelicina podatka short je %d bajta i to je jednako velicini c=%d bajta",sizeof(short),sizeof(c));
printf("\nVelicina podatka long je %d bajta i to je jednako velicini d=%d bajta",sizeof(long),sizeof(d));
printf("\nVelicina podatka long long je %d bajta i to je jednako velicini e=%d bajta",sizeof(long long),sizeof(e));
printf("\nVelicina podatka unsigned long int je %d bajta i to je jednako velicini f=%d bajta",sizeof(unsigned long int),sizeof(d));
return 0;
Ako unesemo proizvoljno šest celih brojeva(vrednost ne utiče na veličinu podatka) na izlazu ćemo dobiti:
Operator sizeof
Veličina podatka - izlaz:
Vidimo da primenimo sizeof operator na tip podatka sizeof(int) ili na sam podatak sizeof(a) dobijemo veličinu podatka u bajtovima

Operator zareza ","

​je binarni operator koji procenjuje svoj prvi operand i odbacuje rezultat, zatim procenjuje drugi operand i vraća ovu vrednost (i tip). Operator zareza ima najniži prioritet bilo kog C operatora. Comma deluje kao operator i separator

Još po neki operator

Ostali operatori u jeziku C/C++ dati su u sledećoj tabeli:
Operator Opis operatora
[] Indeksiranje
() poziv funkcije
. pristup članu(elementu) strukture
-> pristup članu(elementu) strukture pomoću pokazivača
*(unarni) pristup podatku pomoću pokazivača(indirektno adresiranje)
&(unarni) adresa promenljive

Tabela prioriteta operatora

Kada u izrazu ima više operatora onda se prvo izvršavaju operacije većeg prioriteta. Ako su operatori istog prioriteta, tada će izvršavanje biti sa leva na desno u većini slučajeva(Pogledati kolonu Smer grupisanja u tabeli ispod).
Donja tabela opisuje redosled prioriteta i asocijativnost operatora u C / C ++. Prednost operatera se smanjuje od vrha do dna.
Prioritet Broj operanada Smer grupisanja: Operatori:
15 2 ->

[] () . ->

14 1 ->

! ~ ++ -- + - * & (tip) sizeof

13 2 ->

* / %

12 2 ->

+ -

11 2 ->

<< >>

10 2 ->

< <= > >=

9 2 ->

== !=

8 2 ->

&

7 2 ->

^

6 2 ->

|

5 2 ->

&&

4 2 ->

||

3 2 ->

?:

2 2 ->

=  +=  -=  *=  /=  %=  &=  ^=  |=  <<=  >>=

1 2 ->

,

Napredna tema — dodatni operatori i primeri

Ovaj odeljak dodaje objašnjenja za bitovne operatore, operatore dodele i kombinovane operatore, sizeof, cast-ove i zarez operator. Kratki primeri prikazuju tipične upotrebe i uobičajene zamke.

Bitovni operatori

Bitovni operatori rade po bitovima (obično nad celobrojnim tipovima): & (AND), | (OR), ^ (XOR), ~ (NOT), << (levi shift) i >> (desni shift). Često se koriste za maskiranje, testiranje bitova i kombinovanje zastavica. Za predvidivo ponašanje kod shiftova preferiraj unsigned tipove.

// primer: maskiranje i testiranje bita
unsigned int flags = 0x5;   // ...0101b
// test: da li je bit 0 postavljen?
if (flags & 0x1) { /* bit 0 je 1 */ }

// postavljanje bita 2
flags |= (1u << 2);

// čišćenje bita 0
flags &= ~(1u << 0);

// XOR za prebacivanje (toggle) selektovanih bitova
flags ^= (1u << 1);

Napomena: desni shift nad potpisanim (signed) tipovima može biti implementation-defined — koristi unsigned kada želiš predvidivo ponašanje.

Operator dodele i kombinovani operatori

Osnovni operator dodele je =. Kombinovani operatori kombinuju operaciju i dodelu: +=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>=. Često sprečavaju ponavljanje imena varijable i mogu biti efikasniji.

int x = 10;
x += 5;    // isto kao x = x + 5;
x &= 0xF;  // maskiranje donjih 4 bita
sizeof, cast i zarez operator

sizeof vraća veličinu tipa/objekta u bajtovima. Cast koristi sintaksu (type)value. Zarez operator , najpre evaluira levi operand, zatim desni i vraća vrednost desnog — koristan u nekim idiomima, ali smanjuje čitljivost.

int a = 0;
// ispis veličine int (koristi %zu za portabilnost)
printf("size of int: %zu\n", sizeof(int));

double d = 3.14;
int di = (int)d;   // eksplicitni cast: odbacuje decimalni deo

// primer zarez operatora
int v = (a = 1, a + 2); // prvo a=1, zatim v = a+2 => v == 3

Napredna tema — logički naspram bitovnih operatora, promocije i neizdefinisano ponašanje

Razlika između logičkih i bitovnih operatora

&& i || su logički operatori: tretiraju operande kao true/false i imaju short-circuit ponašanje (drugi operand se evaluira samo ako je potrebno). &, |, ^ su bitovni operatori: rade bit-po-bit i uvek evaluiraju oba operanda. Ova razlika je čest izvor grešaka.

int a = 0;
int b = 1;

if (a && (b++ > 0)) {
  // ovde (b++ > 0) SE NEĆE izvršiti jer a==0 -> short-circuit
}
// b ostaje 1

if (a & (b++ > 0)) {
  // ovde (b++ > 0) ĆE se izvršiti; & ne short-circuit-uje
}
// b postaje 2

Integer promotions i usual arithmetic conversions (kratko)

Izrazi sa različitim celobrojnim tipovima prate pravila promocije: manji tipovi (npr. char, short) obično se promovišu u int (ili unsigned int u nekim slučajevima). Zatim se primenjuju usual arithmetic conversions da bi se odredio zajednički tip operacije. Mešanje signed i unsigned tipova može dati neočekivane rezultate — bolje je eksplicitno kastovati kada je namera važna.

unsigned short us = 60000;
int i = -1;
auto r = us + i; 
// us se može promovisati i rezultat zavisi od pravila unsigned vs signed

Neizdefinisano ponašanje: modifikacija iste promenljive više puta u jednom izrazu

Izrazi koji modifikuju i čitaju istu promenljivu bez sekvenciranja između tih operacija imaju

undefined behavior

. Klasičan zbunjujući primer:

int i = 1;
i = i++ + 1; // undefined behavior — rezultat nije definisan standardom

Piši kod eksplicitno i sekvencirano umesto ovakvih izraza:

int i = 1;
int tmp = i;
i = tmp + 1;    // jasno i definisano

// ili jednostavnije forme
i++; 
i = i + 1; // ili i += 1; zavisi šta želiš postići

Savet: izbegavaj složene izraze koji modifikuju istu promenljivu više puta — takvi izrazi su teško razumljivi i često neportabilni.

Konačna preporuka

Predlažem da ove sekcije postaviš kao kolapsibilne blokove ("Advanced topics") ili kao odvojene odeljke na kraju stranice, kako ne bi opteretile korisnike koji traže samo osnovne informacije. Ako želiš, mogu:

  • pripremiti i englesku verziju u istom vizuelnom stilu,
  • generisati kompaktni štampani cheat-sheet iz ovih sekcija,
  • ili prilagoditi HTML tako da se direktno uklopi u specifičan izgled tvoje stranice — pošalji link ili CSS.

Tehnički izvori — predlozi za linkovanje

Preporučujem da u članku dodaš autoritativne reference koje čitaocima omogućavaju dublje proučavanje tema i verifikaciju tvrdnji.

Preporučeni izvori

  • cppreference (C) — logical operators — detaljno objašnjenje logičkih operatora u C: cppreference — C logical operators
  • cppreference (C) — arithmetic operators — aritmetički operatori i napomene o celobrojnom deljenju: cppreference — C arithmetic operators
  • cppreference (C) — bitwise & other operators — bitovni operatori i ostali operatori: cppreference — C bitwise operators
  • cppreference (C++) — operators — sveobuhvatna stranica o operatorima u C++ (uključuje informacije o overload-ovanju): cppreference — C++ operators
  • cppreference (C++) — operator precedence — pravila prioriteta operatora (važno za čitljivost i izbegavanje grešaka): cppreference — operator precedence
  • Integer promotions / implicit conversions (reference) — pravila promocija i konverzija koja uticu na izraze: cppreference — integer promotion (C)  •  cppreference — implicit conversions (C++)
  • ISO/IEC 9899 (C standard) — zvanični standard za C (formalni, autoritativni izvor; obično plaćen): ISO/IEC 9899 (C standard)
  • Kernighan & Ritchie — The C Programming Language (K&R) — klasik za brz i jasan pregled jezika: K&R — Wikipedia (info & editions)

Prethodno
​|< Podaci u C jeziku
Sledeće
​Grananje u programu >|

Srodni članci

Podaci-primeri
Java predavanja
Matematički algoritmi
Priprema za kontrolni
Matrice
Algoritmi
Matrice
Java
Linkovi
​Politika Privatnosti
Kontakt



© 2025 by Slobodan svetprogramiranja.com

Sva prava zadržana

  • Početna
  • WEB APLIKACIJE
    • Popularni programski jezici danas
    • Klase za stil naslovne strane
    • Trendovi u programiranju
    • Internet stvari
    • Kreiranje web sajtova i web aplikacija >
      • Kreiranje web aplikacija
      • Kreiranje web aplikacija 2
      • ASP.NET Core web aplikacije >
        • ASP.NET Core web aplikacije uvod
        • Servisiranje statičkih web strana pomoću web servera
        • Kreiranje sql web api servisa koji čita podatke iz baze
        • Kreiranje kontrolera u asp.net web API aplikaciji
        • Komunikacija Javascript web aplikacije sa API serverom
      • Kreiranje web sajta >
        • Logo Kreator - naslovna
      • Kreiranje Django Web Aplikacije >
        • Kreiranje aplikacije na Heroku Web Platformi 2 >
          • Kreiranje Python Web Aplikacije-početak
        • Python Web Aplikacije
        • Logo Kreator - Kreiranje Naslovne strane
        • Django aplikacija i baza podataka
        • Kreiranje aplikacije na Heroku Web Platformi >
          • Dodavanje modula za registraciju >
            • Dodavanje web strane za logovanje
  • Algoritmi
    • Algoritmi početna - Učenje i Primeri
    • Matematički algoritmi >
      • Fibonačijev niz
      • Prosti brojevi i faktorizacija
      • Eratostenovo sito
      • Euklidov algoritam
      • Maksimalna suma podniza
      • Brzo stepenovanje
    • Strukture podataka >
      • Mapa učenja Strukture podataka
      • Uvod u strukture i unije
      • Uvod u vektore
      • Povezane liste
      • Stek (Stack)
      • Red(Queue)
      • Disjoint Set Union (DSU) strukture+
      • Osnovne strukture podataka
    • Sortiranje nizova >
      • Sortiranje objedinjavanjem
      • Brzo Sortiranje
    • Binarna pretraga
    • Rekurzija i dinamičko programiranje >
      • Rekurzivni algoritmi >
        • Hanojske kule
      • Uvod u dinamičko programiranje
      • Fibonacijev niz DP i memoizacija – objašnjenje i primeri
      • DP: Problem ranca (Knapsack problem)
      • DP: Najduži zajednički podniz (LCS)
      • DP: Subset Sum -problem podskupa sa zadatom sumom
    • Zamena iteracija formulom
    • Grafovi i stabla >
      • Mapa učenja — Grafovi i stabla
      • Osnove i pretrage >
        • BFS i DFS (pretraga grafova)
        • Topološko sortiranje
        • Otkrivanje ciklusa u usmerenim grafovima
        • Najduži put u DAG-u (DP + topološko sortiranje)
      • Najkraći putevi >
        • Algoritmi grafovi Dijkstra-najkraći put
        • Bellman-Ford i Floyd-Warshall algoritmi
      • Minimalna stabla >
        • MST - Primov algoritam
        • Grafovi MST - Kruskalov algoritam
      • Grafovi Napredno >
        • Eulerovi putevi i ciklusi
        • Mostovi i Artikulisani čvorovi (Tarjanov algoritam)
        • SCC — Komponente jake povezanosti (Kosaraju i Tarjan)
        • DP na DAG-ovima — Primene
    • Napredne tehnike >
      • Podeli pa vladaj
      • Gramzivi algoritmi
  • Primeri - C,C++,Java,Python
    • Primeri iz programiranja – C, C++, Java, Python | Svet Programiranja
    • Osnovni primeri >
      • Podaci-primeri
      • Operatori-primeri
      • Grananje u programu - primeri
      • Petlje primeri >
        • Petlje - osnovni primeri
        • Ugnježdene petlje primeri
      • Stringovi - primeri
      • Nizovi primeri >
        • Nizovi-primeri
        • Sortiranje-primeri
        • Vektori i mape primeri
      • Matrice primeri
      • Funkcije u C/C++ jeziku -primeri
      • Primeri Algoritama >
        • Algoritmi-primeri >
          • Zamena iteracija formulom-primeri >
            • Nedostajući broj-uputstvo
        • Rekurzija-primeri >
          • Prvi i drugi na rang listi
        • Kombinatorika-primeri
        • Bektreking i gruba sila primeri
    • Dodatni primeri sa rešenjima >
      • Dodatni primeri sa rešenjima – algoritmi, petlje, grananje, OOP
      • Podaci i tipovi podataka-dodatni primeri
      • Dodatni primeri za vezbu - grananje u programu
      • Dodatni primeri iz petlji
      • Dodatni primeri za vezbu - Klase i objekti >
        • Ramovi za slike objekti-rešenje
        • Zadatak 2-Grupa radnika objekti
        • Salon Automobila rešenje
        • Zadatak 3. Kretanje automobila objekti-rešenje
        • Upravljanje porudžbinama u restoranu -rešenje zadatka
      • Kombinovani primeri za vezbu >
        • Zadatak 6-Interval-rešenje
    • Takmičenja-primeri >
      • Takmičenja primeri - vodič
      • Priprema za okružna takmičenja 1
      • Priprema za okružna takmičenja 2
      • Kvalifikacije za okružna takmičenja >
        • Datum sa najvećom zaradom-rešenje
        • Zbirovi nakon podele - rešenje
        • Zadatak Mešalica-rešenje
        • Zadatak Kuvar Rešenje
        • Zadatak Slovarica rešenje
        • Zadatak Note rešenje
        • Resenje zadatka Tačan Izraz
        • Zadatak Puž rešenje
        • Zadatak Seča Drva-rešenje
      • Opštinska takmičenja >
        • Zadatak Bejzbol Rešenje
      • Okružna takmičenja >
        • Zadatak Milioner rešenje
        • Zadatak Dve Slike Na Papiru
      • Priprema za državna takmičenja
      • Priprema za više nivoe takmičenja >
        • Priprema za drzavno takmičenje i SIO >
          • Zadatak Aritmetički trougao-rešenje
          • Obilazak konja-zadatak
          • Reči u mreži zadtak-rešenje
        • Interaktivni Algoritmi >
          • Zadatak Joker rešenje
          • Zadatak Boja rešenje
          • Zadatak Maksimizacija BTC
    • Objektno programiranje-primeri >
      • Klase i objekti - primeri
    • Testovi >
      • Testovi i kontrolni zadaci — vežbanje, mini-testovi i priprema
      • Kontrolni podaci
      • Kontrolni selekcije
      • Kontrolni petlje
      • Kontrolni - objekti i metode
      • Kontrolni Nizovi
  • Programski jezici
    • Programski jezici vodič
    • C >
      • C programski jezik
      • Uvod u programski jezik C
      • Elementi jezika C
      • Podaci u C jeziku
      • Operatori u C jeziku
      • Grananje u programu u C jeziku
      • Petlje u C programskom jeziku >
        • Petlje u programskom jeziku C
        • Ugnježdene petlje u C
      • Nizovi u jeziku C >
        • Nizovi u jeziku C
        • Dvodimenzionalni nizovi - matrice
        • Dvodimenzioni dinamički nizovi-matrice
      • C Stringovi
      • Pokazivači u C jeziku
      • Funkcije u C
    • C++ >
      • C++ programski jezik
      • Uvod u programski jezik C++
      • Podaci u C++ jeziku
      • Operatori u C++ jeziku
      • Grananje u programu u C++
      • Petlje u C++ programskom jeziku >
        • Petlje u programskom jeziku C++
        • Ugnježdene petlje u C++
      • Nizovi u C++ jeziku >
        • Nizovi u jeziku C++
        • Dinamički niz-vector
        • Rečnik podataka-mape u C++
        • Dvodimenzionalni nizovi - matrice u c++
        • Dvodimenzioni dinamički nizovi u c++
      • Stringovi u C++ jeziku
      • Pokazivači u C++
      • Funkcije u C++
    • C# >
      • C# – lekcije, primeri i vežbe
      • Uvod u C#
      • Kreiranje jednostavne aplikacije u C#
      • LINQ i Lambda izrazi u C#(Sharp)-u
      • Napredni C#(Sharp) primer
      • Konekcija sa bazom u C#-primer
      • Primer sa MySql bazom podataka
      • Kreiranje Windows Form App Sa SQLServer Bazom
    • JAVA >
      • Java – lekcije, primeri i zadaci
      • Uvod u Javu
      • Java osnove >
        • Podaci u JAVA programskom jeziku
        • Operatori u JAVI
        • Grananje u programu u programskom jeziku Java
        • Petlje u Javi
        • Nizovi u Javi
      • Objektno programiranje >
        • Klase i objekti
        • Metode i objekti
        • Nasleđivanje klasa
        • Apstraktne klase i interfejsi
      • Grafika u JAVI >
        • Grafika u Javi uvod
        • Grafički korisnički interfejs(GUI)
        • Događaji u JAVI
        • Crtanje u prozoru
        • Animacije u Javi-primer
        • Kreiranje 2D igrice u JAVI
        • Grafika u Javi-primer
        • Aplikacije u Javi-primeri
      • Simulacije u fizici >
        • Java i simulacije u fizici
        • Klase i objekti sa primenom u fizici
        • Upotreba ciklusa i nizova u simulacijama iz fizike
        • Primeri simulacija u EJS-u
    • Processing >
      • Processing – lekcije i primeri
      • Processing - uvod
      • Osnove processinga sa Javom
      • Processing i mikrobit
      • Vektori u Processing-u >
        • Opracije sa vektorima
      • Processing u 2D >
        • Kosi hitac u Processing-u
        • Primer kosog hica u processingu
        • Strma ravan u Processing-u
        • Analiza klizanja tela niz strmu ravan primer
        • Animacija Kružnog kretanja
      • Processing u 3D >
        • Uvod u 3D processing
        • Kretanje 3D objekata u processing-u
    • Arduino i ESP32 programiranje >
      • Arduino i ESP32 programiranje
      • Arduino programiranje >
        • DC motor-Upravljanje sa arduinom
      • ESP32 programiranje >
        • Uvod u ESP32
        • ESP32: Ultrazvučni senzor
        • ESP32-Primena kod servo motora
    • Python >
      • Uvod u python
      • Osnovni Python >
        • Python Osnovni Tutorijal — Početna za lekcije i primere
        • Python osnove >
          • Python za početnike – Instalacija i Prvi Program
          • Prvi program u python-u
          • Aritmetičke operacije u python-u
          • Mini projekti za početnike
          • Promenljive i tipovi podataka
          • Python input() — unos podataka za početnike
          • Formatiranje teksta-F string
          • Mini projekat-python
        • Kontrola toka programa >
          • Python grananje i logički operatori — if / elif / else
          • Grananje u Pythonu — if, elif, else | Svet Programiranjai
          • Mini zadaci- Temperatura i kviz
          • Petlje - while,for
          • Iteracije i osnovni algoritmi u Python-u
          • Mini zadaci — Petlje (for i while)
          • Nizovi i liste u python-u
          • Mini projekat: igra „Pogodi broj“
        • Funkcije i modularno programiranje >
          • Python funkcije
          • Python parametri i return
          • Opseg promenljivih
          • Modularno programiranje- moduli i import
        • Mini projekti i praktične vežbe >
          • Projekat: Pogodi broj
          • Mini projekat — Brojač bodova i statistika
          • Mini projekat — Tekstualni meni
          • Mini projekat — Simulacija semafora
          • Završni mini projekat — Digitalni brojač
      • MycroPython(microbit) >
        • Uvod u micropython
      • Python + Processing
      • Python za web
      • Projekti
    • Mikrobit i programiranje >
      • Microbit – Učenje programiranja za osnovce
      • Programiranje mikrobita snove >
        • Uvod u mikrobit
        • Naredbe u Makecode-u
        • Palete komandi Variables, Led. Temperatura i osvetljenje
        • Radio veza na mikrobitu
        • Upotreba promjenljivih i kontrolnih naredbi u programima
        • Kontrolne naredbe u programima mikrobita
        • Petlje-mikrobit
      • Programiranje mikrobita napredno >
        • Igrice i mikrobit
        • Mikrobit projekti i radionice
  • Politika Privatnosti
  • Linkovi
  • Učenje na daljinu
    • Učenje na daljinu-osnovci takmicari
SVET PROGRAMIRANJA

Podešavanja kolačića

Koristimo kolačiće da bismo vam pružili najbolje moguće iskustvo. Takođe nam omogućavaju da analiziramo ponašanje korisnika kako bismo stalno poboljšavali veb lokaciju za vas.