1 Programmazione orientata agli oggetti

Documenti analoghi
Struttura logica di un programma

Access. Microsoft Access. Aprire Access. Aprire Access. Aprire un database. Creare un nuovo database

Esame di Informatica CHE COS È UN FOGLIO ELETTRONICO CHE COS È UN FOGLIO ELETTRONICO CHE COS È UN FOGLIO ELETTRONICO. Facoltà di Scienze Motorie

1. Le macro in Access 2000/2003

Realizzare semplici applicazioni windows

WORD per WINDOWS95. Un word processor e` come una macchina da scrivere ma. con molte più funzioni. Il testo viene battuto sulla tastiera

5.3 TABELLE RECORD Inserire, eliminare record in una tabella Aggiungere record Eliminare record

Matematica in laboratorio

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

4 3 4 = 4 x x x 10 0 aaa

CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS

MODULO 3. Microsoft Excel. TEST ED ESERCIZI SU:

DAL DIAGRAMMA AL CODICE

Corso base di informatica

Gestire immagini e grafica con Word 2010

Cos è ACCESS? E un programma di gestione di database (DBMS) Access offre: un ambiente user frendly da usare (ambiente grafico)

Il foglio elettronico: Excel

Modulo 3 - Elaborazione Testi 3.6 Preparazione stampa

lo PERSONALIZZARE LA FINESTRA DI WORD 2000

GESTIONE DI FINESTRE, FILE E CARTELLE con Windows XP

IL LINGUAGGIO Visual Basic

SOMMARIO... 3 INTRODUZIONE...

Guida all uso di Java Diagrammi ER

Uso di base delle funzioni in Microsoft Excel

Word è un elaboratore di testi in grado di combinare il testo con immagini, fogli di lavoro e

Foglio Elettronico. Creare un nuovo foglio elettronico Menu File Nuovo 1 clic su Cartella di lavoro vuota nel riquadro attività

Word Libre Office. Barra degli strumenti standard Area di testo Barra di formattazione

I file di dati. Unità didattica D1 1

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

USO DI EXCEL CLASSE PRIMAI

Introduzione a Word. Prima di iniziare. Competenze che saranno acquisite. Requisiti. Tempo stimato per il completamento:

Aprire, preparare un documento da utilizzare come documento principale per una stampa unione.

LA FINESTRA DI OPEN OFFICE CALC

Database 1 biblioteca universitaria. Testo del quesito

Esercizio data base "Biblioteca"

A destra è delimitata dalla barra di scorrimento verticale, mentre in basso troviamo una riga complessa.

EXCEL ESERCIZIO DELLE SETTIMANE

On-line Corsi d Informatica sul web

Il controllo della visualizzazione

Guida SH.Shop. Inserimento di un nuovo articolo:

FUNZIONI DI IMPAGINAZIONE DI WORD

Leggere un messaggio. Copyright 2009 Apogeo

Come costruire una presentazione. PowerPoint 1. ! PowerPoint permette la realizzazione di presentazioni video ipertestuali, animate e multimediali

Identificare le diverse parti di una finestra: barra del titolo, barra dei menu, barra degli strumenti, barra di stato, barra di scorrimento.

Registratori di Cassa

Chiudere il Programma Menu File Esci Pulsanti 1 clic sul pulsante Tasto dx 1 clic sulla barra del titolo Chiudi Tastiera Alt+F4

FONDAMENTI DI INFORMATICA. 3 Elaborazione testi

Introduzione a Visual Basic Lezione 1 Concetti base e istruzioni condizionali

Manuale di istruzioni sulle maschere per il calcolo del punteggio e del voto (unico) degli studenti che sostengono la Prova nazionale 2011

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,

Operazioni fondamentali

Demo. La palette allinea. La palette Anteprima conversione trasparenza. Adobe Illustrator CS2

MS Word per la TESI. Barra degli strumenti. Rientri. Formattare un paragrafo. Cos è? Barra degli strumenti

3.6 Preparazione stampa

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL

Gestione Rapporti (Calcolo Aree)

Progetto PON C1-FSE : APPRENDERE DIGITANDO SECONDARIA VERIFICA INTERMEDIA CORSISTA NOME E COGNOME:

Applicazioni grafiche

Raggruppamenti Conti Movimenti

STRUMENTI PER L ACCESSIBILITÀ DEL COMPUTER.

On-line Corsi d Informatica sul Web

Personalizza. Page 1 of 33

per immagini guida avanzata Uso delle tabelle e dei grafici Pivot Geometra Luigi Amato Guida Avanzata per immagini excel

[Tutoriale] Realizzare un cruciverba con Excel

IMPOSTARE UNA MASCHERA CHE SI APRE AUTOMATICAMENTE

PULSANTI E PAGINE Sommario PULSANTI E PAGINE...1

Foglio elettronico. OpenOffice.org Calc 1.1.3

Università degli studi di Verona. Corso di Informatica di Base. Lezione 5 - Parte 2. Disegni e Immagini

Moduli (schede compilabili) in Word Esempio: scheda di alimentazione per un degente

Cominciamo dalla barra multifunzione, ossia la struttura a schede che ha sostituito la barra dei menu e la barra delle icone (Figura 1).

MODULO 4: FOGLIO ELETTRONICO (EXCEL)

Sistema operativo. Sommario. Sistema operativo...1 Browser...1. Convenzioni adottate

MANUALE EDICOLA 04.05

5-1 FILE: CREAZIONE NUOVO DOCUMENTO

ACCESSO AL SISTEMA HELIOS...

Olga Scotti. Basi di Informatica. Il sistema operativo Windows

Capitolo 9. Figura 104. Tabella grafico. Si evidenzia l intera tabella A1-D4 e dal menù Inserisci si seleziona Grafico. Si apre la seguente finestra:

Il calendario di Windows Vista

Mon Ami 3000 Varianti articolo Gestione di varianti articoli

MODULO 3 Foglio elettronico

CREARE PRESENTAZIONI CON POWERPOINT

5.2 UTILIZZO DELL APPLICAZIONE

CORSO DI INFORMATICA 2

Uso della posta elettronica Invio di un messaggio

EasyPrint v4.15. Gadget e calendari. Manuale Utente

DIAGRAMMA CARTESIANO

DISPENSA PER MICROSOFT WORD 2010

IL SISTEMA OPERATIVO

Compilatore risorse display grafico LCD serie IEC-line

Le L z e ione n e d i d V isu s a u l B asi s c Prof.ssa Paola Goi 1

paragrafo. Testo Incorniciato Con bordo completo Testo Incorniciato Con bordo incompleto

BMSO1001. Virtual Configurator. Istruzioni d uso 02/10-01 PC

On-line Corsi d Informatica sul web

MANUALE PER L UTILIZZO DELLA FUNZIONE EVENTI Rel.1.2 del 29 gennaio 2004

IMPORTAZIONE DI GRAFICI E TABELLE DA EXCEL A WORD

RAPPRESENTAZIONE GRAFICA E ANALISI DEI DATI SPERIMENTALI CON EXCEL

FORMULE: Operatori matematici

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

Barre di scorrimento

Transcript:

Visual Basic Lo studio di questa unità può essere affrontato con due modalità differenti. Il lettore che ha già esperienza di programmazione in un linguaggio ad alto livello (QBasic, Pascal, C) può tralasciare inizialmente lo studio delle caratteristiche tipiche del codice (tipi di dati, operatori, strutture, ecc.) e dedicarsi essenzialmente alle esercitazioni con l interfaccia grafica ed alle modalità di funzionamento dei primi programmi proposti. I lettori che invece non conoscono le modalità di programmazione con un linguaggio ad alto livello, debbono accompagnare lo studio degli argomenti precedentemente descritti con quelli riguardanti le caratteristiche tipiche del linguaggio Basic. Si consiglia soprattutto come metodo di rapido apprendimento del linguaggio lo studio delle esercitazioni e dei primi programmi proposti, cercando, per ogni applicazione, di comprendere la modalità con cui essa opera. I primi programmi sono di facile comprensione ed è su di essi che deve concentrarsi l attenzione dell operatore, senza ricercare, almeno inizialmente, lo sviluppo di applicazioni più complesse. Prima di iniziare lo studio di Visual Basic (VB) è consigliabile acquisire le semplici nozioni di base sulla programmazione orientata agli oggetti, con particolare riferimento alle nozioni riguardanti VB. 1 Programmazione orientata agli oggetti Alla base della programmazione orientata agli oggetti, che ha attualmente sostituito la più vecchia programmazione strutturata, sta il concetto di astrazione dei dati, ovvero la possibilità di creare, da parte dell utilizzatore di un linguaggio, nuovi tipi di dati più aderenti alla descrizione degli oggetti reali e che offra la possibilità che questi vengano riutilizzati senza la scrittura di nuovo codice. Un oggetto può essere considerato un applicazione vista come un unico blocco chiuso, contenente sia codice che dati, di cui il programmatore può servirsi nelle proprie applicazioni. Non interessa al programmatore come l oggetto sia stato implementato; è essenziale solamente che esso risponda correttamente all uso per cui è stato realizzato. Un Oggetto in Visual Basic ha: Proprietà: sono gli attributi che descrivono l oggetto (ne descrivono per esempio il nome, la forma, le dimensioni, il colore, ecc.). Metodi: sono le attività che un oggetto può svolgere quando esso viene richiamato da una applicazione; i metodi possono essere considerati come comandi che VB dà all oggetto per eseguire determinate azioni. Eventi: sono azioni che l oggetto genera in risposta al verificarsi di determinate sollecitazioni. Si esaminino per esempio alcune proprietà, metodi ed eventi dell oggetto ListBox (elenco di stringhe racchiuse in una cornice). Alcune delle proprietà di questo oggetto sono: le dimensioni, la posizione, il colore

dello sfondo, il font dei caratteri, ecc. Come si vede sono tutti attributi che permettono di definire le caratteristiche dell oggetto. Come metodi dell oggetto, in altre parole le azioni che il programma in VB può richiedere all oggetto di eseguire, possono essere prese in considerazione, per esempio, l aggiunta e la cancellazione di stringhe nell elenco. Gli eventi sono azioni che l oggetto genera, spesso legate ad attività svolte da parte dell utente sull oggetto stesso, come ad esempio la pressione di un tasto o il clic o il doppio clic del mouse. Quando l azione non è effettuata direttamente sull oggetto (per esempio clic con il mouse su di esso), ma è indiretta (per esempio pressione di un tasto della tastiera), l azione viene ricevuta dall oggetto attivo in quel momento (ovvero, come si dice, l oggetto che ha il focus). Alla generazione di un evento è associata l esecuzione di una particolare subroutine il cui codice deve essere scritto dall utente. Un oggetto viene identificato con una variabile oggetto. Viene definita interfaccia di un oggetto l insieme di proprietà (attributi) e metodi (funzioni) dell oggetto stesso. Nella programmazione in Visual Basic viene spesso utilizzata la seguente espressione: var_oggetto.tipo_ proprietà = xxx con tale sintassi si indicherà che all oggetto identificato con la variabile var_oggetto, viene applicata la proprietà (tipo_ proprietà) ed ad essa si assegna un certo valore (xxx). Per richiamare un metodo di un oggetto si usa un espressione simile alla precedente: var_oggetto.tipo_metodo dove con tipo_metodo si richiama un metodo dell oggetto indicato. Alcune definizioni Si danno ora alcune definizioni proprie della programmazione ad oggetti: Classe: si definisce classe il contenitore di un oggetto. La classe fornisce quindi gli attributi necessari per modellare l oggetto. Creazione di un istanza: l operazione di creazione di un oggetto a partire da una classe viene definita creazione di un istanza della classe. Variabili dell istanza: rappresentano i dati presenti nell oggetto. Metodi di una classe: sono le funzioni e le procedure utilizzate in un oggetto di una determinata classe. Nella programmazione ad oggetti debbono essere rispettate tre proprietà fondamentali: Incapsulamento: si definisce incapsulamento l implementazione di dati e codice che costituiscono l oggetto. Tale implementazione è interna all oggetto e non deve essere accessibile all esterno. Normalmente l accesso ad un oggetto deve avvenire solamente attraverso i metodi dell oggetto. Ereditarietà: consiste nella possibilità di creare nuove classi che derivino da classi già esistenti apportando a queste delle modifiche. Le nuove classi ereditano i metodi della classe da cui derivano ma possono aggiungerne anche di nuovi. Polimorfismo: è la possibilità che più classi forniscano le stesse proprietà o metodi. Quindi possono essere utilizzati metodi e proprietà di oggetti derivanti da classi che godono di polimorfismo senza conoscere preventivamente a quale classe appartenga l oggetto. Dei precedenti requisiti della programmazione ad oggetti Visual Basic supporta solamente l incapsulamento e un particolare metodo di polimorfismo.

2 L ambiente grafico di Visual Basic Una volta avviato VB, prima di accedere all ambiente di lavoro viene richiesto se si desidera aprire un nuovo progetto, uno già esistente o uno utilizzato recentemente. Evidentemente, non essendo ancora stato realizzato nessun progetto, si deve scegliere l opzione NUOVO (EXE standard), facendo poi clic sul pulsante APRI. All utente si presenta un ambiente grafico simile a quello riportato nella figura 1. Fig. 1 Sulla sinistra della finestra compare una zona denominata casella degli strumenti. In essa sono visualizzati, sotto forma di icone, gli oggetti disponibili nell edizione che si sta utilizzando di Visual Basic. Un elenco degli oggetti (detti anche controlli) presenti è riportato nella figura 2. Accanto all icona dello strumento è riportato il nome della classe a cui l oggetto appartiene. Fig. 2

L icona con la freccia deve essere attivata per manipolare gli oggetti che vengono posti sul form. I form (nella figura 1, Form1), sono degli oggetti, come si vedrà, in cui vengono posti altri oggetti ovvero i vari controlli che dovranno essere utilizzati nelle applicazioni. Alla sinistra del video è visibile la finestra delle proprietà degli oggetti selezionati (si ricorda che le proprietà sono gli attributi che descrivono l oggetto). Nella figura 1 sono elencate le proprietà dell oggetto Form1. Esse non sono tutte visibili ma possono essere fatte scorrere nella finestra con la barra laterale. Selezionando una delle proprietà nella parte bassa della finestra viene visualizzata una breve descrizione della stessa. Sopra la finestra delle proprietà è visibile una piccola finestra che descrive la struttura del progetto che si sta realizzando. Per realizzare un applicazione in Visual Basic deve essere aperto un progetto che raggruppa i vari moduli utilizzati. In pratica poi, i singoli moduli si tradurranno in altrettanti file con appropriate estensioni. TIPI DI MODULO ESTENSIONI DEI Tipi di modulo intero progetto form moduli BASIC area di lavoro gruppi di progetto Estensioni dei file.vbp.frm.bas.vbw.vbg Un progetto avrà sempre almeno un form con il relativo file.frm e un file di progetto con estensione.vbp. Al progetto poi, a seconda del tipo di applicazione, possono essere aggiunti altri moduli. Sulla parte alta del video sono presenti la barra dei menu e la barra degli strumenti. Prima di descrivere degli esempi applicativi è bene precisare alcune delle azioni che vengono abitualmente compiute nell ambiente grafico di Visual Basic. Si faccia riferimento alla figura 1. Sulla finestra denominata Form1, vengono posti gli oggetti prelevati dalla casella degli strumenti, denominata generale (a sinistra del video). Per porre un oggetto su Form1 posizionare il cursore del mouse sull oggetto nella casella degli strumenti e fare clic con il tasto sinistro su di esso. Spostare poi il cursore su Form1. Il cursore cambia forma assumendo l aspetto di una piccola croce. Tenendo premuto il tasto sinistro spostare il mouse sul piano di lavoro, fino a quando l oggetto assume le dimensioni desiderate. Un qualsiasi oggetto posto su Form1 è selezionato quando sul perimetro che lo delimita compaiono dei quadratini neri ( ) (maniglie di trascinamento). Form1 è selezionato quando sul suo perimetro compaiono le maniglie di trascinamento. Per selezionare un oggetto si deve fare clic con il pulsante sinistro del mouse sull oggetto stesso. Se esso è selezionato per togliere la selezione occorre fare clic in un punto qualsiasi della finestra, non occupato da altri oggetti. Per spostare un oggetto si deve selezionarlo e poi, tenendo premuto il pulsante sinistro del mouse, trascinarlo nella posizione desiderata. Per variare le dimensioni di oggetti che presentano le maniglie di trascinamento, si deve porre il cursore su una delle maniglie e, quando esso assume la forma di doppia freccia ( ), si deve tenere premuto il tasto sinistro del mouse e spostarlo sul piano di lavoro (trascinamento). Quando un oggetto posto su Form1 è selezionato, a destra del video, sulla finestra delle proprietà, compaiono le proprietà che l oggetto possiede. La finestra delle proprietà è divisa in due colonne: quella a sinistra contiene tutte le proprietà dell oggetto selezionato; quella a destra permette di modificarle. Se è selezionato Form1 le proprietà visualizzate sono quelle del form. È possibile visualizzare le proprietà di tutti gli oggetti presenti sul form selezionandoli nell apposito elenco a discesa, posto sulla parte superiore della finestra delle

proprietà, attivato con il pulsante di scorrimento ( ), oppure selezionando direttamente gli oggetti posti sul form. Facendo clic con il pulsante destro del mouse si ottiene un menu con alcuni comandi. Esso varia a seconda della zona su cui si è fatto clic. Gli oggetti posti sul form possono essere cancellati facendo clic su di essi con il tasto destro del mouse e scegliendo ELIMINA dal menu a tendina che si apre. Prima di iniziare a scrivere dei programmi è bene esercitarsi a porre sul form i vari oggetti posti nella casella degli strumenti ed osservare la forma che assumono. Osservare poi, per ciascun oggetto selezionato, le proprietà fondamentali che compaiono nella finestra delle proprietà. 2.1 Esercitazione: utilizzazione dell ambiente grafico Avviare VB, scegliere NUOVO (EXE standard). Ampliare la finestra del Progetto1 (facendo clic sul pulsante di espansione della finestra ( ). Con il Form1 selezionato (sono visibili le maniglie di trascinamento) sulla finestra delle proprietà selezionare per categoria e quindi trascinando la barra verticale rendere visibile le proprietà POSIZIONE e SCALA (fig. 3). Fare clic sulla proprietà SCALEMODE e nel menu a scomparsa selezionare PIXEL (per default la scala per le modalità grafiche è espressa in twip. Un pollice corrisponde a 1440 twip). Fare quindi clic su HEIGHT e scrivere sulla destra 2200 e in WIDTH scrivere 4600. Si ottiene in tal modo una finestra di 2200 pixel in altezza e 4600 in larghezza. Per variare le dimensioni di Form1 si possono anche trascinare le maniglie, ma in questo caso è più difficile assegnare all oggetto una dimensione precisa. Fig. 3 Inserimento di oggetti sul Form1 a) Inserire un controllo Image: Fare clic nella casella degli strumenti su Image. Spostare il cursore sul Form1. Il cursore diviene a forma di croce. Premere il tasto sinistro del mouse e senza rilasciarlo trascinare il cursore facendo assumere al controllo inserito le dimensioni di circa 120 120 pixel (se durante il trascinamento si ferma il mouse, senza rilasciare il pulsante, compare sul vertice in basso a sinistra la dimensione dell oggetto). b) Cambiare il bordo dell oggetto: Con l oggetto selezionato, nella finestra delle proprietà selezionare BORDERSTYLE. Fare clic sul triangolino posto sulla riga selezionata e scegliere FIXED SINGLE. c) Inserire nell oggetto Image una figura importata: Con l oggetto selezionato impostare la proprietà STRETCH su TRUE. Selezionare poi la proprietà PICTURE e fare clic sul pulsante con i tre puntini. Nella finestra che si apre scegliere una cartella e poi un file di un immagine (per esempio la cartella Immagini posta in Documenti sul Desktop). Dopo aver selezionato l immagine con un clic, il suo nome compare su Nome file. Facendo clic su APRI, l immagine viene trasferita nel controllo Image e la sua misura si adatta alle dimensioni impostate per l oggetto.

Fig. 4 d) Inserire una Shape sul Form1: Clic nella casella degli strumenti su SHAPE. Spostare il cursore sul form. Il cursore diviene a forma di croce. Premere il tasto sinistro del mouse e senza rilasciarlo trascinare il cursore facendo assumere al controllo inserito le dimensioni di circa 50 50 pixel. e) Cambiare il colore del fondo della Shape: Con l oggetto selezionato, nella finestra delle proprietà selezionare FILLSTYLE. Fare clic sul triangolino posto sulla riga selezionata e scegliere SOLID. Selezionare poi FILLCOLOR. Fare clic sul triangolino posto sulla riga selezionata e dalla tavolozza dei colori che si apre scegliere il colore desiderato. f) Inserire una Shape di forma circolare sul Form1: Ripetere tutto il procedimento del punto c). Con l oggetto appena posto selezionato, nella finestra delle proprietà selezionare SHAPE. Fare clic sul triangolino posto sulla riga selezionata e scegliere CIRCLE. Colorare il cerchio seguendo il procedimento del punto d). g) Inserire una Shape di forma ellittica sul Form1: Ripetere il procedimento usato per inserire la prima Shape (quadrato), ma in questo caso assegnare all oggetto una forma di rettangolo (circa 70 120). Con l oggetto selezionato, nella finestra delle proprietà selezionare SHAPE e scegliere la forma OVAL. Colorare la figura seguendo il procedimento del punto d). h) Inserire CommandButton (pulsante) sul Form1: Selezionare sulla casella degli strumenti il COMMANDBUTTON. Posizionare il cursore sul Form1 e trascinare come i precedenti casi. Selezionare la proprietà CAPTION. Selezionare con due clic COMMAND1 (scritto sulla colonna di sinistra). Clic con il tasto destro sulla selezione e quindi TAGLIA (o ELIMINA). Scrivere sulla riga vuota START. i) Cambiare le caratteristiche del testo inserito: Sempre con pulsante selezionato scegliere la proprietà FONT. Fare clic sul pulsante con i tre puntini e nella finestra che si apre scegliere STILE GRASSETTO e PUNTI 12. Cambia così lo stile di START. Al termine delle operazioni si deve avere un form come quello rappresentato in figura 4. j) Salvare il progetto realizzato ed uscire da VB: Sul menu FILE scegliere SALVA FORM1 CON NOME e, nella finestra che si apre, scegliere la cartella in cui si vuole salvare il progetto ed il nome del file (per esempio primo_esercizio) senza estensione (VB inserisce automaticamente l estensione salvandolo come primo_esercizio.frm). Ancora con il menu FILE scegliere SALVA PRO- GETTO CON NOME e inserire il nome del progetto senza estensione (è buona norma utilizzare lo stesso nome usato per il form quindi inserire ancora primo_esercizio; sarà salvato come primo_esercizio.wbp). Si può uscire da VB con FILE CHIUDI (oppure con il pulsante per la chiusura della finestra). Tutte le operazioni fin ora effettuate si sono limitate a porre sul form degli oggetti e variare, a volte, alcune delle loro proprietà. Se ora si desidera che gli oggetti inseriti svolgano qualche attività sollecitati da eventi attivati dall utente, deve essere scritto del codice utilizzando il linguaggio Basic. In genere, come si vedrà, ad ogni oggetto sono associate una serie di subroutine ognuna delle quali risponde ad un certo tipo di sollecitazione. Per esempio: se si vuole attivare un qualche metodo, utilizzando il pulsante di START,

con un clic su di esso, il codice va posto in una sub collegata con l oggetto Command1 che è chiamata Sub Command1_Click. Con il clic sul pulsante START potrebbe essere attivato un metodo associato per esempio con uno degli oggetti Shape per cambiare le sue dimensioni o spostarlo sul form (per esempio metodo move). Programma 1 Si scriva un programma che trasforma in dimensione minore la Shape1 (quadrato) inserita nella precedente esercitazione. Fig. 5 Fig. 6 Si avvia VB e quando si apre la finestra di Nuovo progetto si sceglie Recente. 1. Selezionare il file primo_esercizio precedentemente salvato. Nel caso che, una volta avviato VB, non compaia il form con le figure, si selezioni, nella finestra del progetto posta in alto a destra, Form1 (primo_esempio.frm) e si faccia clic sul pulsante VISUALIZZA OGGETTO (fig. 5). 2. Una volta visualizzato il Form1, si faccia doppio clic su di esso (o in alternativa usare il pulsante VISUALIZZA CODICE). Si apre la finestra del codice (fig. 6). La casella con scritto (generale) è denominata casella degli oggetti, mentre quella a destra casella delle routine. 3. Facendo clic sul pulsante con il triangolino nero ( ) della casella degli oggetti, si apre un menu a discesa. Se sulla finestra del codice non compare l intestazione della subroutine relativa al pulsante (Command1) contenente le righe: Private Sub Command1_Click() attivare la Sub dal menu a discesa. A seconda della modalità utilizzata per aprire la finestra del codice potrebbe essere visibile anche la Sub Form_ Load: Private Sub Form_Load() Questa Sub viene eseguita automaticamente ogni volta che si avvia VB: in questo esempio, non dovendo essere utilizzata, va lasciata inalterata. 4. Inserire tra le righe della Sub Command1_click() il seguente codice: Private Sub Command1_Click() Shape1.Move 150, 20, 15, 15 La riga scritta ha il seguente significato: il metodo Move è applicato all oggetto Shape1 (ovvero il quadrato).

Il metodo sposta, a partire dall origine del Form1, il margine sinistro dell oggetto a 150 pixel lungo l asse X, il margine superiore di 20 pixel lungo l asse Y e inoltre ne riduce la larghezza e l altezza a 15 pixel. Poiché il codice è stato scritto all interno della Sub Command1_click(), esso entra in esecuzione solamente quando si genera un evento di clic sul pulsante START (Command1). 5. Si salvi il form e il progetto con il nome primo_programma, e poi se ne avvii l esecuzione con il pulsante posto sulla barra degli strumenti ( ). Compare il form con le figure disegnate; se si fa clic sul pulsante START il quadrato diviene più piccolo. Si arresta il programma con il tasto posto sulla barra degli strumenti ( ). Se è coperto dalla finestra del form, trascinarla in altra posizione. 6. Prima di chiudere VB eseguire ancora il programma provando ogni volta prima a cambiare i valori impostati per il metodo Move. Programma 2 Si scriva un programma che cambia colore al cerchio quando si posiziona il cursore del mouse sul pulsante START (senza fare clic). Avviato VB si carichi il programma precedente dalla finestra Recente (file primo_progr). Con questo programma si cambia una proprietà dell oggetto Shape2. Si deve innanzitutto cambiare la Sub collegata con il pulsante in quanto in questo esercizio l evento che attiva il cambio di colore è un doppio clic. Per fare questo: 1. Si visualizzi il Form1 (se non è presente) con la procedura illustrata nel precedente esercizio. 2. Si visualizzi poi il codice (doppio clic sul form o con il pulsante VISUALIZZA CODICE). 3. Per aprire la Sub relativa al movimento del mouse, nella finestra del codice si deve visualizzare Command1 nel menu a discesa della casella degli oggetti e MouseMove in quello della casella delle routine (usare il triangolino per aprire i menu a discesa ed effettuare la scelta). Si veda la figura 7. Viene visualizzata la Sub Command1_MouseMove vuota. 4. L istruzione da inserire questa volta tra l inizio della Sub e la fine () supponendo di voler colorare di giallo la figura è: Private Sub Command1_MouseMove(Button As Integer,...) Shape2.fillcolor = QBColor(14) Fig. 7 Dove FILLCOLOR è la proprietà utilizzata per colorare la figura e il numero 14 è il codice del giallo. 5. Si salvi il form ed il progetto (con il nome secondo_progr) e si metta in esecuzione il programma. Non appena con il cursore del mouse si entra nella zona del pulsante START, il cerchio cambia colore. 6. Prima di uscire dal progetto si provino altri codici di colore (tra 0 e 15). Programma 3 Si inserisca sul Form1 due Label chiamate VERDE ed AZZURRO. Scrivere un programma che cambia colore al cerchio quando si passa con il cursore sulle Label. Aprire VB e scegliere NUOVO EXE STANDARD. Sul Form1 inserire una Shape quadrata (Shape1) e sotto due Label (Label1 e Label2). Fig. 8 1. Selezionare la Shape1 e nella finestra Proprietà in FILLSTYLE scegliere SOLID e in FILLCOLOR dalla tavolozza scegliere un colore qualsiasi che non sia né verde né azzurro. 2. Selezionare Label1 sul Form1 e nella finestra Proprietà trovare CAPTION e

sulla colonna destra, accanto a Caption, selezionare con doppio clic Label1 e scrivere VERDE. 3. Selezionare Label2 sul Form1 e nella finestra Proprietà trovare CAPTION e sulla colonna destra accanto a Caption selezionare con doppio clic Label2 e scrivere AZZURRO (fig. 8). 4. Visualizzare la finestra del codice, aprire menu a discesa della casella degli oggetti e scegliere Label1 e dal menu a discesa della casella delle routine scegliere la Sub MouseMove. Scegliere poi sempre dal menu a discesa della casella degli oggetti Label2 e da quello della casella delle routine ancora la Sub MouseMove. Le due Sub Label1_Click() e Label2_Click() possono essere lasciate vuote o cancellate. In questo caso cancellare anche le. 5. Scrivere il codice come segue: Private Sub Label1_MouseMove(Button As Integer, Shift As Integer,...) Shape1.FillColor = QBColor(10) Private Sub Label2_MouseMove(Button As Integer, Shift As Integer,...) Shape1.FillColor = QBColor(9) 6. Salvare il form ed il progetto con il nome terzo_prog. 7. Avviare il programma. Quando si passa con il cursore sulle due Label il quadrato cambia colore. Il codice scritto nei tre programmi di esempio precedentemente esposti è limitato a semplici cambiamenti delle proprietà degli oggetti o all attivazione di un loro metodo senza ricorrere a porre nessuna condizione perché ciò avvenga, tranne l attivazione di eventi legati al movimento del mouse. Per strutturare programmi più complessi è necessario acquisire alcune nozioni di base sulla struttura del linguaggio Basic. 3 Alcune caratteristiche di base del linguaggio Verranno ora esposte brevemente alcune delle caratteristiche di base del linguaggio relative alla scrittura del codice. È bene che il lettore ponga particolare attenzione alle nozioni riportate di seguito. Alcuni degli argomenti trattati sono stati esposti anche nella descrizione di QBasic, anche se a volte essi assumono aspetti diversi. Per questo il lettore che ha già una conoscenza di base di tali nozioni può proseguire la lettura del capitolo con il 4, ritornando poi sui singoli argomenti quando se ne presenti la necessità durante la scrittura del codice. 3.1 Tipi di dati e dichiarazione delle variabili Si definiscono costanti quei dati il cui valore rimane costante durante lo svolgimento del programma. Si definiscono variabili quei dati che normalmente nel corso di un programma possono assumere valori diversi. Un dato, costante o variabile, è sempre identificato attraverso un nome (identificatore). In VB esistono costanti di sistema predefinite e costanti definite dall utente. Con la dichiarazione delle variabili o delle costanti si associa all identificatore della variabile o della costante un certo tipo di dato. Nella dichiarazione può inoltre essere indicato il campo di visibilità della costante o della variabile. Per campo di visibilità si intendono le parti di codice nelle quali viene riconosciuta la costante o la variabile.

Dichiarazione Visibilità Modalità della dichiarazione Applicazione in tutti i moduli La dichiarazione deve avvenire nella sezione di chiarazioni di un modulo con la parola public. Modulo in tutte le La dichiarazione deve avvenire nella sezione subroutine del dichiarazioni del modulo con la parola private. modulo Subroutine nella sola La dichiarazione deve avvenire all interno della subroutine subroutine stessa. Per dichiarare una costante definita dall utente si deve far precedere il nome da assegnare alla costante con la parola chiave Const. Dichiarazione di costanti Public Const nome As Integer = 10 (costante di tipo integer con valore pari a 10 dichiarata pubblica a livello di applicazione; nome deve essere l effettivo nome da assegnare alla costante). Private Const nome As String = "mia stringa" (costante di tipo string con valore pari a "mia stringa" dichiarata privata a livello di modulo; il nome deve essere l effettivo il nome da assegnare alla costante). Const nome As date = #1/3/99# (costante di tipo date con valore pari a 1/3/99 dichiarata privata a livello di subroutine; il nome deve essere l effettivo nome da assegnare alla costante). Per le variabili si utilizza un analoga struttura, senza utilizzare la parola chiave Const. La dichiarazione della variabile va fatta precedere, a seconda dei casi, da una delle seguenti parole chiave: Public, Private, Dim o Static. In VB, se non si associa una variabile con nessun tipo di dato, essa viene considerata di tipo variant (tipo predefinito di dato). Esempi di dichiarazione di variabili Public nome As Integer (variabile di tipo integer dichiarata pubblica a livello di applicazione; il nome deve essere l effettivo nome dell identificatore della variabile). Private nome As String (variabile di tipo string, di lunghezza variabile, dichiarata privata a livello di modulo; il nome deve essere l effettivo nome dell identificatore della variabile). Private nome As String * 10 (dichiarazione di stringa con lunghezza fissa pari a 10 caratteri). Dim nome1, nome2 As long, nome3 As byte (la variabile nome1 è di tipo variant non essendo specificato il tipo di dato); le variabili sono da considerare private a livello di modulo, se dichiarate nella sezione dichiarazioni del modulo, o private per una routine se dichiarate all interno della stessa. Nella sezione dichiarazioni del modulo Dim equivale a Private. Per alcuni tipi di dati è possibile (ma non consigliabile) sostituire alla dichiarazione esplicita di una certa variabile l identificatore della variabile stessa preceduto da un particolare suffisso (per esempio %nome variabile di tipo integer, &nome è una variabile di tipo long, $nome è una variabile di tipo string). Anche se in VB non è obbligatorio associare alle variabili i vari tipi dai dati (in tal caso la variabile viene assunta del tipo variant), è sempre consigliabile, per evitare errori, effettuare la dichiarazione di tutte le variabili utilizzate. La dichiarazione può essere resa obbligatoria scegliendo dalla barra del menu STRUMENTI OPZIONI e nella cartella editor contrassegnare la casella dichiarazione di variabili obbligatoria. In tal caso nella sezione dichiarazioni del modulo verrà inserita automaticamente la dicitura: Option Explicit.

Dati numerici Sono costituiti esclusivamente da numeri. Suffisso N byte Da A senza virgola byte 1 0 255 integer % 2 32.768 +32.767 long & 4 2.147.483.648 +2.147.483.647 con virgola fissa currency @ 8 922.337.203.685.477,5808 +922.337.203.685.477,5807 con virgola mobile Single! 4 negativi 3,402823E+38 1,401298E 45 positivi 1.401298E 45 3,402823E+38 Double # 8 negativi 1,79769313486231D+308 4,940656458412465D 324 positivi 4,940656458412465D 324 1,79769313486231D+308 boolean Boolean 2 true false Dati alfanumerici Sono costituiti da un insieme di caratteri alfabetici e numerici racchiusi tra doppi apici. Esempi: "12 gennaio", "1/3/99", "AB12E". Suffisso N byte Da A Stringhe senza a lunghezza virgola fissa string $ lunghezza stringa 0 2 16.caratteri Stringhe a lunghezza variabile (tipo predefinito) string $ 10 + lunghezza stringa 0 2 31.caratteri Date date #...# 8 1/1/100 31/12/9999 Dati di tipo predefinito Suffisso N byte Da A Solo senza con virgola numeri variant 16 stesso intervallo dei double Con numeri e lettere variant 22 + lunghezza stringa 0 2 31.caratteri I dati in formato esadecimale sono rappresentati con il prefisso &H: Esempi: &HF, &H1, &H100F.

3.2 Operatori Per effettuare l elaborazione di dati il VB utilizza gli stessi operatori di QBasic. Di seguito viene data una tabella degli operatori disponibili. Operatore di assegnazione Per attribuire al nome di una variabile un certo valore si utilizza l operatore di assegnazione " = " (segno di uguale). Per esempio: OPERATORE DI ASSEGNAZIONE = Num = 16 Alla variabile Num viene assegnato il valore 16. Num = Num + 1 Alla variabile Num viene assegnato il valore che aveva precedentemente incrementato di 1. Operatori matematici, relazionali e booleani TAB. 1 Operatori Matematici Relazionali Booleani bit a bit MOLTIPLICAZIONE * UGUALE = NEGAZIONE Not ADDIZIONE + MAGGIORE > PRODOTTO LOGICO And SOTTRAZIONE - MINORE < SOMMA LOGICA Or DIVISIONE / DIVERSO <> OR ESCLUSIVO Xor DIVISIONE TRA INTERI \ MIN. UGUALE <= IMPLICAZIONE Imp ELEVAMEN. POTENZA ^ MAG. UGUALE >= EQUIVALENZA Eqv RESTO DELLA DIVISIONE Mod Nella tabella 2 sono riportati i risultati delle funzioni logiche esplicate dagli operatori booleani; in esse con A e B sono state indicate le due espressioni (o variabili) su cui agiscono gli operatori. La NOT opera su una sola espressione (o variabile), effettuandone la negazione. TAB. 2 A B AND OR XOR EQV IMP A NOT F F F F F V V F V F V V F V V F F V V F F V V V V F V V F V V F Si tenga presente che un valore è considerato False se è = 0 e True se 0. L operazione logica di equivalenza corrisponde ad una EX-NOR e la implicazione può essere vista come una funzione logica NAND con l ingresso B negato (o come una OR con ingresso A negato), ovvero il risultato dell operazione è falso solo se l espressione A è maggiore di B.

3.3 Alcune funzioni aritmetiche TAB. 3 Funzioni aritmetiche Abs(num) Restituisce il valore assoluto del valore numerico num. Atn (num) Restituisce l arcotangente in radianti del valore numerico num. Cos(alfa) Restituisce il coseno dell angolo alfa espresso in radianti. Exp(num) Restituisce il valore di e (costante di Nepero) elevato a num. Fix(num) Restituisce la parte intera di num. Int(num) Restituisce il numero intero immediatamente più piccolo. Log(num) Restituisce il logaritmo in base e di num. Sgn(num) Restituisce 1 se num è positivo, 0 se è zero e -1 se num è negativo. Sin(alfa) Restituisce il seno dell angolo alfa espresso in radianti. Sqr(num) Restituisce la radice quadrata di num (num deve essere > = 0). Tan(alfa) Restituisce la tangente dell angolo alfa espresso in radianti. Rnd Ritorna un numero casuale compreso tra 0 e 1. TAB. 4 Asc(string) Chr(cod_ascii) Hex(num) Len(string1) LTrim(string1) Str(num) Trim(string1) UCase(string1) Val(string1) Funzioni che operano sulla stringa Ritorna un integer che corrisponde al codice ASCII del primo carattere della stringa string. Effettua la conversione di un codice ASCII cod_ascii, compreso tra 0 e 255, nel relativo carattere. Converte num in una stringa equivalente al suo valore esadecimale. L argomento num può essere anche una stringa numerica. Restituisce il numero di caratteri di cui è formata la stringa string1. Toglie gli spazi iniziali alla stringa string1. Converte in stringa il valore numerico num. Toglie gli spazi iniziali e finali alla stringa string1. Converte la stringa string1 tutta in caratteri maiuscoli. Converte in valore numerico string1. Programma 4 Si voglia realizzare un programma che visualizza su una finestra l incremento di un contatore ogni volta che viene premuto un pulsante. Si seguano passo passo le indicazioni seguenti tenendo presente la figura 9. 1. Lanciare Visual Basic aprendo un nuovo progetto. 2. Nella casella strumenti si faccia clic sul pulsante COMMANDBUTTON. 3. Spostare il puntatore del mouse, che assume la forma di croce, sulla finestra Form1 e tenendo premuto il tasto sinistro (del mouse); trascinare in diagonale. Si disegna sul form il pulsante con scritto al centro Command1. Rilasciare il tasto del mouse quando il pulsante ha assunto la grandezza desiderata (lunghezza circa cinque centimetri e larghezza circa un centimetro). Le sue dimensioni possono comunque essere variate trascinando uno degli otto quadratini neri presenti sul perimetro del pulsante disegnato. Il pulsante deve rimanere selezionato, ovvero debbono comparire lungo il suo perimetro dei quadratini neri. Se per caso non fosse selezionato basta fare clic con il pulsante sinistro del mouse su di esso. 4. Con il pulsante appena inserito e selezionato nella finestra proprietà, a destra dello schermo, selezionare (se non già selezionata) la casella CAPTION. Spostare il cursore del mouse sulla casella a destra, in corrispondenza di Caption, cancellare Command1.

Fig. 9 Per cancellare Command1 fare clic con il pulsante destro del mouse sulla casella, scegliere dal menu che si apre SELEZIONA TUTTO, fare di nuovo clic con il pulsante destro sulla stessa casella e scegliere dal menu che si apre ELIMINA. Scrivere nella casella Premere il pulsante. La nuova scritta comparirà anche al centro del pulsante sul form. 5. Nella casella strumenti si faccia clic sul pulsante TEXTBOX. 6. Spostando il puntatore del mouse sulla finestra Form1, in posizione non occupata dal pulsante, premere il tasto sinistro (del mouse) e, tenendolo premuto trascinare in diagonale. Si disegna sul form una nuova finestra con scritto al centro Text1. Rilasciare il tasto del mouse quando la finestra ha assunto una grandezza simile a quella del pulsante precedentemente disegnato. 7. Si scriva ora il codice. Sulla Barra dei menu scegliere VISUALIZZA e poi CODICE (oppure usare l apposito pulsante sulla finestra del progetto o fare due volte clic sul form). Si apre la finestra relativa al codice (fig. 6). Selezionare Command1 sul menu a discesa della casella degli oggetti. Sulla finestra del codice viene inizializzata la subroutine relativa al pulsante Command1: Private Sub Command1_Click() Selezionando poi dal menu a discesa Text1 si ottiene l inizializzazione della nuova subroutine collegata con l oggetto TextBox: Private Sub Text1_Change() Infine, selezionando form, si ottiene la terza subroutine relativa all oggetto form: Private Sub Form_Load() Il codice per ciascuna subroutine, va posto, come detto, inserendolo nello spazio libero tra Private... ed.

Siccome si desidera incrementare un contatore ogni volta che si preme il pulsante, se la variabile che referenzia il contatore è conta (identificatore scelto arbitrariamente), si scriverà nella subroutine Command1_Click(): conta = conta+1 e poi la chiamata alla subroutine Text1_Change() (il cui codice non è ancora scritto) che visualizza il valore raggiunto dal contatore ogni volta che viene premuto un tasto. Si ottiene quindi: Private Sub Command1_Click() conta= conta +1 Text1_Change La subroutine Command1_Click() è una classica procedura di evento richiamata dal clic effettuato con il mouse sul pulsante. Il codice della subroutine Text1_Change() consiste solo nel porre Text1 uguale alla variabile conta. Si ottiene: Private Sub Text1_Change() Text1 = conta Nella terza subroutine, quella relativa all oggetto form, si provvederà ad azzerare la variabile conta e ad assegnarla a Text1. Si ottiene: Private Sub Form_Load() conta = 0 Text1 = conta Rimane ora solamente da dimensionare la variabile conta come intero. Dal menu a discesa, posto sotto la casella degli oggetti, si seleziona (generale) e si scrive: Dim conta As Integer Il programma completo avrà il seguente codice: Prog. 4 Dim conta As Integer Private Sub Command1_Click() conta= conta +1 Text1_Change Private Sub Text1_Change() Text1 = conta Private Sub Form_Load() conta = 0 Text1 = conta Il programma ora può essere posto in esecuzione usando il tasto specifico posto sulla barra degli strumenti ( ). Ogni volta che si fa clic sul pulsante il contatore viene incrementato di uno. Si arresta il programma con il tasto posto sulla barra degli strumenti ( ). N.B. La variabile Text1 ha le dimensioni di una stringa. Quindi il valore visualizzato non è un valore numerico, ma una stringa. Per maggiore precisione si sarebbe dovuta usare la funzione str() (che trasforma un intero in stringa) e scrivere: text1 = str(conta).

Prima di uscire da VB il progetto può essere salvato utilizzando il menu file e usando il comando salva progetto con nome Viene prima richiesto di effettuare il salvataggio del file.frm e poi quello del progetto.vbp. Scegliere la cartella per il salvataggio ed il nome desiderato sia per il progetto che per il form (sostituendoli a quelli di default). Si esce da VB con FILE ESCI. Programma 5 Si scriva un programma che calcoli la potenza dissipata su un resistore, dopo aver introdotto su due TextBox il valore della resistenza e quello della corrente. Il valore calcolato è visualizzato su un PictureBox. Il calcolo viene eseguito ogni volta che si preme un pulsante. Fig. 10 Fig. 11 1. Si introducono sul Form1 un PictureBox (Picture1) due TextBox (text1 e text2) e un CommandButton (Command1) e due Label (Label1 e Label2) ponendoli nella posizione indicata nella figura 10. 2. Dalle finestre Proprietà per i singoli oggetti si eseguano le seguenti impostazioni: a) Picture1: AUTOREDRAW TRUE; BACKCOLOR TAVOLOZZA scegliere colore bianco. b) LABEL1 CAPTION R [ohm] c) LABEL2 CAPTION I [A] d) COMMAND1 CAPTION calcola P [W] 3. Visualizzare la finestra del codice e dal menu a discesa a sinistra scegliere Command1; viene automaticamente visualizzata la Sub Command1_clic. 4. Scrivere il codice e fare la dichiarazione delle variabili in GENERALE, DICHIARAZIONI(fig. 11) come riportato di seguito. Prog. 5 Dim R As Single, I As Single, P As Single Private Sub Command1_Click() R = Val(Text1.Text) I = Val(Text2.Text) P = R * I ^ 2 Picture1.Print "P = "; P; " [W]" Private Sub Form_Load() Print "CALCOLO POTENZA DISSIPATA SU UN RESISTORE" Text1.Text = 0 Text2.Text = 0 Nota. La funzione Val() converte i valori letti nelle finestre Text1 e Text2 in valori numerici (i valori acquisiti sono stringhe). Mettendo in esecuzione il programma, inserendo i valori del resistore e la corrente, quando si preme il pulsante è calcolato e visualizzato il valore della potenza dissipata sul resistore. È possibile visualizzare più valori della potenza dissipata, cambiando di volta in volta le grandezze in input e premendo il tasto.

3.4 Strutture di controllo Nell esecuzione di un programma normalmente le istruzioni vengono eseguite una dopo l altra. Esistono però particolari istruzioni che permettono di alterare il flusso con cui il programma viene svolto facendo eseguire un istruzione piuttosto che un altra. La struttura condizionale (selettiva) if... then La struttura if... then svolge il seguente compito: se (if) si verifica una particolare condizione allora (then) svolge l istruzione che la segue (o blocco di istruzioni seguenti). In caso contrario, se la condizione non è verificata, il programma prosegue con l istruzione successiva a quella posta dopo then o, nel caso di più istruzioni, con quella posta dopo end if; in questo secondo caso, se è verificata la condizione dopo l if, vengono eseguite tutte le istruzioni comprese tra then ed end if. Nella figura 12 è illustrato con dei diagrammi a blocchi il funzionamento della precedente struttura. CONDIZIONE VERA ISTRUZIONE O BLOCCO ISTRUZIONI FALSA CONDIZIONE VERA FALSA ISTRUZIONE 1 O BLOCCO ISTRUZIONI ISTRUZIONE 2 O BLOCCO ISTRUZIONI Fig. 12 IF... THEN IF... THEN...ELSE La struttura condizionale if... then... else La struttura condizionale if... then... else permette al programmatore di operare una doppia scelta: se (if) è verificata la condizione allora (then) viene svolta l istruzione posta dopo il then, altrimenti (else) viene eseguita l istruzione dopo l else. Vedere la figura 12 per il diagramma a blocchi della struttura. La struttura condizionale if... then... elseif... else... end if Rappresenta una variante della struttura if... then... else. Nella tabella 5 è sintetizzata la sintassi usata per le tre strutture. TAB. 5 if... then Con una sola istruzione: if condizione then istruzione Con più istruzioni: if condizione then istruzione... end if. if... then... else if condizione then istruzione... else istruzione... end if. if... then... elseif... else... end if if condizione1 then istruzione... elseif condizione2 istruzione... else istruzione... end if.

La struttura condizionale select case A volte quando occorre effettuare una scelta multipla tra diverse possibilità può essere utilizzata la struttura select case che sostituisce l utilizzazione di una serie di if... then. TAB. 6 Select Case espressione Case val_esp1 Istruzioni... Case val_esp2 istruzioni... Case Else istruzioni End Select Select Case espressione Case val_esp1 To val_esp2 Istruzioni... Case val_esp3 To val_esp4 istruzioni... Case Else istruzioni End Select Select Case espressione Case Is operatore relaz. val_esp1 Istruzioni... Case Is operatore relaz. val_esp2 istruzioni... Case Else istruzioni End Select CONDIZIONE VERA ISTRUZIONE O BLOCCO ISTRUZIONI DO WHILE... LOOP O WHILE... WEND ISTRUZIONE O BLOCCO ISTRUZIONI Con espressione si è indicata una espressione numerica o una stringa. Con val_esp una espressione dello stesso tipo di espressione. Con case else (che può anche essere omesso), vengono eseguite le istruzioni che seguono se non viene trovata nessuna coincidenza nei case precedenti. Sono possibili alcune varianti nella struttura sopra descritta: 1. dopo il case possono essere presenti più di una Val_esp, in tal caso esse debbono essere separate dalla virgola; 2. dopo il case può essere presente un intervallo racchiuso tra due Val_esp; 3. dopo il case può essere presente un operatore relazionale (maggiore, minore, uguale, ecc.); 4. dopo il case può essere presente anche una combinazione dei casi precedenti, in tal caso ognuno di essi deve essere separato da una virgola. La struttura iterativa while... wend Con tale struttura si esegue un determinato blocco di istruzioni, al limite anche una sola, fino a che (while) una certa condizione risulta vera. Il controllo della condizione avviene all entrata del ciclo, pertanto, se essa inizialmente non risulta vera, il blocco di istruzioni, compreso tra while e FALSA CONDIZIONE FALSA ISTRUZIONE O BLOCCO ISTRUZIONI DO UNTIL... LOOP ISTRUZIONE O BLOCCO ISTRUZIONI VERA wend, non viene eseguito neanche una volta. In figura 13 è riportato il diagramma di flusso che illustra il funzionamento della struttura. La sintassi della struttura è la seguente: while condizione istruzione istruzione... wend Fig. 13 CONDIZIONE VERA FALSA DO... LOOP WHILE CONDIZIONE FALSA VERA DO... LOOP UNTIL La struttura iterativa do... loop Tale struttura è una variante rispetto alla while... wend e permette di strutturare i programmi in modo più razionale. Al ciclo do... loop vengono associate le condizioni while (mentre) o until (fino a che). Tale struttura può assumere quattro forme diverse (fig. 13 e tab. 7):

TAB. 7 do while... loop do until... loop do... loop while do... loop until do while condizione istruzione... loop do until istruzione... loop condizione do istruzione... loop while condizione do istruzione... loop until condizione Le istruzioni comprese tra do e loop vengono eseguite in continuazione mentre la condizione rimane vera. La condizione deve essere già vera all entrata del ciclo perché esso venga eseguito almeno una volta. Si rimane nel ciclo se la condizione posta rimane vera. Le istruzioni comprese tra do e loop vengono eseguite in continuazione fino a che la condizione diventa vera. La condizione deve essere falsa all entrata del ciclo perché esso venga eseguito almeno una volta. Si rimane nel ciclo se la condizione posta seguita ad essere falsa. Le istruzioni comprese tra do e loop vengono eseguite in continuazione mentre la condizione rimane vera. Il ciclo viene eseguito almeno una volta, anche se la condizione è falsa quando si entra in esso. Infatti il controllo della condizione avviene alla fine del ciclo. Le istruzioni comprese tra do e loop vengono eseguite in continuazione fino a che la condizione non diventa vera. Il ciclo viene eseguito almeno una volta, anche se la condizione è vera quando si entra in esso. Infatti il controllo della condizione avviene alla fine del ciclo. exit do per uscire anticipatamente da un ciclo do... loop. La struttura iterativa for... next Con questa struttura vengono ripetute un certo numero di volte, in base all impostazione di un contatore, le istruzioni incluse tra for... next (tab. 8). TAB. 8 for... to for contatore = val_iniz to val_fin istruzione... next. for... to... step for contatore = val_iniz to val_fin step incremento istruzione... next. exit for per uscire anticipatamente da un ciclo for... next Alla variabile contatore viene assegnato un certo val_iniz (valore iniziale). Dopo il to viene posto il val_fin (valore finale) che deve essere raggiunto dal contatore. Il ciclo viene eseguito tante volte fino a quando il contatore, incrementato ogni volta di uno, non diviene maggiore del val_ fin. Come variante al precedente ciclo può essere impostato il valore di incremento del contatore, se si vuole che esso sia diverso da uno, usando step. Assegnando ad incremento un valore diverso da uno ad ogni ciclo il contatore viene aumentato del valore indicato dopo step (passo). Il valore iniziale, quello finale, l incremento possono essere anche numeri negativi. Perché il ciclo venga eseguito i valori ad essi assegnati debbono essere congruenti tra loro.

Programma 6 Si voglia ora preparare un secondo programma che imposta in modo diverso da quello di default alcune proprietà degli oggetti utilizzati. Questo programma utilizza la struttura condizionale if... then... else. Si voglia realizzare un programma che visualizza su una finestra un piccolo disco colorato di giallo ed un pulsante. Ogni volta che viene premuto il pulsante il disco cambia colore passando dal giallo al rosso e viceversa. 1. Aperto il nuovo progetto si inserisce il pulsante usando (come per il precedente programma) l oggetto COMMANDBUTTON. 2. Nella finestra proprietà, selezionare la casella CAPTION. Spostare il cursore del mouse sulla casella a destra, in corrispondenza di Caption, cancellare Command e scrivere nella casella Premere il pulsante. La nuova scritta comparirà anche al centro del pulsante sul form. 3. Per inserire il disco rosso fare clic sull oggetto SHAPE della casella degli strumenti. Posizionare poi il cursore sul form e, trascinando, tracciare un piccolo quadrato (o rettangolo). 4. Si modificano ora alcune proprietà dell oggetto Shape inserito. Si seleziona (se già non selezionato) il quadrato appena disegnato: a. Modifica della forma: si seleziona sulla finestra delle proprietà la casella Shape (forma); facendo clic sul pulsante con il triangolino nero ( ) nella casella a destra in corrispondenza di Shape, si sceglie sul menu che si apre CIRCLE. b. Modifica del metodo di riempimento: si seleziona la casella FILLSTYLE (modo di riempimento); facendo clic sul pulsante con il triangolino nero ( ) nella casella a destra in corrispondenza di FillStyle, si sceglie sul menu che si apre SOLID. c. Modifica del colore di riempimento: si seleziona la casella FILLCOLOR; dalla tavolozza di colori che compare si sceglie il giallo. Annotare il codice del colore (&H80FFFF). Scrittura del codice: 1. Sulla barra dei menu scegliere VISUALIZZA e poi CODICE. Si apre la finestra relativa al codice. Facendo clic sul pulsante con il triangolino nero della casella degli oggetti si apre il menu a discesa. 2. Selezionare Command1. Sulla finestra del codice viene inizializzata la subroutine relativa al pulsante Command1. 3. Selezionando Form, si ottiene la subroutine relativa all oggetto Form: 4. Dichiarare in (generale) la variabile conta e poi scrivere il codice delle due subroutine. Prog. 6 Dim conta As Integer Private Sub Command1_Click() conta = conta + 1 If (conta And 1) = 1 Then Shape1.FillColor = &H80FFFF Else Shape1.FillColor = &H808FFF End If Private Sub Form_Load() conta = 1 Spiegazione del funzionamento del programma Viene inizialmente eseguita la routine Form_Load(). In essa la variabile conta è posta uguale ad uno. Ogni volta che si preme il pulsante si entra nella routine Command1_Click(). In essa si incrementa il contatore e si fa quindi l operazione logica AND tra 1 e il valore assunto dal contatore: il risultato di tale operazione restituisce 1 se il valore del contatore è dispari o 0 se esso è pari. Nel primo caso viene attribuita

alla proprietà FILLCOLOR dell oggetto SHAPE il codice del colore giallo (&H80FFFF) nel secondo caso del colore rosso (&HFF). Programma 7 Si inserisca da tastiera numeri compresi tra 0 e 3 e si visualizzi su due LED disegnati su un form il valore corrispondente del numero introdotto in formato binario. Fig. 14 Il programma usa le strutture condizionali if... then e select... case. 1. Aprire il progetto ed inserire sul form due oggetti di tipo Shape. 2. Selezionando prima l uno e poi l altro modificarne le proprietà FILLSTYLE (solid), FILLCOLOR (verde) e SHAPE (Circle). 3. Inserire un oggetto Label, sul form nella parte alta a sinistra (fig. 14). Selezionare la casella CAPTION delle proprietà e sostituire Label (sulla casella a destra di Caption) con il testo: Introdurre un numero tra 0 e 3. Poi dare invio. 4. Sul form, accanto all oggetto Label contenente il testo appena scritto, inserire l oggetto TextBox. Si passa ora a scrivere il codice. Dalla barra dei menu si attiva VISUALIZZA CODICE. Si fa clic sul pulsante con il triangolino nero della casella degli oggetti e si apre la lista delle subroutine. Facendo clic su Form e Text1 si inizializzano le singole sub. Il codice relativo alla sub Label1 non va scritto e quindi non occorre fare clic su tale variabile. (generale) Form Label1 Text1 Fig. 15 Quando si fa clic su Text1, si inizializza per default la routine Private Sub Text1_Change(). Poiché nell esempio si vuole acquisire il testo presente nel TextBox solo dopo aver premuto il tasto ENTER ( ), si deve cambiare il tipo di routine facendo scorrere i nomi delle varie sub associate con Text1, usando il pulsante con il triangolino ( ) della casella delle routine, e scegliendo poi KeyDown() (fig. 15). Viene inizializzata la subroutine Text1_ KeyDown(). La sub Text1_Change() può essere cancellata o lasciata così senza essere utilizzata. Terminate le inizializzazioni debbono essere presenti le seguenti sub: Private Sub Form_Load() Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer) Si scrive quindi il codice per le subroutine Form e Text1.