programmare in visual basic, prima lezione
DESCRIPTION
classe terza scuola secondaria superiore primi diagrammi a blocchi in visual basicTRANSCRIPT
Programmare in Visual Basic
Secondo esercizio•Input / Output•Dichiarazione delle variabili•Concatenazione di stringhe
Questa opera è sotto licenza
Si puo’ usarla liberamente… • Citando la fonte
• Per scopi non commerciali
• Rimettendola a disposizione di tutti con la stessa licenza
• A cura di Stefano Floris [email protected](per scopi commerciali occorre richiedere espressa autorizzazione)
Testo del problema da risolvere
Calcolare la media dei voti dopo aver preso in input il voto orale e quello scritto.
Individuiamo i dati in input e output
• Dati in Input: Orale, Scritto
• Dati in Output: Media
Diagramma a blocchiTraduzione del diagramma a
blocchi in Visual BasicINIZIO
OraleScritto
Media <-(Orale+Scritto)/2
Media
FINE
La media dei voti indicati è 5!
Operazione di input.Utilizzo due controlli textbox (uno per ciascun dato)
Elaborazione.Devo calcolare la media dei voti, il risultato della formula lo salvo in una variabile che chiamo media (e che devo dichiarare)
Output.Dopo il calcolo mi preoccupo di visualizzarlo all’utente. Ho due possibilità (MsgBox oppure un controllo di tipo textbox).In entrambi i casi devo comporre un messaggio che sia comprensibile dall’utente. Per esempio:
Traduzione in Visual BasicINIZIO
OraleScritto
Media <-(Orale+Scritto)/2
Media
FINE
Controllo textBox
Nome: txtOraleControllo textBox
Nome: txtScritto
Controllo CommandButton
Nome: cmdCalcolaMedia
Traduzione in Visual BasicPrima di usare una variabile devo dichiararla (media è reale perché riceve il risultato di una divisione, quindi Double):
Option Explicit
Dim Media As Double
----------------------------------------------------------------
INIZIO
OraleScritto
Media <-(Orale+Scritto)/2
Media
FINE
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)
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
----------------------------------------------------------------
INIZIO
OraleScritto
Media <-(Orale+Scritto)/2
Media
FINE
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!
Somma!INIZIO
OraleScritto
Media <-(Orale+Scritto)/2
Media
FINE
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=1414/2=7
Dentro la variabile Media ci finisce il valore giusto!!
Finalmente l’output!INIZIO
OraleScritto
Media <-(Orale+Scritto)/2
Media
FINE
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”
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…
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…
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)
Output! Due scelte.INIZIO
OraleScritto
Media <-(Orale+Scritto)/2
Media
FINE
1° Possibilità (MsgBox)
MsgBox “Ecco, la media è” & cstr(Media)
2° Possibilità (usando il textBox)
txtMedia.Text = “Ecco, la media è” & cstr(Media)
Output! Usando il TextBoxINIZIO
OraleScritto
Media <-(Orale+Scritto)/2
Media
FINE 2° Possibilità (usando il textBox)
txtMedia.Text = “Ecco, la media è” & cstr(Media)
Il programmaINIZIO
OraleScritto
Media <-(Orale+Scritto)/2
Media
FINE
Option ExplicitDim 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 TextBoxtxtMedia.Text = "La media è " & CStr(media)End Sub
Provate da soli
Realizzare un programma per prendere in input il numero di goal fatti nelle ultime tre partite e presentare il totale dei gol fatti.