Visual Basic - Problema urgente con resolución de ecuaciones

Life is soft - evento anual de software empresarial
 
Vista:

Problema urgente con resolución de ecuaciones

Publicado por Jesús (1 intervención) el 28/02/2016 22:35:28
Hola buenas.
Me han mandado hacer en el instituto un programa para resolver ecuaciones de primer y segundo grado.
Tengo el código completamente puesto del botón calcular y al darle me aparece que hay un error de compilación "Bloque If sin End If" pero he puesto todos. Os dejo el código aquí por si me podéis ayudar. Es el botón de calcular, no se donde puede estar el fallo, muchas gracias de antemano.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Private Sub cmdCalcular_Click()
Dim a As Double
Dim b As Double
Dim c As Double
Dim d As Double
Dim d1 As Double
Dim r1 As Double
Dim r2 As Double
If IsNumeric(txtA.Text) Then
If IsNumeric(txtB.Text) Then
If IsNumeric(txtC.Text) Then
a = CDbl(txtA.Text)
b = CDbl(txtB.Text)
c = CDbl(txtC.Text)
txtA.Enabled = False
txtB.Enabled = False
txtC.Enabled = False
If a <> 0 Then
d = b ^ 2 - 4 * a * c
If d >= 0 Then
d1 = Sqr(d)
r1 = (-b + d1) / (2 * a)
r2 = (-b + d1) / (2 * a)
txtSol1.Text = CStr(r1)
txtSol2.Text = CStr(r2)
raiz1.Caption = "Raíz 1"
raiz1.Visible = True
txtSol1.Visible = True
raiz2.Caption = "Raíz 2"
raiz2.Visible = True
txtSol2.Visible = True
 
Else
If b <> 0 Then
rl = -c / b
txtSol1.Text = CStr(r1)
raiz1.Caption = "Raíz ="
raiz1.Visible = True
txtSol1.Visible = True
 
Else
MsgBox ("Error: No es una ecuación")
End If
End If
Else
MsgBox ("Error: Coeficientes no numéricos")
End If
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 147
Ha disminuido 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Problema urgente con resolución de ecuaciones

Publicado por Juan Gilberto (323 intervenciones) el 29/02/2016 16:48:10
Acostumbrate a indentar el codigo
Segun se ve, te falta cerrar tres IF
Yo los puse al final, pero podrian ser en otra parte... tu eres el unico que sabes lo que quieres hacer
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Private Sub cmdCalcular_Click()
 
Dim a As Double
Dim b As Double
Dim c As Double
Dim d As Double
Dim d1 As Double
Dim r1 As Double
Dim r2 As Double
 
    If IsNumeric(txtA.Text) Then
        If IsNumeric(txtB.Text) Then
            If IsNumeric(txtC.Text) Then
                a = CDbl(txtA.Text)
                b = CDbl(txtB.Text)
                c = CDbl(txtC.Text)
                txtA.Enabled = False
                txtB.Enabled = False
                txtC.Enabled = False
                If a <> 0 Then
                    d = b ^ 2 - 4 * a * c
                    If d >= 0 Then
                        d1 = Sqr(d)
                        r1 = (-b + d1) / (2 * a)
                        r2 = (-b + d1) / (2 * a)
                        txtSol1.Text = CStr(r1)
                        txtSol2.Text = CStr(r2)
                        raiz1.Caption = "Raíz 1"
                        raiz1.Visible = True
                        txtSol1.Visible = True
                        raiz2.Caption = "Raíz 2"
                        raiz2.Visible = True
                        txtSol2.Visible = True
                    Else
                        If b <> 0 Then
                            rl = -c / b
                            txtSol1.Text = CStr(r1)
                            raiz1.Caption = "Raíz ="
                            raiz1.Visible = True
                            txtSol1.Visible = True
                        Else
                            MsgBox ("Error: No es una ecuación")
                        End If
                    End If
                Else
                    MsgBox ("Error: Coeficientes no numéricos")
                End If
'--------------------
            End If
        End If
    End If
'--------------------
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar