Percorso: ilMac.net > Scuola di Mac > Corsi > Corso di REALbasic


Corso di REALbasic

Le variabili

In REALbasic, come nella maggior parte dei linguaggi di programmazione, ci sono alcuni concetti base che è fondamentale conoscere prima di lanciarsi nella programmazione vera e propria, come ad esempio il concetto di variabile.
Cos'è una variabile? Semplice, una variabile è una specie di contenitore, che serve a contenere dei dati, può contenere i dati più svariati dai numeri, alle lettere, alle parole, alle date ecc. in sostanza quasi ogni cosa che potete vedere sullo schermo del vostro Mac può essere contenuto in una variabile, nel linguaggio di programmazione di REALbasic.

Essendo dei contenitori, le variabili, servono appunto a contenere dei dati e a restituirli nel momento in cui ci servono, come dei contenitori reali. Ma facciamo un esempio pratico: se io inserisco la data di un compleanno, all'interno di un programma, e voglio che questa data mi venga visualizzata come memorandum quando esco dal programma, la data verrà memorizzata momentaneamente in una variabile e quando sceglierò di uscire il programma stesso prenderà la data, precedentemente inserita, dalla variabile e me la visualizzerà per ricordarmela. In questo senso le variabili funzionano da contenitori.
Ora eviterò inutili discussioni tecniche sul funzionamento delle variabili all'interno di un computer, anche perché se scegliete di programmare il vostro Mac con REALbasic significa che certe cose non vi interessano e che preferite piuttosto passare subito al lato pratico, cosa che con questo programma vi sarà molto facile.

Dunque, come dicevo, in REALbasic quasi ogni oggetto che vedete sullo schermo può essere contenuto in una variabile, ma i tipi di dati che maggiormente vi serviranno nei vostri programmi sicuramente saranno i numeri, le lettere e i valori booleani. Quindi, ora, prenderemo in considerazione solamente questi tipi di dati.
Come in ogni linguaggio di programmazione, prima di poter utilizzare una variabile è necessario dichiararla, ovvero dire al computer che al nome "pippo" corrisponde un certo tipo di dato come ad esempio un numero. In REALbasic per fare questo si utilizza un'apposita funzione nel seguente modo:

Dim pippo as integer // ovvero si dice al computer di creare una variabile di nome pippo che servirà a contenere dei numeri interi

E' già perché, come voi saprete, i computer sono molto precisi e pignoli quando si parla di numeri e quindi fanno una distinzione fra numeri interi, numeri con la virgola e grandi numeri. Per cui anche in REALbasic i numeri si dividono in integer (interi), single (numeri con la virgola) e double (grandi numeri anche con la virgola). C'è un motivo ben preciso per cui vengono fatte queste distinzioni: la memoria, cioè la quantità di memoria che ogni singola variabile occupa. Un integer occupa 4 byte di memoria ma ha la limitazione che può contenere numeri compresi fra -2 miliardi e +2 miliardi (vi sembra tanto, un esagerazione, vedrete che per certe cose non saranno sufficienti); per le esagerazioni poi esistono appunto i double, un double occupa 8 byte in memoria però non ha limiti teorici sulle cifre che può contenere e i numeri contenuti in esso possono avere anche cifre decimali; infine ci sono i single che occupano 4 byte in memoria e possono avere cifre decimali.
Questo non significa che dovete stare a fare i conti di quanta memoria occuperà il vostro programma finale, ma semplicemente è utile saperlo per evitare inutili sprechi di memoria, cioè se proprio non vi serve evitate di utilizzare un double ma piuttosto utilizzate un integer, voi direte ma cosa sono 4 o 8 byte di memoria se il mio Mac ha 32 o 64 Mb di memoria, in effetti nulla però provate ad immaginare un programma che crea 1000 variabili di tipi double, sono già 8 Kb solo di variabili e non è poco se pensate che le variabili sono solo una parte marginale di tutto il programma. Comunque non voglio assillarvi troppo con questioni, che in fin dei conti non hanno molta importanza.
Proseguiamo, esistono altri due tipi di variabili importanti le variabili booleane e le stringhe.
Le variabili booleane, come dice il nome stesso, possono contenere solamente valori di tipo booleano, cioè vero e falso (true e false) e sono utili se si effettuano dei test che debbano dare un risultato vero o falso, per crearle si fa così:

