Operatori su simboličke oznake u C++ programskom jeziku koji se koriste za izvođenje određenih operacija nad podacima. Oni omogućavaju manipulaciju podacima, izvršavanje aritmetičkih operacija, poređenje vrednosti, logičke operacije, manipulaciju bitovima i još mnogo toga. Neke od operatora ste definitvno učili još u osnovnoj školi na časovima matematike. U programiranju operatora imate mnogo više, i nisu svi isti u svim programskim jezicima. Ali postoje oni osnovni operatori koji su svugde isti pa i u matematici. Tako da većinu ovih stvari poznajete, samo treba da obratite pažnju kako računari koriste operatore, posebno u C++ programskom jeziku. U C++ programskom jeziku postoje različite vrste operatora i oni su:
- Aritmetički operatori
- Operatori dodele ili dodeljivanja
- Aritmetički unarni operatori
- Relacioni ili operatori poređenja
- Logički operatori
- Binarni operatori
- Ternarni operatori
- I drugi.
Za
početak, upoznaćete se samo sa nekim osnovnim operatorima u C++ programskom
jeziku, dok ćete ostale koristiti u naprednijim postovima tutorijala. U
programiranju ćete bez obzira na vaše iskustvo, često dolaziti u susret sa
stvarima koje su vam nepoznate. U velikim projektima ćete nailaziti na delove kôd-a, koji nikad niste videli; tako da nemojte sebe da opterećujete
da odmah treba sve da znate. Bitno je da svaki dan kodirate, stičete navike i
razvijate programersko razmišljanje. Ali i da sami sebe motivišete radoznalošću
i ličnim željama da nešto kreirate. Sve što više budete kreativni i uporni, više
ćete i uživati u vlastitoj kreativnosti i bolje programirati.
- Sabiranje +
- Oduzimanje –
- Množenje *
- Deljenje /
- Modul %
Ove operatore možete videti skoro na svakom digitronu. Razlika je u tome što u C++ programskom jeziku možete isprogramirati digitron zahvaljujući njima. Obratite pažnju na operator modul. U programiranju modul ima često drugačije značenje jer se češće odnosi na module nego na operatore, zato se češće naziva modulo ili skraćeno mod. Ono što je bitno, jeste da modul kao operator vam se definiše kao ostatak prilikom deljenja dva prirodna broja. U prevodu prilikom deljenja celih brojeva. To nije isto što i deljenje dva decimalna broja:
5 / 2 = 2,5
5 % 2 = 1
Modulo primena u programiranju se najbolje može objasniti kad na primer želite
da vidite da li je neki broj paran ili neparan. Tad je dovoljno broj modulo
sa 2.
Ukoliko nemate ostatak ili modulo između dva broja je 0,
onda je broj paran.
5 % 2 = 1 // modulo od 5 i 2 ima ostatak,
znači broj 5 je neparan
4 % 2 = 0
// modulo od 4 i 2 nema
ostatak, znači broj 4 je paran
Operatori dodele ili dodeljivanja
A = A + B;
Može da se kodira ovako:
A += B;
Na isti kraći način može da se kodira i kod oduzimanja, sabiranje, množenja, delenja ili koristite modulo. Ali načešće kad čujete taj izraz operator dodeljivanja, to se češće odnosi na dodeljivanje neke vrednosti nekoj promenjivoj. Na primer:
pdv = 20;
Aritmetički unarni operatori
Za razliku od aritmetički operatora, aritmetički unarni operatori u C++ programskom jeziku se dele na inkrement i dekrement. Inkrement je uvećanje broja za 1 dok je dekrement smanjivanje broja 1. U neka davna vremena je utvrđeno da se tokom kodiranja veoma često uvećava ili smanjuje vrednost promenjivima za 1. Zato je kreiran inkrement i dekrement kako bi se smanjilo pisanje koda. Imajte u vidu da pre programeri nisu imali mnogo memorije, pa je optimizacija koda bile prioritet nad prioritetima.
A =
A + 1 //
je isto što i inkrementiranje, piše se postfiksno ovako A++
B = B – 1 // je isto što i dekrementiranje, piše se postfiksno ovako B--
Ponekad će te u kodu viđati da inkrementiranje i dekrementiranje pišu i prefiksno ovako:
++A
--B
U jednostavnim zadacima nije ni bitno da li pišete prefiksno ili postfiksno inkrementiranje i dekrementiranje, ali u složenijim procedurama će vam rezultat biti drugačiji. Pogledajte na primer ovaj kod:
#include <iostream>
using namespace std;
int main()
{
int number = 5;
cout << "Increment
number 5 for 1: " << number++ << endl;
cout << "Increment
number 6 for 1: " << ++number << endl << endl;
system("PAUSE");
return 0;
}
Kad ovakav program pokrenete, verovatno bi ste očekivali rezultat 6 i 7. Međutim
dobićete ovo:
Increment number 5 for 1:
5
Increment number 6 for 1: 7
Press any key to continue . . .
U čemu je problem? Postfiksno inkrementiranje u našem primeru prvo ispisuje na ekranu promenjivu number zatim vrši inkrementiranje. Zbog toga umesto da nam ispiše 6 na ekranu, on nam prvo ispisuje 5 zatim vrši inkrementiranje. Prefiksno inkrementiranje prvo izvršava inkrementiranje, zatim vrši ispis na ekranu. Na ovakvoj logičkoj greški mnogi projekti su izgubili previše vremena. Zato oprez! Ovo važi i za dekrementiranje. U Aritmetičke unarne operatore spada i operator - , koji menja predznak broja.
Šta su relacioni operatori?
Relacioni operatori su operatori koji određuju da li su dva broja jednaka,
manja ili veća jedna od drugog:
- Jednako ==
- Nije jednako !=
- Veće >
- Veće ili jedenako >=
- Manje <
- Manje ili jednako <=
Relacioni operatori uvek vraćaju vrednost 1 ili 0 tj. true ili false. Takođe imajte u vidu da u C++ u programskom jeziku jednako je == i nikako ne može biti = . To je najčešća greška kod programera, posebno onih koji su nekada prelazili sa Visual Basic programskig jezika u C++ programski jezik. U Visual Basic-u relacioni operator za jednako je = . Kod mnogih programskih jezika operator = može biti samo operator dodele. Nikako operator poređenja ==.
Šta su logički operatori?
Logički opertaori su unarni i binarni operatori bazirani na osnovama logike.
Unarni operator je operator koji deluje na jednu promenjivu (NOT) dok
binarni na dve (AND i OR):
I (AND)
// se piše &&
ILI (OR)
// se piše ||
NEGACIJA (NOT)
// se piše !
U matematici se računanje uglavnom vrši sa leve strane prema desnoj bez obzira
na operator. Kod računara je to drugačije. Svi operatori imaju svoj prioritet.
Na primer, kod računara je množenje veći prioritet od sabiranja što znači da
računar prvo množi 3*3 zatim 5 sabire
sa 9 i tako je rezultat 14.
Ukoliko želite da rezultat bude 24 onda
morate koristiti zagrade. Moj savet vam je da uvek koristite zagrade:
int number = (5 + 3) * 3;
// računarski number = 24
Hajde da
kodiramo!
Napravite jedan direktorijum i nazovite ga operators. Pokrenite Visual Studio Code, otvorite folder operators i kreirajte u njemu datoteku operators.cpp. Ukucajte sledeći kôd:
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int number1 = 23;
int number2 = 5;
cout << "number1 = " << number1 << endl;
cout << "number2 = " << number2 << endl << endl;
cout << number1 << " + " << number2 << " = " << number1 + number2 << endl;
cout << number1 << " - " << number2 << " = " << number1 - number2 << endl;
cout << number1 << " * " << number2 << " = " << number1 * number2 << endl;
cout << number1 << " / " << number2 << " = " << number1 / number2 << endl;
cout << number1 << " % " << number2 << " = " << number1 % number2 << endl << endl;
cout << boolalpha; // present 1 and 0 like as
true and false
cout << number1 << " > " << number2 << " : " << (number1 > number2) << endl;
cout << number1 << " >= " << number2 << " : " << (number1 >= number2) << endl;
cout << number1 << " < " << number2 << " : " << (number1 < number2) << endl;
cout << number1 << " <= " << number2 << " : " << (number1 <= number2) << endl;
cout << number1 << " == " << number2 << " : " << (number1 == number2) << endl;
cout << number1 << " != " << number2 << " : " << (number1 != number2) << endl << endl;
cout << noboolalpha; // stop present 1 and 0
like as true and false
cout << number1 << " > " << number2 << " : " << (number1 > number2) << endl;
cout << number1 << " >= " << number2 << " : " << (number1 >= number2) << endl;
cout << number1 << " < " << number2 << " : " << (number1 < number2) << endl;
cout << number1 << " <= " << number2 << " : " << (number1 <= number2) << endl;
cout << number1 << " == " << number2 << " : " << (number1 == number2) << endl;
cout << number1 << " != " << number2 << " : " << (number1 != number2) << endl << endl;
cout << "Increment of 23 =
" << ++number1 << endl;
cout << "Decrement of 5 =
" << --number2 << endl << endl;
//
system("PAUSE");
cin.get();
return 0;
}
Kad kompajlirate
i pokrenete navedeni program, rezultat će biti sledeći:
number1 = 23
number2 = 5
23 + 5 = 28
23 - 5 = 18
23 * 5 = 115
23 / 5 = 4
23 % 5 = 3
23 > 5 : true
23 >= 5 : true
23 < 5 : false
23 <= 5 : false
23 == 5 : false
23 != 5 : true
23 > 5 : 1
23 >= 5 : 1
23 < 5 : 0
23 <= 5 : 0
23 == 5 : 0
23 != 5 : 1
Increment of 23 = 24
Decrement of 5 = 4
Press any key to continue . . .
Kako to sve izgleda možete pogledati i na video-u:
No comments:
Post a Comment