VISUAL BASIC 5.0

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à.

 

TIPI DI DATI

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 dall’utente sono dichiarate utilizzando l’istruzione [Public] [Private] Const nomecostante [As tipo] = espressione

 

Operatori

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 ( & , + )

 


Istruzioni

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;

 


Strutturate

SELEZIONE

unaria If condizione Then istruzione

If condizione Then

istruzioni

End If

binaria If condizione Then

istruzioni

Else

istruzioni

End If

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 dell’iterazione

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