# Pascal/Variabili

Pascal
Copertina Tutti i moduli · Sviluppo
    Copertina
* IntroduzionePascal/Introduzione
* AlgoritmiPascal/Algoritmi
* VariabiliPascal/Variabili
* Input e outputPascal/Input e Output
* Tipi di dati e operatoriPascal/Tipi di dati
* Gestione avanzata dei datiPascal/Gestione avanzata dei dati
* CommentiPascal/Commenti
* Librerie e funzioni predefinitePascal/Librerie e funzioni predefinite
* Istruzioni di controlloPascal/Istruzioni di controllo
* ArrayPascal/Array
* Metodo top-down, procedure e funzioniPascal/Metodo top-down, procedure e funzioni
* Programmazione ad oggettiPascal/Programmazione ad oggetti
** Concetti fondamentaliPascal/Concetti fondamentali
** I modificatori public, private e protectedPascal/I modificatori public, private e protected
** Costruttori e distruttoriPascal/Costruttori e distruttori
** Override, metodi virtuali e classi astrattePascal/Override, metodi virtuali e classi astratte
** Il Turbo VisionPascal/Il Turbo Vision
* StrumentiPascal/Strumenti
* EserciziPascal/Esercizi
Modifica il sommario
Un programma come quello appena fatto può essere divertente e interessante, ma offre ben poche possibilità di sviluppo. Quasi tutti i tipi di programmi richiedono infatti l'uso di calcoli e di "valori da ricordare". Per questo motivo è necessario introdurre il concetto di variabile.
Una variabile può essere paragonata ad una casella di una certa dimensione nella quale si possono inserire e/o leggere dati mentre il programma è in esecuzione. In pratica le variabili sono delle etichette che noi diamo ad un'area di memoria, che verrà usata per depositare dei dati. La quantita di memoria riservata dipende dal tipo di variabile che andiamo a dichiarare e dal particolare compilatore che usiamo.
Il compilatore Pascal ha la necessita di conoscere l'uso e lo scopo di tutte le etichette che incontra durante la fase di compilazione, è indispensabile quindi dichiarare esplicitamente, in particolari punti del programma, le variabili e altro che vedremo. L'area di dichiarazione delle variabili inizia con la parola chiave var. Il concetto risulta più chiaro con un esempio:
Il programma in sé è estremamente sciocco, ma ci permette di osservare come le variabili vengano utilizzate in Pascal. Analizzamo le singole righe:
* la prima riga è l'intestazione del programma (alla parola riservata program segue il nome scelto per il programma)
* nella seconda e nella terza riga vengono dichiarate le variabili. La dichiarazione ha sempre la forma
    Il Pascal non permette di dichiarare durante il programma variabili aggiuntive, perciò è necessaria una buona progettazione teorica del programma per non trovarsi a dover correggere molti errori in corso di compilazione (ovviamente ciò era tra le intenzioni di Wirth quando progettò il linguaggio).

## Assegnazione

Una delle operazioni fondamentali che si possono eseguire con le variabile è l'istruzione di assegnazione. Per assegnare si intende attribuire ad una determinata variabile un valore specificato dal programmatore oppure il risultato di un'espressione (per vedere come operare con le variabili, leggi il prossimo modulo)
La sintassi dell'assegnazione è piuttosto semplice:
dove valore_assegnato_alla_variabile è un valore o un'espressione il cui risultato è del tipo di dato dichiarato all'inizio del programma. Se infatti si tenta di assegnare un valore del tipo x ad una variabile del tipo y il compilatore restituisce un errore.

### Altri concetti di sintassi

Abbiamo visto due esempi. Possiamo notare che entrambi riflettono anche uno stile di scrittura del codice, che diciamo stile di formattazione. Notiamo che il codice presenta varie rientranze. Queste hanno lo scopo di rendere più semplice la vita del programmatore. Consentono di individuare a colpo d'occhio un blocco, semplicemente osservando l'andamento delle rientranze. Per il compilatore tutto ciò è ininfluente, in quanto lui individua i blocchi tramite le parole chiave e trova le istruzioni separate da un carattere apposito (il punto e virgola).
Se provate a compilare le seguenti righe otterrete lo stesso programma visto nell'esempio precedente. Per il compilatore non ci sono differenze, mentre per il programmatore che dovrà estendere o correggere questo codice le cose si complicano.
Per lo stesso motivo anche un programma come questo è valido:
ma è ovviamente molto meno leggibile.
Ma quali sono i tipi di variabile utilizzabili? Un elenco esaustivo è presente nel modulo Tipi di dati