6. Traduzione in Visual Basic Controllo textBox Nome: txtOrale Controllo textBox Nome: txtScritto Controllo CommandButton Nome: cmdCalcolaMedia INIZIO Orale Scritto Media <-(Orale+Scritto)/2 Media FINE
7. Traduzione in Visual Basic Prima di usare una variabile devo dichiararla (media è reale perché riceve il risultato di una divisione, quindi Double): Option Explicit Dim Media As Double ---------------------------------------------------------------- Media = (txtOrale.text + txtScritto.text) / 2 Media = ??????? Assegnazione: attribuire un valore ad una variabile Al posto dei ???? Occorre mettere il valore o l’espressione (cioè la formula per calcolare il valore) INIZIO Orale Scritto Media <-(Orale+Scritto)/2 Media FINE
8. Somma o concatenazione? Prima di usare una variabile devo dichiararla (media è reale perché riceve il risultato di una divisione, quindi Double): Option Explicit Dim Media As Double ---------------------------------------------------------------- Media = (txtOrale.text + txtScritto.text) / 2 Sbagliato! Perché se txtOrale.text vale 8 e txtScritto.text vale 6 , con questa istruzione media rischia di diventare “86” diviso due, cioè 43. Infatti il simbolo + (o il simbolo & ) somma i numeri e concatena i caratteri . Le proprietà Text sono di tipo testo (caratteri): se vogliamo sommare dobbiamo prima trasformarle in numeri ! INIZIO Orale Scritto Media <-(Orale+Scritto)/2 Media FINE
9. Somma! Prima di usare una variabile devo dichiararla (media è reale perché riceve il risultato di una divisione, quindi Double): Option Explicit Dim Media As Double ---------------------------------------------------------------- Media = ( Val(txtOrale.text) + Val(txtScritto.text) ) / 2 Finalmente!! Adesso otteniamo che 8+6=14 14/2=7 Dentro la variabile Media ci finisce il valore giusto!! INIZIO Orale Scritto Media <-(Orale+Scritto)/2 Media FINE
10. Finalmente l’output! Abbamo due modi per far l’output Usare MsgBox Oppure utilizzare un textBox dove riporre il risultato In entrambi i casi dobbiamo comporre un messaggio per chi lo deve leggere. Tipo… “ Ecco, la media dei voti è 5” INIZIO Orale Scritto Media <-(Orale+Scritto)/2 Media FINE
11. Messaggio “ Ecco, la media dei voti è 5 ” Questo messaggio è composta a sua volta da due parti. Una fissa, che è sempre uguale (sottolineata). Un’altra variabile (in rosso) . Infatti è la variabile media (di tipo numerico, reale) che contiene il valore della media. La parte in rosso è variabile perché ogni volta il suo valore dipende da come l’utente che usa il programma si comporta, dai valori che digita nello spazio dei nomi. Quindi il messaggio sarà “Ecco, la media dei è” + media, Ma…
12. Concatenazione Quindi il messaggio sarà “Ecco, la media è” + media , Ma… Il simbolo + si usa solo per somme algebriche Il simbolo & si usa per concatenare parti di testo. Visto che voglio creare un messaggio (cioè un testo) allora userò il simbolo & di concatenazione “ Ecco, la media è” & media , ma…
13. Trasformazione di tipo Visto che creo un messaggio e che sto concatenando due testi è importante verificare se le due cose che metto insieme sono dello stesso tipo (cioè testo). Media è di tipo numerico. Quindi la devo trasformare in testo con il comando cstr(Media). Il contrario di Val usata per trasformare da testo a numero . Quindi il messaggio sarà: “Ecco, la media è” & cstr(media)
14. Output! Due scelte. 1° Possibilità (MsgBox) MsgBox “Ecco, la media è” & cstr(Media) 2° Possibilità (usando il textBox) txtMedia.Text = “Ecco, la media è” & cstr(Media) INIZIO Orale Scritto Media <-(Orale+Scritto)/2 Media FINE
15. Output! Usando il TextBox 2° Possibilità (usando il textBox) txtMedia.Text = “Ecco, la media è” & cstr(Media) INIZIO Orale Scritto Media <-(Orale+Scritto)/2 Media FINE
16. Il programma Option Explicit Dim media As Double ---------------------------------------------------------- Private Sub cmdCalcola_Click() media = (Val(txtOrale.Text) + Val(txtScritto.Text)) / 2 ' Output: esempio con msgbox 'MsgBox "La media è " & CStr(media) ' Output: esempio con TextBox txtMedia.Text = "La media è " & CStr(media) End Sub INIZIO Orale Scritto Media <-(Orale+Scritto)/2 Media FINE