Sunday, May 28, 2023

Otključajte Potencijal C++ programskog jezika, otkrijete moć operatora

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.


( Operatori u C++ programskom jeziku )


Pogledajte aritmetički operatore:

  • 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


To su vam slični operatori poput artimetički, samo se kodiraju kraće. Na primer:  

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:


( C++ Tutorial - 3. Operators )














 

 

 

 



 

 

 

 

 

 

 

No comments:

Post a Comment