Necesito ayuda con un calculador de área en Visual Basics.
Necesito ayuda con mi código en un calculador de rectángulos… Así que hice un calculador de área de rectángulos que incluye Longitud, Ancho, Área, Número de Rectángulos y el Rectángulo más Pequeño… También estoy creando un bloque de captura que maneja las extracciones de conversión no válidas, dos de ellas… También una clase de expectativa cuando el valor del resultado es mayor a un millón… Aquí está mi código:
Public Class Form1
Dim area As Decimal
Dim numberofRectangles As Integer
Dim smallestRectangle As Decimal
Private Sub btnCalculate_Click(sender As Object, e As EventArgs) Handles btnCalculate.Click
Try
Dim length As Decimal = CDec(txtLength.Text)
Dim width As Decimal = CDec(txtWidth.Text)
Dim Area As Decimal = width * length
Dim numberofRectangles As Integer = numberofRectangles + 1
Dim smallestRectangle As Decimal = Math.Min(smallestRectangle, Area)
txtArea.Text = Area.ToString("n2")
txtNumberOfRectangles.Text = numberofRectangles.ToString
txtSmallestRectangle.Text = smallestRectangle.ToString("n2")
txtLength.Select()
Catch ex As InvalidCastException
MessageBox.Show("Por favor, verifique que las entradas sean datos numéricos válidos",
ex.GetType.ToString)
Catch ex As OverflowException
MessageBox.Show("Por favor, verifique que las entradas no sean demasiado grandes.",
ex.GetType.ToString)
Catch ex As Exception
MessageBox.Show(ex.Message & vbNewLine & vbNewLine & ex.StackTrace,
ex.GetType.ToString)
If area < 1000000000 Then
Throw New FormatException("¡El rectángulo es demasiado grande!")
Return
End If
Finally
End Try
End Sub
End Class
Por un lado, tengo un error donde mi rectángulo más pequeño tiene el valor de 999.999.999,00 y para la expectativa de que el valor del resultado sea mayor a un millón, tengo problemas como probablemente puedas ver en el código. Busco algunos consejos sobre mi código.
Editar: Arreglé la parte superior. Ahora obtengo 0.00 en la casilla del rectángulo más pequeño.
¿Debería usar “Me.Compute” en algún lugar también?
davy.ai
Solución de problemas del código del Calculador de Rectángulos
Problema 1: Valor más pequeño del rectángulo
El código actual ha establecido el valor inicial de
smallestRectangle
como 0. Esto causa un problema donde el valor mínimo después de la primera cálculo del rectángulo sería el resultado en sí mismo. Para solucionar este problema, podemos declararsmallestRectangle
como un tipo Decimal nullable (Decimal?
) y establecerlo inicialmente comoNothing
. Luego podemos verificar si tiene un valor antes de aplicar el métodoMath.Min
.“`vb.net
Dim smallestRectangle As Decimal? = Nothing
…
If Not smallestRectangle.HasValue OrElse Area < smallestRectangle.Value Then
smallestRectangle = Area
End If
Además, para utilizar la clase
ExpectationException
, primero necesita ser definida. Podemos definirla de la siguiente manera:vb.net
Public Class ExpectationException
Inherits Exception
Public Sub New()
MyBase.New()
End Sub
Public Sub New(ByVal message As String)
MyBase.New(message)
End Sub
Public Sub New(ByVal message As String, ByVal innerException As Exception)
MyBase.New(message, innerException)
End Sub
End Class
Nota Adicional
El código no parece requerir
Me.Compute
ya que no está relacionado con la funcionalidad actual del calculador.