Sei sulla pagina 1di 23

FROM C TO

Visual Basic DEDICATO AGLI UTENTI


CON BASI DI C CHE SI
AFFACCIANO AL MONDO
DEL VISUAL BASIC.

Contiene solo basi di


linguaggio

FEDERICO GIUNTOLI
Microsoft
Visual Basic

Questo capitolo ha lo scopo di


definire le caratteristiche
elementari del linguaggio e
dell’ambiente di sviluppo
integrato.
Un nuovo modo di programmare

C ONTENUTO

1. Cenni storici
2. Descrizione generale del linguaggio
3. Programmazione event-driven

Al giorno d’oggi, la disponibilità di linguaggi e di strumenti utili al fine di


creare applicazioni è ampia, vale tuttavia la pena di prendere in
considerazione il Visual Basic.

Arrivato alla versione 8, il Visual Basic è un semplice ma potente linguaggio


di programmazione di casa Microsoft per costruire software installabili
direttamente sul computer. Fino alla versione 6, il VB era considerato, da
molti, un linguaggio limitato e semplicistico, tuttavia, dalla versione 7, Visual
Basic è stato completamente rivisto e microsoft ha lanciato il nuovo Visual
Basic .NET, la sintassi è comunque molto simile a quella del VB. Con le nuove
versioni questo si è evoluto in un linguaggio più vicino alle esigenze degli
sviluppatori che utilizzano la programmazione orientata agli oggetti. Con
questo linguaggio è possibile creare qualsiasi tipo di applicazione.

Le caratteristiche per cui questo linguaggio risulta particolarmente semplice e


versatile, sono diverse:

• Facilità di scrittura (non utilizza formalità di punteggiatura tipica di quasi


tutti gli altri linguaggi).

• Funzione di progettazione dell’interfaccia grafica completamente visuale.

• Il linguaggio di tipo event-driven.


I programmi Event-driven (programmazione a eventi), non hanno un
inizio e una fine, bensì sono predisposti ad eseguire un loop infinito di
istruzioni. Il flusso di lavoro viene dunque determinato dal verificarsi di
eventi esterni. Un evento o, più semplicemente, un’azione, è un’interazione
dell’utente con il programma, essa può consistere in un semplice click,
digitazione in una casella, inserimento di periferiche esterne, cambiamento
della risoluzione, ecc. Gli oggetti del Visual Basic sono in grado di riconoscere
autonomamente gli eventi più comuni, senza che il programmatore si
preoccupi di stabilire, per esempio, quando l’utente ha fatto click su un
oggetto.

Proprio per la sua facilità e per la potenza e la flessibilità che offre, il Visual
Basic viene utilizzato sia dai programmatori più esperti, sia dai neofiti che si
avvicinano per la prima volta al mondo della programmazione.
L’apprendimento del VB risulta, per la sua somiglianza sintattica al C# e
quindi al C++, particolarmente facilitato per gli utenti i quali hanno già
familiarità con quest’ultimo.
S EZIONE 2

L’ambiente Microsoft
Visual Basic
C ONTENUTO

1. L’ambiente di sviluppo visuale Microsoft


Visual Basic
2. Da che cosa è composto e le fasi di
realizzazione di un progetto Visual Basic
3. Il primo progetto

L’editor per la programmazione ad oggetti in Visual Basic più famoso è


Microsoft Visual Studio e non si tratta esattamente di un editor, bensì di un
ambiente di sviluppo. Esistono dei software, magari scritti anch’essi in Visual
Basic, ad uso commerciale o meno, per implementare utility, ma sono dei
surrogati dell'ambiente di sviluppo originale. VB.NET è un linguaggio di
libero utilizzo. Il relativo compilatore è scaricabile dall'area download del sito
Microsoft. È altresì scaricabile una versione detta Express dell'IDE di
sviluppo Visual Studio completamente gratuita.

Esiste inoltre un compilatore opensource e multipiattaforma che, grazie al


progetto Mono, è in grado di compilare anche su piattaforme anche diverse da
Windows, come Mac OS X o Linux.

