Paragrafo 1 - Ripasso Concetti base e Interfaccia di Visual Basic.Net 2005 Definizione di utente e di programmatore L utente è qualsiasi persona che usa il computer anche se non è in grado di programmarlo. Il programmatore è l uomo che programma un computer. Definizione di programma Un programma è un sequenza finita di istruzioni elementari che indichino al computer le operazioni da compiere e i dati di ingresso su cui operare, scritte in un linguaggio di programmazione. Definizione di linguaggio di programmazione Esso è il linguaggio usato dal programmatore per comunicare con il computer. Il primo linguaggio usato è stato quello binario, in seguito fu l assembler (un misto di codice binario a parole utente come: add (per fare la somma), molt (per fare le moltiplicazioni)), negli anni successivi sono nati: il ForTran (Formula Translation), nato nel 1954 per scopi scientifici e per calcoli matematici, il COBOL (Common Business Oriented Language) nato nel 1960 per scopi commerciali, il PASCAL nato nel 1971 ad opera di N. Wirth progettato come linguaggio per l insegnamento nelle scuole della programmazione strutturata, il BASIC (Beginner s All Purpose Symbolic Instruction Code) nato nel 1980 per avere un linguaggio che fosse molto semplice da imparare anche per i principianti, il Visual Basic nato alle fine degli anni 90 e poi il Visual Basic.Net nato nel 2003. Noi utilizzeremo la versione 2005 di VisualBasic.Net poiché scaricabile direttamente da internet dal sito ufficiale della microsoft seguente: http://go.microsoft.com/fwlink/?linkid=57033 (lo stesso link è postato sul mio sito personale) Definizione di algoritmo. Un algoritmo è una sequenza ordinata di azioni o istruzioni che permettono di risolvere tutti i problemi di una certa classe (natura) nel modo più efficiente possibile (cioè col minor numero di istruzioni). Le istruzioni dell algoritmo, inoltre, devono soddisfare ai seguenti requisiti: 1. elementari, cioè non ulteriormente scomponibili 2. in numero finito, nel senso che l algoritmo deve avere un punto di inizio e un punto di fine 3. non ambigue, cioè che non lascino dubbi di interpretazione alla CPU che dovrà eseguirle. 4. deterministiche, cioè devono garantire che i risultati ottenuti siano sempre gli stessi a prescindere dalla CPU che le esegue. Ad esempio: l istruzione moltiplica 3 per 4 produce sempre il medesimo risultato, anche se è eseguita su CPU diverse. Variabili e Costanti La variabile è una celletta della RAM in cui è possibile memorizzare temporaneamente i valori che variano nel tempo. N nome celletta Inoltre, la variabile è individuata da: - un nome scelto a piacere dal programmatore composto da lettere e numeri ma che non deve mai iniziare con un numero come ad es: numero, a1, a2, somma, media, nome, ecc. - un valore modificabile nel tempo, a seconda che si verifichino o meno condizioni, eventi, ecc. da qui il nome variabile, che può essere: un numero intero positivo o negativo, un numero con la virgola, un carattere, una parola, un valore booleano vero e falso, ecc. - un tipo, cioè l insieme dei valori che essa può assumere 1
I tipi di variabili che useremo in Visual Basic. Net - tipo intero (in VB integer) è l insieme dei numeri naturali negativi e positivi, come ad esempio: -100.-5, 0, 5, 100 ecc. - tipo decimale (in VB decimal) è l insieme dei numeri positivi e negativi con e senza virgola, come ad esempio: -123.5, -1, 0, 5, 1234,7 - tipo booelano (in VB boolean) è l insieme dei valori true o false, come ad esempio: maggiorenne, sposato, patentato, ecc. - tipo stringa (in VB string) è l insieme dei caratteri e delle parole, come ad esempio: a,b,c,d,e,f,..z, casa, cena, scuola, ecc. Dichiarazione in VisulBasic.Net delle variabili. Essa consiste nell anteporre la parola chiave DIM al nome della variabile e postporre la parola chiave AS e il suo tipo corrispondente al nome della variabile, come mostra l esempio seguente: ' DICHIARAZIONI VARIABILI Dim A As Integer Dim Media As Decimal Dim Colore As String Dim Maggiorenne As Boolean La costante è una celletta della RAM in cui è possibile memorizzare temporaneamente i valori che non variano nel tempo, cioè che sono costanti. Dichiarazione in VisulBasic.Net delle costanti Essa consiste nell anteporre al nome della variabile la parola chiave CONST e postporre al nome della costante il suo valore, come mostra l esempio seguente: ' DICHIARAZIONI COSTANTI CONST Pigreco=3.14 CONST Maggiorenne= SI L operazione di concatenazione tra variabili di tipo stringa Date 2 variabili a e b di tipo string, l operazione a+b si chiama di concatenazione. Ad esempio: - se a= il mio pc e b = è da formattare a+b = il mio pc è da formattare - se a= 12 e b= 255 a+b= 12255 e si legge la stringa 122555 o 122555 in formato testo L operazione di concatenazione tra una variabile di tipo stringa e una variabile di tipo intera Essa si ottiene usando l operatore & (è commerciale). Ad es. supponiamo di dover calcolare la soluzione x, dell equazione 2x-2=0. Allora la soluzione è x=1 ma vogliamo che appaia insieme al valore 1, un messaggio esplicativo, del tipo: la soluzione è =, cioè vogliamo concatenare un valore intero 1 con un valore string la soluzione è l operazione di concatenazione si realizza cosi: la soluzione è = & x. Essa produce il messaggio: la soluzione è =1. Essa sarà usata nella funzione MsgBox( ). La funzione MsgBox Essa si usa per consentire l output attraverso l uso di finestre: di avviso, di errore, di informazione, ecc. e l output di valori numerici generati dal programma. Essa ha tre parametri separati dalla virgola: il 1) obbligatorio e il 2) e il 3) facoltativo. La sintassi della funzione MsgBox è la seguente: MsgBox( messaggio utente nel prompt (zona grigia), numero, testo nel title (barra blu) ) 2
Essa ha come 1) e 3) parametro gli stessi della funzione InputBox. La differenza è solo il 2) parametro che serve a specificare, con un numero il tipo di icona da utilizzare. CODICE VBASIC MsgBox(" <0 soluzioni non reali", 16, "Avviso") CODICE VBASIC MsgBox(" <0 soluzioni non reali", 64, "Avviso") CODICE VB x= - 0,5 MsgBox(x) x= - 0,5 MsgBox( La soluzione è x = " & x) La funzione InputBox Essa si usa per consentire l input di un valore da tastiera che sarà confermato o meno attraverso i pulsanti: ok o annulla Esempi: inserendo entrambi i parametri 1) e 2) nella funzione InputBox() (fig.a) Codice VB InputBox("QUALE' IL TUO PIATTO PREFERITO?", "ELENCO DEI PIATTI") (fig. b) Codice VB InputBox("DAMMI UN NUMERO DA 1 A 7", "SCELTA DI UN NUMERO CASUALE") I valori inseriti nel rigo bianco: SPAGHETTI ALLA PESCATORA (fig.1) e 7 (fig.2) saranno interpretati come testo, quindi la variabile che li conterrà dovrà essere di tipo string. Ad es.: StringaNome=InputBox( inserisci messaggio utente nel prompt, inserisci nome title ) Se si vuole una variabile numero tipo intero si utilizzerà la funzione Val nel seguente modo: numero=val (InputBox( inserisci messaggio utente nel prompt, inserisci nome title )) La funzione Val La stringa 12255 è possibile convertirla in numero 12255 utilizzando la funzione del VBasic.Net che si chiama Val. Essa dato un numero in formato testo, lo trasforma un numero in formato numero. Ad es. data la stringa 12255 Val ( 12255 ) = 12255 ovvero un numero, cioè 12255. La funzione Cstr (funzione inversa di Val) Il numero 12255 è possibile convertirlo in stringa 12255 utilizzando la funzione del VBasic.Net che si chiama Cstr. Essa dato un numero in formato numero, lo trasforma un numero in formato testo. Ad es. data il valore in formato numero 12255 Cstr (12255) = 12255 è la stringa 12255. 3
La tabella delle variabili Essa raggruppa in sintesi le variabili usate dal programma specificando per ognuna di esse: - una descrizione sintetica dei valori che rappresenta - il tipo di valori che può assumere - se è una variabile di input o di output - se è una variabile è di lavoro, cioè né di input e né di output. Il diagramma a blocchi o flowchart o diagramma di flusso Esso è il metodo usato dai programmatori per trovare l algoritmo (cioè la soluzione) a problemi complessi. Esso consiste nel descrivere la sequenza di istruzioni elementari di un algoritmo in modo grafico attraverso l uso di simboli detti blocchi, collegati tra loro da frecce orientate che indicano il flusso delle azioni. I blocchi principali sono quattro: ovale, parallelogramma, rettangolo e rombo. Altri simboli usati ma non sempre sono: un piccolo quadrato: per il punto di connessione tra frecce orientate; un rettangolo con 2 barre laterali per i sottoprogrammi, ad es. per i form di VisualBasic.Net; un esagono per la struttura ciclica con contatore, ad es. per i che va da 1 a 100. Cosa serve per realizzare un programma in VB.net? Bisogna eseguire nell ordine i seguenti passi: 1) Dato un problema, disegnare la tabella delle variabili 2) Individuare l algoritmo risolutivo per passi con pseudo codifica o diagramma a blocchi 4) Creare il form Visualbasic. Net, inserendo i controlli e le loro proprietà 5) Codificare l evento click dei pulsanti di calcolo (button) inseriti nel Form L interfaccia di Visual Basic.Net 2008 Che cosa è un form di Visual Basic.Net? Il form è l interfaccia grafica piccola e centrale sulla quale il programmatore inserisce degli elementi grafici, detti controlli o strumenti, come ad es. i pulsanti (in VB button), le etichette (in VB label), le caselle di testo (in VB textbox), ecc. 4
Che cosa è un controllo (o strumento) di VisualBasic.Net? Un controllo (o strumento) è un elemento grafico che si trova in una finestra di VB detta casella degli strumenti. Essa è la seguente: A che serve il controllo (o strumento) etichetta (o label in VB)? Essa si usa per descrivere ciò che avviene nel form. Per distinguere una etichetta da un altro controllo si usa il nome sintetico: lbl. Esempi: lbltitolo, lblsomma, ecc A che serve il controllo (o strumento) casella di testo (o textbox invb)? Esso si usa per inserire i valori di input e per far uscire a video i valori di output. Per distinguere una casella di testo da un altro controllo si usa il nome sintetico: txt. Esempi sono: txtnum1, txtnum2, ecc Esempio. Data la casella di testo txtnumero allora: - la scrittura txtnumero.name dice che.name è la proprietà nome della casella di testo - la scrittura txtnumero.text dice che.text è la proprietà testo della casella di testo - la scrittura txtnumero.font dice che.font è la proprietà font della casella di testo - la scrittura txtnumero.backcolor dice che.backcolor è la proprietà colore di sfondo La casella di testo vede tutto quello che riceve, sia testo che numeri, come testo. Pertanto se inseriamo un numero in una casella di testo e vogliamo effettuare dei calcoli su di esso bisogna convertirlo da formato testo a formato numero. A che serve la funzione VAL usata nelle caselle di testo? Essa serve a convertire, come già suddetto, un numero da formato testo a formato numero. Ad es. sia txtnumero una casella di testo e supponiamo che l utente inserisca in essa il numero in formato testo 5, abbiamo quindi che: - txtnumero.text = 5 (si legge 5 in formato testo) mentre - Val (txtnumero.text) = 5 (si legge 5 in formato numerico). A che serve il controllo (o strumento) pulsante (o button in VB) Esso serve ad eseguire le seguenti operazioni: a) i calcoli principali del programma, b) uscire dal programma, c) azzerare ai valori iniziali le variabili, aprire o chiudere altri form. Per distinguere il pulsante da un altro controllo si usa il nome sintetico: btn. Esempi sono: btncalcola, btnesci, ecc A che servono i controlli combobox e listbox in VB Essi sono elenchi a discesa di elementi. Essi si usano per inserire un valore di input, da un elenco di valori predefiniti. Per distinguere una combobox da un altro controllo si usa il nome sintetico: cmb. Esempi sono: cmbtemperatute, cmbquantità, ecc. Per distinguere una listbox da un altro controllo si usa il nome sintetico: lst. Esempi sono: lsttemperatute, lstquantità, ecc 5
Che cosa sono le proprietà dei controlli (o strumenti)? Sono delle caratteristiche che servono a caratterizzare in modo molto semplice e rapido l aspetto grafico dei controlli. Esse si trovano nella finestra proprietà sul lato destro dell interfaccia di VB.Net. (fig. a) (fig.b) Definizione di oggetto Un oggetto è un qualsiasi form, controllo o libreria del linguaggio. Più semplicemente gli oggetti (form, controlli e libreria 1 ) sono i i mattoni che servono per costruire una interfaccia grafica di VB in analogia ai mattoni usati nell edilizia per costruire una casa. Definizione di proprietà degli oggetti Una proprietà è una caratteristica di un oggetto come: il nome, il colore. la dimensione, la posizione, il testo che appare in esso, ecc. Ogni oggetto possiede delle proprietà e ogni volta che ci riferiamo alle proprietà di un oggetto scriviamo: nomeoggetto.proprietà, come ad es. lbl1.text proprietà testo dell oggetto label, di nome lbl1 Definizione di evento di un oggetto L evento è l azione provocata dall utente sui form e controlli. Tale azione viene programmata in VB dal programmatore e in tal caso si parla di programmazione ad eventi. Un esempio classico di evento è il Click, cioè quando l utente premerà su un pulsante farà verificare l evento click. Esempi di eventi sono: click (usato per: label, button, textbox, ecc); SelectedIndexChange (usato per combo box, ecc), keydown, keypress, enter, apertura del form, ecc. La figura mostra i possibili eventi che si possono associare al pulsante button (Vedi figura) Visualizzare la finestra delle proprietà di un controllo, di un form ecc. in VB Per visualizzare la finestra delle proprietà è sufficiente: 1) selezionarlo e premere il tasto F4 2) selezionarlo e poi scegliere la voce Finestra proprietà, dal menù Visualizza Selezionata la proprietà, VB visualizza in basso alla finestra proprietà una breve spiegazione del significato della proprietà selezionata Le proprietà principali dei controlli: etichetta, casella di testo, pulsante, elenco a discesa sono: - nome (o name in VB) che stabilisce il nome del controllo da usare nel codice visualbasic 1 Un es.di oggetto di libreria è math, di cui più avanti si utilizzerà il metodo math.sqrt( ) 6
- testo (o Text in VB) che stabilisce il contenuto testuale da visualizzare nel form - font che stabilisce il tipo di carattere da utilizzare (times new roman, arial, ecc) - colore di sfondo (o backcolor in VB) che stabilisce il colore del controllo - items che individua gli elementi (in inglese items) da visualizzare nella combobox. - selecteditem che individua l elemento selezionato della combo box (si trova nella finestra delle proprietà, gruppo DataBindings, come mostra la figura seguente:) Inserire gli elementi nella Combobox, dal menù contestuale del mouse Modifica elementi Definizione di metodo di un oggetto Esso è un sottoprogramma predefinito del linguaggio VB già scritto e disponibile per il programmatore associato ad un particolare oggetto. Per riferirsi ad esso scriviamo: nomeoggetto.metodo( ). 2 Esempi di metodi di oggetti: - math.sqrt( ) si legge metodo sqrt( ) dell oggetto della libreria matematica math. Esso permette di calcolare la radice quadrata di un numero. Esempio math.sqrt(4) effettua la radice quadrata di 4. - cmb1.items.add( ) si legge metodo add( ) dell oggetto combobox cmb1. Esso aggiunge un item (cioè un elemento) alla combobox cmb1. Es.1 cmb1.items.add( napoli ), aggiunge l elemento napoli alla combobox cmb1. Es.2 cmb3.items.add(txt1.text), aggiunge l elemento che si trova nella casella di testo txt1 all elenco a discesa cmb3 - cmb2.items.remove( ) si legge metodo remove( ) dell oggetto combobox cmb2. Esso rimuove un item (cioè un elemento) dalla combobox cmb2. Esempio cmb1.items.remove( caserta ) rimuove l elemento caserta alla combobox cmb2 Un programma VBasic.Net Esso è una sequenza finita di istruzioni generate in parte in modo automatico dal linguaggio ed un altra parte in modo manuale dal programmatore. La parte del programmatore è riservata soprattutto alla programmazione dei pulsanti di comando. Il codice di ogni pulsante deve essere inserito tra i comandi, generate da VBasic, Private Sub ed End Sub 2 Da non confondersi al modo con cui ci si riferisce ad una proprietà di un oggetto: nomoggetto.proprietà 7
Esempio Calcolo del form relativo all algoritmo del calcolo dell area del rettangolo. Tabelle delle variabili di input e output b Base del rettangolo Numerico intera h Altezza del rettangolo Numerico intera a Area del rettangolo Numerica intera Algoritmo 2. Dammi il valore della base b 3. Dammi il valore della altezza h 4. Calcola il prodotto A = b x h 5. Stampa a video la sua area A 6. Fine Il codice da inserire dietro al pulsante Calcola del Form precedente è il seguente: Private Sub BtnCalcola_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCalcola.Click End Sub ' DICHIARAZIONI VARIABILI Dim base, altezza As Integer Dim area As Decimal ' txtbase E LA CASELLA DI TESTO USATA NEL FORM PER CONTENERE IL VALORE DI BASE SCELTO DALL UTENTE. MA LA CASELLA DI TESTO TRASFORMA TUTTO QUELLO CHE RICEVE IN TESTO. PER CONVERTIRE QUELLO CHE RICEVE DA TESTO A NUMERO SI USA LA FUNZIONA VAL PER LA VARIABILE BASE e PER l ALTEZZA base = Val(txtBase.Text) altezza = Val(txtAltezza.Text) ' CALCOLO DELL AREA DEL RETTANGOLO area = base * altezza ' ASSEGNAZIONE DELL AREA CALCOLATA ALLA CASELLA DI TESTO txtarea txtarea.text = area 8
IL CONTROLLO COMBOBO Esso è un elenco a discesa di elementi. Esso si usa per selezionare un valore, da un elenco di valori predefiniti, detti items. Per distinguere una combobox da un altro controllo si usa il nome sintetico: cmb. Esempi sono: cmbtemperatute, cmbquantità, ecc I METODI 3 ADD( ) E REMOVE ( ) DI COMBOBO. Il metodo add() si usa per aggiungere un elemento alla combobox e il metodo remove per eliminare un elemento dalla combobox Esempio1. Sia cmb1 un combobox, allora la scritta cmb1.items.add( napoli ) si legge metodo add( ) dell oggetto combobox cmb1. Esso aggiunge l elemento napoli alla combobox cmb1. Esempio2. La scritta cmb1.items.add(txt1.text), aggiunge l elemento che si trova nella casella di testo txt1 alla combobox cmb1 Esempio3. La scritta cmb1.items.remove( caserta ) si legge metodo remove( ) dell oggetto combobox cmb1. Esso rimuove l item (cioè l elemento) caserta dalla combobox cmb1. L EVENTO 4 SELECTED INDE CHANCED DI COMBOBO La frase selected index chanced significa che è l indice selezionato è cambiato. Poiché ogni elemento dell elenco ha un indice (cioè un numero) che ne individua la posizione allora quando l utente seleziona, nell elenco, un elemento diverso da quello di default si dice che si è verificato l evento che l indice selezionato è cambiato LA PROPRIETA SELECTED-ITEM DI COMBOBO Essa individua l elemento selezionato della combobox. Paragrafo 2 Algoritmi con la struttura di selezione La struttura di selezione permette di impostare nell algoritmo percorsi o rami diversi in base a condizioni che possono essere o meno verificate. Casi particolari della struttura di selezione 1) Si parla di struttura di selezione ad una via, quando il percorso falso non è presente. Essa, nel metodo del diagramma a blocchi, si rappresenta cosi: Nel diagramma a blocchi Esempio: N1 è positivo? In Visual Basic.Net ' DICHIARAZIONE DELLE VARIABILI Dim N1 As Integer ' INPUT N1=Val(txtN1.text) ' CALCOLO If N1 > 0 Then OUTPUT MsgBox(N1) End If 2) Si parla di struttura di selezione a 2 vie, quando vi sono entrambi i percorsi: vero e falso. Essa, nel metodo del diagramma a blocchi, si rappresenta cosi: 3 Essi sono sottoprogrammi predefiniti del linguaggio VB già scritti e disponibili per il programmatore e sono associati ad un particolare oggetto. Per riferirsi ad un metodo noi scriviamo: nomeoggetto.metodo( ). 4 L evento è l azione provocata dall utente sui form e controlli. Tale azione viene programmata in VB dal programmatore. 9
Nel diagramma a blocchi Esempio: Max tra N1 e N2 In Visual Basic.Net ' DICHIARAZIONE DELLE VARIABILI Dim N1, N2, Max As Integer ' INPUT N1=Val(txtN1.text); N2=Val(txtN2.text) ' CALCOLO If N1 > N2 Then Max = N1 Else Max = N2 End If OUTPUT MsgBox(Max) Problema1: Dati due numeri N1 e N2, determinare il minimo e il massimo e stamparli 1) Tabelle delle variabili di input e output N1 N2 Primo Numero Secondo Numero MIN MA Minimo tra i due numeri Massimo tra due numeri 1. inizio 2. dammi due valori diversi per N1 e per N2 3. confronta N1 con N2 4. se N1 > N2, allora MA=N1 e MIN = N2 5. altrimenti MIN = N1 e MA = N2 6. stampa MIN e MA 7. fine 4) Creazione del form Visualbasic. Net Non disegnato per mancanza di tempo 5) Codifica del corpo dei pulsanti di calcolo Dim N1, N2, Max, Min As Integer ' input N1 = Val(txtN1.Text) N2 = Val(txtN2.Text) ' controllo selezione a 2 vie If N1 > N2 Then Max = N1 Min = N2 Else Max = N2 Min = N1 End If ' output lbl4.text = Max lbl5.text = Min Problema2: Dati due numeri N1 e N2, determinare quello pari e quello dispari e stamparli 1) Tabelle delle variabili di input e output N1 N2 Primo Numero Secondo Numero PARI DISP Numero Pari Numero Dispari Numero Intero Numero Intero Q1,Q2 R1,R2 Quozienti dei numeri N1 e N2 Resti delle divisioni per 2 Numero Intero Numero Intero 10
1. inizio 2. dammi due valori diversi per N1 e per N2 3. Calcola Q1=INT(N1/2) e R1=N1-2*Q1 4. Calcola Q2=INT(N2/2) e R2=N2-2*Q2 5. se R1=0 allora PARI=N1 e stampa PARI 6. altrimenti DISP=N1 e stampa DISP 7. se R2=0 allora PARI=N2 e stampa PARI 8. altrimenti DISP=N2 e stampa DISP 9. fine 4) Creazione del form Visualbasic. Net Non disegnato per mancanza di tempo 5) Codifica del corpo dei pulsanti di calcolo Dim N1, N2, PARI, DISP As Integer Dim Q1, Q2, R1, R2 As Integer N1 = Val(txtN1.text) N2 = Val(txtN2.text) Q1=INT(N1/2); Q2=INT(N2/2) R1=N1-2*Q1; R2=N2-2*Q2 If R1 = 0 Then PARI = N1; lbl4.text = PARI Else DISP = N1; lbl3.text = DISP End If If R2 = 0 Then PARI = N2; lbl4.text = PARI Else DISP = N2; lbl3.text = DISP End If Problema3: Dati tre numeri N1,N2 e N3 determinare quello Max e stamparlo a video 1) Tabelle delle variabili di input e output N1 N2 N3 Primo Numero Secondo Numero Terzo Numero 1. inizio 2. dammi i valori N1, N2, N3 3. Assegna a Max, il numero N1 4. Se N2 > Max allora a Max assegna N2 5. Se N3 > Max allora a Max assegna N3 6. stampa Max 7. fine 4) Creazione del form Visualbasic. Net Non disegnato per mancanza di tempo 5) Codifica del corpo del pulsante calcola Dim N1, N2, N3, Max As Integer ' input N1 = Val(txtN1.text) N2 = Val(txtN2.text) N3 = Val(txtN3.text) Max = N1 ' calcolo If N2 > Max Then Max = N2 End If If N3 > Max Then Max = N3 End If ' output lbl5.text = Max Problema4: Scrivere un algoritmo che dati due numeri e Y, effettui lo scambio dei valori e stampi a video i nuovi valori assunti da esse, utilizzando una variabile di appoggio. Y Capiamo il problema: sia x=10 e y=20 1) modo: sposto prima il contenuto di y in x, allora faccio x=y, quindi x sarà = 20, ma anche y = 20 2) modo: sposto prima il contenuto di x in y, allora faccio y=x, quindi y sarà = 10, ma anche x = 10 11
Bene in entrambi i modi ho ottenuto due valori uguali di x e di y e non è quello che volevo. Cosa devo fare? Prima di effettuare lo scambio, occorre conservare il valore di x o di y all interno di un altra variabile, detta temporanea, TEMP. Per la realizzazione di un programma in VB.net seguire i seguenti 5 passi: 1) Tabelle delle variabili di input, di output e di lavoro Y Primo valore Secondo valore TEMP Variabile temporanea di appoggio 2. Dammi i valori di e Y 3. Assegna a TEMP il valore di 4. Assegna ad il valore di Y 5. Assegna ad Y il valore di TEMP 6. Stampa e Y 8. Fine 4) Creazione del form Visualbasic. Net 5) CODIFICA PULSANTE Calcola ' DICHIARAZIONE DELLE VARIABILI Dim x, y, temp As Integer ' INPUT DEI VALORI DI E Y x = Val(txt.Text) y = Val(txtY.Text) 'SCAMBIO DEI VALORI DELLE E Y temp = x 'CONSERVO IN TEMP, x = y y = temp ' STAMPA DEI NUOVI VALORI DI E Y txt.text = x txty.text = y Problema6: Scrivere un algoritmo che dati in input quattro valori interi A, B, C e D, ruoti il loro valore di uno step indietro in senso antiorario e scriva in output il loro valore modificato. prima rotazione di uno step in senso orario dopo 12
Per la realizzazione di un programma in VB.net seguire i seguenti 5 passi: 1) Tabelle delle variabili di input, di output e di lavoro A B C D Primo valore Secondo valore Terzo valore Quarto Valore TEMP Variabile temporanea di appoggio 2. Dammi i valori di A,B,C,D 3. Assegna a TEMP il valore di A 4. Assegna ad A il valore di D 5. Assegna ad D il valore di C 6. Assegna ad C il valore di B 7. Assegna ad B il valore di TEMP 8. Stampa i nuovi valori di A,B,C,D 9. Fine 4) Creazione del form Visualbasic. Net 5) CODIFICA PULSANTE Calcola ' DICHIARAZIONE DELLE VARIABILI Dim A, B, C, D, TEMP As Integer ' INPUT DEI VALORI DI A,B,C,D A = Val (txta.text) B = Val (txtb.text) C = Val (txtc.text) D = Val (txtd.text) ' SCAMBIO DEL VALORE TRA A,B,C,D TEMP = A A = D D = C C = B B = TEMP ' OUTPUT DEI VALORI A,B,C,D MODIFICATI txta.text = A txtb.text = B txtc.text = C txtd.text = D Problema7: Trovare l algoritmo che calcoli la tabellina di un numero da 1 a 1000 e stampi la tabellina scelta a video Per la realizzazione di un programma in VB.net seguire i seguenti 5 passi: 1) Tabelle delle variabili di input, di output e di lavoro 13
NUM R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 Numero da 1 a 1000 di cui si vuole conoscere la tabellina 1 risultato della tabellina 2 risultato della tabellina 3 risultato della tabellina 4 risultato della tabellina 5 risultato della tabellina 6 risultato della tabellina 7 risultato della tabellina 8 risultato della tabellina 9 risultato della tabellina 10 risultato della tabellina 2. Dammi il numero, NUM 3. Assegna a R1 il valore NUM*1 4. Assegna a R2 il valore NUM*2 5. Assegna a R3 il valore NUM*3 6. Assegna a R4 il valore NUM*4 7. Assegna a R5 il valore NUM*5 8. Assegna a R6 il valore NUM*6 9. Assegna a R7 il valore NUM*7 10. Assegna a R8 il valore NUM*8 11. Assegna a R9 il valore NUM*9 12. Assegna a R10 il valore NUM*10 13. Stampa a video in label R1,R2,R3,R4,R5 14. Stampa a video in label R6,R7,R8,R9,R10 15. fine Inizio NUM R1=NUM*1 R2=NUM*2 R3=NUM*3 R4=NUM*4 R5=NUM*5 R6=NUM*6 R7=NUM*7 R8=NUM*8 R9=NUM*9 R10=NUM*10 R1..R10 Fine CODIFICA PULSANTE CALCOLA Dim numero As Integer num=val(txtnumero.text) Calcolo R1 = num*1 R2 = num*2 R3 = num*3 R4 = num*4 R5 = num*5 R6 = num*6 R7 = num*7 R8 = num*8 R9 = num*9 R10 = num*10 Stampa video lbl1.text=r1 lbl2.text=r2 lbl3.text=r3 lbl4.text=r4 lbl5.text=r5 lbl6.text=r6 lbl7.text=r7 lbl8.text=r8 lbl9.text=r9 lbl10.text=r10 14
PROBLEMA9: Scrivere un algoritmo che dati 3 numeri a, b e c li ordini in modo strettamente crescente. (Suggerimento: basta calcolare prima il minimo tra a e b ed tra a e c; poi calcolare il minimo tra b e c; usare una variabile scambio) 1) Tabelle delle variabili di input e output a b c Primo Numero Secondo Numero Terzo Numero T Variabile Temporanea 1. inizio 2. dammi i valori a, b, c 3. se a > b scambiali di posto in modo che il minimo sia al 1) posto 4. se a > c scambiali di posto in modo che il minimo sia al 1) posto 5. se b > c scambiali di posto in modo che il minimo sia al 2) posto 6. stampa a video i nuovi valori di a,b e c 7. fine 4) Creazione del form Visualbasic. Net Non disegnato per mancanza di tempo 5) Codifica del corpo del pulsante calcola Dim t, a, b, c As Integer ' input a = Val(txtA.Text) b = Val(txtB.Text) c = Val(txtC.Text) ' calcolo del minimo tra a,b e c e lo si mette al primo posto If a > b Then t = a a = b b = t End If If a > c Then t = a a = c c = t End If ' calcolo del minimo tra b e c e lo si mette al secondo posto If b > c Then t = b b = c c = t End If ' stampa dei numeir in ordine crescente lbl5.text=a lbl6.text=b lbl7.text=c Si parla di struttura di selezione a più vie, quando oltre ai percorsi vero e falso ce ne sono altri. Essa, nel metodo del diagramma a blocchi, si rappresenta cosi: (vedi esempio) Esempio: Letto un prezzo di un prodotto e la sua quantità, in base alla quantità richiesta effettua uno tasso di sconto diverso. In Visual Basic.Net Dim prezzo, quantità, tasso As Decimal 'INPUT prezzo = Val(txtPrezzo.Text) quantita = Val(txtQuantita.Text) 'SELEZIONE MULTIPLA IN VB.NET Select Case quantita Case 1 tasso = 10 Case 2 tasso = 20 Case 3 tasso = 30 Case Else tasso = 40 'COMPRENDE I CASI quantita > 3 End Select 15
Problema10: SELEZIONE MULTIPLA. Scrivere un algoritmo che dati il prezzo e la quantità di un prodotto da acquistare, calcoli sull importo totale lordo: lo sconto del 10% se la quantità = 1; lo sconto del 20% se la quantità = 2; lo sconto del 30% se la quantità = 3; e lo sconto del 40% in tutti gli altri casi e stampi a video l importo netto scontato da pagare. Per la realizzazione di un programma in VB.net seguire i seguenti 5 passi: 1) Tabelle delle variabili di input, di output e di lavoro prezzo quantità ilordo inetto sconto tasso Prezzo del prodotto Quantità dello stesso prodotto Importo lordo Importo netto da pagare Sconto da applicare all importo lordo Tasso di sconto in base alla quantità Numero decimale Numero decimale Numero decimale 2. Leggi il prezzo del prodotto 3. Leggi la quantità del prodotto 4. Calcola ilordo = prezzo*quantita 5. Se la quantità = 1 allora tasso = 10 6. Se la quantità = 2 allora tasso = 20 7. Se la quantità = 3 allora tasso = 30 8. Negli altri casi, altrimenti tasso = 40 9. Calcola sconto = ilordo*tasso /100 10. Calcola inetto = ilordo - sconto 11. Stampa a video l importo netto 12. Fine 4) Creazione del form Visualbasic. Net 5) CODIFICA PULSANTE Calcola Dim prezzo, ilordo As Decimal Dim inetto, sconto As Decimal Dim quantita, tasso As Byte 'INPUT prezzo = Val(txtPrezzo.Text) quantita = Val(txtQuantita.Text) 'CALCOLO IMPORTO LORDO DEL TOTALE DELLA SPESA ilordo = prezzo * quantita 'SELEZIONE MULTIPLA IN VIASUAL BASIC.NET Select Case quantita Case 1 tasso = 10 16
Case 2 tasso = 20 Case 3 tasso = 30 'TALE CASO INGLOBA TUTTI GLI ALTRI POSSIBILI CASI, CIOE CON QUANTITA > 3 Case Else tasso = 40 End Select 'CALCOLO SCONTO SULL IMPORTO TOTALE LORDO sconto = ilordo * tasso / 100 inetto = ilordo - sconto 'OUTPUT IMPORTO NETTO txtimporto.text = inetto Problema11: SELEZIONE MULIPLA. Scrivere un algoritmo che dato il prezzo di un cellulare e data la quantità dei pezzi venduti calcoli sull imponibile: lo sconto del 10% se la quantità dei pezzi venduti è fino a 3; lo sconto del 20% se la quantità dei pezzi venduti è fino a 5; lo sconto 5 del 30% se la quantità dei pezzi venduti è fino a 10; lo sconto del 40% se la quantità dei pezzi venduti è > 10. Calcoli, inoltre, il tasso di sconto, l imponibile, l importo netto scontato, l iva del 20%, l importo ivato. Stampare a video: il tasso di sconto, lo sconto, l imponibile, l importo netto scontato, l IVA del 20% e l importo ivato (o lordo o totale) 1) Tabelle delle variabili e costanti costo pezzi Costo di un cellulare N.ro di pezzi dello stesso cellulare Numero decimale iva ilordo inetto ivato sconto tasso Iva da aggiungere all importo netto Importo lordo Importo al netto dello sconto Importo totale ivato Sconto da applicare Tasso di sconto in base ai pezzi Numero decimale Numero decimale Numero decimale Numero decimale Numero decimale 2. Leggi il costo di un cellulare 3. Leggi il n.ro di pezzi di quel cellulare 4. Calcola imponibile = costo*n.ro dei pezzi 5. Se i pezzi sono fino a 3 allora tasso = 10 6. Se i pezzi sono fino a 5 allora tasso = 20 7. Se i pezzi sono fino a 10 allora tasso = 30 8. Negli altri casi, altrimenti il tasso = 40 9. Calcola lo sconto = imponibile*tasso /100 10. Calcola inetto = imponibile sconto 11. Calcola iva=inetto*20/100 12. Calcola ivato=inetto+iva 11. Stampa a video il tasso, lo sconto, 12. Stampare l importo lordo, l importo netto 13. Stampare l IVA, l importo Ivato 12. Fine Non disegnato per mancanza di tempo 5) Codifica del corpo del pulsante Calcola Dim pezzi, tasso As Byte Dim costo, imponibile As Decimal Dim inetto, ivato As Decimal Dim iva, sconto As Decimal 'INPUT costo = Val(txtCosto.Text) pezzi = Val(txtPezzi.Text) 'SELEZIONE MULTIPLA IN VBASIC.NET Select Case pezzi Case 1 To 3 tasso = 10 Case 1 To 5 tasso = 20 Case 1 To 10 tasso = 30 Case Else tasso = 40 5 Attenzione: Nel problema23 si usa la frase quantità uguale ad 3 e nel problema 24 si usa la frase pezzi fino ad 3. Questa diversità determina una differenza nell uso del costrutto Case nel codice di VisualBasic.Net 17
4) Creazione del Form Visualbasic. Net End Select imponibile = costo * pezzi sconto = imponibile * tasso / 100 inetto = imponibile - sconto iva = inetto * 20 / 100 ivato = inetto + iva 'OUTPUT txttasso.text = tasso txtsconto.text = sconto txtilordo.text = imponibile txtinetto.text = inetto txtiva.text = iva txtivato.text = ivato Problema12: Scrivere un algoritmo che data una temperatura stampa a video il messaggio: a) molto caldo se la temperatura è > 32; b) caldo se la temperatura è > 25; c) mite se la temperatura è > 16; d) fresco se la temperatura è > 10; e) freddo se la temperatura è > 0; f) molto freddo se la temperatura è altrimenti. 1) Tabelle delle variabili e costanti temp Temperatura scelta Numero decimale 2. leggi la temperatura temp 3. Se la temp > 32 allora molto caldo 4. Se la temp > 25 allora caldo 5. Se la temp > 16 allora mite 6. Se la temp > 10 allora fresco 7. Se la temp > 0 allora freddo 8. Altrimenti il messaggio molto freddo 9. Fine 4) Creazione del Form Visual Basic. Net Non disegnato per mancanza di tempo 5) Codifica del corpo del pulsante Calcola Dim temp As Integer temp = Val(txtTemperatura.Text) Select Case temp Case Is > 25 lblmessaggio.text = "Caldo" Case Is > 16 lblmessaggio.text = "Mite" Case Is > 10 lblmessaggio.text = "Fresco" Case Is > 0 lblmessaggio.text = "Freddo" Case Else lblmessaggio.text = "Molto Freddo" End Select Problema13- COMBOBO. Scrivere un algoritmo che creata una combobox contenente i numeri da 1 a 10, in base all elemento scelto dall utente nella combobox e alla pressione del tasto calcola visualizzi in 10 label la tabellina del numero richiesto. 1) Tabelle delle variabili e costanti num numero della tabellina 2. Scegli elemento dalla combobox 3. Assegna a num, l elemento scelto 4. Fai le seguenti assegnazioni Non disegnato per mancanza di tempo 5) Codifica del corpo del pulsante Calcola Dim num As Integer 18
R1=1 * num R2=2 * num R3 = 3 * num R4=4 * num R5=5 * num R6 = 6 * num R7=7 * num R8=8 * num R9 = 9 * num R10 = 10 * num 13. Stampa in label R1,R2,R3,R4,R5 15. Fine 4) Creazione del Form Visualbasic. Net Dim R1, R2, R3, R4, R5, R6, R7, R8, R9, R10 As Integer ' input num = cmbnumero.selecteditem 'calcolo R1=1 * num R2=2 * num R3 = 3 * num R4=4 * num R5=5 * num R6 = 6 * num R7=7 * num R8=8 * num R9 = 9 * num R10 = 10 * num ' output lbl1.text=r1 lbl2.text=r2 lbl3.text=r3 lbl4.text=r4 lbl5.text=r5 lbl6.text=r6 lbl7.text=r7 lbl8.text=r8 lbl9.text=r9 lbl10.text = R10 Problema 14. Combobox. Scrivere un algoritmo che creata una combobox di 30 parole scritte in italiano", in base alla parola scelta la traduca in dialetto napoletano, visualizzando la parola tradotta in controllo a vostra scelta: casella di testo o label. (Suggerimento: utilizzare la struttura di selezione Select Case per gestire tutti e 30 i casi nella combobox) 1) Tabelle delle variabili e costanti parola E il termine selezionato da tradurre stringa 2. assegna a parola, il termine selezionato 3. se parola= ragazzo allora scrivi guaglione 4. se parola= fidanzata allora scrivi guagliona 5. ecc 6. Fine 4) Creazione del Form Visualbasic. Net Non disegnato per mancanza di tempo 5) Codifica del Combobox cmbita Dim parola As String parola = cmbita.selecteditem Select Case parola Case "ragazzo" txtnap.text = "guaglione" Case "fidanzata" txtnap.text = "guagliona" Case "padre" txtnap.text = "pat" Case "madre" txtnap.text = "mam" Case "sorella" txtnap.text = "sor"............ End Select Problema15: Trovare un algoritmo che esegua una calcolatrice banale che effettui la somma di 2 numeri e la stampi a video. 1) Tabelle delle variabili di input, di output e di lavoro NUMERO1 NUMERO2 Primo Numero Secondo Numero SOMMA Somma dei 2 numeri Algoritmo per passi Creazione del form Visualbasic. Net 19
2. Dammi il primo numero NUMERO1 3. Dammi il secondo numero NUMERO2 4. Somma i due numeri 5. Stampa a video la somma Suggerimenti grafici. I controlli grafici che il form VB deve avere sono: a) una textbox, rinominata txtdisplay, per riprodurre il display della calcolatrice b) 10 button per riprodurre i 10 pulsanti relativi alle 10 cifre (1,2,3,4,5,6,7,8,9 e 0) c) 1 button per l operatore di somma e 1 button per l operatore di uguale. In totale dobbiamo programmare 12 pulsanti. Data la complessità, dividiamo il problema in sottoproblemi a), b) e c) a) Tutte le cifre del 1 addendo da visualizzare sul display dovranno apparire una di seguito all altra. Ciò si ottiene programmando i 10 pulsanti. Più precisamente, scriveremo: 1) pulsante: txtdisplay.text= txtdisplay.text+ 1 (che si legge cosi: nel testo della casella di testo txtdisplay metti quello che c è già dentro + il numero 1) 2) pulsante: txtdisplay.text= txtdisplay.text+ 2 (che si legge cosi: nel testo della casella di testo txtdisplay metti quello che c è già dentro + il numero 2) 3) pulsante: txtdisplay.text= txtdisplay.text+ 3 (che si legge cosi: nel testo della casella di testo txtdisplay metti quello che c è già dentro + il numero 3) 4) pulsante: txtdisplay.text= txtdisplay.text+ 4 (che si legge cosi: nel testo della casella di testo txtdisplay metti quello che c è già dentro + il numero 4) 5) pulsante: txtdisplay.text= txtdisplay.text+ 5 (che si legge cosi: nel testo della casella di testo txtdisplay metti quello che c è già dentro + il numero 5) 6) pulsante: txtdisplay.text= txtdisplay.text+ 6 (che si legge cosi: nel testo della casella di testo txtdisplay metti quello che c è già dentro + il numero 6) 7) pulsante: txtdisplay.text= txtdisplay.text+ 7 (che si legge cosi: nel testo della casella di testo txtdisplay metti quello che c è già dentro + il numero 7) 8) pulsante: txtdisplay.text= txtdisplay.text+ 8 (che si legge cosi: nel testo della casella di testo txtdisplay metti quello che c è già dentro + il numero 8) 9) pulsante: txtdisplay.text= txtdisplay.text+ 9 (che si legge cosi: nel testo della casella di testo txtdisplay metti quello che c è già dentro + il numero 9) 0) pulsante: txtdisplay.text= txtdisplay.text+ 0 (che si legge cosi: nel testo della casella di testo txtdisplay metti quello che c è già dentro + il numero 0) Test del sottoproblema a). Se la programmazione dei 10 tasti è andata a buon fine, mandando in esecuzione il form, il primo addendo apparirà (in formato testo) completamente sul display b) Programmare il tasto +. Esso deve: - convertire in formato numero il primo addendo apparso sul display (usando la funzione Val) - conservarlo in memoria in una variabile temporanea NUMERO1, opportunamente dichiarata - poi azzerare il display c) Programmare il tasto =. A tal fine bisogna: - Spostare la dichiarazione della variabile TEMP in testa al form, sotto la scritta public class form, in modo che sia visibile in tutto il form e, quindi, anche in entrambi i pulsanti in cui è usata: + e =. 20
- Assegnare alla variabile temporanea NUMERO2, il secondo addendo visualizzato sul display in formato numero e assegnare alla variabile temporanea SOMMA, la somma tra NUMERO1 e NUMERO2. Infine mostrare sul display il valore di SOMMA CODIFICA DEL PULSANTE 1 CODIFICA DEL PULSANTE 2 txtdisplay.text=txtdisplay.text+"1" txtdisplay.text=txtdisplay.text+"2" CODIFICA DEL PULSANTE 3 CODIFICA DEL PULSANTE 4 txtdisplay.text=txtdisplay.text+"3" txtdisplay.text=txtdisplay.text+"4" CODIFICA DEL PULSANTE 5 CODIFICA DEL PULSANTE 6 txtdisplay.text=txtdisplay.text+"5" txtdisplay.text=txtdisplay.text+"6" CODIFICA DEL PULSANTE 7 CODIFICA DEL PULSANTE 8 txtdisplay.text=txtdisplay.text+"7" txtdisplay.text=txtdisplay.text+"8" CODIFICA DEL PULSANTE 9 CODIFICA DEL PULSANTE 0 txtdisplay.text=txtdisplay.text+"9" txtdisplay.text=txtdisplay.text+"0" CODIFICA DEL PULSANTE SOMMA CODIFICA DEL PULSANTE = ' Calcolo formato numerico del 1 addendo Dim SOMMA, NUMERO2 As Integer NUMERO1 = Val(txtDisplay.Text) ' Calcolo formato numerico del 2 ' Azzeramento display addendo numero2 txtdisplay.text = "" CODIFICA FORM1 Public Class Form1 ' la variabile NUMERO1 deve essere visibile sia nel bottone somma che in quello uguale allora si dichiara qui Dim NUMERO1 As Integer NUMERO2 = Val(txtDisplay.Text) ' Somma dei due addendi SOMMA = NUMERO2 + NUMERO1 ' Stampa a video della loro somma txtdisplay.text = SOMMA Problema 16. Scrivere un algoritmo che permette di realizzare un semplice Browser per navigare usando il controllo web browser della finestra degli strumenti e i suoi metodi: webrowser.gohome( ), webrowser.goback( ), webrowser.goforward( ) e webrowser.navigate( ). Assegnare ai pulsanti: >> (avanti), << (indietro) e home (pagina iniziale) del form uno dei primi 3 metodi suddetti e alla casella di testo, txtindirizzo seguente, il metodo webrowser.navigate( ) 1) Tabelle delle variabili e costanti indirizzo E l indirizzo del browser stringa 2. assegna a indirizzo, l indirizzo scritto nella textbox 3. se l indirizzo è corretto o c è linea carica la pagina web 4. Fine 4) Creazione del Form Visualbasic. Net Non disegnato per mancanza di tempo 5) Codifica del corpo del bottone Vai Private Sub btnvai_click() ' dichiarazione variabile Dim indirizzo As String ' input indirizzo = txtindirizzo.text ' metodo webrowser.navigate( ) webrowser.navigate(indirizzo) End Sub 21