Introduzione
Il linguaggio BASIC (Beginners All-purpose Symbolic Instruction Code) è stato progettato al Darmouth College di Hanover (Ohio) nel 1964 da T. Kurtz e J. Kemey.
La Microsoft, legata per motivi storici ed affettivi al BASIC, lo ha "riesumato" e lo ha integrato nella tecnologia Object Based realizzando Visual BASIC, che comprende in pratica sia le classiche istruzioni e funzioni del BASIC (nelle sue numerose varianti: GWBASIC, BASICA, Quick BASIC, Turbo BASIC) sia le istruzioni necessarie per gestire gli oggetti e le proprietà.
A. Standard
Data type Size Range
Byte 1 byte 0 a 255
Boolean 2 byte True, False
Integer% 2 byte -32.768 a 32.767
Long& 4 byte -2.147.483.648 a 2.147.483.647
Single! 4 byte -3.4E+38 a -1.4E-45 | +1.4E-45 a +3.4E+38
Double# 8 byte - -1.8E+308 a -4.9E-324 | +4.9E-324 a +1.8E+308
Currency@ 8 byte -922337203685477,5808 a +922337203685477,5807fixed point, usato per calcoli monetari
Date 8 byte dall'1/1/100 a 31/12/9999
Object 4 byte qualsiasi riferimento Object
Variant 16 byte + 1 byte per carattere, default, è possibile memorizzare tutti i tipi di dati e le conversioni sono automatiche
B. Definiti
Data type Size
Type Numero richiesto dagli elementi.
Data type Size Range
String$ 1 byte per char da 0 a 2E32 caratteri
Dim g As string stringa a lunghezza variabile
Dim g As string * 20 stringa a lunghezza fissa 20 caratteri
Array statici
Dim c (14) As Integer array di 15 elementi (da 0 a 14)
Dim c (1 To 15) As Integer array di 15 elementi (da 1 a 15)
Dim c (1 To 10,1 To 10) As Integer matrice 10*10
Array dinamici
Dim c () As Integer matrice dinamica: dichiarazione
ReDim (1 To 10,1 To 10) allocazione
Record e File
Per default, le variabili sono di tipo Variant è però buona regola di programmazione dichiarare sempre il tipo di dati.
Esistono due tipi di costanti:
le costanti intrinseche o definite dal sistema sono incorporate nei controlli, per esempio vbTileHorizontal;
le costanti simboliche o definite dallutente sono dichiarate utilizzando listruzione [Public] [Private] Const nomecostante [As tipo] = espressione
Aritmetici Relazionali Logici
Potenza ( ^ ) Uguale ( = ) Not
Meno unario ( - ) Diverso ( <> ) And
Moltiplicazione, Divisione ( * , / ) Minore di ( < ) Or
Divisione intera ( \ ) Maggiore di ( > ) Ex-Or
Mod Minore o Uguale a ( <= ) Eqv (Ex-Nor)
Addizione, Sottrazione ( + , - ) Maggiore o Uguale a ( >= ) Imp
Stringa concatenata ( & , + )
Semplici (non contengono altre istruzioni):
Goto, Chiamata, Assegnazione.
(sono composte da più istruzioni):
SEQUENZA, le istruzioni sono eseguite nello stesso ordine in cui sono scritte;
SELEZIONE
unaria If condizione Then istruzione |
If condizione Then
End If |
binaria If condizione Then
|
nidificata If condizione1 Then
[bloccoistruzioni1]
[ElseIf condizione2 Then
[bloccoistruzioni2] ]
[Else
[bloccoistruzioni-n] ]
End If
MULTIPLA (quando si hanno istruzioni mutuamente esclusive, altrimenti if nidificate)
Select Case espressione
[Case espressioni1
[bloccoistruzioni1] ]
[Case espressioni2
[bloccoistruzioni2] ]
[Case Else
[bloccoistruzioni-n] ]
End Select
ITERAZIONE successione di istruzioni eseguite ripetutamente
Il programmatore specifica la condizione che determina la fine delliterazione
ciclo a condizione iniziale
While condizione
[bloccoistruzioni]
Wend itera per T esce per F
ciclo a condizione iniziale/finale
Do [{While} condizione]
[bloccoistruzioni]
[Exit Do]
[bloccoistruzioni]
Loop itera per T esce per F
Do [{Until} condizione]
[bloccoistruzioni]
[Exit Do]
[bloccoistruzioni]
Loop itera per F esce per T
Do
[bloccoistruzioni]
[Exit Do]
[bloccoistruzioni]
Loop [{While} condizione] itera per T esce per F
Do
[bloccoistruzioni]
[Exit Do]
[bloccoistruzioni]
Loop [{Until} condizione] itera per F esce per T
Il numero di iterazioni è noto a priori
For contatore = inizio To fine [Step incremento]
[bloccoistruzioni]
[Exit For]
[bloccoistruzioni]
Next contatore
For Each elemento In gruppo
istruzioni
Next elemento