Аритметички изрази

    Аритметички изрази служе за обраду нумеричких података и као резултат дају број. Сабирање, одузимање, множење, дељење, одређивање остатка при дељењу два цела броја су примери аритметичких израза.


Аритметички изрази могу бити:
  1. једноставни - састоје се само од једног операнда
  2. сложени – састоје се од два или више операнaда повезаних аритметичким операторима

Операнди могу бити:

• целобројне и реалне константе
• целобројне и реалне променљива
• елемент низа
• позив целобројних и реалних функције
• аритметички изрази у заградама

Рекли смо да су операнди у аритметичким изразима међусобно повезани операторима и да су у питању аритметички оператори. Подсетићемо се аритметичких оператора и њихових функција, као и поделе на унарне и бинарне. Унарни оператори раде са једним операндом, а бинарни раде са два операнда.

Слика 5.1. Аритметички оператори

Аритметички оператори су дефинисани за све нумеричке типове података.

Оператори + , - , * , / представљају основне аритметичке операције сабирања, одузимања, множења и дељења..
Оператор дељења / означава различите операције у зависности од типа својих операнада. То нам показује и следећи пример.

Пример 1. Израчунати вредност количника:

а) 9 / 5

б) 9.0 / 5.0

в) 9.0 / 5



Оператор % је могуће применити искључиво на операндима целобројног типа. Користи се за одређивање остатка при дељењу првог операнда другим, као на пример, 5 % 2 = 1, 16 % 4 = 0.

Оператори инкрементирања ++ (увећавања за 1) и декрементирања -- (умањивања за 1) су унарни оператори које се могу употребити у префиксном (++n и --n) или у постфиксном облику (n++ и n--).
Разлика између ова два облика је у томе што, на пример, ++n увећава променљиву n пре него што се њена вредност користи, а n++ увећава n након што се њена вредност користи. Тако се x = ++n; разликује од x = n++; што ћемо показати на следећем примеру.

Пример 2. Израчунати вредност променљивих након извршавања следећих наредби:

а)


//Deklarisanje promenljivih
int n, x;
//Promenljivoj n dodeljujemo vrednost 3
n = 3;   
//Promenljivoj x dodeljujemo vrednost izraza ++n-2         
x = ++n - 2;

б)

//Deklarisanje promenljivih
int n, x; 
//Promenljivoj n dodeljujemo vrednost 3
n = 3;    
//Promenljivoj x dodeljujemo vrednost izraza n++ - 2     
x = n++ - 2;




Приоритет аритметичких оператора:

Унарни оператори +, -, ++, -- су највишег приоритета.
Оператори *, / и % су вишег приоритета од оператора + и -.
Сви бинарни аритметички оператори су лево асоцијативни, а унарни су десно асоцијативни.

Редослед рачунања вредности аритметичких израза одређен је:

• употребом заграда
• приоритетом извршавања аритметичких операција
• положајем оператора унутар израза
• у изразу се рачунају прво подизрази у заградама

Пример 3. Израчунати вредност следећих израза:

  1. 15 / 2.0 + 4 - 2

  2. 12.0 / 3.0 - 2.5 + 8 % 5

  3. 16 / 3 - 16 % 3

  4. 4 % 2 * 5 + 4

  5. 4 + 24 % (2 * 3)

  6. 4 % 7 + 7 % 4

  7. 7 % 2 + 3 / 3 - 2

  8. 3 * 5 / 2 % 5 + 1

  9. 24 / 3 * 12 % 5 + 5


Пример 4. Израчунати вредност променљивих x и y након извршавања следећег дела кода:


//Deklarisanje promenljivih
int x, y;
int a = 0;
int b = 0;
//Uvecavanje vrednosti promenljive a za 1
a++;
//Uvecavanje vrednosti promenljive b za 1
++b;  
//Promenljivoj x se dodeljuje vrednost promenljive a uvecana za 1     
x = ++a;  
//Promenljivoj x se dodeljuje vrednost promenljive b koja se zatim uveca za 1     
y = b++;