3.2.3. Operatorii de relatie

2019/01/22 in Programare in C

Operatorii de relatie sunt 4:

Ei au aceeasi prioritate, care este mai mica decat a operatorilor aditivi.

O expresie de forma:

E1 operator_de_relatie E2

unde E1 si E2 sunt expresii, are una din valorile 0 sau 1.

Astfel, expresia are valoarea 1, daca valorile celor doua expresii satisfac relatia prin care acestea sunt legate si 0 in caz contrar.

De obicei, se spune despre o expresie relationala ca ea are valoarea adevarat daca subexpresiile ei satisfac operatorul relational prin care sunt legate; in caz contrar se spune ca expresia are valoarea fals.

In limbajele C si C++ nu exista valori logice speciale. Valoarea fals se exprima prin valoarea 0, iar valoarea adevarat printr-o valoare diferita de 0.

Exercitii:

3.10. Sa se scrie un program care citeste doua numere, primul este de tip int, iar al doilea este de tip double. Programul afiseaza valoarea 2 daca numarul flotant este mai mare decat cel intreg si 1 in caz contrar.

Presupunem ca primul numar se atribuie variabilei i, iar cel de-al doilea variabilei f. Atunci expresia:

f > i

are valoarea 1 daca numarul flotant este mai mare decat cel intreg si 0 in caz contrar. Pentru evaluarea expresiei de mai sus, valoarea variabilei i se converteste intai la tipul double si abia apoi se executa operatorul de relatie. Tipul expresiei este int.

Programul trebuie sa afiseze valoarea acestei expresii marite cu 1, ceea ce se obtine folosind expresia:

(f > i) + 1

Parantezele sunt necesare deoarece operatorul + este mai prioritar decat operatorul >. In lipsa parantezelor, comparatia s-ar face intre f si i+1.

#include <stdio.h>

main()
{
    int i;
    float f;

    scanf("%d %f\n", &i, &f);
    printf("i = %d\tf = %f\trezultatul comparatiei este:%d", i, f, (f > i) + 1);
}

3.2.4. Operatorii de egalitate