Turbo Pascal MSX – lezione 3

da | Nov 18, 2023 | Programmazione, Turbo Pascal | 0 commenti

MSX Turbo Pascal Rubrica a cura di Stefano Roperto (parte 3)

Capitolo 3

Il tipo di dati definisce l’insieme di valori che una variabile può assumere. I tipi di dati più complessi che possono essere definiti dal programmatore, derivano tutti dai tipi standard. I tipi standard utilizzabili in Turbo Pascal 3.0 sono i seguenti:

Integer

Il tipo integer può rappresentare tutti i numeri interi con segno che è possibile rappresentare con due Bytes, quindi una variabile di tipo integer può contenere valori che vanno da -32768 a 32767. C’è da notare che l’overflow delle operazioni aritmetiche su numeri interi non viene rilevato. Operando con numeri interi, spetta al programmatore fare attenzione al fatto che i risultati parziali delle espressioni intere devono essere mantenuti all’interno del range di validità. per esempio, l’espressione 1000 * 100 /50 non restituirà 2000, poiché la moltiplicazione provoca un overflow. In questo caso, è necessario l’utilizzo delle parentesi per forzare la precedenza degli operatori 1000*(100/50) = 1000 * 2 = 2000 non produrrà nessun overflow. Una variabile di tipo Integer occupa due byte di memoria.

Byte

Il tipo Byte è un sottoinsieme del tipo Integer e può contenere valori compresi tra 0 e 255. I byte sono dunque compatibili con i numeri interi. È possibile assegnare a una variabile di tipo byte un valore Integer e viceversa (a patto che sia compreso nel range 0..255), salvo quando la variabile di tipo byte viene passata come parametri. Inoltre, i byte e i numeri interi possono essere utilizzati nella stessa espressione. Una variabile di tipo Byte occupa un byte in memoria.

Real

L’intervallo dei numeri reali è compreso tra 1 E – 38 e 1 E + 38 con una mantissa fino a 11 cifre significative. Un overflow durante un’operazione aritmetica che coinvolge numeri reali provoca l’interruzione del programma e restituisce un codice di errore, mentre un underflow causerà un risultato pari a zero. Sebbene il tipo real sia compreso tra i tipi scalari standard, bisogna norìtare che:
1) Le funzioni Pred e Succ non possono accettare argomenti reali.
2) I valori reali non possono essere utilizzati nell’indicizzazione degli array.
3) I valori reali non possono essere utilizzati per definire il tipo di base di un insieme.
4) I valori reali non possono essere utilizzati per controllare le istruzioni for e case.
5) Non sono ammessi sottoinsiemi di numeri reali.
I valori reali occupano 6 byte in memoria.

Boolean

Un valore boolean può assumere uno dei valori logici definiti dagli identificatori standard True e False. Questi sono definiti in modo tale che Falso < Vero. Una variabile boolean occupa un byte in memoria.

Char

Un valore Char descrive un carattere nel set di caratteri ASCII. Caratteri rappresentati sono ordinati in base al loro valore ASCII, ad esempio: ‘A’ < ‘S’. L’ordinale dei codici di carattere (ASCII) sono compresi tra 0 e 255. Una variabile Char occupa un byte in memoria.

Identificatori

Gli identificatori si utilizzano per indicare etichette, costanti, variabili, tipi definiti dal programmatore, procedure e funzioni. Un identificatore può essere lungo 127 caratteri, può contenere lettere e numeri, ma non può cominciare con un numero e non può contenere spazi per esempio:

A              valido
Abc            valido (anche se poco significtivo)
Parola         valido
Stringa1       Valido
ContatoreTempo Valido (utilizzare la maiuscola all’inizio di ogni parola di un identificatore composto, ne aumenta la leggibilità)
1nome          non valido (inizia con un numero)
Nome cognome   non valido (contiene uno spazio)

Costanti numeriche

Le costanti numeriche possono essere espresse sia in decimale che in esadecimale e possono essere di tipo intero o real. Alcuni esempi di costanti numeriche valide:

costanti di tipo integer
1            valida
12324    valida
-23         valida
$ABC     valida
$123G   non valida (G non fa parte delle cifre esadecimali)
1.0         valida se usata come real, non valida se usata come integer

costanti di tipo real
1234.5678 valida
-0.056       valida
lE4            valida
4E-3         valida
-1.2345678901E+10 valida
1 valida sia se usata come integer, sia se usata come real