Oltre alle versioni di Visual Studio, esiste anche un IDE (Integrated


Development Environment) open source, SharpDevelop, che permette di
creare applicazioni in modo veloce e semplice. SharpDevelop permette lo
sviluppo di plugin per l'IDE stesso, applicazioni Mono, creazione di
applicazione con .NET Compact Framework e le classiche applicazioni
Console e Windows Form.
L’ambiente di sviluppo utilizzato per realizzare questa guida è Microsoft
Visual Basic 2010 Express.

Iniziamo con il lato pratico. Apriamo Microsoft Visual Basic 2010,


spostiamoci nel menu “File” e facciamo click su “Nuovo progetto”, scegliamo
“EXE Standard” (Applicazione Windows form, nel nostro caso).

Avviato il nuovo progetto, ci troviamo davanti vuna finestra, il form, che sarà
la finestra della nostra futura applicazione. Nel form vengono collocati tutti
gli elementi dell’interfaccia utente: caselle di testo, pulsanti, immagini, ecc.
Per inserirli nel progetto basterà selezionarli dalla barra strumenti e
trascinarli nel punto desiderato. Altrettanto facilmente è possibile modificare
la posizione e la dimensione di un controllo semplicemente utilizzando il
mouse.

Come comune in ambiente windows, i comandi utili alla realizzazione di un


progetto sono raggruppati in una toolbox.
Nella finestra proprietà sono elencate le
impostazioni dell’oggetto selezionato, una
proprietà è una caratteristica dell’oggetto.

A seconda dell’oggetto selezionato le proprietà


visibili saranno diverse. L’ambiente di Visual Basic
propone già i possibili valori elencati in una casella
di riepilogo.

Le fasi di realizzazione di un progetto sono le seguenti:

1. Creazione dell’interfaccia utente - definiamo il form e tutti gli oggetti


che saranno utilizzati nel progetto.

2. Impostazioni delle priorità - descrizione degli oggetti componenti il


progetto

3. Scrittura del codice Visual Basic - Istruiamo il programma in modo da


stabilire cosa deve “accadere” al verificarsi di un dato evento.

Al termine di queste fasi si potrà procedere alla creazione dell’eseguibile e


del pacchetto di installazione.

Vediamo adesso come realizzare il nostro semplicissimo primo progetto.

1. Apriamo un nuovo progetto e iniziamo ad inserire i controlli utilizzando


la toolbox degli strumenti.

2. Selezioniamo l’oggetto “Label” e posizioniamolo nel form.

3. Troviamo l’oggetto “Button” e facciamo la stessa cosa del punto 2


La situazione dovrebbe essere all’incirca questa:

4. Selezionate adesso il bottone, spostatevi nella finestra delle proprietà e


quindi nel campo “name”, modifichiamolo in “cmdbutton”.

5. Nel campo “Text” scriviamo “Calcola”

6. Ripetiamo i punti 4 e 5 per Label1 e modifichiamo nel modo seguente,


name: lblrisultato, Text: ”qui comparirà il risultato

7. Finestraacciamo doppio click sul bottone, si aprirà la scheda del codice,


dove troveremo quanto segue:
Public Class Form1

Private Sub Button1_Click(ByVal sender As


System.Object, ByVal e As System.EventArgs) Handles
Button1.Click

End Sub
End Class

Per versioni VB dalla 7 in poi.

Public Class Form1

Private Sub cmdcalcola_Click()

End Sub

End Class

Per vecchie versioni di VB


Ogni comando inserito all’interno del sub appena creato verrà lanciato non
appena si farà click sul pulsante

8. Spostiamoci all’interno del nuovo sub e scriviamo


lblrisultato.text = 2 + 2

Analogamente alla sintassi del C#, l’operazione di assegnazione viene


effettuata tramite l’operatore “=”

9. Eseguiamo il programma con il tasto “Run” o premendo F5

Se tutto ha funzionato, il programma dovrebbe avviarsi e, cliccando sul


pulsante, dovrebbe comparire la somma di 2+2.
C APITOLO 2

Allora iniziamo a
programmare!
- Le basi

Dopo aver affrontato il primo


capitolo e aver preso mano con il
linguaggio e il relativo ambiente
di sviluppo, questo capitolo
fornisce gli elementi per
applicare le basi di
programmazione che si
conoscono al Visual Basic
S EZIONE 1

