You are on page 1of 2

RELACIJSKI OPERATORI, LOGIČKI OPERATORI

I TRINARNI OPERATOR

Relacijski operatori (operatori poređenja)


U programskom jeziku C ne postoje logički tipovi podataka (na primer u programskom jeziku
Paskal postoji logički tip podataka boolean sa vrednostima true - tačan iskaz i folse - netačan iskaz). U
programskom jeziku C za predstavljanje logičkih vrednosti koriste se celobrojni podaci tipa int , ali uz
naznaku da se vrednost nula tumači kao logička neistina, a bilo koja nenulta vrednost kao logička istina
Relacijski operatori su:
< (manje),
<= (manje ili jednako),
> (veće),
>= (veće ili jednako),
== (jednako), i
!= (različito).
Na osnovu predstavljanja logičkih podataka operandi su numeričkog tipa a kao rezultat obavezno
vraćaju vrednost jedan ako je relacija zadovoljena, a vrednost nula u suprotnom.

Logički operatori
Na osnovu predstavljanja logičkih podataka operandi su numeričkog tipa a kao rezultat obavezno
vraćaju vrednost jedan ako je relacija zadovoljena, a vrednost nula u suprotnom.

Unarni operatori
Unarni logički operator je ! (logičko ne, ili negacija)

Binarni operatori
Binarni operatori su && (logičko I) i || (logičko ILI).

Umesto tablica operatora potrebno je samo zapamtiti da operator && kao rezultat daje vrednost
jedan samo ako oba operanda imaju vrednost različitu od nule, dok operator || kao rezultata daje jedinicu
ako bar jedan od operanada ima vrednost razlučitu od nule.
Operator ! daje vrednost jedan ako je operand imao vrednost nula, a u suprotnom vrednost nulu.
Ako levi operand ima vrednost različitu od nule a operator je ||, rezultat operacije je jedan i neće se
izračunavati vrednost desnog operanda,. Ako levi operand ima vrednost nula a operator je &&, rezultat
operacije je nula i neće se računati vrednost desnog operanda.

Uslovni izraz (trinarni operator)


Uslovni izraz se obrazuje pomoću trinarnog operatora.
Izgled trinarnog operatora je: ? :
Opšti oblik trinarnog operatora je (uslov) ? izraz1 : izraz2

Prvo se izračunava vrednost uslova te ako je on logički istinit (različit od nule) izračunava se izraz1
koji je i rezultat trinarnog operatora dok se vrednost izraza2 uopšte ne izračunava, a u suprotnom se
izračunava vrednost izraz2 koji je i rezultat trinarnog operatora dok se izraz1 ne izračunava. Tip rezultata
je zajednički tip operanada izraz1 i izraz2 , dok u slučaju različitih numeričkih tipova podataka rezultat je
tip operatora složenijeg tipa (onaj koji zauzima više memorije).

Primer 1:
Napisati deo C programa koji ispisuje na ekranu maksimalnu vrednost dva predhodno uneta broja.
Smatrati da su brojevi već ranije unešeni i da se nalaze u promenljivama a i b koje su tipa int.

1
Rešenje
(a>b) ? printf("Maksimalna vrednost je %d.",a) : printf("Maksimalna vrednost je %d.",b);

Primer 2:
Napisati deo C programa koji korišćenjem trinarnog operatora i relacijskih operatora utvrđuju
parnost broja i rezultat prikazuje na ekranu. Smatrati da je broj već ranije unet i da je tipa unsigned.

Rešenje

(broj % 2 == 0) ? printf("BROJ JE PARAN!!") : printf("BROJ JE NEPARAN!!");

Primer 3:
Napisati deo C programa koji korišćenjem trinarnog operatora i načina prikazivanja logičkog
podatka u C-u, utvrđuje parnost broja i rezultat prikazuje na ekranu. Smatrati da je broj već ranije unet i
da je tipa unsigned.

Rešenje

(broj % 2) ? printf("BROJ JE NEPARAN!!") : printf("BROJ JE PARAN!!");

Primer 4:
Napisati deo C programa koji na osnovu unetih parametara a i b jednačine a  x  b  0 utvrđuje
da li je jednačina linearna i ispisuje odgovarajuću poruku o tome.

Rešenje

(!a) ? printf("Jednacina nije linearna!!") : printf("Jednacina je linearna!!");

Primer 5:
Napisati deo C koda koji na osnovu unetog vremena t, izračunati vrednost ulaznog periodičnog
signala u. Periodičan signal u(t) dat je grafički.

10

0 10 15 25 t

Rešenje

int tpom;

tpom=t%25;

u=tpom*(tpom<=10) + (-1.2*tpom+22)*(tpom>10 && tpom<=15) + 4*(tpom>15);

You might also like