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
dellambiente di sviluppo
integrato.

Un nuovo modo di programmare


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

Al giorno doggi, 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 dellinterfaccia 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, unazione, uninterazione
dellutente 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 lutente 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.
Lapprendimento 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 questultimo.

S EZIONE 2

Lambiente Microsoft
Visual Basic
C ONTENUTO
1. Lambiente 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
Leditor 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 anchessi 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.

Lambiente 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 dellinterfaccia 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 delloggetto selezionato, una
propriet una caratteristica delloggetto.
A seconda delloggetto selezionato le propriet
visibili saranno diverse. Lambiente 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 dellinterfaccia 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 delleseguibile 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 loggetto Label e posizioniamolo nel form.

3.

Troviamo loggetto Button e facciamo la stessa cosa del punto 2

La situazione dovrebbe essere allincirca 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 allinterno del sub appena creato verr lanciato non
appena si far click sul pulsante
8.

Spostiamoci allinterno del nuovo sub e scriviamo


lblrisultato.text = 2 + 2

Analogamente alla sintassi del C#, loperazione di assegnazione viene


effettuata tramite loperatore =
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
lungo)

4 byte

Da -2.147.483.648 a 2.147.483.647

Single (virgola
mobile a
precisione
semplice)

4 byte

Da -3,402823E38 a -1,401298E-45 per


valori negativi;da 1,401298E-45 a
3,402823E38 per valori positivi

Double (virgola
mobile a
precisione
doppia)

8 byte

Da -1,79769313486232E308 a
-4,94065645841247E-324 per valori
negativi; da 4,94065645841247E-324 a
1,79769313486232E308 per valori positivi

String

10 byte +
lunghezza
stringa (10
byte +
numero
caratteri)

Da 0 a circa 2 miliardi

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 dazione delle costanti definite, il


primo stabilisce che i dati presenti nel form possono essere condivise anche
con altri progetti, mentre la seconda limita luso dei dati al solo progetto in
costruzione.
Const la parola chiave
<NomeConstante> il nome che si desidera assegnare alla costante
As unaltra 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 listruzione 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
loperatore =
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 allinterno 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, allinterno 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 larea 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 dazione dei dati.
Sub labbreviazione 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 dazione 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, allinterno 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
\OGGETTO

NOME

.TEXT (O
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 laddizione tra A e B.
Poich non possibile far tornare un valore, la visualizzazione del risultato
deve avvenire allinterno 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, lincremento 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