Le variabili e le costanti

C ONTENUTO

1. I tipi di dato
2. Dichiarazione di una variabile
3. Dichiarazione di una costante

4. Pratica: Area del cerchio

Così come in C# (e in tutti gli altri linguaggi) i dati possono essere di vario
tipo, ognuno dei quali rappresenta valori diversi e occupa una diversa
dimensione in memoria:

Tipo di dato Dimension Intervallo


e in
memoria
Boolean 2 byte true (-1) o False (0)
Integer (intero) 2 byte Da -32.768 a 32.767
Long (intero 4 byte Da -2.147.483.648 a 2.147.483.647
lungo)
Single (virgola 4 byte Da -3,402823E38 a -1,401298E-45 per
mobile a valori negativi;da 1,401298E-45 a
precisione 3,402823E38 per valori positivi
semplice)
Double (virgola 8 byte Da -1,79769313486232E308 a
mobile a -4,94065645841247E-324 per valori
precisione negativi; da 4,94065645841247E-324 a
doppia) 1,79769313486232E308 per valori positivi
String 10 byte + Da 0 a circa 2 miliardi
lunghezza
stringa (10
byte +
numero
caratteri)
Vediamo adesso la differenza tra la dichiarazione di una costante e quella di
una variabile.

Le costanti vengono dichiarate nel seguente modo:

[Public | Private] Const <NomeConstante> As <Tipo> = valore

• Public e Private restringono il campo d’azione delle costanti definite, il


primo stabilisce che i dati presenti nel form possono essere condivise anche
con altri progetti, mentre la seconda limita l’uso dei dati al solo progetto in
costruzione.

• Const è la parola chiave

• <NomeConstante> è il nome che si desidera assegnare alla costante

• As è un’altra parola chiave, indica che <Tipo> è il tipo con cui viene
dichiarata la constante

• <Tipo>, come appena detto, identifica il tipo assegnato alla constante

• = valore assegna il valore della constante

esempi di constanti sono:

Const Massimo As Integer = 10

Const pigreco As Double = 3,14


Vediamo adesso come dichiarare una variabile

Dim <NomeVariabile> As <Tipo>

• Dim è l’istruzione di dichiarazione esplicita che consente di assegnare alle


variabili un identificatore e un tipo

• <NomeVariabile> è il nome da assegnare alla variabile

• As, così come <Tipo>, hanno la stessa funzione vista per le constanti

Anche per le variabili è possibile assegnare un valore iniziale, sempre con


l’operatore “ = “

Esempi:

Dim Risultato As Integer

Dim I As Integer = 1

Dim cognome As String

Dim nome As String *20

Così come accadeva in C# con il tipo string, anche qui esso può sì avere una
lunghezza fissa dichiarata (*20 indica che la variabile nome può contenere
massimo 20 caratteri), ma può avere anche lunghezza variabile (come accade
nel terzo esempio), basta non dichiarare la dimensione

Vediamo adesso come realizzare un semplice programma che utilizzi sia


variabili che constanti.

1. Apriamo un nuovo progetto e inseriamo nel form il controllo “TextBox”

2. Inseriamo adesso un bottone comune e una Label


3. Applichiamo le seguenti proprietà,

Bottone: Name: cmdbutton, Text: Calcola;

Label: Name: lblrisultato, Text: Risultato

4. Spostiamoci all’interno della scheda del codice, dentro il class, e


andiamo a dichiarare le seguenti variabili e constanti:

Const pigreco As Double = 3.14

Dim raggio As Double

Dim Risultato As Double

5. Torniamo nella finestra del form, facciamo doppio click sul bottone, ecco
che verremo spostati nuovamente nella scheda del codice, all’interno del
sub

6. Qui andremo a scrivere:


Raggio = TextBox1.Text

Risultato = pigreco * raggio * raggio

lblrisultato.text = Risultato
7. Il codice completo dovrebbe essere simile a questo:

Public Class Form1


Const pigreco As Double = 3.14
Dim raggio As Double
Dim Risultato As Double

