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