|
Premessa: il nome variabile può essere fuorviante. In effetti è da 10 anni che lo sento dire continuamente, e da almeno 30 se ne sono resi conto, ma ormai è tanto usato che non lo cambieranno mai.
Una variabile è un contenitore per un dato di qualche tipo; secondo il tipo può contenere dati diversi e variabili di tipo diverso, in generale, non sono compatibili, cioè i dati ospitati da una non possono essere ospitati dall'altra. Ad esempio una stringa non può contenere un valore intero e viceversa, mentre una variabile double può contenere un valore float (ma non viceversa: la variabile double è un po' dello stesso tipo di quella float, nel senso che entrambe memorizzano numeri decimali, ma è anche diversa, perché la memoria riservata per una variabile double (cioè a precisione doppia) è maggiore di quello riservato ad una variabile float (a precisione singola): secondo l'IEEE754, se non sbaglio, sono 8 byte contro 4).
Anche qui può aiutare l'analogia delle scatole: una scatola cilindrica difficilmente potrà ospitarne una cubica (potrebbe farlo, in effetti, se fosse più piccola!) ma al suo interno può essere inserita un'altra scatola cilindrica di raggio minore.
Lasciando stare le scatole, le variabili sono uno dei pilastri della programmazione imperativa; al di là del nome il loro scopo non è tanto quello di far variare il proprio contenuto, quanto quello di conservare dei dati utili per il proseguio della computazione.
Ci sono due tipi di variabili:
1. Variabili globali: sono visibili in ogni punto del programma e possono, quindi, essere modificate ovunque. L'uso di questo tipo di variabili è fortemente sconsigliato, proprio perché possono essere modificate in qualunque punto del programma, cosa che potrebbe rendere problematica l'individuazione di errori;
2. Variabili locali: visibili solo all'interno delle funzioni o delle procedure in cui sono dichiarate. Si possono includere anche i parametri passati a procedure e funzioni nelle variabili locali anche se, come vedremo al momento opportuno, c'è qualche differenza, ma non proprio sostanziale.
VB mette a disposizione la keyword Dim per dichiarare le variabili; la dichiarazione può essere fatta in qualunque punto del codice.
I nomi validi di variabili sono le stringhe (parole) formate da caratteri dell'alfabeto (minuscoli e maiuscoli), cifre decimali e il carattere '_' (underscore). VB è case-retentive, cioè non coglie la differenza tra le lettere maiuscole e quelle minuscole, così, ad esempio, Casa e casa saranno la stessa variabile.
N.B.: VB dà la possibilità di usare anche variabili non dichiarate. Questa è un'arma a doppio taglio, e, devo dire, non delle più innocue. Provate ad immaginare cosa succederebbe se aveste una variabile altezza_della_mia_casa e l'istruzione larghezza_della_mia_casa = altezza_dela_mia_casa, dove, come si vede, avete commesso un piccolo errore, che però, in un programma di 1000 o più linee di codice, non è per nulla facile da trovare. Quello che succederebbe eseguendo il programma nessuno può dirlo: in altre parole gli effetti non sono prevedibili e, in generale, variano da esecuzione ad esecuzione, così potreste trovarvi a volte con case di lato 0 metri, altre volte con delle regge di 1000 km di lato!!! (a seconda del valore memorizzato prima dell'allocazione della nuova variabile nell'area di memoria riservatale)
Tutto ciò si risolve inserendo nell'intestazione del codice VB, all'inizio della pagina insieme a dichiarazioni di costanti e variabili globali, le due parole Option Explicit che v'imporranno di dichiarare esplicitamente, appunto, tutte le variabili che intenderete utilizzare.
[ :: Indice Corso :: ]
|