Do sada smo naučili:

  • promenljive
  • tipove podataka
  • memoriju
  • konverzije tipova podataka

Sada prelazimo na jednu od najvažnijih praktičnih tema u programiranju:

aritmetički operatori

Bez njih program ne može da računa.

A bez računanja nema:

  • kalkulatora
  • finansijskih aplikacija
  • igara
  • statistike
  • algoritama
  • poslovnih aplikacija
  • inženjerskih programa
  • naučnih simulacija

Aritmetički operatori omogućavaju programu da obavlja matematičke operacije.

Ovo je jedna od apsolutnih osnova C++ programiranja.

U ovoj lekciji naučićemo:

  • šta su operatori,
  • osnovne matematičke operacije,
  • redosled izvršavanja,
  • integer division,
  • operator ostatka pri deljenju,
  • praktične primere,
  • i najčešće greške početnika.

Šta je operator?

Operator je simbol koji govori programu koju operaciju treba izvršiti.

Na primer:

+

znači:

sabiranje

Primer:

5 + 3

Rezultat:

8

Operator radi nad vrednostima koje nazivamo:

operandi

Ovde:

5

i

3

su operandi.

Osnovni aritmetički operatori

U C++ najvažniji aritmetički operatori su:

Sabiranje:

+

Oduzimanje:

-

Množenje:

*

Deljenje:

/

Ostatak pri deljenju:

%

Ovo je osnovni set operatora koji se koristi svakodnevno.

Operator sabiranja (+)

Koristi se za sabiranje brojeva.

Primer:

int a = 10;
int b = 5;

cout << a + b;

Rezultat:

15

Možemo i:

int zbir = a + b;

Sabiranje decimalnih brojeva

Primer:

double cena1 = 99.99;
double cena2 = 50.50;

cout << cena1 + cena2;

Rezultat:

150.49

Operator oduzimanja (-)

Koristi se za razliku.

Primer:

int a = 20;
int b = 8;

cout << a - b;

Rezultat:

12

Primer iz realnog života:

stanje računa:

double stanje = 1000.00;
double trosak = 250.50;

double novoStanje = stanje - trosak;

Operator množenja (*)

Koristi se za množenje.

Primer:

int cena = 300;
int komada = 4;

cout << cena * komada;

Rezultat:

1200

Primer:

double povrsina = 5.5 * 3.2;

Operator deljenja (/)

Koristi se za deljenje.

Primer:

double a = 10;
double b = 2;

cout << a / b;

Rezultat:

5

Ali ovde postoji veoma važna zamka.

Integer division

Ako oba broja imaju tip:

int

rezultat je ceo broj.

Primer:

int a = 5;
int b = 2;

cout << a / b;

Početnik očekuje:

2.5

Ali rezultat je:

2

Zašto?

Jer int ne čuva decimalni deo.

Decimala se odbacuje.

Ispravno decimalno deljenje

Rešenje:

cout << (double)a / b;

Rezultat:

2.5

Ovo je jedna od NAJVAŽNIJIH početničkih lekcija.

Operator ostatka pri deljenju (%)

Veoma važan operator.

Naziva se:

modulo operator

Vraća ostatak pri deljenju.

Primer:

10 % 3

Matematika:

10 / 3 = 3
ostatak = 1

Rezultat:

1

Primer:

cout << 17 % 5;

Rezultat:

2

Jer:

17 = 15 + 2

Gde se koristi modulo?

Veoma često.

Provera parnog broja:

if (broj % 2 == 0)

Ako nema ostatka:

broj je paran.

Primer:

12 % 2 = 0

Primer:

13 % 2 = 1

Operator inkrement (++)

Povećava vrednost za 1.

Primer:

int broj = 5;

broj++;

cout << broj;

Rezultat:

6

Isto kao:

broj = broj + 1;

Ali kraće.

Operator dekrement (–)

Smanjuje vrednost za 1.

Primer:

int broj = 10;

broj--;

cout << broj;

Rezultat:

9

Složeni operatori dodele

Veoma korisni.

Sabiranje:

+=

Primer:

x += 5;

isto kao:

x = x + 5;

Oduzimanje:

-=

Primer:

x -= 3;

Množenje:

*=

Deljenje:

/=

Primer:

x *= 2;

Primer

int poeni = 10;

poeni += 5;

Rezultat:

15

Redosled izvršavanja operacija

C++ prati matematičku logiku.

Prioritet:

  1. zagrade
  2. množenje / deljenje / modulo
  3. sabiranje / oduzimanje

Primer:

2 + 3 * 4

Rezultat:

Prvo:

3 * 4 = 12

Zatim:

2 + 12 = 14

Ako želimo drugačije:

(2 + 3) * 4

Rezultat:

20

Kombinovani primer

int rezultat = (10 + 5) * 2 - 4;

Koraci:

10 + 5 = 15
15 * 2 = 30
30 - 4 = 26

Rad sa promenljivama

Primer:

int a = 10;
int b = 3;

cout << a + b << endl;
cout << a - b << endl;
cout << a * b << endl;
cout << a / b << endl;
cout << a % b << endl;

Rezultati:

13
7
30
3
1

Praktični primer — kalkulator

#include <iostream>
using namespace std;

int main() {
    double a, b;

    cout << "Unesi prvi broj: ";
    cin >> a;

    cout << "Unesi drugi broj: ";
    cin >> b;

    cout << "Zbir: " << a + b << endl;
    cout << "Razlika: " << a - b << endl;
    cout << "Proizvod: " << a * b << endl;
    cout << "Kolicnik: " << a / b << endl;

    return 0;
}

Praktični primer — provera parnosti

int broj;

cin >> broj;

if (broj % 2 == 0) {
    cout << "Paran";
}
else {
    cout << "Neparan";
}

Najčešće greške početnika

1. Integer division

Najčešća greška.

5 / 2

nije:

2.5

2. Deljenje nulom

Pogrešno:

10 / 0

Runtime greška.

3. Korišćenje % sa decimalnim brojevima

Pogrešno:

5.5 % 2

Modulo radi sa celim brojevima.

4. Loš redosled operacija

2 + 3 * 4

nije:

20

5. Mešanje ++ i +=

Različite stvari:

x++

uvek +1

x += 5

+5

Realne primene

Operatori se koriste svuda:

Bankarstvo:

saldo - trosak

E-commerce:

cena * komada

Igre:

poeni += 10

Analitika:

ukupno / brojZapisa

Validacija:

broj % 2

Rezime

U ovoj lekciji naučili smo:

Osnovne operatore:

+
-
*
/
%

Dodatne:

++
--
+=
-=
*=
/=

Najvažnija zamka:

integer division

Aritmetički operatori su jedna od najčešće korišćenih stvari u svakom programu.

Mini test

  1. Koji operator znači množenje?
    a) +
    b) *
    c) /
  2. Šta daje:
5 / 2

ako su int?
a) 2
b) 2.5

  1. Šta radi %?
    a) sabira
    b) daje ostatak
  2. Šta radi ++?
    a) +2
    b) +1
  3. Koliko je:
2 + 3 * 4

a) 20
b) 14

Zadaci za vežbu

  1. Napravi mini kalkulator.
  2. Proveri da li je broj paran.
  3. Koristi +=.
  4. Koristi ++.
  5. Testiraj integer division.

Domaći zadatak

Napravi program koji:

  • unosi dva broja
  • prikazuje sve osnovne operacije
  • proverava da li je prvi broj paran
  • koristi inkrement i dekrement

Pristupačnost