Fondamenti di Visual Basic .NET n.1

Indice degli argomenti

Introduzione al linguaggio

Il linguaggio di programmazione Visual Basic .Net è stato ideato dalla Microsoft alla fine degli anni 80 con le prime versioni, nell’intento di avere un linguaggio di programmazione che potesse essere utilizzato per sviluppare applicazioni in ambiente Windows.
Oggi a distanza di oltre trent’anni, tale linguaggio è uno dei tanti linguaggi supportati dal framework .Net che si pone come software traduttore da un linguaggio di programmazione che può essere appunto Visual Basic, C#, Javascript, F#, attraverso un sistema complesso di layer software fra cui il CLS ovvero il Common Language Specification ovvero quello che permette acquisito un programma scritto in un linguaggio sorgente di tradurlo in un codice intermedio che poi venga gestito dopo una serie di ulteriori fasi dall’esecutore .Net.
Questo consente al pari di come è organizzato il linguaggio java di essere portabile ed eseguibile anche se con delle differenze su varie piattaforme software.
Nello specifico alcune funzionalità non sono disponibili nell’implementazione .Net Core che è utilizzata per creare applicazioni anche per ambiente Linux/Mac con questo linguaggio.
La nostra attenzione è però qui mirata a sviluppare applicazioni in ambiente Windows che possono essere di tipo Desktop o Console Application ovvero applicazione a finestre o applicazioni da linea di comando.

La dichiarazioni delle variabili

In VB (Visual Basic) esistono diversi tipi di dati che sono distinti in tipo valore e tipi riferimento.
Nel tipo valore è memorizzato un dato identificato da un identificatore e tale identificatore indica la posizione in memoria ove è locato il dato, oltre essere associato ad un tipo specifico.
Nel tipo riferimento è indicato solo l’indirizzo di partenza ove trovare i dati. Il tipo di dati che è associato ne determina la dimensione e la struttura.
Un array ad esempio è un tipo riferimento in quanto alloca un numero di celle di memoria contigue che avranno la dimensione del tipo di dati di cui sono composti gli elementi del vettore.
Nel senso che è un vettore di Integer avrà una certa dimensione in termine di byte, che è differente se i dati che compongono
I tipi valore più utilizzati in VB sono Integer, Single numeri in virgola mobile, Double numeri in precisione doppia, Long, e Short che sono interi lunghi e corti, il tipo Boolean logico vero o falso, Char, e Date.
I tipi riferimento sono Object, String per citarne alcuni.
La dichiarazione delle variabili in VB può essere fatta in molti modi; il primo metodo oiù semplice è quello di dichiarare le variabili con l’istruzione Dim.
La sintassi è:
Dim nome identificatore As Tipo
Dim nome identificotore As Tipo = valore
ad esempio
Dim x as Integer = 13 dichiara un numero intero di valore iniziale 13;
Dim w as Double dichiara una variabile in precisione doppia senza valore iniziale;
Dim word as String = “Hello World” dichiara una variabile di tipo stringa con valore iniziale “Hello World”
Dim flag as Boolean = false, dichiara una variabile di tipo logico che all’inizio ha valore false
Sono solo alcune degli esempi per la dichiarazione delle variabili. In VB la notazione delle variabili e delle istruzioni non prevede la distinzione fra caratteri maiuscoli e minuscoli “case insensitive”. Conviene per una maggiore leggibilità del codice di utilizzare una regola fissa.

Le conversioni di tipo

Molto spesso è necessario convertire i dati da un tipo ad un altro ad esempio da intero a stringa per la stampa su Console, oppure per la conversione inversa quando si richiede l’inserimento di dati da tastiera. In quest’ultimo caso conviene effettuare una conversione esplicita per assicurare che il dato inserito sia coerente.
Le funzioni di conversione sono numerose le principali sono Cint(valore stringa), CDbl(Valore stringa), CSng(valore stringa), CBool(Valore stringa), CDate(valore stringa), CStr(valore non stringa), tutte queste funzioni convertono da stringa a intero Cint, da stringa a numero in precisione doppia Cdbl. Le funzioni CSng converte una sequenza di cifre in un numero a virgola mobile (ricordatevi che in VB il separatore decimale è la virgola). e in modo analago per le altre funzioni. La funzione CStr(valore non stringa) converte tutto quello che è passato come argomento in Stringa. Un’altra funzione di conversione da stringa a decimale è CDec(valore stiringa) che converta da stringa ad un tipo dati detto Decimal. Ciascun Dato poi ha un’ampiezza di occupazione in byte e un range di valori ammissibili che deriva proprio dalla dimensione del dato.

Le applicazioni di tipo Console

