Logički tip podataka u Paskalu deklarišemo na sledeći način:
Var b : boolean;
Ovako deklarisana promenljiva može imati dve različite vrednosti : true ili false (tačno ili netačno). Promenljive tipa boolean obično se koriste kao indikatori (za neki događaj ili za pripadnost nekog elementa nekom skupu).
Primer:
Program skup;
var b : boolean;
x : real;
Begin
read(x);
if x>4 then b := true
else b := false;
end.
Ovaj program za unetu realnu vrednost od strane korisnika proverava da li je ta vrednost veća od 4 i ako jeste dodeljuje promenljivoj b vrednost true, inače promenljivoj b dodeljuje vrednost false.
Ovaj program je mogao da se napiše i mnogo jednostavnije. Naime, svaka operacija poređenja vraća vrednost logičkog tipa pa tako (x>4) je izraz koji ima vrednost true ili false, u zavisnosti od vrednosti koja je u promenljivoj x. Zbog toga je dozvoljena ovakva naredba dodele:
b:= (x>4);
Obratimo sada pažnju na procedure ulaza i izlaza read i write. U Turbo Paskalu zabranjeno je (ne moguće je) dodeljivanje vrednosti promenljivoj logičkog tipa pomoću naredbe read. Dakle read(b) ne smemo pisati ako je b promenljiva logičkog tipa, ali kao što smo već videli promenljivoj bulovog tipa možemo direktno dodeliti vrednost (b:=true) ili joj pak možemo dodeliti vrednost nekog izraza koji vraća vrednost logičkog (bulovog) tipa.
Sa druge strane, iako u dokumentaciji Turbo Paskala piše da ne možemo pozvati proceduru write sa promenljivom logičkog tipa, zapravo možemo !
Primer:
Program ispis;
var b : boolean;
Begin
b := true;
write(b);
end.
Program ispisuje na monitoru : TRUE
Greške u dokumentaciji za neko razvojno okruženje javljaju se s vremena na vreme, zbog toga je potrebno steći naviku za proveravanjem svih mogućnosti nekog razvojnog okruženja.
Istinitosne tablice i logičke promenljive
Logički izrazi povezuju se logičkim operatorima : not, and, or i (u turbo paskalu) xor. Logički operatori definisani su tablicama istinitosti koje možete videti ovde. Logički operatori not, and, or i xor odgovaju sledećim matematičkim operatorima: negacija, konjukcija, disjunkcija i ekskluzivna disjunkcija.
Primeri:
Ako želimo da proverimo da li neki realan broj, koji se nalazi u promenljivoj x, pripada intervalu (2,5) logički izraz bismo pisali na sledeći način : (x>2) and (x<5)
Ako želimo da proverimo da li neki broj pripada nekom od sledećih intervala (2,3) , (12,34.5) logički izraz bismo pisali na sledeći način : ((x>2) and (x<3)) or ((x>12) and (x<34.5))
a ako želimo da proverimo da li neki broj baš ne pripada nekom od tih intervala logički izraz bismo napisali na primer ovako: not (((x>2) and (x<3)) or ((x>12) and (x<34.5)))
Za pisanje komplikovanih logičkih izraza posebno su od koristi De morganovi zakoni.
Logički tip podataka u Paskalu deklarišemo na sledeći način:
Var b : boolean;
Ovako deklarisana promenljiva može imati dve različite vrednosti : true ili false (tačno ili netačno). Promenljive tipa boolean obično se koriste kao indikatori (za neki događaj ili za pripadnost nekog elementa nekom skupu).
Primer:
Program skup;
var b : boolean;
x : real;
Begin
read(x);
if x>4 then b := true
else b := false;
end.
Ovaj program za unetu realnu vrednost od strane korisnika proverava da li je ta vrednost veća od 4 i ako jeste dodeljuje promenljivoj b vrednost true, inače promenljivoj b dodeljuje vrednost false.
Ovaj program je mogao da se napiše i mnogo jednostavnije. Naime, svaka operacija poređenja vraća vrednost logičkog tipa pa tako (x>4) je izraz koji ima vrednost true ili false, u zavisnosti od vrednosti koja je u promenljivoj x. Zbog toga je dozvoljena ovakva naredba dodele:
b:= (x>4);
Obratimo sada pažnju na procedure ulaza i izlaza read i write. U Turbo Paskalu zabranjeno je (ne moguće je) dodeljivanje vrednosti promenljivoj logičkog tipa pomoću naredbe read. Dakle read(b) ne smemo pisati ako je b promenljiva logičkog tipa, ali kao što smo već videli promenljivoj bulovog tipa možemo direktno dodeliti vrednost (b:=true) ili joj pak možemo dodeliti vrednost nekog izraza koji vraća vrednost logičkog (bulovog) tipa.
Sa druge strane, iako u dokumentaciji Turbo Paskala piše da ne možemo pozvati proceduru write sa promenljivom logičkog tipa, zapravo možemo !
Primer:
Program ispis;
var b : boolean;
Begin
b := true;
write(b);
end.
Program ispisuje na monitoru : TRUE
Greške u dokumentaciji za neko razvojno okruženje javljaju se s vremena na vreme, zbog toga je potrebno steći naviku za proveravanjem svih mogućnosti nekog razvojnog okruženja.
Istinitosne tablice i logičke promenljive
Logički izrazi povezuju se logičkim operatorima : not, and, or i (u turbo paskalu) xor. Logički operatori definisani su tablicama istinitosti koje možete videti ovde. Logički operatori not, and, or i xor odgovaju sledećim matematičkim operatorima: negacija, konjukcija, disjunkcija i ekskluzivna disjunkcija.
Primeri:
Ako želimo da proverimo da li neki realan broj, koji se nalazi u promenljivoj x, pripada intervalu (2,5) logički izraz bismo pisali na sledeći način : (x>2) and (x<5)
Ako želimo da proverimo da li neki broj pripada nekom od sledećih intervala (2,3) , (12,34.5) logički izraz bismo pisali na sledeći način : ((x>2) and (x<3)) or ((x>12) and (x<34.5))
a ako želimo da proverimo da li neki broj baš ne pripada nekom od tih intervala logički izraz bismo napisali na primer ovako: not (((x>2) and (x<3)) or ((x>12) and (x<34.5)))
Za pisanje komplikovanih logičkih izraza posebno su od koristi De morganovi zakoni.