equazione secondo grado

soluzione della equazione di secondo grado completa, spuria, pura
con discussione delle possibili situazioni relative al discriminante
positivo, negativo, nullo
esempio con dati prefissati e chiamata di procedura per completa,pura,spuria
esempi con dati da inserire da tastiera
(programma ridondante per leggibilità didattica...)


Private Sub CommandButton1_Click()
Rem soluzione equazione secondo grado
rem con dati prefissati
a = 1
b = 7
c = 12

If b <> 0 And c <> 0 Then
k = 1
End If
If b = 0 Then
k = 2
End If
If c = 0 Then
k = 3
End If
Select Case k
Case 1
d = b * b - 4 * a * c
If d > 0 Then
x1 = (-b + Sqr(b * b - 4 * a * c)) / (2 * a)
x2 = (-b - Sqr(b * b - 4 * a * c)) / (2 * a)
ListBox1.AddItem ("equazione completa")
ListBox1.AddItem ("due radici reali e distinte")
End If
If d = 0 Then
x1 = -b / (2 * a)
x2 = -b / (2 * a)
End If
If d < 0 Then
x1 = "radice complessa"
x2 = "radice complessa"
End If
Case 2
If (-c / a) > 0 Then
x1 = -Sqr(-c / a)
x2 = Sqr(-c / a)
Else
x1 = "radice complessa"
x2 = "radice complessa"
End If
ListBox1.AddItem ("equazione pura")
ListBox1.AddItem ("due radici reali o complesse")
Case 3
x1 = 0
x2 = -b / a
ListBox1.AddItem ("equazione spuria")
ListBox1.AddItem ("x1=0 e x2=-b/a")
End Select
ListBox1.AddItem (a & "x^2 + " & b & "x + " & c & " = 0 ")
ListBox1.AddItem ("x1 = " & x1)
ListBox1.AddItem ("x2 = " & x2)
ListBox1.AddItem ("-------------------")
End Sub


Private Sub CommandButton2_Click()
rem inserimento coefficienti da tastiera
a = TextBox1.Text
b = TextBox2.Text
c = TextBox3.Text

If b <> 0 And c <> 0 Then
k = 1
End If
If b = 0 Then
k = 2
End If
If c = 0 Then
k = 3
End If
Select Case k
Case 1
d = b * b - 4 * a * c
If d > 0 Then
x1 = (-b + Sqr(b * b - 4 * a * c)) / (2 * a)
x2 = (-b - Sqr(b * b - 4 * a * c)) / (2 * a)
ListBox1.AddItem ("equazione completa")
ListBox1.AddItem ("due radici reali e distinte")
End If
If d = 0 Then
x1 = -b / (2 * a)
x2 = -b / (2 * a)
ListBox1.AddItem ("equazione completa")
ListBox1.AddItem ("due radici reali coincidenti")
End If
If d < 0 Then
ListBox1.AddItem ("equazione completa")
ListBox1.AddItem ("due radici complesse")
x1 = "complessa"
x2 = "complessa"
End If
Case 2
If (-c / a) > 0 Then
x1 = -Sqr(-c / a)
x2 = Sqr(-c / a)
Else
x1 = "radice complessa"
x2 = "radice complessa"
End If
ListBox1.AddItem ("equazione pura")
ListBox1.AddItem ("due radici reali o complesse")
Case 3
x1 = 0
x2 = -b / a
ListBox1.AddItem ("equazione spuria")
ListBox1.AddItem ("x1=0 e x2=-b/a")
End Select
ListBox1.AddItem (a & "x^2 + " & b & "x + " & c & " = 0 ")
ListBox1.AddItem ("x1 = " & x1)
ListBox1.AddItem ("x2 = " & x2)
ListBox1.AddItem ("-------------------")
End Sub


Private Sub CommandButton3_Click()
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
End Sub

Private Sub CommandButton4_Click()
ListBox1.Clear
End Sub

Private Sub CommandButton5_Click()
Label3.Visible = True
End Sub

Private Sub CommandButton6_Click()
Label3.Visible = False
End Sub

Private Sub CommandButton7_Click()
rem chiamata di procedura e passaggio dati prefissati
Rem soluzione con dati prefissati
Call calcola(1, 7, 12)
MsgBox ("clicca per altro esempio")
Call calcola(-12, 3, 0)
MsgBox ("clicca per altro esempio")
Call calcola(1, 0, -16)
MsgBox ("clicca per altro esempio")
Call calcola(1, 0, 16)
End Sub

Private Sub calcola(a As Integer, b As Integer, c As Integer)
If b <> 0 And c <> 0 Then
k = 1
End If
If b = 0 Then
k = 2
End If
If c = 0 Then
k = 3
End If
Select Case k
Case 1
d = b * b - 4 * a * c
If d > 0 Then
x1 = (-b + Sqr(b * b - 4 * a * c)) / (2 * a)
x2 = (-b - Sqr(b * b - 4 * a * c)) / (2 * a)
ListBox1.AddItem ("equazione completa")
ListBox1.AddItem ("due radici reali e distinte")
End If
If d = 0 Then
x1 = -b / (2 * a)
x2 = -b / (2 * a)
End If
If d < 0 Then
x1 = "radice complessa"
x2 = "radice complessa"
End If
Case 2
If (-c / a) > 0 Then
x1 = -Sqr(-c / a)
x2 = Sqr(-c / a)
Else
x1 = "radice complessa"
x2 = "radice complessa"
End If
ListBox1.AddItem ("equazione pura")
ListBox1.AddItem ("due radici reali o complesse")
Case 3
x1 = 0
x2 = -b / a
ListBox1.AddItem ("equazione spuria")
ListBox1.AddItem ("x1=0 e x2=-b/a")
End Select
ListBox1.AddItem (a & "x^2 + " & b & "x + " & c & " = 0 ")
ListBox1.AddItem ("x1 = " & x1)
ListBox1.AddItem ("x2 = " & x2)
ListBox1.AddItem ("-------------------")
End Sub

vedi radice2.ppt

vedi variante radice3.htm