Un’applicazione Console è un’applicazione eseguita dal prompt dei comandi di un generico sistema operativo. In Windows prima era la shell del DOS; oggi è la shell dei comandi estesa (che include ovviamente anche i comandi del sistema DOS Esteso). In questa Console è possibile eseguire un programma che svolge dei compiti specifici.
Il sistema Windows è però un sistema basato anche su un’interfaccia grafica grafica che è ovviamente supportata da VB, ma che per scrivere applicazioni orientate a VB in questa modalità occorre conoscere il linguaggio di programmazione mediante l’approccio orientato agli oggetti, che sarà trattato molte lezioni avanti.
L’approccio che utilizziamo per ora è quello procedurale per imparare la sintassi del linguaggio VB. Per creare un’applicazione Console in VB, da Visual Studio scegliere Nuova Soluzione, scegliere come tipo di linguaggio Visual Basic, piattaforma Windows, e come tipo di progetto Console. Inserire il nome del progetto e sarà immediatamente disponibile un modulo così strutturato:

Module Module1

    Sub Main()

    End Sub

End Module

Il codice sopra è un modulo di codice ove è inserito il programma principale racchiuso fra le parole chiave “Sub..” e “End Sub”. All’interno di questo codice è possibile inserire un codice che svolga una qualche funzione.
Ad esempio:

Module Module1

    Sub Main()
        Dim msg As String = "Hello World"
        Console.WriteLine(msg)
        Console.ReadLine()
    End Sub

End Module

Nel codice è inserita una variabile stringa inizializzata a “Hello world” e viene stampata a video con l’istruzione Console.WriteLine(msg) e l’istruzione Console.ReadLine() attende che l’utente digita un tasto per uscire dal programma. Tale codice viene eseguito in modo semplice nell’ambiente di sviluppo Visual Studio e essere eventualmente compilato in un file eseguibile per piattaforma Windows.
Un codice più articolato per esempio è questo sotto riportato:

Module Module1
    Sub Main()
        Dim a, b As Integer
        Console.WriteLine("Inserire due numeri:")
        a = Console.ReadLine()
        b = Console.ReadLine()
        Dim s As Integer = 0
        s = a + b
        Console.WriteLine("La somma è" & s)
        Console.ReadLine()
    End Sub
End Module

In questo codice sono richiesti due numeri interi a e b e viene effettuata la somma e stampata a video. In questo caso il “casting” è implicito; infatti l’input viene ricevuto come stringa e convertito in automatico al tipo dati della variabile alla quale l’istruzione di lettura ReadLine() fa riferimento. E’ ovvio che la digitazione dell’input da parte dell’utente deve essere corretta anche perché se non si digita il dato corretto verrà generato un errore che può essere gestito mediante un’eccezione.

La gestione dell’input / output da Console

Come visto nell’esempio precedente sono state introdotte le istruzioni di Input / Ouput da Console.
Ne esistono di varie tipologie l’istruzione WriteLIne(stringa) produce la stampa della stringa fornita come argomento e contemporaneamente l’interruzione di linea ovvero l'”a-capo” riga.
L’istruzione Write(stringa) esegue la stampa senza interruzione di riga, ad esempio:
Console.Write(“I numeri che ho sommato ” & a & “,” & b)
stampa i valori delle variabili a e b oltre che del messaggio fra virgolette senza però andare a capo riga.
Le istruzioni di lettura della Console possono essere:
variabile =Console.ReadLine() legge l’intera riga e assegna l’input ricevuto alla variabile del primo membro,
l’istruzione Console.Read() legge il carattere successivo dal flusso di Input. Se il tipo dati non è compatibile viene generato un errore che si chiama “InvalidCastException” ovvero non riconosce il tipo dati e non può eseguire il cast.
Di norma un’eccezione è un errore grave che tuttavia può essere gestito mediante la gestione delle eccezioni.

Le strutture di condizione if them else end if

La struttura condizionale binaria o semplice in VB è:
if (condizione) Then
Blocco Istruzioni 1
Else
Blocco Istruzioni 2
End If
Questa struttura condizionale dice che se la condizione è verificata esegue il blocco di istruzioni 1, altrimenti il blocco istruzioni 2. Non necessariamente sono obbligatori sia il vero che il falso. Ad esempio una struttura di selezione senza il vero è così strutturata:
f (condizione) Then
Else
Blocco Istruzioni 2
End If
Non essendo previsto il vero subito sotto lo statement if (condizione) the, è inserito l’else. Il blocco If si chiude in ogni caso con End If.
A titolo di esempio il codice per calcolare il massimo di tre numeri inseriti da tastiera, con la relativa visualizzazione del massimo dei tre.

This content is for members only.

Video Fondamenti Visual Basic n.1