Dim pippo as boolean // cioè crea una variabile di nome pippo che possa contenere valori di tipo booleano

Ora passiamo alle stringhe, cosa sono? Le stringhe sono delle variabili che possono contenere una quantità illimitata di caratteri (il limite dipende solo dalla quantità di memoria del computer), ma facciamo alcuni esempi di stringhe: "Pippo", "Ciao Pippo, come stai?", "31-12-1999", "13.4" sono tutte stringhe, sì anche le ultime due perché in REALbasic qualsiasi cosa che si trovi all'interno di un paio di virgolette viene considerata dal programma una stringa.
Insomma una stringa può contenere un po' tutto ciò che volete, beh direte voi, ma allora a cosa servono gli altri tipi di dati, non possiamo fare tutto con le stringhe? No, perché in effetti se noi cerchiamo di effettuare delle operazioni matematiche su stringhe non danno proprio il risultato sperato, esempio:
"13.5"+"16.5" non darà come risultato "30" ma bensì "13.516.5" cioè il programma non si curerà di capire che tipo di dato si trova all'interno della stringa, ma si limiterà ad unire le due stringhe, morale le stringhe possiamo solo concatenarle con l'operatore +, mentre invece i double, gli integer e i single con i classici operatori matematici (+,-,*,/) danno il risultato che tutti ci aspetteremo. E come si può facilmente dedurre le variabili booleane seguiranno le leggi dell'algebra di Bool.
Gli operatori di base che si utilizzano con le variabili sono gli operatori matematici, la funzione Dim che serve per creare le variabili e l'operatore = che serve per assegnare un valore a una variabile, ma facciamo un esempio completo:

Dim x,y,z as integer // per creare tre variabili x,y,z di tipo integer
x=2
// per assegnare il valore 2 alla variabile x
y=6
z=x+y
// per assegnare a z il risultato dell'operazione x+y, cioè 8
z=x*(y+y)-4
// per asseganre il valore 20 a z

Quindi ciò che sta a sinistra dell'operatore = è il contenitore e ciò che sta a destra è ciò che viene messo dentro al contenitore. Come avrete già capito è possibile creare anche delle equazioni con le variabili e utilizzando anche le parentesi () si può decidere la priorità delle varie operazioni, che altrimenti è quella della matematica classica.
Mi raccomando però non tentate di sommare una stringa ad un integer, perché come ci si può facilmente aspettare, ciò provocherà un errore, quindi se volete effettuare delle operazioni utilizzate tipi di dati uguali fra loro, a meno che non si tratti di numeri (integer, double, single) in tal caso basta solo stare attenti alle limitazioni dei vari tipi di variabili, ma si possono effettuare operazioni fra questi diversi tipi di dati.
Per concludere vi svelerò due ultime particolarità, dovete sapere che tutte le variabili di tipo single che utilizzate nei vostri programmi vengono convertite in double dai processori PowerPC prima di effettuare qualsiasi operazione su di esse, quindi se pensate di scrivere un programma che verrà eseguito da computer PowerPC utilizzate direttamente variabili di tipo double e non single, altrimenti il processore sarà costretto ad effettuare anche la conversione prima delle operazioni.
Le variabili di tipo booleano, quando vengono create, assumono direttamente il valore false, questa cosa è utile da sapere se fate utilizzo di questo tipo di variabili.



Data di pubblicazione: 12-02-2000
L'intero contenuto di questo sito è © dal 1998 del Team di ilMac.net, è vietata ogni riproduzione senza il consenso scritto da parte degli autori.