Private Sub cmdcalcola_Click(ByVal sender As


System.Object, ByVal e As System.EventArgs) Handles
cmdcalcola.Click
raggio = TextBox1.Text
Risultato = pigreco * raggio * raggio
lblrisultato.text = Risultato
End Sub

8. Eseguite il programma, inserendo il valore del raggio nella casella di


testo e premendo “Calcola”, dovrebbe comparire l’area del cerchio.
S EZIONE 2

Procedure e funzioni

C ONTENUTO

1. Procedure

2. Funzioni

3. Applicazioni e differenze

4. Esempio: Somma e sottrazione

Come abbiamo già visto studiando il linguaggio C, nella scrittura di un


programma possiamo usufruire di un potente strumento le funzioni.

Le funzioni, o routine, ci permettono dunque di dividere il programma in


sottoprogrammi. Rispetto al C la gestione delle funzioni è molto simile e la
sintassi semplificata. Vediamo adesso alcune precisazioni.

In VB abbiamo la distinzione tra procedure e funzioni. La differenza


fondamentale tra procedure e funzioni è che le seconde possono restituire dei
valori, mentre le procedure no.

Di seguito, la dichiarazione di una procedura.

Private Sub <nome>([Parametro As <Tipo>, ...])


...
End Sub

•Private, indica il campo d’azione dei dati.

•Sub è l’abbreviazione di “subroutine”, inizia la dichiarazione della procedura


•nome: è il nome con cui vogliamo identificare la procedura per una
successiva chiamata.

• Dentro le parentesi tonde dobbiamo inserire il nome delle variabili con i


relativi tipi, esse rispettano le regole studiate nel C, in chiamata dovremmo
perciò rispettare gli stessi accorgimenti. Potremo inoltre decidere se passare il
parametro per valore (anteponendo byval) o per indirizzo (byref).

• end sub, è una parola chiave del VB che segna la fine della procedura.

Vediamo adesso come gestire la chiamata ad una procedura:

<nome>([Parametro As <Tipo>, ...])

La chiamata è estremamente semplice, basta fare riferimento al nome e


includere tra parentesi i parametri da passare al parametro.

Vediamo adesso la dichiarazione di una funzione.

Private Function <nome>([Parametro As <Tipo>, ...]) [As


<Tipo>]
...
End Function

•Private, indica il campo d’azione dei dati.

• Fuction, inizia la dichiarazione della funzione

•nome: è il nome con cui vogliamo identificare la funzione per una successiva
chiamata.

•Come con le procedure, passiamo, all’interno delle parentesi tonde, i


parametri.

•As <Tipo>: esso indica il tipo di dato restituito dalla funzione.

Proviamo a mettere in pratica quanto appreso.

1. Apriamo un nuovo progetto


2. Inseriamo il necessario: tre label, due TextBox, due bottoni e modifichiamo
come di seguito

CAMPO .TEXT (O
NOME
\OGGETTO CAPTION)

Label1 -invariato- Variabile A

Label2 -invariato- Variabile B

Label3 lblrisultato Risultato

TexBox1 txtVarA -vuoto-

TexBox2 txtVarA -vuoto-

Botton1 cmdsomma Somma

Botton2 cmdsottrazione Sottrazione

Otterrete un risultato simile a questo


Adesso andremo ad effettuare la somma mediante un parametro e la
sottrazione mediante una funzione.

3. Dichiariamo due variabili globali: A e B come interi

4. Andiamo a scrivere la procedura somma, ricordiamo che una procedura


non restituisce valori.

Private Sub somma(ByVal A As Integer, ByVal B As Integer)


Dim risultato As Integer
risultato = Val(A) + Val(B)
lblrisultato.Text = risultato
End Sub

Analizziamo:

•Abbiamo dichiarato la procedura somma, la quale lavorerà con il valore


(byval) dei parametri A e B).

•Abbiamo dichiarato il risultato come un intero e abbiamo assegnato ad


esso l’addizione tra A e B.

•Poiché non è possibile far tornare un valore, la visualizzazione del risultato


deve avvenire all’interno della procedura.

5. Scriviamo la funzione sottrazione, la quale può restituire valori.

