Релацијски оператори

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

Релацијски оператори, тзв. оператори поређења, бинарни су оператори који врше поређење два операнда. У програмском језику 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