Logický výraz môže nadobúdať vždy len dve hodnoty - true
(pravda) alebo false
(nepravda). Súčasťou výrazov môžu byť operátory.
Tento typ premennej označujeme boolean
.
program logicke; var hodnota: boolean; begin hodnota := true; end.
Spomenutý príklad nemá žiaden praktický význam. Nadobudne ho pri použití podmienky. Najprv sa však naučíme logické operátory.
Vkladáme ich medzi dva výrazy (číselné a pod.). Použijeme ich najmä pri porovnávaní dvoch číselných hodnôt, aj keď celkové možnosti ich využitia sú väčšie. Pozrime si nasledujúci zoznam:
Logické operátory porovnávania | |
---|---|
= | rovná sa |
< | je menší ako |
<= | je menší alebo rovný |
> | je väčší ako |
>= | je väčší alebo rovný |
<> | nerovná sa |
Ukážme si nejaký príklad.
program log_op; var a: boolean; begin a := 5 < 7; writeln(a); writeln(15 = 16); end.
Program napíše:
TRUE FALSE
Samozrejme, že logické hodnoty sa v bežných programoch nezvyknú priamo vypisovať na obrazovku, ale použije sa podmienka.
Unárny logický operátor not
vkladáme pred výraz. Má za úlohu negovať ho. Ak bol pôvodný výraz pravdivý, výsledný bude nepravdivý a naopak.
program unarny_o; var hodnota: boolean; begin hodnota := not (12 > 5); writeln(hodnota); end.
Program vypíše na obrazovku:
FALSE
Skladajú sa z dvoch, prípadne viacerých jednoduchých výrazov. Tie spájame operátormi and
, or
, xor
a zátvorkami.
Pri použití operátora and
bude výsledný výraz pravdivý (true
), ak sú obidva jednoduché výrazy pravdivé.
program zlozene1; var hodnota: boolean; begin hodnota := (1 < 5) and (6 > 3); writeln(hodnota); end.
Keďže 1 je menšie ako 5 a zároveň 6 je väčšie ako 3, program zobrazí TRUE.
Poďme sa pozrieť na operátor or
. Ten urobí zložený výraz pravdivým, ak aspoň jeden jednoduchý má hodnotu true
.
program zlozene2; var hodnota: boolean; begin hodnota := (1 <= 1) or (6 > 7); writeln(hodnota); writeln((2 = 6) or (19 <> 19)); end.
Aplikácia vypíše najprv TRUE, pretože aspoň jeden výraz bol pravdivý, potom FALSE, lebo boli obidva nepravdivé.
Teraz si ukážeme príklad na operátor xor
, pri ktorom má zložený výraz pravdivú hodnotu, len ak je práve jeden jednoduchý pravdivý.
program zlozene3; begin writeln((5 = 5) xor (10 > 1)); writeln((1 < 6) xor (7 <> 7)); end.
Toto je výsledkom:
FALSE TRUE