Date post: | 05-Dec-2014 |
Category: |
Technology |
Upload: | floste |
View: | 9,713 times |
Download: | 0 times |
Programmare in Visual Basic
• Dichiarazione variabili numeriche e di stringa (testo)
• Istruzione SE
• Input
• Output
• Concateazione di stringe
Questa opera è sotto licenza
Si puo’ usare liberamente… • Citando la fonte
• Per scopi non commerciali
• Rimettendola a disposizione di tutti con la stessa licenza
• A cura di Stefano Floris [email protected] con la collaborazione di Bianchi Michael della 3p I.T.C. G. Galilei.
(per scopi commerciali occorre richiedere espressa autorizzazione)
Testo del problema
- Trovare le soluzione di una equazione di secondo grado
Dati in input
- Valore coefficiente A
- Valore coefficiente B
- Valore coefficiente C
Dati in output
• X, valore di x se equazione di 1° grado
• X1, valore di X1 se equazione di 2° grado
• X2, valore di X2 se equazione di 2° grado
Dati di elaborazione
• D: delta di tipo numerico
Nel finale useremo una variabile
Mess: di tipo alfanumerico
F
F
START
A,B,C
A=0
I
o“Equazione di 1°grado”
F
B=0
“Errore EQ. Impossibile”
O
F
X=-C/BO
V
o
V
D≥0
“EQ. Impossibile”
o
BxB-4AC=0
V
A,B,C,X1 ; X2
V
o
o
o
END
o
o
D=BxB-4AC
X1=0X2=-B/2A
X1=-B-√ D 2*A
X2= -B+√ D 2*A
E in Visual Basic, come si traduce?Cominciamo dall’inizio. Le prime
operazioni di input.
TextBox
Nome: txtA
Nome: txtB
Nome: txtC
Command
Nome:
cmdRisolviEquazione
START
A,B,C
Dichiariamo le variabili
Option Explicit' Dati di inputDim A As DoubleDim B As DoubleDim C As Double
' Dati di elaborazione
' Dati di OutPutDim X As DoubleDim X1As DoubleDim X2 As Double
Scriviamo questo testo nel
generali del codice della form
Poi passiamo a scrivere il codice relativo al command seguendo il diagramma a blocchi
o la pseudocodifica
Private Sub CmdCalcola_Click()
A = Val(TxtA.Text)
B = Val(TxtB.Text)
C = Val(TxtC.Text)
START
A,B,C
In questo modo abbiamo i valori di
input
START
A,B,C
F VA=0
Private Sub CmdCalcola_Click() A = Val(TxtA.Text) B = Val(TxtB.Text) C = Val(TxtC.Text)If A <> 0 Then
Else
End if
Visto che nel nostro caso c’è l’uscita sia per il vero che per il falso scriviamo la struttura completa compreso
l’else.
Poi seguiamo una delle due strade,
generalmente si parte da quella del vero.
START
A,B,C
A=0 V
D=BxB-4AC
Private Sub CmdCalcola_Click()
A = Val(TxtA.Text) B = Val(TxtB.Text) C = Val(TxtC.Text)If A <> 0 Then
Else
End if
D=B*B-4*A*C
START
A,B,C
A=0 V
D=BxB-4AC
FD≥0
V
Private Sub CmdCalcola_Click()
A = Val(TxtA.Text) B = Val(TxtB.Text) C = Val(TxtC.Text)If A <> 0 Then
D=B*B-4*A*C
Else
End if
IF D >= 0 then
Else
Endif
START
A,B,C
A=0 V
D=BxB-4AC
FD≥0
V
D=0
A,B,C,X1, X2
X1=0X2=-B/2A
X1=√ BxB-4AC 2A
X2= -√ BxB-4AC 2A
Private Sub CmdCalcola_Click() A = Val(TxtA.Text) B = Val(TxtB.Text) C = Val(TxtC.Text)If A <> 0 Then
D=B*B-4*A*C
IF D >= 0 then IF D=0 then
X1 = 0 X2 = -B/2*A else X1=Sqr((B*B-4*A*C)/2*A))
X2= - Sqr((B*B-4*A*C)/2*A)) Endif
MsgBox A MsgBox B MsgBox c MsgBox X1 MsgBox X2 Else
Endif
Else
End if
VFIn rosso
sono segnate le
parti ancora da
sviluppare
Per l’output usiamo la msgbox, per adesso una per
variabile da visualizzare
Per fare la radice quadrata si usa la funzione SQR(…)
Sqr((B*B-4*A*C)/2*A))
SQR calcola la radice quadrata del valore o espressione indicata tra
parentesi. Il risultato si appoggia su una variabile (per esempio
X1= Sqr((B*B-4*A*C)/2*A)) oppure si usa in una espressione.
“EQ. Impossibile”
o
FD≥0
Private Sub CmdCalcola_Click() A = Val(TxtA.Text) B = Val(TxtB.Text) C = Val(TxtC.Text)If A <> 0 Then
D=B*B-4*A*C
IF D >= 0 then IF D=0 then
X1 = 0 X2 = -B/2*A else X1=Sqr((B*B-4*A*C)/2*A))
X2= - Sqr((B*B-4*A*C)/2*A)) Endif
MsgBox A MsgBox B MsgBox c MsgBox X1 MsgBox X2 Else
MsgBox “Equazione impossibile” Endif
Else
End ifQuesta istruzione di output
riguarda un messaggio che deve essere usato come costante (il contrario della variabile) ed
essendo di tipo testo si segna tra virgolette “
Private Sub CmdCalcola_Click() A = Val(TxtA.Text) B = Val(TxtB.Text) C = Val(TxtC.Text)If A <> 0 Then
D=B*B-4*A*C
IF D >= 0 then IF D=0 then
X1 = 0 X2 = -B/2*A else X1= -B -Sqr(D)/2*A))
X2= -B + Sqr(D)/2*A)) Endif
MsgBox A MsgBox B MsgBox c MsgBox X1 MsgBox X2 Else
MsgBox “Equazione impossibile” Endif
Else MsgBox "equazione di primo grado" If B <> 0 Then x = -c / B MsgBox A MsgBox B MsgBox c MsgBox x Else MsgBox “Errore equazione impossibile" End IfEnd if
“Equazione di 1°grado”
“Errore EQ. Impossibile”
O
F
X=-C/B
V
o
B=0
A,B,C,X
Diverso in Visual basic si scrive
<>(minore, maggiore)
Il simbolo & è come se fosse una somma
(+). Però è usato per concatenare testi.
Concatenare, cioè mettere uno accanto all’altro.
Alcuni “trucchi” per l’output
Esempio 1: Msgbox A
Esempio 2: MsgBox “Equazione errata!”
Esempio 3:MsgBox “valore di A=“ & cstr(A)
Nel nostro caso però mentre “Equazione errata” è un dato di tipo testo (per la precisione una costante), A è un dato variabile di tipo numerico. Quindi non si
può usare il simbolo & e nemmeno il + perché non sono due dati numerici (come si fa per una espressione del tipo
X=A+B).
E’ necessario modificare A da dato numerico a
dato di tipo testo usando Cstr(A) è poi si può
creare un unico testo da mandare in output
Si può anche scrivere cosi
Dim mess As String
….
E nella procedura
…
Mess= “valore di A=“ & cstr(A) & “ – valore di B” & cstr(B)
msgBox mess
Si può creare una variabile di lavoro chiamata mess di tipo testo (nelle dim): Dim Mess As String. Poi usarla tutte le volte che si vuole creare un
messaggio complesso per metterci dentro quel che si vuol dire e poi mandarla in output con MsgBox
MsgBox “valore di A=“ & cstr(A) & “ – valore di B” & cstr(B) eccetera eccetera