EJERCICIO EJEMPLO
Crear un programa que resuelva la ecuación cuadrática tipo ax2 + bx + c.
SOLUCIÓN
Option Explicit 
Rem Declaración de variables 
Dim a!, b!, c!, d!, e As Single 
Rem Contenido del formulario 
Private Sub Form_Load() 
Form1.Caption = "Ecuación cuadrática" 
CommandCalcular.Caption = "Calcular x" 
LabelTítulo = "Parámetros a, b y c para ecuación tipo a*x^2 + b*x + c = 0" 
Labela.Caption = "Valor parámetro a" 
Labelb.Caption = "Valor parámetro b" 
Labelc.Caption = "Valor parámetro c" 
End Sub 
Rem Cálculo y muestra de resultados 
Private Sub CommandCalcular_Click() 
LabelResultado.FontSize = 10 
LabelResultado.FontBold = True 
a = Val(Texta) 
b = Val(Textb) 
c = Val(Textc) 
d = b ^ 2 - 4 * a * c 
e = 2 * a 
If d = 0 Then 
    LabelResultado = "x1 = x2 = " & - b / e 
Else 
    If d > 0 Then 
        LabelResultado = "x1 = " & (-b + Sqr(d)) / e 
        LabelResultado = LabelResultado & vbCrLf & "x2 = " & (-b - Sqr(d)) / e 
    Else 
        LabelResultado = "x1 = " & -b / e & " + " & Sqr(-d) / e & " * i" 
        LabelResultado = LabelResultado & vbCrLf & "x2 = " & -b / e & " - " & Sqr(-d) / e & " * i" 
    End If 
End If 
End Sub 
 | 
El programa "funciona", si bien tiene sus limitaciones. Prueba a introducir los siguientes datos:   a = 0, b = 3 y c = 1 . Te aparecerá el siguiente mensaje: "Error 6 en tiempo de ejecución. Desbordamiento."  Efectivamente, a = 0 implica que e = 0 y al encontrarnos con una operación del tipo  (-b + Sqr(d)) / edonde el denominador vale cero... ¡se acabó! Mejor dicho, "se acabó" mientras no preparemos el programa para detectar este tipo de situaciones, cosa que veremos más adelante.
Estamos construyendo programas sencillos que en líneas generales responden bien cuando se dan las circunstancias previstas pero que fallan ante situaciones extrañas. Esto no debe preocuparnos por el momento, ya que a medida que progresemos como programadores iremos construyendo programas cada vez más sólidos.
Aspecto gráfico:
No hay comentarios:
Publicar un comentario