Differenze tra le versioni di "Le Variabili"

Da Gambas-it.org - Wikipedia.
Riga 17: Riga 17:
  
 
   '''[STATIC](PUBLIC|PRIVATE)''' ''Variabile'' '''[Array] AS [NEW]''' ''tipo_di_dato''
 
   '''[STATIC](PUBLIC|PRIVATE)''' ''Variabile'' '''[Array] AS [NEW]''' ''tipo_di_dato''
 +
 +
 +
Se si desidera che una variabile pubblica non venga azzerata, anche se appartenente ad una ''Classe'', è necessario anteporre la parola '''STATIC'''. In questo caso, la variabile viene impostata alla prima chiamata, e rimane valida fino al termine del programma.
  
  

Versione delle 04:32, 27 ott 2012

In informatica una variabile è un contenitore che serve a memorizzare un valore su cui il programma deve eseguire delle operazioni. Più precisamente, una variabile è un nome che punta ad una locazione di memoria in cui vengono memorizzate le informazioni.

Senza variabili, un programma non può eseguire nessuna operazione utile in quanto non ha modo di poter memorizzare i dati passati dall'utente ne' i risultati delle proprie operazioni. Quando si programma è quindi utile, ed indispensabile, avere delle variabili su cui poter lavorare anche solo per semplici somme o sottrazioni. Ancor più utile è conoscere i tipi di variabili con le quali si ha a che fare per evitare di imbattersi in errori dovuti ad una non corrispondenza dei tipi fra i dati da immagazzinare ed il tipo di dati che una variabile può contenere.

Dichiarazione di variabili

Gambas è un linguaggio di programmazione tipizzato staticamente, il che significa che le variabili ed il tipo di dati che conterranno devono essere dichiarate prima del loro uso (tipizzato) e che il tipo di dati non varierà per il resto dell'esecuzione del programma (staticamente). Se, ad esempio, alla variabile A dichiarata di tipo Integer venisse ad un certo punto assegnato un valore di tipo stringa, Gambas segnalerebbe un errore in fase di esecuzione di tipo non corrispondente; un altro errore verrebbe segnalato se cercassimo di assegnare un valore ad una variabile non dichiarata.

Variabili globali e variabili locali

Prima di iniziare penso sia doverosa una spiegazione sulla suddivisione di variabili locali e globali, pubbliche e private. Le variabili devono essere dichiarate all'inizio di classi, moduli o funzioni. La loro dichiarazione può essere:

  • locale: ha effetto solo nella funzione in cui sono definite
  • globale: ha effetto in tutta la classe e in tutte le funzioni contenute nella stessa classe


Per le variabili globali la dichiarazione avviene secondo la seguente sintassi, che va inserita all'inizio del codice della classe o del modulo:

 [STATIC](PUBLIC|PRIVATE) Variabile [Array] AS [NEW] tipo_di_dato


Se si desidera che una variabile pubblica non venga azzerata, anche se appartenente ad una Classe, è necessario anteporre la parola STATIC. In questo caso, la variabile viene impostata alla prima chiamata, e rimane valida fino al termine del programma.


Si noti che è possibile dichiarare variabili globali che sono o pubbliche (PUBLIC) o private (PRIVATE). Se si specifica la parola chiave PUBLIC allora la variabile sarà accessibile anche da altre classi mentre per ciò che riguarda PRIVATE, la variabile sarà accessibile solo alla classe in cui è dichiarata.

Per le variabili locali la dichiarazione avviene secondo la seguente sintassi, da inserire all'interno della funzione o procedura:

 DIM Variabile AS [NEW] tipo_di_dato [=valore_predefinito]

L'istruzione DIM, utilizzata in una SUB o Function, deve essere - se necessaria - la prima istruzione presente; può essere preceduta solo da commenti o da un'altra istruzione DIM.


NEW

La parola NEW indica all'interprete che stiamo dichiarando nuovi oggetti oppure matrici di tipo dinamico. Esempio 1:

 DIM hFile AS NEW File

Dichiara hFile come una nuova istanza dell'oggetto File, creandolo fisicamente in memoria. Esempio 2:

 DIM Matrice AS NEW Integer[]

Dichiara Matrice come una nuova matrice dinamica di tipo Integer. Le matrici di tipo dinamico possono crescere di dimensioni durante l'esecuzione del programma e non necessitano pertanto di essere dimensionate in fase di dichiarazione.


Tipi di variabili

Dopo aver dato uno sguardo alla dichiarazione passiamo ad analizzare quali tipi di variabili si hanno a disposizione per i propri programmi.

  • Boolean questo tipo di variabile può assumere solo i due valori logici TRUE (Vero) e FALSE (falso)
  • Byte: variabile numerica che può contenere valori da 0 a 255. Occupa una memoria di un byte quando viene dichiarata e, se non espresso diversamente, il suo valore di default è 0
  • Short: assume valori compresi tra ­-32768 e +32767. Occupa 2 bytes di memoria e il suo valore di default è 0
  • Integer: assume valori interi tra ­-2147483648 e +2147483647. Occupa 4 bytes e il suo valore di default è 0
  • Single: può valere da -1.7014118-38 e +1.7014118E+38. Occupa 8 byte con valore di default 0.0 .
  • Float: può valere da -8.98846567431105E308 a +8.98846567431105E+308. Occupa 8 bytes con valore di default uguale a 0.0 .
  • Long: può valere da -9.223.372.036.854.775.808 a +9.223.372.036.854.775.807. Occupa 8 byte e il suo valore di default è 0
  • Date: variabile per la gestione delle date ed orari. Occupa 8 bytes ed il suo valore di default è NULL.
  • String: può contenere qualunque tipo di carattere alfanumerico (lettere e numeri, simboli vari); è utile per modifiche e gestioni di frasi e parole (stringhe). Variabile di 4 bytes |1| con valore iniziale nullo.
  • Variant: variabile utile quando non si conoscono i tipi di dati con cui si deve lavorare. Può assumere tutti i tipi di variabile. 12 bytes di memoria con valore standard nullo.
  • Object: riferimento indiretto ad un oggetto. Variabile di 4 bytes con valore iniziale nullo.


Assegnare un valore ad una variabile

Assegnare un valore ad una variabile è tra le cose più ricorrenti nella stesura di un codice. La cosa è molto semplice e segue questa sintassi:

 nome_variabile = valore_variabile

dove nome_variabile è la nostra variabile dichiarata e valore_variabile un opportuno valore alfanumerico che sia dello stesso tipo per cui la variabile è stata dichiarata.


Note

[1] Una stringa, formata da qualsiasi quantità di caratteri, occupa *sempre* 4 byte; questo perché una stringa è in realtà un puntatore a una struttura più complessa che contiene, fra l'altro, la lunghezza della stringa.