Logički operatori

Kompjuteri i njihova logika

Uslovi koje smo do sada koristili bili su veoma jednostavni. Uslovi koji se realno sreću u praksi su dosta složeniji. Ne primer, razmotrite sledeću rečenicu:

Ako imamo slobodnog vremena i ako je vreme lepo, otići ćemo u šetnju.

U prethodnoj rečenici smo koristili veznik " i ", što znači da odlazak u šetnju zavisi od istovremene ispunjenosti dva uslova. Ako bismo se logički izrazili, ovakva veza uslova se naziva konjunkcija.

Drugi primer:

Ako odeš u tržni centar ili ako ja odem u tržni centar, neko od nas će da kupi polklon za mamu.

Ovde se pojavljuje reč " ili " , što znači da kupovina zavisi od bahmanje jednog od navedenih uslova. Termin u logici za ovo je disjunkcija.

Iz ovoga se vidi da programski jezik "C" mora da ima operatore sa kojima može da realizuje konjunkcije i disjunkcije. Ovakve operatore nalivamo logički operatori.

Logičko I - &&

Operator za konjunkciju (Logičko I) u programskom jeziku "C" je dvostruki znak && (ampersand ampersand).

Ovo je binarni operator kod kojeg je prioritet niži od operatora za poređenje vrednosti. To znači da se mogu kodirati složeni uslovi i bez upotrebe zagrada, kao u nastavku:

Brojac> 0 && Vrednost == 100


(Iako se može raditi ovako, preporuka za vas je da koristite zagrade, da bi izbegli zbunjivanje.)

Rezultat operacije sa operatorom && možemo da odredimo na osnovu tabele istinitosti. Ako uzmemo da je naša operacija:

levo && desno

skup mogućih vrednosti koje leva i desna strana mogu da uzimaju kao i odgovarajuća rešenja logičke operacije I možete videti u sledećoj tabeli:

levo desno levo && desno
false false
false
false true false
true false false
true true true

 

Logičko ILI - ||

 

Biti || ne biti

Operator ya disjunkciju je dvostruka vertikalna crta | | (bar bar). U pitanju je binarni operator koji ima prioritet niži i od && (baš kao " + " u odnosu na " * ").
Tabela istinitosti za Logičko ILI, odnosno disjunkciju, data je u nastavku:

levo desno levo || desno
false false
false
false true true
true false true
true true true

 

Logička negacija - !

U nastavku ćemo se upoznati sa još jednim operatorom koji ćemo koristiti za konstruisanje složenih uslova. U pitanju je unarni operator koji vrši logičku negaciju. Njegova operacija je jednostavna: pretvara ono što je tačno u netačno, a ono što je netačno pretvara u tačno. Ovaj operator se piše kao jedan karakter ! (uzvičnik) i njegov prioritet je veoma visok: isti kao inkrement i dekrement.

Tabela istinitosti za negaciju je data u nastavku:

argument ! argument
false true
true false


Primeri logičkih izraza:

Obratite pažnju da su sledeći izrazi ekvivalentni:

Variable > 0 !(Variable <= 0)

kao i

Variable != 0 !(Variable == 0)

 

Drugi primer su De Morganovi zakoni (iz matematike):

Negacija konjunkcije je disjunkcija negacija
Negacija disjunkcije je konjunkcija negacija


To bi se moglo zapisati u programskom jeziku "C" na sledeći način:

 

!(p && q) == !p || !q

!(p || q) == !p && !q

Obratite pažnju kako su u ovom slučaju korišćene zagrade u cilju kodiranja odgovarajućih izraza.

Treba napomenuti i da se prethodna dva operatora (&& i ||) mogu koristiti i u skraćenom ubliku u kombinaciji sa operatorom dodele vrednosti ( &&= i ||= ).