Private Function sottrazione(ByVal A As Integer, ByVal B


As Integer) As Integer
Dim risultato As Integer
risultato = Val(A) - Val(B)
Return risultato
End Function

Analizziamo:

• Abbiamo dichiarato la funzione somma, la quale lavorerà con il valore


(byval) dei parametri A e B). Questa funzione restituirà un valore intero.

•Abbiamo dichiarato il risultato come un intero e abbiamo assegnato ad


esso la differenza tra A e B.

•Return è la parola chiave che anticipa il valore di ritorno.


6. Creiamo gli eventi click su cmdsomma e click su cmdsottrazione.

7. Assegnamo alle variabili i TextBox.

8. Effettuiamo la chiamata al sottoprogramma relativo.

Risultato finale:
Public Class Form1
Dim A As Integer
Dim B As Integer

Private Sub cmdsomma_Click(ByVal sender As


System.Object, ByVal e As System.EventArgs) Handles
cmdsomma.Click
A = txtVarA.Text
B = txtVarB.Text
somma(A, B)
End Sub

Private Sub cmdsottrazione_Click(ByVal sender As


System.Object, ByVal e As System.EventArgs) Handles
cmdsottrazione.Click
A = txtVarA.Text
B = txtVarB.Text
Dim risultato As Integer
risultato = sottrazione(A, B)
lblrisultato.Text = risultato
End Sub

Private Sub somma(ByVal A As Integer, ByVal B As


Integer)
Dim risultato As Integer
risultato = Val(A) + Val(B)
lblrisultato.Text = risultato
End Sub

Private Function sottrazione(ByVal A As Integer,


ByVal B As Integer) As Integer
Dim risultato As Integer
risultato = Val(A) - Val(B)
Return risultato
End Function

End Class

//A seconda della versione utilizzata, il codice potrebbe risultare diverso.


S EZIONE 3

Funzioni iterative

C ONTENUTO

1. Ciclo For ... Next


2. Ciclo Do ... Loop
3. Pratica: Fattoriale

Vediamo come mandare in esecuzione dei cicli con il VB.

Il ciclo più utilizzato è sicuramente il For .. Next /*anche se alla prof non
piace :’) */

Vediamone la sintassi:

For <Contatore> = Inizio To Fine [Step Incremento]


...
Next [<Contatore>]

•For: è la parola chiave che apre il ciclo

•<Contatore> : è una variabile contenente valori numerici

•Inizio To Fine: Inizio è il valore che assumerà subito il contatore, Fine è il


valore che dovrà raggiungere.

•La parola chiave Step è facoltativa, se non viene specificata, l’incremento di


default sarà +1

•Next <Contatore> chiude il ciclo


Il Do ... Loop può presentarsi in due forme:

Do While Condizione
...
Loop

Do apre il ciclo.

•While Condizione è la condizione da verificare per entrare nel ciclo.

•Loop termina il ciclo.

Questa struttura prevede per prima cosa la verifica della condizione. Il ciclo
entrerà in esecuzione finché la condizione risulterà vera.

Do
...
Loop While Condizione

Do: Apre il ciclo.

Loop: segna la fine del ciclo.

While Condizione è la condizione da verificare per entrare nel ciclo.

Questa struttura permette di eseguire le istruzioni e di verificare la condizione


al termine di ciascuna esecuzione.

Scriviamo adesso un semplice programma con i vari cicli, così da evidenziarne


le differenze.

Public Class Form1


Private Sub Button1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles cmdcalcola.Click
Dim A As Integer
A = txtVarA.Text
Dim Risultato As Integer
Risultato = 1
For i As Integer = 0 To A - 1
Risultato = Risultato * (A - i)
Next
lblrisultato.Text = Risultato
End Sub
End Class ‘For … Next
Public Class Form1

>>>>>>Private Sub Button1_Click(ByVal sender As


System.Object, ByVal e As System.EventArgs) Handles
cmdcalcola.Click
Dim A As Integer, i As Integer, Risultato As
Integer
A = txtVarA.Text
Risultato = 1
i = 0
Do While i < A
Risultato = Risultato * (A - i)
i = i + 1
Loop
lblrisultato.Text = Risultato
End Sub
End Class ‘Do ... Loop

Potrebbero piacerti anche