Tipul Boolean
Variabilele de tip Boolean (Boolean vine de la numele matematicianului
George Boole) pot avea una din valorile predefinite: true (adevarat) si false
(fals). Modul de reprezentare īn calculator este (de regula) 0 pentru false si 1
pentru true (false < true). Expresiile booleene, precum z > y,
intervin mult mai des īn programele PASCAL decāt variabilele booleene declarate īn
cadrul acestor programe. Nu putine sunt cazurile cānd o valoare logica, rezultata īn
urma evaluarii unor expresii booleene urmeaza sa fie folosita pentru diferite teste, ca
īn programul urmator.
- PROGRAM test;
- { Programul utilizeaza variabile de tip logic }
- VAR
- ...major:boolean;
- ...varsta:integer;
- BEGIN
- ...write(Introduceti
varsta dumneavoastra: );
- ...readln(varsta);
- ...IF
varsta >= 18 THEN
- ......major:=TRUE
- ...ELSE
- ......major:=false;
- ...writeln(major)
- END.{ test }
Rezultatele executiei programului
- Introduceti varsta dumneavoastra:
14...
- false
- Introduceti varsta dumneavoastra:
18
- true
- Introduceti varsta dumneavoastra:
22
- true
|
Īn acest program (test) major a fost declarata ca
variabila de tip boolean, prin enuntul
- VAR
- ...major:boolean;

|
Remarci:
- Constantele true si false nu pot fi citite ca intrari. Aceste valori
pot fi īnsa tiparite, ca iesiri. De exemplu, enunturile:
- ...writeln('Este
',8>3,' ca 8>3');
- ...writeln('Este
',8<1,' ca 8<1');
vor afisa:
- Este true ca 8>3
- Este false ca 8<1
|
- Structura de selectie IF-THEN-ELSE are drept scop atribuirea
valorii true/false variabilei de tip boolean major (vezi programul test);.
- O alta metoda, mult mai eleganta, de atribuire a unei valori logice permite
īnlocuirea testului (vezi programul):
- ...IF
varsta>=18
- ...THEN
major:=true
- ...ELSE
major:=false;
cu enuntul:
...major :=
varsta>=18;
In acest caz, expresia varsta>=18
este evaluata si valoarea ei (true sau false) este atribuita variabilei major. |
Variabila santinela. O variabila booleana folosita pentru a salva o valoare true,
pentru o utilizare ulterioara se numeste flag sau santinela (Boolean sentinel).
Īn urmatoarea secventa PASCAL, variabila test este o santinela booleana.

|
Exemplu:
- CONST
- ...a=1E6;
- VAR
- ...test:boolean;
- ...c:real;
- BEGIN
- ......
- ...test
:= c>=a;
- ......
- ...IF
test THEN aga;
- ......
|
Īn mod curios, cuvintele true si false apar foarte rar īn
programele PASCAL bine scrise, chiar īn cele care folosesc abundent variabile booleene.
Enuntul:
...IF
test THEN aga;
poate fi scris de asemenea ca:
...IF
test = true THEN aga;
dar o astfel de constructie nu se citeste usor. De altfel, enuntul este redundant,
īntrucāt valoarea de adevar a expresiei: test=true
trebuie sa fie aceeasi cu a variabilei test
īnsasi.
 |
Reguli:
- false < true;
- Operatorii logici, specifici tipului boolean sunt: AND, OR, NOT,
XOR (ultimul apare īn versiunile de (Borland) PASCAL);
- Pentru a compara doua valori numerice se utilizeaza operatorii de relatie: < (mai mic); <= (mai mic sau egal); > (mai mare); >= (mai mare sau egal); <> (diferit de);
- Pentru a separa expresiile de relatie de operatorii logici se utilizeaza parantezele
(Exemplu: 5 £ a £ 8 se codifica (a
>= 5) AND (a <= 8));
- Nu este indicat sa se testeze egalitatea valorilor reale;
- Pentru valori de tip boolean putem considera o serie de functii specifice: ord,
odd, eof, eoln etc.;
- Procedura readln nu accepta o variabila booleana.
|