Programmazione in VB.net
Transcript
Programmazione in VB.net
“Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 1 PARTE – Introduzione agli algoritmi e alla programmazione in VisualBasic.Net 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 istruzione elementare E’ una istruzione non ulteriormente scomponibile e di semplice comprensione per la CPU Esempi di istruzioni elementari: 1) istruzioni aritmetico - logiche. Sono quelle eseguite dall’ALU nelle operazioni aritmetiche (+, , / e *) e nelle operazioni logiche (and, or, not) 2) istruzioni di trasferimento. Sono quelle usate nel trasferimento dei dati all’interno della memoria centrale (RAM) e tra questa ed i registri della CPU 3) istruzioni di input / output. Sono quelle che consentono l’immissione e l’emissione dei dati nella e dalla memoria centrale (RAM) attraverso l’uso delle periferiche di input e di output 4) istruzioni di controllo. Sono quelle che guidano lo svolgimento dell’elaborazione controllando l’ordine di esecuzione delle istruzioni elementari e sono eseguite dall’unità di controllo (CU). 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)), ecc. Negli anni sono nati molti linguaggi di programmazione sempre più vicini al modo di pensare del programmatore. Esempi di linguaggi di programmazione inventati dal programmatore negli anni - ForTran (Formula Translation) nato nel 1954 per scopi scientifici e per calcoli matematici - COBOL (Common Business Oriented Language) nato nel 1960 per scopi commerciali - PASCAL nato nel 1971 ad opera di N. Wirth progettato come linguaggio per l’insegnamento nelle scuole della programmazione strutturata (ancora in uso in qualche ITIS) - 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 - Visual Basic nato alle fine degli anni 90 e poi il Visual Basic . Net nato nel 2003. Entrambi usano il lessico (parole chiavi) base del linguaggio Basic, ma con l’aggiunta di molte altre funzioni e procedure di libreria. 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. 1 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 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. Problema1. Trovare l’algoritmo che calcola l’area del triangolo 1. inizio 2. dammi valore della base 3. dammi valore della altezza 4. calcola il prodotto: base per l’altezza 5. dividi il prodotto per due ed otterrai il valore dell’area del triangolo 6. stampa a video l’area calcolata 7. fine Variabili e Costanti In tutti i linguaggi di programmazione il programmatore ha necessità di memorizzare temporaneamente alcuni valori del programma. Tali valori sono memorizzati nelle celle della RAM. La variabile è una celletta della RAM in cui è possibile memorizzare temporaneamente i valori che variano nel tempo. nome N 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 Esempio1 - variabile intera celletta 6 A nome In tal caso A è il nome scelto per la variabile, 6 è il suo valore in un certo istante e il suo tipo è quello intero. Esempio2 - variabile decimale celletta MEDIA nome 6,5 In tal caso MEDIA è il nome scelto per la variabile, 6,5 è il suo valore e il suo tipo è quello decimale Esempio3 - variabile stringa COLORE celletta nome nero In tal caso COLORE è il nome scelto per la variabile, nero è il suo valore e il suo tipo è quello stringa MAGGIORENNE Esempio4 – variabile booleana celletta nome vero 2 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 In tal caso MAGGIORENNE è il nome scelto per la variabile, vero è il suo valore e il suo tipo è quello booleana La costante è una celletta della RAM in cui è possibile memorizzare temporaneamente i valori che non variano nel tempo, cioè che sono costanti. PIGRECO celletta nome 3,14 In tal caso PIGRECO è il nome scelto per la costante, invece 3,14 è il suo valore. Si dice che la costante PIGRECO è di tipo “decimale”, poiché contiene un numero con la virgola L’istruzione di assegnazione delle variabili. Essa permette di attribuire ad una variabile un valore Esempi di assegnazioni con costanti e variabili: - raggio = 3,14 - voto = 7 - targa = “dx112ed” - sposato = true - conta = conta +1 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. Esempio1. Tabella delle variabili dell’algoritmo area del triangolo (visto in precedenza) Tabelle delle variabili di input e output Nome Descrizione Tipo Input Output Lavoro b Base del triangolo Numerico intera X h Altezza del triangolo Numerico intera X a Area del triangolo Numerica decimale X Problema2. Trovare l’algoritmo che calcoli l’area del rettangolo. Prima dell’algoritmo disegnare la tabella delle variabili. Tabelle delle variabili di input e output Nome Descrizione b Base del rettangolo h Altezza del rettangolo a Area del rettangolo Tipo Numerico intera Numerico intera Numerica intera Input X X Output Lavoro X Algoritmo 1. Inizio 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 3 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 Definizione di struttura di sequenza o sequenziale In un algoritmo si parla di struttura di sequenza quando le istruzioni elementari dell’algoritmo sono una di seguito all’altra come mostra la figura: Es. di algoritmi con strutture sequenziali sono quelli associati ai problemi 1 e 2 studiati. Definizione di 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. Ciascun blocco ha un proprio significato. I blocchi sono: blocco di inizio o di fine, blocco di lettura o di scrittura, blocco di elaborazione, blocco di decisione o di condizione. Ma vediamoli più nel dettaglio: 1. Il blocco a forma di ovale. Esso si usa per indicare il punto di partenza e quello di terminazione dell’algoritmo. Dal blocco “inizio” parte una sola freccia che raggiunge la prima azione dell’algoritmo e verso “inizio” non arriva alcuna freccia. Invece, verso il blocco “fine” arrivano una o più frecce (in questa fig. solo una), ma da esso non ne parte nessuna. 2. Il blocco a forma di parallelogramma. Esso si usa per indicare un’operazione di immissione di dati (detta operazione di lettura o di input) o un’operazione di emissione di dati (detta anche operazione di scrittura o di output). Verso il blocco, in genere, ci sono una o più frecce di entrata (in questa fig. solo una) e dal blocco c’è una sola freccia di uscita. 3. Il blocco a forma di rettangolo. Esso si usa per indicare un’azione di calcolo. Verso il blocco, in genere, ci sono una o più frecce di entrata (in questa fig. solo una) e dal blocco c’è una sola freccia di uscita. 4 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 4. Il blocco a forma di rombo. Esso si usa per indicare un’operazione di confronto tra due dati, per stabilire se la condizione in esso inserita è vera o è falsa. Verso il blocco c’è una sola freccia di entrata e dal blocco ci sono solo due frecce di uscita in corrispondenza delle quali si trovano indicazioni del tipo si/no, vero/falso o V/F. frecce di direzione Le frecce di direzione Esse sono frecce orientate e sono usate per collegare i vari blocchi tra loro. Esempio di diagramma a blocchi A partire dall’algoritmo del calcolo dell’area del rettangolo, dedurre il diagramma a blocchi seguente: Inizio b, h A = b*h A Fine Altri simboli usati ma non sempre sono: un piccolo quadrato: per un rettangolo con 2 barre laterali per un esagono per la struttura il punto di connessione tra i sottoprogrammi, ad es. per i form di ciclica con contatore, ad es. frecce orientate VisualBasic.Net per i che va da 1 a 100 Problema3: Dati due numeri A e B, trovare l’algoritmo che calcoli la loro somma. Disegnare la tabella delle variabili e il diagramma a blocchi. 1) la tabella delle variabili di input, di output e di lavoro è la seguente: Tabelle delle variabili di input e output Nome Descrizione A Primo numero Tipo Numero intero Input X Output Lavoro 5 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 B Som Secondo numero Somma dei 2 numeri 2) Individuazione dell’algoritmo per passi Numero intero Numero intero X X 3) Individuazione del diagramma a blocchi Algoritmo per passi 1. inizio 2. dammi il valore del primo numero A 3. dammi il valore del secondo numero B 4. somma i due numeri A e B 5. visualizza la somma Som 5. fine Cosa serve per realizzare un programma in VB.net? Bisogna eseguire nell’ordine i seguenti passi: 1) 2) 3) 4) 5) Dato un problema, disegnare la tabella delle variabili (spiegato) Individuare l’algoritmo risolutivo per passi (detto anche pseudo codifica) (spiegato) Individuare il diagramma a blocchi (detto anche flowchart) (spiegato) Creare il form Visualbasic. Net, inserendo i controlli e le loro proprietà (da spiegare) Codificare l’evento click dei pulsanti di calcolo (button) inseriti nel Form (da spiegare) I passi 1), 2) e 3) sono stati già spiegati, restano da spiegare i seguenti passi 4) e 5). Tutti i seguenti algoritmi sono corredati anche di codice, poiché si ha l’obiettivo di portare in laboratorio gli alunni dopo circa un mese dall’introduzione degli algoritmi. VARIABILI E TIPI IN Visualbasic.NET I tipi di variabili che useremo in Visual Basic. Net - tipo integer è l’insieme dei numeri naturali negativi e positivi, come ad esempio: -100.-5, 0, 5, 100 ecc. - tipo decimal è l’insieme dei numeri positivi e negativi con e senza virgola, come ad esempio: -123.5, -1, 0, 5, 1234,7 - tipo booelan è l’insieme dei valori true o false, come ad esempio: maggiorenne, sposato, patentato, ecc. - tipo 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 Dim Dim Dim Dim VARIABILI A As Integer Media As Decimal Colore As String Maggiorenne As Boolean 6 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 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’interfaccia di Visual Basic.Net 2008 (si scarica qui: http://go.microsoft.com/fwlink/?linkid=57033 ) 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. Che cosa è un controllo (o strumento) di VisualBasic.Net? Un controllo (o strumento) è un elemento grafico che si trova nella finestra di VB detta “casella degli strumenti” posta al lato sinistro dello schermo. Essa è la seguente: Esempi di controlli o strumenti sono: i pulsanti (in VB button), le etichette (in VB label), le caselle di testo (in VB textbox), ecc. 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)? 7 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 Esso si usa per inserire i valori di input e per far uscire a video i valori di output. Per rappresentare tutte le caselle di testo si usa il nome sintetico: “txt”. Per distinguere le varie caselle di testo usate in form, si aggiunge al nome “txt” un nome scelto dal programmatore. 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. Per rappresentare tutti i pulsanti usati nel form si usa il termine sintetico “btn”. Per distinguere un pulsante da un altro pulsante si aggiunge a “btn” un nome scelto dal programmatore. Esempi sono: btnCalcola, btnEsci, ecc A che serve il controllo (o strumento) elenco a discesa (o combobox in VB) Esso è un elenco a discesa di elementi. Esso si usa per inserire un valore di input, da un elenco di valori predefiniti. Per rappresentare tutte le combobox usate nel form si usa il termine sintetico “cmb”. Per distinguere una combobox da un altra si usa aggiungere al termine “cmb” un nome scelto dal programmatore. Esempi sono: cmbTemperatute, cmbQuantità, ecc 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à posta sul lato destro dell’interfaccia di VB.Net. (fig. a) (fig.b) Definizione di oggetto 8 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 Un oggetto è un qualsiasi form, controllo o libreria del linguaggio. Più semplicemente gli oggetti (form, controlli e libreria1) 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 programmare per l’evento 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 - 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:) 1 Un es.di oggetto di libreria è math, di cui più avanti si utilizzerà il metodo math.sqrt( ) 9 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 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” Esempio1 – Calcolo del form relativo all’algoritmo del calcolo dell’area del rettangolo. Tabelle delle variabili di input e output Nome Descrizione Tipo B Base del rettangolo Numerico intera H Altezza del rettangolo Numerico intera A Area del rettangolo Numerica intera 2 Input X X Output Lavoro X Da non confondersi al modo con cui ci si riferisce ad una proprietà di un oggetto: nomoggetto.proprietà 10 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 Algoritmo 1. Inizio 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 ' 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 End Sub ' ASSEGNAZIONE DELL’AREA CALCOLATA ALLA CASELLA DI TESTO txtArea txtArea.Text = area 11 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 Riprendiamo l’algoritmo della somma di 2 numeri disegnando solo il form. Nel form Visualbasic.Net, inseriamo gli oggetti: label, textbox e botton, ecc. e definendo le loro proprietà 5) Codifica del corpo dei pulsanti di calcolo (button) inseriti nel Form Qui nel form c’è un solo pulsante che effettua un calcolo e si chiama “+”. Pertanto procederemo a scrivere il codice visualbasic.net sono per tale pulsante. Esso è il seguente: CODIFICA PULSANTE “+” ' DICHIARAZIONE DELLE VARIABILI Dim A, B, Som As Integer ' INPUT DEL VALORE DI A E DEL VALORE DI B A=Val(txtA.Text) B=Val(txtB.Text) ' SOMMA A+B Som=A+B Å txtA è il nome della casella di testo creata per A, mentre .Txt è la proprietà testo delle caselle txtA.Text e txtB.Text ' STAMPA SOMMA txtSom.Text=som Problema5: Dati un numero A, calcolare il suo quadrato QA e doppio DA e li stampi a video 1) Tabelle delle variabili di input e output Nome Descrizione A Primo numero QA Quadrato di A DA Doppio di A 2) Algoritmo per passi 1. inizio 2. dammi il valore del primo numero A 3. calcola il suo quadrato, AQ=A*A 4. calcola il suo doppio, DA=2*A 5. visualizza AQ e DA 6. fine Tipo Numero intero Numero intero Numero intero Input X Output Lavoro X X 3) Algoritmo col diagramma a blocchi 12 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 4) Creazione del form Visualbasic. Net 5) CODIFICA PULSANTE “Calcola” ' DICHIARAZIONE DELLE VARIABILI DIM a, qa, da, As Integer ' INPUT DEL VALORE DI A a = Val (txtA.Text) ' CALCOLO DEL QUADRATO DI A qa = a*a ' CALCOLO DEL DOPPIO DI A da = a+a ' STAMPA A VIDEO DI QA E DA txtQa.Text = qa txtDa.Text = da Problema6: Date le basi maggiori e minori e l’altezza di un trapezio, calcolare l’area. 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 Nome Descrizione Tipo B1 Base maggiore Numero intero b2 base minore Numero intero H Altezza Numero intero SOM Somma (B1+b2) Numero intero P Prodotto SOM*H Numero intero Area Area del trapezio P/2 Numero decimale Input X X X Output Lavoro X X X Esercizio Ricavare dal problema6 suddetto e dalla tabella delle variabili: l’algoritmo, il diagramma a blocchi, il form e il codice vbasic del pulsante calcola Problema7: Scrivere un algoritmo che dati tre voti interi A, B e C letti in input, calcoli la media aritmetica e la stampi in output 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 Nome Descrizione Tipo A 1° voto Numero intero B 2° voto Numero intero C 3° voto Numero intero SOM Somma dei tre voti Numero intero MED Media dei tre voti Numero decimale Input X X X Output Lavoro X X 13 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 3) Algoritmo col diagramma a blocchi 2) Algoritmo per passi 1. Inizio 2. Dammi il primo voto A 3. Dammi il secondo voto B 4. Dammi il terzo voto C 5. Somma i tre voti A, B e C 6. Calcola la media dei tre voti 7. Fine Inizio A,B,C SOM =A+B+C Media =SOM / 3 Media Fine 4) Creazione del form Visualbasic. Net 5) CODIFICA PULSANTE “Calcola” C ' DICHIARAZIONE DELLE VARIABILI Dim A, B, C, SOM As Integer Dim media As Decimal ' INPUT DEI VALORI DI A, B e A = Val (txtA.Text) B = Val (txtB.Text) C = Val (txtC.Text) ' CALCOLO DELLA MEDIA SOM = A + B + C media = SOM / 3 ' STAMPA DELLA MEDIA A VIDEO txtMedia.Text = media Problema8: Scrivere un algoritmo che dati due numeri X e Y, effettui lo scambio dei valori e stampi a video i nuovi valori assunti da esse, utilizzando una variabile di appoggio. X 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 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: 14 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 1) Tabelle delle variabili di input, di output e di lavoro Nome Descrizione Tipo X Primo valore Numero intero Y Secondo valore Numero intero TEMP Variabile temporanea di appoggio Numero intero 2) Algoritmo per passi Input X X Output X X Lavoro X 3) Algoritmo col diagramma a blocchi 1. Inizio 2. Dammi i valori di X e Y 3. Assegna a TEMP il valore di X 4. Assegna ad X il valore di Y 5. Assegna ad Y il valore di TEMP 6. Stampa X 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 X E Y x = Val(txtX.Text) y = Val(txtY.Text) 'SCAMBIO DEI VALORI DELLE X E Y temp = x 'CONSERVO IN TEMP, X x = y y = temp ' STAMPA DEI NUOVI VALORI DI X E Y txtX.Text = x txtY.Text = y Problema9: 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 Per la realizzazione di un programma in VB.net seguire i seguenti 5 passi: 15 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 1) Tabelle delle variabili di input, di output e di lavoro Nome Descrizione Tipo A Primo valore Numero intero B Secondo valore Numero intero C Terzo valore Numero intero D Quarto Valore Numero intero TEMP Variabile temporanea di appoggio Numero intero 2) Algoritmo per passi Input X X X X Output X X X X Lavoro X 3) Algoritmo col diagramma a blocchi 1. Inizio 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 Problema10: 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 Nome Descrizione Tipo Input Output Lavoro 16 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 Numero da 1 a 1000 di cui si Numero intero vuole conoscere la tabellina Numero intero 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 NUM R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 2) Algoritmo per passi 1. Inizio 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 X X X X X X X X X X X 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 17 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 Problem11: Trovare l’algoritmo che calcoli una tabella di conversione da euro a 8 valute e stampi le conversioni 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 Nome Descrizione Tipo Euro Valuta in Euro Numero decimale Lira Valuta in Lire “” Franco Valuta in Franco “” DollaroUsa Valuta in dollaro Americano “” DollaroAustr Valuta in dollaro Austrialano “” Scellino Valuta in scellino Austriaco “” Yen Valuta in yen Giapponese “” Corona Valuta in corona Ceka “” Sterlina Valuta in sterlina Inglese “” 2) Algoritmo per passi 1. Inizio 2. leggi la valuta euro 3. assegna a Lira, euro* 1936.27 4. assegna a Franco, euro* 1.33973 5. assegna a DollaroUsa, euro* 1.35264 6. assegna a DollaroAustr, euro* 1.3782 7. assegna a Scellino, euro* 13.7603 Input X Output Lavoro X X X X X X X X 8. assegna a Yen, euro* 112.66 9. assegna a Corona, euro* 24.6874 10. assegna a Sterlina, euro* 0.85044 11. stampa a video Lira, Franco, DollaUsa 12. stampa a video DollaroAustr, Scellino 13. stampa a video Yen, Corona, Sterlina 14. fine Inizio Euro Lira = Euro*1936.27 Franco = Euro* 1.33973 DollaroUsa = Euro*1.35264 DollaroAustr = Euro*1.3782 Scellino = Euro*13.7603 Yen = Euro*112.66 Corona = Euro*24.6874 Sterlina = Euro*0.85044 stampa Fine CODIFICA PULSANTE CONVERTI Dim lira, franco, dollarousa, dollaroa, scellino, yen, corona, sterlina As Decimal 'calcolo euro= Val (txtEuro.Text) Lira= euro * 1936.27 Franco = euro * 1.33973 DollaroUsa = euro * 1.352 DollaroAustr = euro * 1.3782 Scellino = euro * 13.7603 Yen = euro * 112.66 Corona = euro * 24.6874 Sterlina = euro * 0.85044 'stampa a video Label1.Text = lira Label2.Text = franco Label3.Text = dollarousa Label4.Text = dollaroa Label5.Text = scellino Label6.Text = yen Label17.Text = corona Label18.Text = sterlina 18 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 Definizione di 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: 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) 3) 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 In Visual Basic.Net quantità, in base alla quantità richiesta effettua uno Dim prezzo, quantità, tasso As Decimal tasso di sconto diverso. 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 19 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 Problema12: Dati due numeri N1 e N2, determinare il minimo e il massimo e stamparli 1) Tabelle delle variabili di input e output Nome Descrizione N1 Primo Numero N2 Secondo Numero MIN Minimo tra i due numeri MAX Massimo tra due numeri 2) Algoritmo per passi 1. inizio 2. dammi due valori diversi per N1 e per N2 3. confronta N1 con N2 4. se N1 > N2, allora MAX=N1 e MIN = N2 5. altrimenti MIN = N1 e MAX = N2 6. stampa MIN e MAX 7. fine 4) Creazione del form Visualbasic. Net Tipo Numero intero Numero intero Numero intero Numero intero Input X X Output Lavoro X X 3) Algoritmo col diagramma a blocchi 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 Problema13 : Dati due numeri N1 e N2, ordinarli in ordine crescente e stamparli a video 1) Tabelle delle variabili di input e output Nome Descrizione N1 Primo Numero N2 Secondo Numero 2) Algoritmo per passi 1. inizio 2. dammi due valori diversi per N1 e per N2 3. confronta N1 con N2 4. se N1 > N2, allora stampa N2 e poi N1 5. altrimenti stampa N1 e poi N2 6. fine 4) Creazione del form Visualbasic. Net Tipo Numero intero Numero intero Input X X Output Lavoro 3) Algoritmo col diagramma a blocchi Non disegnato per mancanza di tempo 5) Codifica del corpo dei pulsanti di calcolo Dim N1, N2 As Integer ' input N1 = Val(txtN1.Text) N2 = Val(txtN2.Text) ' controllo e stampa a video If N1 < N2 Then lbl3.text = N1 lbl4.text = N2 Else lbl3.Text = N2 lbl4.Text = N1 End If 20 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 Problema14: Dati due numeri N1 e N2, calcolare quello positivo e quello negativo e stamparlo 1) Tabelle delle variabili di input e output Nome Descrizione N1 Primo Numero N2 Secondo Numero POS Numero Positivo NEG Numero Negativo 2) Algoritmo per passi 1. inizio 2. dammi due valori diversi per N1 e per N2 3. confronta N1 con N2 4. se N1 > 0, allora POS=N1 e stampa POS 5. altrimenti NEG=N1 e stampa NEG 5. se N2 >0, allora POS=N2 e stampa POS 5. altrimenti NEG=N2 e stampa NEG 6. fine 4) Creazione del form Visualbasic. Net Tipo Numero intero Numero intero Numero Intero Numero Intero Input X X Output Lavoro X X 3) Algoritmo col diagramma a blocchi Non disegnato per mancanza di tempo 5) Codifica del corpo dei pulsanti di calcolo Dim N1, N1 N2 If N2, POS, NEG As Integer = Val(txtN1.text) = Val(txtN2.text) N1 > 0 Then POS = N1 lbl4.Text = POS Else NEG = N1 lbl3.Text = NEG End If If N2 > 0 Then POS = N1 lbl4.Text = POS Else NEG = N2 Lbl3.Text = NEG End If Problema15: Dati due numeri N1 e N2, determinare quello pari e quello dispari e stamparli 1) Tabelle delle variabili di input e output Nome Descrizione N1 Primo Numero N2 Secondo Numero PARI Numero Pari DISP Numero Dispari Q1,Q2 Quozienti dei numeri N1 e N2 R1,R2 Resti delle divisioni per 2 Tipo Numero intero Numero intero Numero Intero Numero Intero Numero Intero Numero Intero Input X X Output Lavoro X X X X 21 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 2) Algoritmo per passi 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 3) Algoritmo col diagramma a blocchi 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 Problema16: Dati tre numeri N1,N2 e N3 determinare quello Max e stamparlo a video 1) Tabelle delle variabili di input e output Nome Descrizione N1 Primo Numero N2 Secondo Numero N3 Terzo Numero 2) Algoritmo per passi 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 Tipo Input Output Lavoro Numero intero X Numero intero X Numero intero X 3) Algoritmo col diagramma a blocchi 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 PROBLEMA17: Scrivere un algoritmo che dati 3 numeri N1, N2 e N3 positivi e negativi, calcoli la somma dei numeri positivi e la stampi a video. 1) Tabelle delle variabili di input e output Nome Descrizione N1 Primo Numero N2 Secondo Numero N3 Terzo Numero SOM Somma dei numeri positivi Tipo Numero intero Numero intero Numero intero Numero intero Input X X X Output Lavoro X 22 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 2) Algoritmo per passi 1. inizio 2. dammi i valori N1, N2, N3 3. Se N1 > 0 allora a SOM=SOM+N1 4. Se N2 > 0 allora a SOM=SOM+N2 5. Se N3 > 0 allora a SOM=SOM+N3 6. stampa SOM 7. fine 4) Creazione del form Visualbasic. Net 3) Algoritmo col diagramma a blocchi 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) ' calcolo If N1 > 0 If N2 > 0 If N3 > 0 ' output lbl5.text Then SOM=SOM+N1 End If Then SOM=SOM+N2 End If Then SOM=SOM+N3 End If = SOM La variabile conteggio Una variabile conteggio è un contatore che viene inizializzato al valore zero3 e poi viene incrementato di una unità ogni qual volta si verifica una certa condizione. PROBLEMA18: Scrivere un algoritmo che dati 3 numeri N1, N2 e N3 positivi e negativi, conti quanti sono positivi e li stampi a video. (Suggerimento: usare una variabile conteggio contapos). 1) Tabelle delle variabili di input e output Nome Descrizione N1 Primo Numero N2 Secondo Numero N3 Terzo Numero CONTPOS Contatore di numeri positivi Tipo Numero intero Numero intero Numero intero Numero intero Input X X X Output Lavoro X 3 Per far capire il perché la variabile conteggio viene inizializzata a zero, dire che essa è simile al contatore del contachilometri dell’automobile o al contasecondi del cronometro di un orologio: tutti partono da zero. In seguito, però, ci saranno anche variabili a conteggio che saranno inizializzata ad un valore diverso come ad es. la variabile indice ciclo (ad 1, a 2) ecc. 23 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 2) Algoritmo per passi 1. inizio 2. dammi i valori N1, N2, N3 3. Se N1 > 0 allora CONTPOS+=1 4. Se N2 > 0 allora CONTPOS+=1 5. Se N3 > 0 allora CONTPOS+=1 6. stampa CONTPOS 7. fine 4) Creazione del form Visualbasic. Net 3) Algoritmo col diagramma a blocchi 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) ' calcolo If N1 > 0 Then CONTPOS+=1 End If If N2 > 0 Then CONTPOS+=1 End If If N3 > 0 Then CONTPOS+=1 End If ' output lbl5.text = CONTPOS PROBLEMA19: Scrivere un algoritmo che dati 3 numeri N1, N2 e N3 pari e dispari, conti quanti sono pari e li stampi a video. (Suggerimento: usare una variabile conteggio contapari) 1) Tabelle delle variabili di input e output Nome Descrizione N1 Primo Numero N2 Secondo Numero N3 Terzo Numero CONTPARI Contatore dei numeri pari Q1, Q2 Quozienti Q1 e Q2 R1, R2 Resto R1 e R2 2) Algoritmo per passi 1. inizio 2. dammi i valori N1, N2, N3 3. Q1=N1/2, Q2=N2/2, Q3=N3/2 4. R1=N1-Q1*2, R2=N2-Q2*2, R3=N3-Q3*2, 5. Se R1 = 0 allora CONTPARI+=1 6. Se R2 = 0 allora CONTPARI+=1 7. Se R3 = 0 allora CONTPARI+=1 8. stampa CONTPARI 9. fine 4) Creazione del form Visualbasic. Net Tipo Numero intero Numero intero Numero intero Numero intero Numero intero Numero intero Input X X X Output Lavoro X X X 3) Algoritmo col diagramma a blocchi Non disegnato per mancanza di tempo 5) Codifica del corpo del pulsante calcola Dim N1, N2, N3, Q1, Q2, Q3 As Integer ' input N1=Val(txtN1.text), Q1=N1/2, R1=N1-Q1*2 N2=Val(txtN2.text), Q2=N2/2, R2=N2-Q2*2 N3=Val(txtN3.text), Q3=N3/2, R3=N3-Q3*2 ' calcolo If R1 = 0 Then CONTPARI+=1 End If If R2 = 0 Then CONTPARI+=1 End If If R3 = 0 Then CONTPARI+=1 End If ' output lbl5.text = CONTPOS 24 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 PROBLEMA20: 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 Nome Descrizione a Primo Numero b Secondo Numero c Terzo Numero T Variabile Temporanea Tipo Numero intero Numero intero Numero intero Input X X X Output X X X Lavoro X 2) Algoritmo per passi 3) Algoritmo col diagramma a blocchi 1. inizio 2. dammi i valori a, b, c Non disegnato per mancanza di tempo 3. se a > b scambiali di posto in modo che il minimo sia al 1) posto 5) Codifica del corpo del pulsante calcola 4. se a > c scambiali di posto in modo che il Dim t, a, b, c As Integer minimo sia al 1) posto ' input 5. se b > c scambiali di posto in modo che il a = Val(txtA.Text) minimo sia al 2) posto b = Val(txtB.Text) c = Val(txtC.Text) 6. stampa a video i nuovi valori di a,b e c 7. fine 4) Creazione del form Visualbasic. Net ' 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 Problema21: 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 Nome Descrizione Tipo Input prezzo Prezzo del prodotto Numero decimale X quantità Quantità dello stesso prodotto Numero intero X ilordo Importo lordo Numero decimale inetto Importo netto da pagare Numero decimale sconto Sconto da applicare all’importo lordo Numero intero tasso Tasso di sconto in base alla quantità Numero intero Output Lavoro X X X X 25 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 2) Algoritmo per passi 3) Algoritmo col diagramma a blocchi 1. Inizio 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 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 26 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 Problema22: 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 sconto4 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 Nome Descrizione costo Costo di un cellulare pezzi N.ro di pezzi dello stesso cellulare iva Iva da aggiungere all’importo netto ilordo Importo lordo inetto Importo al netto dello sconto ivato Importo totale ivato sconto Sconto da applicare tasso Tasso di sconto in base ai pezzi 2) Algoritmo per passi 1. Inizio 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 4) Creazione del Form Visualbasic. Net Tipo Numero decimale Numero intero Numero decimale Numero decimale Numero decimale Numero decimale Numero decimale Numero intero Input X X Output Lavoro X X X X X X 3) Algoritmo col diagramma a blocchi 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 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 4 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 27 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 Problema23: Scrivere un algoritmo che data una temperatura stampa a video il messaggio: a) “ molto caldo ” se la temperatura è > 32; c) “ mite ” se la temperatura è > 16; e) “ freddo ” se la temperatura è > 0; 1) Tabelle delle variabili e costanti Nome Descrizione temp Temperatura scelta 2) Algoritmo per passi 1. Inizio 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 b) “caldo” se la temperatura è > 25; d) “ fresco ” se la temperatura è > 10; f) “ molto freddo ” se la temperatura è altrimenti. Tipo Numero decimale Input X Output Lavoro 3) Algoritmo col diagramma a blocchi 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 La struttura di ripetizione o iterativa o ciclo Essa, in generale, consente di ripetere l’esecuzione di una porzione di algoritmo più volte, finché è verificata una certa condizione. Essa può essere di tre tipi: a iterazione prestabilita o ciclo a contatore, a iterazione a controllo di testa o ciclo a condizione iniziale e a iterazione a controllori coda o ciclo a condizione finale. La struttura a iterazione prestabilita (FOR - TO - NEXT) Essa, nel metodo del diagramma a blocchi, si rappresenta cosi: Essa utilizza: 1) un nuovo blocco, l’esagono, che al suo interno contiene: una variabile conteggio come ad es. i, j, k 2) un valore finale, VF, scelto dal programmatore, che stabilisce a priori il numero massimo di iterazioni, ad es. 10, 100 3) blocco istruzioni che rappresenta la porzione di algoritmo da iterare, cioè il corpo dell’algoritmo 4) un piccolo rombo che sottintende ad ogni iterazione l’incremento della variabile conteggio ad es. i Å i + 1; j Å j + 1 28 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 La ripetizione del blocco istruzioni avviene finché la variabile conteggio assume un valore < = al valore finale VF prestabilito, mentre si arresta quando la variabile conteggio assume un valore > del valore finale VF prestabilito. Quando si usa tale struttura a iterazione prestabilita? Essa si usa quando nell’algoritmo ci sono una o più istruzioni che si ripetono un numero di volte prestabilito. PROBLEMA24: Trovare l’algoritmo che letti 10 numeri interi N1,…N100, calcoli la loro somma e la stampi a video. (Suggerimento: usare il controllo inputbox per leggere i 100 numeri) Prima di applicare il metodo dei 5 passi, cerchiamo di capire meglio il problema: Ricordiamo che l’algoritmo che risolveva il problema della somma di due numeri x e y, richiedeva 3 variabili: di cui 2 per i numeri N1 e N2 e una per la variabile som. Qui, invece, il nostro problema è di fare la somma di 100 numeri, quindi dovremmo usare 101 variabili: di cui 100 per i numeri N1, …., N100 e una per la variabile somma SOM. Inoltre, dovremmo leggere la prima variabile N1 e poi sommarla alla variabile somma SOM, leggere la seconda variabile N2 e poi sommarla alla variabile somma SOM,……leggere la 100° variabile N100 e poi sommarla alla variabile somma SOM. Tale soluzione fa prevedere un algoritmo lunghissimo. Come possiamo ovviare a questo problema? 5 Osservazione: In tale soluzione si ripetono 100 volte la coppia di istruzioni: lettura della variabile Ni e somma del valore della variabile Ni al valore della variabile somma SOM. 1) Tabelle delle variabili di input e output Nome Descrizione N Numero generico da sommare SOM Somma totale dei 10 numeri X E’ una stringa di caratteri 2) Algoritmo per passi 1. inizio 2. inizializza som a 0 3. Per I che va da 1 a 100 4. leggi il numero N 5. assegna a som, la quantità som + N 6. vai al prossimo I e torna al passo 3 7. scrivi a video il valore di som 8. fine Tipo Numero intero Numero intero Stringa Input X Output Lavoro X X 3) Algoritmo col diagramma a blocchi 4) Creazione del form Visualbasic. Net 5 Nota.: per far rendere conto gli allievi che effettivamente tale soluzione è lunghissima conviene disegnare alla lavagna a sx l’algoritmo senza ciclo (fermandosi alla lettura e alla somma parziale delle prime due variabili n1 e n2, scrivendo i puntini, e poi scrivendo la lettura e la somma parziale della variabile n100) e a dx l’algoritmo con il ciclo 29 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 Nei form per evitare di usare tante caselle di testo per leggere i 10, 100 ecc. numeri, si usa una funzione del visualbasic.net che si chiama input box. Vediamo qui come si usa. 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. Tale funzione InputBox ha due parametri separati dalla virgola: il 1) obbligatorio e il 2) facoltativo. La sintassi della funzione InputBox è la seguente: InputBox(“testo messaggio utente nel prompt (zona grigia)”, “testo nel title (barra blu)”) Poiché il 2) parametro è facoltativo, se non viene specificato, il testo che appare nel title è quello del nome della form che si sta utilizzando. Esempi: inserendo entrambi i parametri 1) e 2) nella funzione InputBox() (fig.a) (fig. b) Codice VB Codice VB InputBox("QUALE' IL TUO PIATTO PREFERITO?", "ELENCO DEI PIATTI") 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 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 è la seguente: MsgBox(“messaggio utente nel prompt (zona grigia)”, numero, “testo nel title (barra blu)”) 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) 30 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 5) Codifica del corpo dei pulsanti di calcolo Private Sub btnSomma_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSomma.Click Dim i, numero, som As Integer Dim x As String For i = 1 To 10 x = "inserisci " & i & ") numero" ' le 2 & servono per concatenare il 1° messaggio:"inserisci " ‘ al valore corrente di i, al 2° messaggio ") numero" numero = Val(InputBox(x)) som = som + numero Next lblRisultato.Text = som End Sub 6) L’esecuzione del programma fa apparire a video 10 finestre per l’input box del tipo: PROBLEMA25: Trovare l’algoritmo che letti M numeri interi, calcoli la loro somma e la stampi a video. (Suggerimento: usare il controllo textbox per leggere la dimensione N dei numeri e tante inputbox per leggere gli N numeri) 1) Tabelle delle variabili di input e output Nome Descrizione M Dimensione dei numeri N Numero generico da sommare SOM Somma totale dei 10 numeri I E’ l’indice del ciclo X E’ una stringa di caratteri Tipo Numero intero Numero intero Numero intero Numero intero Stringa Input X X Output Lavoro X X X 31 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 2) Algoritmo per passi 1. inizio 2. inizializza som a 0 3. leggi M 4. per I che va da 1 a M 5. leggi il numero N 6. assegna a som, la quantità som+N 7. vai al prossimo I e torna al passo 4 8. scrivi a video il valore di som 9. fine 4) Creazione del form Visualbasic. Net 3) Algoritmo col diagramma a blocchi Non disegnato per mancanza di tempo 5) Codifica del corpo dei pulsanti di calcolo Private Sub btnSomma_Click() Dim i, n, m, som As Integer Dim x As String m = Val(txtMnumeri.Text) For i = 1 To m x = "inserisci " & i & ") numero" ' le 2 & servono per concatenare ‘ il 1° messaggio: "inserisci ", ‘ al valore corrente di i, al 2° ‘ messaggio ") numero" n = Val(InputBox(x)) som = som + n Next lblRisultato.Text = som End Sub PROBLEMA26: Trovare l’algoritmo che permette di calcolare il maggiore tra 10 numeri interi letti in input e di scriverlo in output6 Prima di applicare il metodo dei 5 passi, cerchiamo di capire meglio il problema: Tale problema è semplicemente la generalizzazione dello stesso problema visto precedentemente al caso di tre numeri interi, che richiedeva al massimo 2 confronti nel caso peggiore, se si utilizzava la variabile maggiore inizializzata al primo numero letto. 1) Tabelle delle variabili di input e output Nome Descrizione N E’ il numero letto MAX E’ il maggiore dei 10 numeri I E’ l’indice del ciclo X E’ una stringa di caratteri Tipo Numero intero Numero intero Numero intero Stringa Input X Output Lavoro X X X 6 Nota: successivamente questo algoritmo si può complicare ricercando oltre al maggiore anche il minore e successivamente generalizzarlo alla ricerca del maggiore e minore in una sequenza di M numeri interi letti in input. 32 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 2) Algoritmo per passi 1. inizio 2. leggi il primo numero e assegnalo a max 3. per I che va da 2 a 10 4. leggi il I) numero 5. se il numero del passo 4 > max allora a max, assegna il nuovo numero, fine se 6. vai al prossimo I e torna al passo 3 7. scrivi a video max 8. fine 3) Algoritmo col diagramma a blocchi 5) Codifica del corpo dei pulsanti di calcolo Dim i, numero, max As Integer Dim x As String x="inserisci il 1) numero" numero = Val(InputBox(x)) max = numero For i = 2 To 10 x = "inserisci " & i & ") numero" ' le 2 & servono per concatenare "inserisci " 'al valore corrente di i, e al 2° msg ") numero" numero = Val(InputBox(x)) If (numero > max) Then max = numero End If Next txtMax.Text = max 4) Creazione del form Visualbasic. Net PROBLEMA27: Trovare l’algoritmo che letti M numeri interi, calcoli il maggiore degli M numeri e lo stampi a video. 1) Tabelle delle variabili di input e output Nome Descrizione M E’ la dimensione dei numeri. N E’ il numero letto MAX E’ il maggiore degli N numeri letti I E’ l’indice del ciclo X E’ una stringa di caratteri 2) Algoritmo per passi 1. inizio 2. leggi la dimensione M 3. leggi il primo numero e assegnalo a MAX 4. per I che va da 2 a M 5. leggi il I) numero 6. se il numero del passo 4 > MAX allora a MAX, assegna il nuovo numero, fine se 7. vai al prossimo I e torna al passo 4 8. scrivi a video MAX 9. fine Tipo Numero intero Numero intero Numero intero Numero intero Stringa Input X X Output Lavoro X X X 3) Algoritmo col diagramma a blocchi Non disegnato per mancanza di tempo 4) Creazione del form Visualbasic 5) Codifica del corpo dei pulsanti di calcolo Non effettuata poiché è la stessa del problema 3 precedente dove al posto di 10 c’è M 33 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 PROBLEMA28: Trovare l’algoritmo che letti i primi M numeri naturali, calcoli e stampi a video il messaggio “è positivo” se il numero letto è positivo e il messaggio “è negativo” se il numero letto è negativo. (Suggerimento: usare la funzione Inputbox( ) per leggere gli M numeri e la funzione Msgbox( ) per stampare gli M messaggi a video) 1) Tabelle delle variabili di input e output Nome Descrizione M E’ la dimensione dei numeri. N E’ il numero letto I E’ l’indice del ciclo X E’ una stringa di caratteri Tipo Numero intero Numero intero Numero intero Stringa Input X X Output Lavoro X X 2) Algoritmo per passi 3) Algoritmo col diagramma a blocchi 1. inizio Non disegnato per mancanza di tempo 2. leggi la dimensione M 3. per I che va da 1 a M 4) Creazione del form Visualbasic 4. leggi il I) numero, N 5. se il numero N del passo 4 > 0 allora stampa il messaggio “è positivo” altrimenti stampa il messaggio “è negativo”, fine se 7. vai al prossimo I e torna al passo 3 8. fine 5) Codifica del corpo del pulsante btnCalcola_Click Dim m, n, i As Integer Dim x As String m = Val(txtM.Text) For i = 1 To m x = "inserisci il " & i & ") numero" n = Val(InputBox(x)) If (n > 0) Then MsgBox("numero è positivo") Else MsgBox("numero è negativo") End If ' incremento indice i del ciclo Next 6) L’esecuzione del programma fa apparire a video N coppie di finestre del tipo seguente: 34 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 PROBLEMA29: Trovare l’algoritmo che letti M numeri naturali, calcoli e stampi a video il messaggio “è pari” se il numero letto è pari e il messaggio “è dispari” se il numero letto è dispari. (Suggerimento: usare la funzione Inputbox( ) per leggere gli M numeri e la funzione Msgbox( ) per stampare gli M messaggi a video; la funzione mod per calcolare il resto) 1) Tabelle delle variabili di input e output Nome Descrizione M E’ la dimensione dei numeri. N E’ il numero letto I E’ l’indice del ciclo X E’ una stringa di caratteri Tipo Numero intero Numero intero Numero intero Stringa Input X X Output Lavoro X X 2) Algoritmo per passi 3) Algoritmo col diagramma a blocchi 1. inizio Non disegnato per mancanza di tempo 2. leggi la dimensione M 3. per I che va da 1 a M 4) Creazione del form Visualbasic 4. leggi il I) numero N 5. se il numero N MOD 2 = 0 allora stampa il messaggio “è pari”, altrimenti stampa il messaggio “è dispari”, fine se 7. vai al prossimo I del passo 3 8. fine 5) Codifica del corpo del pulsante btnCalcola_Click Dim m, n, i As Integer Dim x As String m = Val(txtM.Text) For i = 1 To m x = "inserisci il " & i & ") numero" n = Val(InputBox(x)) If (n Mod 2 = 0) Then MsgBox("numero è pari") Else MsgBox("numero è dispari") End If Next 6) L’esecuzione del programma fa apparire a video N coppie di finestre del tipo seguente: PROBLEMA 30: Trovare l’algoritmo che letti N numeri naturali, calcoli la media tra il 1° elemento, l’ultimo elemento e l’elemento centrale e la stampi a video. 1) Tabelle delle variabili di input e output Nome Descrizione N E’ la dimensione dei numeri Num E’ il numero letto I E’ l’indice del ciclo Tipo Numero intero Numero intero Numero intero Input X X Output Lavoro X 35 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 Som Media R Q Meta Somma dei 3 elementi E’ la media dei 3 elementi E’ il resto della divisione E’ il quoziente della divisione Posizione dell’elemento centrale 2) Algoritmo per passi 1. inizio 2. leggi la dimensione N 3. Assegna a Q, N / 2 4. Assegna a R, N – 2 * Q 5. Se R = 0 allora Meta = N / 2 altrimenti Meta = N / 2 +1, fine se 6. Per I che va da 1 a N 7. Leggi Numero, Num 8. Se I=1 allora assegna a Som, Som+Num 9. Se I=Meta allora assegna a Som, Som+Num 10. Se I=N allora assegna a Som, Som+Num 11. Incrementa I, di 1 e torna al passo 6 12. Assegna a Media, Som / 3 13. Scrivi Media 14. fine Numero Intero Numero Decimale Numero Intero Numero Intero Numero Intero X X X X X 3) Algoritmo col diagramma a blocchi Non disegnato per mancanza di tempo 4) Creazione del form Visualbasic (Test effettuato con i seguenti numeri: 1, 2, 3, 4, 5. In tal caso infatti la somma=1+3+5=9 e quindi la media è 9 / 3 = 3 ) 5) Codifica del corpo del pulsante btnCalcolaMedia_Click Dim N, NUM, Q, R As Integer Dim Meta, SOM, I As Integer Dim MEDIA As Decimal N = Val(txtN.Text) Q = N / 2, R = N - 2 * Q If R = 0 Then Meta = Q Else Meta = Q + 1 End If For I = 1 To N NUM=InputBox("Numero ?”) If (I = 1) Then SOM = SOM + NUM End If If (I = Meta) Then SOM = SOM + NUM End If If (I = N) Then SOM = SOM + NUM End If Next MEDIA = SOM / 3 txtMedia.Text = MEDIA PROBLEMA 31: Trovare l’algoritmo che letti N numeri naturali, calcoli la media tra gli elementi di indici pari e la stampi a video. 1) Tabelle delle variabili di input e output Nome Descrizione N E’ la dimensione dei numeri Num E’ il numero letto I E’ l’indice del ciclo Som Somma degli elementi di indici I pari Media E’ la media degli elementi di indici pari Cont Contatore di elementi di indici pari 2) Algoritmo per passi 1. Inizio Tipo Input Numero intero X Numero intero X Numero intero Numero Intero Numero Decimale Numero Intero Output Lavoro X X X X 3) Algoritmo col diagramma a blocchi 36 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 2. Leggi N 3. Assegna a Cont, N / 2 4. Per I che va da 1 a N 5. Leggi Numero, Num 6. Q = I / 2 7. R = I – 2 * Q 8. Se R=0 allora assegna a Som, Som+Num 9. Incrementa I, di 1 e torna al passo 4 10. Assegna a Media, Som / Cont 11. Scrivi Media 12. Fine Non disegnato per mancanza di tempo 4) Creazione del form Visualbasic (Test effettuato con i seguenti numeri: 1, 2, 3, 4, 5, 6, 7. In tal caso infatti la somma = 2 + 4 + 6 = 12 e quindi la media è 12 / 3 = 4 ) 5) Codifica del corpo del pulsante btnCalcolaMedia_Click Dim N, NUM, Q, R, I As Integer Dim Som, Cont As Integer Dim MEDIA As Decimal N = Val(txtN.Text) SOM = 0 Cont = N/2 ‘ su N numeri letti i pari sono N/2 For I = 1 To N NUM = InputBox("NUMERO?") Q = I / 2 R = I - (2 * Q) If R = 0 Then SOM = SOM + NUM End If Next MEDIA = (SOM / ContNumIndPari) txtMedia.Text = MEDIA Problema32: 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 Nome Descrizione Tipo NUMERO1 Primo Numero Numero intero NUMERO2 Secondo Numero Numero intero SOMMA Somma dei 2 numeri Numero intero Algoritmo per passi Input X X Output Lavoro X Creazione del form Visualbasic. Net 1. Inizio 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. 37 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 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 =. - 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" 38 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 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 NUMERO1 = Val(txtDisplay.Text) ' Azzeramento display txtDisplay.Text = "" Dim SOMMA, NUMERO2 As Integer ' Calcolo formato numerico del 2 addendo numero2 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 33. Sapendo che un numero a è un quadrato perfetto se la sua radice è un numero intero, cioè: trovare l’algoritmo che consenta di sapere se il numero a inserito è un quadrato perfetto. Suggerimento: la funzione radice quadrata da usare in VisualBasic.Net è math.sqrt( ) 1) Tabelle delle variabili di input e output Nome Descrizione a Numero da verificare b Parte intera radice quadrata di a qb Quadrato di b 2) Algoritmo per passi 1. inizio 2. dammi il valore del numero: a 3. ad b associa la parte intera della radice quadrata di a 4. se b*b = a allora stampa il messaggio a video “a è un quadrato perfetto” 5. altrimenti stampa il messaggio a video “a non è un quadrato perfetto” 6. fine Tipo Input Output Lavoro Numero intero X X Numero intero X Numero intero X 3) Algoritmo col diagramma a blocchi Non disegnato per mancanza di tempo 5) Codifica del corpo del pulsante calcola Dim a, b, qb As Integer; a = val(InputBox(txtA.Text)) b = int(math.sqrt(a)) qb=b*b If qb = a Then lbl1.text= "a è un quadrato perfetto" else lbl1.text= "a non è un quadr. perfetto" End If 4) Creazione del form Visualbasic. Net 39 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 PROBLEMA34: Scrivere un algoritmo che dati i 2 coefficienti b e c, di una equazione di 1 grado bx + c = 0, calcoli: il valore della soluzione x, se l'equazione è determinata oppure stampi a video il messaggio eq. impossibile o eq. indeterminata (Suggerimento l’ eq. bx + c = 0 con b e c ≠ 0 è determinata e ha un’unica soluzione x = - c / b; l’ equazione del tipo 0 = c, con c diverso da 0 è impossibile; l’ equazione 0 = 0 è indeterminata (cioè ha infinite soluzioni)). 1) Tabelle delle variabili di input e output Nome Descrizione b Coefficiente della x c Coefficiente termine noto x Soluzione dell’equazione Tipo Numero intero Numero intero Numero decimale 2) Algoritmo per passi 3) Algoritmo col diagramma a blocchi 1. inizio 2. dammi valori dei coefficienti: b, c 3. se b<> 0 allora stampa x= - c / b 4. se b=0 e c<>0 allora eq. indeterminata 5. se b=0 e c=0 allora eq. impossibile 6. fine Non disegnato per mancanza di tempo 4) Creazione del form Visualbasic. Net Input X X Output Lavoro X 5) Codifica del corpo del pulsante calcola Dim b, c As Integer Dim x As Decimal ' bx+c=0 b = Val(TextBox1.Text) c = Val(TextBox2.Text) If (b<>0) Then x = -c / b lblX.Text=x End If If (b=0 And c<>0) Then MsgBox("b=0 e c<>0 non esistono soluzioni",32, "Attenzione")End If If (b=0 And c=0) Then 'caso in cui b = 0 e c = 0 MsgBox(" 0=0 infinite soluzioni ", 32, "Attenzione")End If PROBLEMA35: Scrivere un algoritmo che dati i 3 coefficienti a,b e c, tutti e 3 ≠ 0, di una equazione di 2 grado calcoli, se il delta > 0 i valori delle soluzioni: x1 e x2 della equazione: ax2+bx+c = 0. Se invece il delta < 0, stampi a video il messaggio “soluzioni non reali” 1) Tabelle delle variabili di input e output Nome Descrizione a Coefficiente della x2 b Coefficiente della x c Termine noto delta Valore = b2-4*a*c x1 Prima radice x2 Seconda radice Tipo Numero intero Numero intero Numero intero Numero intero Numero intero Numero intero Input X X X Output Lavoro X X X 40 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 2) Algoritmo per passi 1. inizio 2. dammi valori dei coefficienti: a, b, c 3. calcolo del delta=b*b - 4*a*c 4. se delta < 0 allora mostra a video il messaggio che le soluzioni non sono reali, altrimenti 5. calcola x1 con la formula conosciuta 6. calcola x2 con la formula conosciuta 7. stampa a video i valori di x1 e di x2 8. fine 4) Creazione del form Visualbasic. Net 3) Algoritmo col diagramma a blocchi Non disegnato per mancanza di tempo 5) Codifica del corpo del pulsante calcola Dim a, b, c, delta As Integer Dim x1, x2 As Double ' input a = Val(txtA.Text) b = Val(txtB.Text) c = Val(txtC.Text) 'calcolo delta = (b * b) - (4 * a * c) If delta < 0 Then MsgBox("Δ<0 soluzioni non reali", 32, "Attenzione") Else ' Math.Sqrt() è la f. radice quadrata x1 = (-b - Math.Sqrt(delta)) / (2 * a) x2 = (-b + Math.Sqrt(delta)) / (2 * a) ' output lbl6.text = x1 lbl8.text = x2 End If IL CONTROLLO COMBOBOX 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 METODI7 ADD( ) E REMOVE ( ) DI COMBOBOX. 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’EVENTO8 SELECTED INDEX CHANCED DI COMBOBOX 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 COMBOBOX Essa individua l’elemento selezionato della combobox. ESERCIZI DI LABORATORIO SULL’USO DEL CONTROLLO COMBOBOX 7 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( ). 8 L’evento è l’azione provocata dall’utente sui form e controlli. Tale azione viene programmata in VB dal programmatore. 41 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 ESERCIZIO 1: Inserire in una form una combobox, di nome cmb1, contenente un elenco di città creato usando il percorso visuale e automatico seguente: - selezionato il controllo combobox Æ dal menù contestuale del mouse Æ Modifica elementi ESERCIZIO 2: Inserire in una form una combobox, di nome cmbColore, contenente un elenco di colori a piacere. Inserire nella form, inoltre, una casella di testo, di nome txtColore ed un pulsante, di nome btnInserisci che dovrà inserire nella combobox, tutti i nomi dei colori che l’utente scriverà casella di testo, txtColore. (Suggerimento: Il form sarà come la figura seguente) Private Sub btnInserisciColore_Click Dim colore As String colore = txtColore.Text ' aggiungi come elemento della cmb2. il valore della variabile colore cmbColore.Items.Add(colore) txtColore.Text = "" End Sub ESERCIZIO 3: Inserire in una form, una combobox, di nome cmbNumeri, contenente un elenco di numeri da 1 a 5. Inserire nella form, inoltre, una casella di testo, di nome txtNumero ed un pulsante, di nome btnInserisci che dovrà inserire nella combobox, tutti i numeri da 1 a 5 che l’utente scriverà casella di testo, txtNumero. Successivamente creare un pulsante btnElimina che dovrà eliminare dalla combobox i numeri pari 2 e 4, in modo che i numeri rimanenti nell’elenco siano sono i dispari: 1, 3, 5. (Suggerimento: Il form sarà come la figura seguente:) btnInserisciNumero_Click Dim num As Decimal num = Val(txtNum.Text) cmbNum.Items.Add(num) ' metodo add elemento txtNum.Text = "" btnEliminaNumero_Click Dim num As Decimal num = Val(txtNum.Text) cmbNum.Items.Remove(num) ‘ metodo remove elemento ESERCIZIO 4: Inserire in una form, una combox, di nome cmbSquadreCalcio, contenente un elenco di squadre a piacere creato utilizzando il metodo usato nell’ESERCIZIO 1. Inserire poi nella form una casella di testo, di nome txtElementoSelezionato, contenente l’elemento (item) selezionato nella combobox. (Suggerimento: Il form sarà come la figura seguente e bisogna programmare per il combobox l’evento SelectedIndexChanged e non l’evento click:) 42 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 Private Sub cmbSquadreCalcio_SelectedIndexChanged() ' evento SelectedIndexChanged di cmb Dim elemento As String elemento=cmbSquadreCalcio.SelectedItem ' elemento selezionato dell'elenco txtElementoSelezionato.Text = elemento End Sub ESERCIZIO 5: A partire dalla form dell’esercizio 4, inserire un nuovo pulsante di nome, btnCancellaItem, che cancella dalla combobox, cmbSquadreCalcio, l’elemento dell’elenco selezionato dall’utente. (Suggerimento: se l’utente selezionasse la squadra INTER e si premesse sul pulsante btnCancellaItem, dall’elenco dovrà sparire la parola INTER, come mostra la figura) Private Sub btnCancella_Click Dim elemento As String ' proprietà SelectedItem elemento=cmbSquadreCalcio.SelectedItem ' metodo Remove() cmbSquadreCalcio.Items.Remove(elemento) End Sub Problema36 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 Nome Descrizione num numero della tabellina 2) Algoritmo per passi 1. Inizio 2. Scegli elemento dalla combobox 3. Assegna a num, l’elemento scelto 4. Fai le seguenti assegnazioni R1=1 * num R2=2 * num R4=4 * num R5=5 * num R7=7 * num R8=8 * num R10 = 10 * num R3 = 3 * num R6 = 6 * num R9 = 9 * num 13. Stampa in label R1,R2,R3,R4,R5 15. Fine 4) Creazione del Form Visualbasic. Net Tipo Numero intero Input X Output Lavoro 3) Algoritmo col diagramma a blocchi Non disegnato per mancanza di tempo 5) Codifica del corpo del pulsante Calcola Dim num As Integer 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 37. 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) 43 “Algoritmi e programmi in VisualBasic .Net - Selezione e Ciclo For ” Prof. M. Simone - ITC ”L. Da Vinci” – Classe 3G-3F – S.Maria C.V. - A.S. 2013 /14 1) Tabelle delle variabili e costanti Nome Descrizione parola E’ il termine selezionato da tradurre Tipo stringa 2) Algoritmo per passi Input X Output Lavoro 3) Algoritmo col diagramma a blocchi 1. Inizio 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 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 4) Creazione del Form Visualbasic. Net Problema 38. 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 Nome Descrizione indirizzo E’ l’indirizzo del browser Tipo stringa 2) Algoritmo per passi 1. Inizio 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 Input X Output Lavoro 3) Algoritmo col diagramma a blocchi 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 44