Visual Basic, Equazioni Sec Grado

7,185 views
6,889 views

Published on

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

Published in: Technology, Business
1 Comment
0 Likes
Statistics
Notes
  • Bravo mi piace, sto imparando a programmare, quindi apprezzo il tutto, grazie
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

No Downloads
Views
Total views
7,185
On SlideShare
0
From Embeds
0
Number of Embeds
40
Actions
Shares
0
Downloads
58
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

Visual Basic, Equazioni Sec Grado

  1. 1. Programmare in Visual Basic <ul><li>Dichiarazione variabili numeriche e di stringa (testo) </li></ul><ul><li>Istruzione SE </li></ul><ul><li>Input </li></ul><ul><li>Output </li></ul><ul><li>Concateazione di stringe </li></ul>
  2. 2. Questa opera è sotto licenza Si puo’ usare liberamente… <ul><li>Citando la fonte </li></ul><ul><li>Per scopi non commerciali </li></ul><ul><li>Rimettendola a disposizione di tutti con la stessa licenza </li></ul><ul><li>A cura di Stefano Floris [email_address] con la collaborazione di Bianchi Michael della 3p I.T.C. G. Galilei. </li></ul><ul><li>(per scopi commerciali occorre richiedere espressa autorizzazione) </li></ul>
  3. 3. Testo del problema <ul><li>Trovare le soluzione di una equazione di secondo grado </li></ul>
  4. 4. Dati in input <ul><li>Valore coefficiente A </li></ul><ul><li>Valore coefficiente B </li></ul><ul><li>Valore coefficiente C </li></ul>
  5. 5. Dati in output <ul><li>X, valore di x se equazione di 1° grado </li></ul><ul><li>X1, valore di X1 se equazione di 2° grado </li></ul><ul><li>X2, valore di X2 se equazione di 2° grado </li></ul>
  6. 6. Dati di elaborazione <ul><li>D: delta di tipo numerico </li></ul><ul><li>Nel finale useremo una variabile </li></ul><ul><li>Mess: di tipo alfanumerico </li></ul>
  7. 7. F F START A,B,C A=0 I o “ Equazione di 1°grado” F B=0 “ Errore EQ. Impossibile” O F X=-C/B O V o V D≥0 “ EQ. Impossibile” o BxB-4AC=0 V A,B,C,X 1 ; X 2 V o o o END o o D=BxB-4AC X1=0 X2=-B/2A X1=- B-√ D 2*A X2= - B+√ D 2*A
  8. 8. 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
  9. 9. Dichiariamo le variabili <ul><li>Option Explicit </li></ul><ul><li>' Dati di input </li></ul><ul><li>Dim A As Double </li></ul><ul><li>Dim B As Double </li></ul><ul><li>Dim C As Double </li></ul><ul><li>' Dati di elaborazione </li></ul><ul><li>' Dati di OutPut </li></ul><ul><li>Dim X As Double </li></ul><ul><li>Dim X1As Double </li></ul><ul><li>Dim X2 As Double </li></ul>Scriviamo questo testo nel generali del codice della form
  10. 10. Poi passiamo a scrivere il codice relativo al command seguendo il diagramma a blocchi o la pseudocodifica <ul><li>Private Sub CmdCalcola_Click() </li></ul><ul><li>A = Val(TxtA.Text) </li></ul><ul><li>B = Val(TxtB.Text) </li></ul><ul><li>C = Val(TxtC.Text) </li></ul>START A,B,C In questo modo abbiamo i valori di input
  11. 11. <ul><li>Private Sub CmdCalcola_Click() </li></ul><ul><li>A = Val(TxtA.Text) </li></ul><ul><li>B = Val(TxtB.Text) </li></ul><ul><li>C = Val(TxtC.Text) </li></ul><ul><li>If A <> 0 Then </li></ul><ul><li>Else </li></ul><ul><li>End if </li></ul>START A,B,C F V A=0 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.
  12. 12. <ul><li>Private Sub CmdCalcola_Click() </li></ul><ul><li>A = Val(TxtA.Text) </li></ul><ul><li>B = Val(TxtB.Text) </li></ul><ul><li>C = Val(TxtC.Text) </li></ul><ul><li>If A <> 0 Then </li></ul><ul><li>Else </li></ul><ul><li>End if </li></ul>START A,B,C A=0 V D=BxB-4AC D=B*B-4*A*C
  13. 13. <ul><li>Private Sub CmdCalcola_Click() </li></ul><ul><li>A = Val(TxtA.Text) </li></ul><ul><li>B = Val(TxtB.Text) </li></ul><ul><li>C = Val(TxtC.Text) </li></ul><ul><li>If A <> 0 Then </li></ul><ul><ul><li>D=B*B-4*A*C </li></ul></ul><ul><li>Else </li></ul><ul><li>End if </li></ul>START A,B,C A=0 V D=BxB-4AC F D≥0 V IF D >= 0 then Else Endif
  14. 14. <ul><li>Private Sub CmdCalcola_Click() </li></ul><ul><li>A = Val(TxtA.Text) </li></ul><ul><li>B = Val(TxtB.Text) </li></ul><ul><li>C = Val(TxtC.Text) </li></ul><ul><li>If A <> 0 Then </li></ul><ul><ul><li>D=B*B-4*A*C </li></ul></ul><ul><li> IF D >= 0 then </li></ul><ul><li> IF D=0 then </li></ul><ul><li>X1 = 0 </li></ul><ul><li>X2 = -B/2*A </li></ul><ul><li>else </li></ul><ul><li>X1=Sqr((B*B-4*A*C)/2*A)) </li></ul><ul><li> X2= - Sqr((B*B-4*A*C)/2*A)) </li></ul><ul><li>Endif </li></ul><ul><li> MsgBox A </li></ul><ul><li> MsgBox B </li></ul><ul><li> MsgBox c </li></ul><ul><li> MsgBox X1 </li></ul><ul><li> MsgBox X2 </li></ul><ul><li> Else </li></ul><ul><li> Endif </li></ul><ul><li>Else </li></ul><ul><li>End if </li></ul>START A,B,C A=0 V D=BxB-4AC F D≥0 V D=0 A,B,C,X1, X2 X1=0 X2=-B/2A X1=√ BxB-4AC 2A X2= -√ BxB-4AC 2A V F In rosso sono segnate le parti ancora da sviluppare Per l’output usiamo la msgbox, per adesso una per variabile da visualizzare
  15. 15. 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 .
  16. 16. <ul><li>Private Sub CmdCalcola_Click() </li></ul><ul><li>A = Val(TxtA.Text) </li></ul><ul><li>B = Val(TxtB.Text) </li></ul><ul><li>C = Val(TxtC.Text) </li></ul><ul><li>If A <> 0 Then </li></ul><ul><ul><li>D=B*B-4*A*C </li></ul></ul><ul><li> IF D >= 0 then </li></ul><ul><li> IF D=0 then </li></ul><ul><li>X1 = 0 </li></ul><ul><li>X2 = -B/2*A </li></ul><ul><li>else </li></ul><ul><li>X1=Sqr((B*B-4*A*C)/2*A)) </li></ul><ul><li> X2= - Sqr((B*B-4*A*C)/2*A)) </li></ul><ul><li>Endif </li></ul><ul><li> MsgBox A </li></ul><ul><li> MsgBox B </li></ul><ul><li> MsgBox c </li></ul><ul><li> MsgBox X1 </li></ul><ul><li> MsgBox X2 </li></ul><ul><li> Else </li></ul><ul><li>MsgBox “Equazione impossibile” </li></ul><ul><li> Endif </li></ul><ul><li>Else </li></ul><ul><li>End if </li></ul>“ EQ. Impossibile” o F D≥0 Questa 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 “
  17. 17. <ul><li>Private Sub CmdCalcola_Click() </li></ul><ul><li>A = Val(TxtA.Text) </li></ul><ul><li>B = Val(TxtB.Text) </li></ul><ul><li>C = Val(TxtC.Text) </li></ul><ul><li>If A <> 0 Then </li></ul><ul><ul><li>D=B*B-4*A*C </li></ul></ul><ul><li> IF D >= 0 then </li></ul><ul><li> IF D=0 then </li></ul><ul><li>X1 = 0 </li></ul><ul><li>X2 = -B/2*A </li></ul><ul><li>else </li></ul><ul><li>X1= -B -Sqr(D)/2*A)) </li></ul><ul><li> X2= -B + Sqr(D)/2*A)) </li></ul><ul><li>Endif </li></ul><ul><li> MsgBox A </li></ul><ul><li> MsgBox B </li></ul><ul><li> MsgBox c </li></ul><ul><li> MsgBox X1 </li></ul><ul><li> MsgBox X2 </li></ul><ul><li> Else </li></ul><ul><li>MsgBox “Equazione impossibile” </li></ul><ul><li> Endif </li></ul><ul><li>Else </li></ul><ul><li>MsgBox &quot;equazione di primo grado&quot; </li></ul><ul><li>If B <> 0 Then </li></ul><ul><li>x = -c / B </li></ul><ul><li>MsgBox A </li></ul><ul><li>MsgBox B </li></ul><ul><li>MsgBox c </li></ul><ul><li>MsgBox x </li></ul><ul><li>Else </li></ul><ul><li>MsgBox “Errore equazione impossibile&quot; </li></ul><ul><li>End If </li></ul><ul><li>End if </li></ul>“ 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)
  18. 18. Alcuni “trucchi” per l’output Il simbolo & è come se fosse una somma ( + ). Però è usato per concatenare testi. Concatenare, cioè mettere uno accanto all’altro. 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
  19. 19. 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

×