visual basic, equazioni sec grado

19
Programmare in Visual Basic • Dichiarazione variabili numeriche e di stringa (testo) • Istruzione SE • Input • Output • Concateazione di stringe

Upload: floste

Post on 05-Dec-2014

9.713 views

Category:

Technology


0 download

DESCRIPTION

Programma semplice per la risoluzione di equazioni di secondo grado in visual basic

TRANSCRIPT

Page 1: Visual Basic, Equazioni Sec Grado

Programmare in Visual Basic

• Dichiarazione variabili numeriche e di stringa (testo)

• Istruzione SE

• Input

• Output

• Concateazione di stringe

Page 2: Visual Basic, Equazioni Sec Grado

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)

Page 3: Visual Basic, Equazioni Sec Grado

Testo del problema

- Trovare le soluzione di una equazione di secondo grado

Page 4: Visual Basic, Equazioni Sec Grado

Dati in input

- Valore coefficiente A

- Valore coefficiente B

- Valore coefficiente C

Page 5: Visual Basic, Equazioni Sec Grado

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

Page 6: Visual Basic, Equazioni Sec Grado

Dati di elaborazione

• D: delta di tipo numerico

Nel finale useremo una variabile

Mess: di tipo alfanumerico

Page 7: Visual Basic, Equazioni Sec Grado

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

Page 8: Visual Basic, Equazioni Sec Grado

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

Page 9: Visual Basic, Equazioni Sec Grado

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

Page 10: Visual Basic, Equazioni Sec Grado

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

Page 11: Visual Basic, Equazioni Sec Grado

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.

Page 12: Visual Basic, Equazioni Sec Grado

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

Page 13: Visual Basic, Equazioni Sec Grado

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

Page 14: Visual Basic, Equazioni Sec Grado

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

Page 15: Visual Basic, Equazioni Sec Grado

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.

Page 16: Visual Basic, Equazioni Sec Grado

“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 “

Page 17: Visual Basic, Equazioni Sec Grado

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)

Page 18: Visual Basic, Equazioni Sec Grado

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

Page 19: Visual Basic, Equazioni Sec Grado

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