Релацијски оператори¶
Изрази са релацијским операторима најчешће се користе за задавање услова у разгранатим или цикличним структурама програма па их из тог разлога тек сада обрађујемо.
Релацијски оператори, тзв. оператори поређења, бинарни су оператори који врше поређење два операнда. У програмском језику C постоји шест релацијских оператора и сви имају леву асоцијативност. Четири релацијска оператора имају приоритет 6:
релацијски оператор мање
<
,релацијски оператор мање или једнако
<=
,релацијски оператор веће
>
ирелацијски оператор веће или једнако
>=
.
док преостала два имају приоритет 7:
релацијски оператор једнако
==
ирелацијски оператор различито
!=
.
Помоћу релацијских оператора можеш да формираш логичке изразе облика:
operand_1 operator operand_2;
Операнди релацијских оператора могу бити целобројне вредности, карактери,
реалне вредности или изрази, док је резултат операције увек целобројна вредност
типа int
. Ако је релација тачна, онда је резултат операције целобројна
вредност \(1\), односно, ако релација није тачна резултат операције је целобројна
вредност \(0\). У математици се изразима са релацијским операторима констатују
или изражавају односи између операнада на левој и десној страни, док се у
програмирању тај однос увек израчунава!
Релацијски оператор мање¶
Релацијским оператором мање <
формира се логички израз којим се испитује да
ли је операнд на левој мањи од операнда на десној страни.
Напиши програм у програмском језику C којим се на стандардни излаз исписују резултати испитивања: да ли је \(1\) мање од \(2\) и да ли је \(2\) мање од \(1\)
#include <stdio.h>
int main(void)
{
int a = 1, b = 2;
printf("%d %d", a < b, b < a);
return 0;
}
На стандардном излазу исписаће се
1 0
јер је први израз тачан, а други нетачан.
Релацијски оператор мање или једнако¶
Релацијским оператором мање или једнако <=
формира се логички израз којим се
испитује да ли је операнд на левој страни мањи или једнак операнду на десној
страни.
Напиши програм у програмском језику C којим се на стандардни излаз исписују резултати испитивања: да ли је \(6.626069\cdot{10^{-34}}\) мање или једнако од \(6.62607\cdot{10^{-34}}\) и да ли је \(6.62607\cdot{10^{-34}}\) мање или једнако од \(6.626069\cdot{10^{-34}}\).
#include <stdio.h>
int main(void)
{
double a = 6.626069E-34, b = 6.62607E-34;
printf("%d %d", a <= b, b <= a);
return 0;
}
На стандардном излазу исписаће се
1 0
Релацијски оператор веће¶
Релацијским оператором веће >
формира се логички израз којим се испитује да
ли је операнд на левој страни већи од операнда на десној страни.
Напиши програм у програмском језику C којим се на стандардни излаз исписују резултати испитивања: да ли је \(3.14159\) веће од \(3.14\) и да ли је \(3.14\) веће од \(3.14159\).
#include <stdio.h>
int main(void)
{
double a = 3.14159, b = 3.14;
printf("%d %d", a > b, b > a);
return 0;
}
На стандардном излазу исписаће се
1 0
Релацијски оператор веће или једнако¶
Релацијским оператором веће или једнако >=
формира се логички израз којим се
испитује да ли је операнд на левој страни већи или једнак операнду на десној
страни.
Напиши програм у програмском језику C којим се на стандардни излаз исписују
резултати испитивања: да ли је по ASCII табели a
веће или једнако од A
и
да ли је A
веће или једнако од a
.
#include <stdio.h>
int main(void)
{
char a = 'a', b = 'A';
printf("%d %d", a >= b, b >= a);
return 0;
}
На стандардном излазу исписаће се
1 0
Релацијски оператор једнако¶
Релацијским оператором једнако ==
формира се логички израз којим се испитује
да ли је операнд на левој страни једнак операнду на десној страни.
Напиши програм у програмском језику C којим се на стандардни излаз исписују резултати испитивања: да ли је \(1.0\) једнако са \(0.3333333333333333\) и да ли је \(\frac{1.0}{3}\) једнако са \(0.3333333333333333\).
#include <stdio.h>
int main(void)
{
double a = 1.0, b = 0.3333333333333333;
printf("%d %d", a == b, a / 3 == b);
return 0;
}
На стандардном излазу исписаће се
0 1
Приликом коришћења релацијских оператора над реалним вредностима, увек води рачуна о прецизности.
Релацијски оператор различито¶
Релацијским оператором различито !=
формира се логички израз којим се
испитује да ли је операнд на левој страни различит од операнда на десној
страни.
Напиши програм у програмском језику C којим се на стандардни излаз исписују резултати испитивања: да ли је \(1.0\) различито од \(0.3333333333333333\) и да ли је \(\frac{1.0}{3}\) различито од \(0.3333333333333333\).
#include <stdio.h>
int main(void)
{
double a = 1.0, b = 0.3333333333333333;
printf("%d %d", a != b, a / 3 != b);
return 0;
}
На стандардном излазу исписаће се
1 0