Object Pascal

Booleani e caratteri                  

Altri tipi di ordinali di uso comune e del tutto immediato sono i booleani. Le variabili di questo tipo possono assumere valore true o false (vero o falso). Non ci sono grosse particolarità. Come evidenzia il programma di seguito; il valore di default è false.

  Esempio 4.1
1
2
3
4
5
6
7
8
9
program Project1;
var b1 : Boolean;
begin
  Writeln(b1);
  Readln();
  b1 := true;
  Writeln(b1);
  Readln();
end.

Boolean, evidentemente, è la keyword che caratterizza il tipo booleano. Per compatibilità con altri linguaggi si possono ricavare dei valori numerici:

  Esempio 4.2
1
2
3
4
5
6
7
8
program Project1;
var b1 : Boolean = true;
b2 : Boolean = false;
begin
  Writeln(ord(b1));
  Writeln(ord(b2));
  Readln();
end.

da qui si evince che il valore corrispondente a true è 1 mentre per false è 0. Più avanti riparleremo della funzione ord.
I valori booleani li troverete molto spesso legati ad espressioni, piuttosto che a singole variabili.

(1 == 2) restituirà false
(3 > 2)   restituirà true

ne vedrete a migliaia nella vostra vita di programmatori.
Una variabile booleana occupa 1 byte, come si evince usando la funzione SizeOf

Writeln(SizeOf(var_bool));

Userete spesso anche i caratteri. In Pascal essi sono definiti tramite due tipologie:

AnsiChar - definiti su 8 bit e costituiscono l'insieme dei classici caratteri ASCII, usati più frequentemnente
WideChar - definiti su 16 bit, si tratta dei caratteri Unicode

La keyword che introduce i caratteri è Char: e la loro rappresentazioneuò avvenire in 3 modi,

- nel modo classico, ponendolo all'interno di una coppia di singoli apici
- attraverso il formalismo numerico #nn
- ricavandolo con la funzione chr

  Esempio 4.3
1
2
3
4
5
6
7
program Project1;
begin
  Writeln('c');
  Writeln(#99);
  Writeln(chr(99));
  Readln();
end.

La funzione opposta a chr è ord  (ad esempio ord(c) restituisce il numero 99).

Una variabile di tipo carattere, per quanto detto, sarà definita, nella sezione var ad esempio così:

x : Char = 'c;
oppure
x : Char = #99;
oppure
x : Char = chr(99);

La notazione numerica, quella introdotta dal # è eccellente per la rappresentazione di caratteri speciali, quali ad esempio

#10 - a capo
#13 - ritorno del carrello
#9   - backspace
#8   - tabulatore