Option Explicit
Private Sub cmdIgual_Click()
'Primera part del codi , on es substitueixen els valors donats als termes que acompanyen
'l'incognita x amb els seus respectius graus
'Substitució i execució dels canvis de signe i potencies.
'Substitució de dades
txtB1 = -Val(txtB.Text) 'Canvi de signe
txtb2 = Val(txtB.Text) ^ 2 'Potencia
txtA1 = Val(txtA.Text) 'Substitució de dades
txtC1 = Val(txtC.Text)
txt4 = -4 'Substitució de dades
txt2 = 2
txtA2 = Val(txtA.Text)
If txtA.Text <= 0 Then 'Posible falla
'En cas que el valor donat al terme que acompanya l'incognita x^2 fos cero
'la operació no procediria i ens retorna l'acció.
End If
End Sub 'Finalitza la substitució
'ATENCIÓ
'visual basic no reconeix la Coma " , " com a signe de separació entre el nombre
'unitari i el nombre decimal. Nomes reconeix com a tal , el punt "."
'en fer les operacions , visual retorna els decimals com a "," , pero per seguir
'operant necesitarem tornar a col·locar el punt per poder seguir operant amb el valor
'que ens ha tornat l'operació. Per portar a terme aquet procediment farem un canvi
'automatic cada vegada que fem una part dels procesos on el programa buscara la coma
'i la substituira per un punt automaticament.
Private Sub txtB1_Change() 'Canvi de Coma a Punt
txtB1 = Replace(txtB1, ",", ".")
End Sub
Private Sub txtB2_Change() 'Canvi de Coma a Punt
txtb2 = Replace(txtb2, ",", ".")
End Sub
Private Sub txta1_Change() 'Canvi de Coma a Punt
txtA1 = Replace(txtA1, ",", ".")
End Sub
Private Sub txtc1_Change() 'Canvi de Coma a Punt
txtC1 = Replace(txtC1, ",", ".")
End Sub
Private Sub txtA2_Change() 'Canvi de Coma a Punt
txtA2 = Replace(txtA2, ",", ".")
End Sub
'Els nombres fixos no caldrá rectificar-los.
Private Sub Command2_Click()
'Segona part del codi , on es fan les operacions per tal que quedin simplificats els resultats
'de les operacions indicades a la segona part de la formula.
txtB3 = txtB1.Text 'Substitució de dades
txtRaiz = Val(txtb2.Text) - (4 * Val(txtA1.Text) * Val(txtC1.Text)) 'Operació dins l'arrel
txtA3 = 2 * Val(txtA2.Text) 'Terme A per Dos
End Sub
'Finaliztza la primera part de l'operació.
'Tornem a Canviar de coma a punt.
Private Sub txtB3_Change() 'Canvi de Coma a Punt
txtB3 = Replace(txtB3, ",", ".")
End Sub
Private Sub txtraiz_Change() 'Canvi de Coma a Punt
txtRaiz = Replace(txtRaiz, ",", ".")
End Sub
Private Sub txtA3_Change() 'Canvi de Coma a Punt
txtA3 = Replace(txtA3, ",", ".")
End Sub
Private Sub Command1_Click()
'Tercera part del codi , on es fan les operacions finals per mostrar el resultat
'que queda dins l'arrel ja feta. Un altre problema trobat a l'hora de fer el programa
'es fer l'arrel cuadrada. 'Al final es va optar per elevar a una potencia (1/2) on 2 es
'l'index de l'arrel.
If Val(txtRaiz.Text) < 0 Then 'Posible falla
'Si l'arrel dona negativa no es pot continuar resolent
'per tant queda marcat que si l'operació ens torna el nombre
'negatiu es donara misatge d'error.
txtraiz1 = "No Válid"
Else: txtraiz1 = Sqr(txtRaiz.Text) 'Arrel quadrada
txtb4 = txtB3.Text
txtA4 = txtA3.Text
End If
End Sub
'Solventació del problema de la coma.
Private Sub txtraiz1_change()
txtraiz1 = Format(txtraiz1.Text, "#######.00")
'Limitar decimals
End Sub
Private Sub txtB4_Change() 'Canvi de Coma a Punt
txtb4 = Replace(txtb4, ",", ".")
End Sub
Private Sub txtA4_Change() 'Canvi de Coma a Punt
txtA4 = Replace(txtA4, ",", ".")
End Sub
'Part final on ens mostrara els dos posibles resultats obtinguts del valor de l'incognita x.
Private Sub Command3_Click()
txtXpos = (Val(txtb4.Text) + Val(txtraiz1.Text)) / Val(txtA4.Text) ' -b + (..)
txtXneg = (Val(txtb4.Text) - Val(txtraiz1.Text)) / Val(txtA4.Text) ' -b - (..)
txtXneg.Text = Format(txtXneg.Text, "#######.00")
End Sub
'Solventació del problema de la coma.