In alcuni casi, si usa invece che degli Integer o dei Real, il tipo di dato Char. Questo tipo di dato contiene i numeri che vanno da 0 a 255, tali numeri corrispondo alle codifiche ASCII.
I Char presentano due funzioni che permettono la trasformazione da Char ad ASCII e viceversa.
Queste due funzioni sono:
- chr(x) permette di trasformare un char in ASCII;
- ord(x) permette di trasformare un ASCII in char;
Un esempio molto chiaro potrebbe essere la stampa di tutti i codici ASCII e i loro corrispettivi caratteri alfanumerici, in modo del tutto automatico.
program ASCII; uses crt; var z:integer; begin for z:=0 to 255 do writeln(z,' --> ',chr(z); readln; end.
Come al solito analizziamo l'intero codice:
- dichiarazione del nome del programma;
- importazione della libreria crt all'interno del programma;
- dichiarazione di una variabile contatore z di tipo integer;
- inizio del programma;
- ciclo che dal valore 0 al valore 255 di z esegue... (tale costrutto verrà affrontato più avanti, per ora ci basta sapere che viene chiamato ciclo e ha la seguente sintassi for...to...do);
- scriviamo il codice char z e il loro corrispettivo carattere ascii di z;
- lettura dell'output da parte dell'utente;
- fine del programma;
Per assegnare un valore ad una variabile di tipo Char, basta seguire la seguente sintassi:
nome_variabile:='carattere';
Tutto ciò che è racchiuso tra apici, è considerato come Char (carattere) e non secondo il suo valore numerico.