Costanti di tipo stringa

Le costanti di tipo stringa sono formate da un insieme di caratteri racchiusi tra due singoli apici ‘. Per esempio sono costanti stringa valide le seguenti stringhe:

‘ciao’
‘ nel mezzo del cammin di nostra vita’
‘uno all’’anno’ permette di stampare anche l’apice come apostrofo
‘’ rappresenta una stringa vuota
‘’’’ rappresenta una stringa che contiene il solo carattere ‘

Codici di controllo

Turbo pascal permette di inserire nelle stringhe anche i caratteri di controllo. I codici preceduti dal simbolo # denotano il codice ascii del carattere di controllo, mentre quelli preceduti dal simbolo ^denota il carattere di controllo. Per esempio:

#$1B è il codice ascii del carattere escape
Analogamente
^[ rappresenta il carattere escape

Esempi di caratteri di controllo sono i seguenti
#13#10 carriage return + line feed
^G^G^G^G emette un beep 4 volte

I codici di controllo possono essere concatenati al tipo string per ottenere l’effetto desiderato, ad esempio se si stampa a video la stringa ‘testo di prova’ #13#10 dopo la visualizzazione dei caratteri tra gli apici, il cursore andrà a capo. In ogni caso in rete è possibile trovare l’elenco completo dei caratteri ASCII di controllo che sono i primi 31 caratteri.

Commenti

Come in tutti il linguaggi di programmazione è possibile inserire commenti nei listati. Il turbo Pascal prevede 2 formati:
primo formato: {il primo formato di commento si apre con una parentesi graffa aperta e si chiude con la relativa parentesi graffa chiusa}
secondo formato: (* il secondo formato è delimitato dai caratteri parentesi tonda e asterisco allinizio del commento e si chiude con gli stessi caratteri invertiti *)
col primo formato di inserimento dei commenti è possibile inserire nel programma alcune istruzioni speciali come ad esempio l’inclusione di un file di codice esterno o le cosiddette direttive di compilazione ovvero delle speciali istruzioni che abilitano o disabilitano alcune caratteristiche del compilatore:

Direttive al compilatore
{$I-}
{$I INCLUDE. FIL}
{$R-, B+, V-}
(*$X-*)

Come si vede le direttive al compilatore sono inserite nel codice con la stessa sintassi dei commenti per cui entrambi i formati di commento sono validi. Vedremo più avanti l’utilità di attivare o disattivare certe caratteristiche del compilatore a seconda del risultato che si vuole ottenere e come creare, testare e includere un file esterno all’interno dei nostri programmi.

0 commenti

Invia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Turbo Pascal MSX – Lezione 7

Turbo Pascal MSX – Lezione 7

I FILES (parte 1) Turbo Pascal fornisce un completo set di istruzione per la gestione dei file. Il tipo FILE è rappresentato da una sequenza di oggetti dello stesso tipo, la dimensione di  un file non è determinata dal tipo, ma viene fornito un puntatore che si sposta...

Turbo Pascal MSX – Lezione 6

MSX Turbo Pascal Rubrica a cura di Stefano Roperto (parte 6) Capitolo 6 PROCEDURE E FUNZIONI Turbo Pascal, come abbiamo visto nel capitolo 4 fornisce al programmatore una completa collezione di procedure e funzioni che rendono il linguaggio moderno e completo. In...

Turbo Pascal MSX – Lezione 5

MSX Turbo Pascal Rubrica a cura di Stefano Roperto (parte 5) Lezione 5 Cicli e istruzioni di controllo In turbo Pascal sono presenti le consuete strutture iterative presenti in tutti i linguaggi di alto livello il ciclo FOR DO e le strutture REPEAT UNTIL e WHILE DO....

Turbo Pascal MSX – Lezione 4

MSX Turbo Pascal Rubrica a cura di Stefano Roperto (parte 4) Lezione 4 Set di istruzioni Le parole riservate sono parte integrante di Turbo Pascal. Non possono essere ridefinite, né usate come identificatori o nomi di variabili. Il Turbo Pascal è sostanzialmente il...

Turbo Pascal MSX – lezione 2

MSX Turbo Pascal Rubrica a cura di Stefano Roperto (parte 2) Capitolo 2 Introduzione al linguaggio Turbo Pascal Vedremo ora come è strutturato un programma in Turbo Pascal. Non è necessario comprendere tutto in questo momento, stiamo solo vedendo la struttura tipica...

it_ITIT_IT