es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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?

Tags:  ,

Answer

  1. Avatar for 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 declarar smallestRectangle como un tipo Decimal nullable (Decimal?) y establecerlo inicialmente como Nothing. Luego podemos verificar si tiene un valor antes de aplicar el método Math.Min.

    “`vb.net
    Dim smallestRectangle As Decimal? = Nothing

    If Not smallestRectangle.HasValue OrElse Area < smallestRectangle.Value Then
    smallestRectangle = Area
    End If


    Este bloque de código verifica si `smallestRectangle` tiene un valor o no. Si no tiene un valor o si `Area` es menor que el valor actual, se establece `smallestRectangle` como `Area`. ## Problema 2: Clase Expectation El código actualmente tiene una verificación para lanzar una excepción de formato (`FormatException`) cuando `area` es menor que 1000000000. Sin embargo, el requisito es lanzar una excepción cuando el valor es *mayor que* 1 millón. Podemos modificar esta verificación para comparar `Area` con 1000000 en lugar de 1000000000. ```vb.net If Area > 1000000 Then Throw New ExpectationException("¡El rectángulo es demasiado grande!") 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.

Comments are closed.