Cómo hacer una calculadora en Visual Basic .NET Paso a Paso

Visual Basic .NET

A medida que vamos adquiriendo conocimiento acerca de Visual Basic .NET, van aumentando las posibilidades de hacer mejores proyectos en nuestro IDE Visual Studio; como es de costumbre en la programación, al igual como el tradicional “Hola Mundo”, se ha vuelto una costumbre hacer calculadoras en este lenguaje de programación, con el fin de afianzar los conocimientos. Por eso, el día de hoy, como de costumbre en este lenguaje, te traemos: Cómo hacer una calculadora en Visual Basic .NET

Cómo hacer una calculadora en Visual Basic .NET

Creación del diseño de nuestra calculadora

Para comenzar nuestro post de Cómo hacer una calculadora en Visual Basic .NET, en el formulario que hemos creado destinado para nuestra calculadora, vamos a arrastrar los elementos necesarios para hacer la calculadora. Básicamente son necesarios  17 “Buttons” correspondientes a los números y a las operaciones, y un “TextBox” para reflejar el resultado. Nos quedaría así:

Cómo hacer una calculadora en Visual Basic :: Calculadora

Asignarle el “Name” a los elementos

Una vez tengamos todos los elementos en orden, es necesario asignarles un nombre a nuestros “Buttons” y a nuestro “TextBox” por cuestiones de orden y estandarización.

En nuestro caso, los “Buttons” que cumplen la función de los números, llevan el “Name” de “bt1, bt2, btsuma, btigual ETC“. Nuestro “TextBox” llevará el “Name” de “tbresultado”. Esto lo hacemos con el fin de establecer un orden y trabajar de forma correcta.

Declaración de las variables

En la parte superior de nuestro código, dentro de la clase publica de nuestro formulario, vamos a declarar 4 variables publicas:

 Dim Operacion As String
 Dim ValorResultado As Nullable(Of Double) = Nothing
 Dim Valor2 As Nullable(Of Double) = Nothing
 Dim Bandera As Boolean

La variable “Operacion” de tipo “String”  es la que viajará al procedimiento (que haremos en la parte final de nuestro código) que realizará la operación, esta contendrá el símbolo de nuestra operación (” + – * / “).

A continuación se declara la variable “ValorResultado” como “Nullable(Of Double)” que quiere decir qué dicha variable va a aceptar valores nulos (que no tienen ningún valor) y va a ser de tipo “Double”. Esa variable será igual a “Nothing” , o sea a nada.

Luego “Valor2”  será la encargada de contener el segundo valor que se introduzca. Al igual que la anterior, será igual a “Nothing” y de tipo “Nullable(Of Double)”.

Por ultimo, la variable “Bandera”  nos servirá de bandera (interruptor) y será de tipo “Boolean”.

Código de los botones

Botones Numericos:

En esta parte vamos a asignarle a cada “Button”  un código, para que nuestra calculadora pueda funcionar de forma correcta.

A los botones numéricos le vamos a asignar el siguiente código:

Esto se lo colocaremos a todos los números, así sucesivamente hasta llegar al número “0”.

Private Sub bt1_Click(sender As Object, e As EventArgs) Handles bt1.Click
 DeterminarConcatenar()
 tbresultado.Text &= "1"
 End Sub

En el código anterior, vemos lo que se ejecutará cuando se haga click en cada “Button” numérico. En este caso “DeterminarConcatenar()”  es un procedimiento que explicaremos al final, que en pocas palabras evaluará el estado de nuestro “TextBox”, limpiará y concatenará para introducir el siguiente numero. Luego de eso (tbresultado.Text &= “1”), le especificamos la propiedad “Text” a nuestro “tbresultado”, nuestro “TextBox” gracias al signo ampersand (“&”) contendrá la suma de todos los números introducidos anteriormente, más (“+”) el numero “1”. Esto lo haremos con todos los “Buttons”, solo debemos cambiar el numero dependiendo del “Button” al que se le está asignando el código.

Botones de operaciones matematicas:

En esta parte, a los botones que hacen referencia a las operaciones matemáticas, se les asignará el siguiente código:

OperacionProceso()
 Operacion = "+"

Se ejecutará el procedimiento “OperacionProceso()”, que es aquel que efectuará la operación dependiendo el signo. Luego, a la variable que creamos en la parte superior llamada “Operacion”, le asignaremos un operador que solo cambiará el signo dependiendo la operación.

Botón punto:

Este botón nos ayudará es especificar números decimales, y así obtener un resultado decimal. Su código es el siguiente:

DeterminarConcatenar()
 If InStr(tbresultado.Text, ".", CompareMethod.Text) = 0 Then
 tbresultado.Text &= "."
 End If

Este condicional se hace para poder establecer solo una vez un punto en nuestro numero. Con “InStr(tbresultado.Text, “.”, CompareMethod.Text) = 0″ lo que hacemos es obtener el numero entero del texto del “TextBox”  con nombre “tbresultado” y verificar el numero de veces que  dentro de ese numero hay un punto, eso lo hacemos con el metodo “CompareMethod.Text”. Si esa condición se cumple, entonces el texto de “tbresultado” será igual al contenido de “tbresultado” más un punto.

Botón borrar:

Este botón nos limpiará el “TextBox” con nombre “tbresultado”, el código es el siguiente:

 tbresultado.Text = "0"
 Valor2 = Nothing
 ValorResultado = Nothing

Al hacer click en el este en el “Button” con nombre “btborrar”, la propiedad texto de “tbresultado” será igual a cero (“0”). Luego las variables “Valor2” y “ValorResultado” serán iguales a “Nothing” (Nada).

Botón igual:

Este botón nos dará el resultado de la operación. Su código es sencillo y es el siguiente:

 OperacionProceso()
 Operacion = ""

Simplemente lo que hacemos es llamar al procedimiento “OperacionProceso()”  que es el que realiza la operación. Luego la variable “Operacion”  es igual a Vacio; esto lo hacemos para no entre en ningún “Case” del “Select Case” que hay en el procedimiento anteriormente mencionado.

Procedimientos

Procedimiento “DeterminarConcatenar()” :

Como lo dijimos anteriormente, este procedimiento nos servirá para limpiar el “TextBox” que contiene el resultado final. Si se presiona un operador, es necesario que se limpie nuestra caja de texto para poder ingresar el segundo numero; de esto se encarga este procedimiento. Ahora veamos el código:

Primer condicional:

If Bandera = True Then
 tbresultado.Text = ""
 Bandera = False

Vemos que está compuesto por dos condicionales. El primer “If” cuenta con la condición que cuando la variable “Bandera”  sea verdadera, el “TextBox” del resultado se limpiará e instantáneamente recibirá el segundo numero.

Luego tenemos el segundo y último condicional:

ElseIf tbresultado.Text = "0" Then
 tbresultado.Text = ""
 End If

Nuestro segundo condicional, el “ElseIf” nos ilustra que, cuando la caja de texto tenga únicamente el número cero (“0”), esta se limpie y permita introducir el siguiente número.

Procedimiento ” OperacionProceso()” :

En este procedimiento se realiza la operación y enviamos el resultado a la caja de texto. Este segmento de código, está compuesto por un “If” y por un “Select Case”, los “Case” o casos de este “Select Case” reciben el signo del operador para realizar la respectiva operación. El código es el siguiente:

En este código, cada vez que se ejecute, nuestra variable “Bandera” tomará un “True” (Verdadero) como valor. Siguiente a esto la variable “Valor2” toma el valor numérico que contiene el “TextBox” del resultado.

Luego de esto, está compuesto por dos condicionales, uno dentro de otro:

 If ValorResultado IsNot Nothing Then
 Select Case Operacion
 Case "+"
 ValorResultado = ValorResultado + Valor2
 Case "-"
 ValorResultado -= Valor2
 Case "*"
 ValorResultado *= Valor2
 Case "/"
 ValorResultado /= Valor2
 End Select
 tbresultado.Text = ValorResultado
 Else
 ValorResultado = Valor2
 End If

Primero se evalúa si la variable “ValorResultado” es “IsNot Nothing”, o sea si no se encuentra vacía, si ya tiene un muero como valor. Si esto es verdadero, el “Select Case” toma la variable “Operación” y comienza a evaluar. La variable “Operacion”  recibe como valor el signo de la operación  que hemos presionado.

Cómo hacer una calculadora en Visual Basic .NET

En un caso hipotético, si se presionó el operador de suma, la variable “Operacion” tomará como valor: “+”;  ese signo entraría en el primer “Case”  y se efectuaría la suma.

En cada “Case” la variable “ValorResultado” será igual  a la operación escogida entre “ValorResultado” y “Valor2”.

Cómo hacer una calculadora en Visual Basic .NET

Ejemplo: Si se entra en el “Case” de multiplicación, la variable “ValorResultado” sera igual a la multiplicación de ella misma por la variable “Valor2”.

Luego de que se haya salido del “Case” , se finaliza el “Select Case” y el “TextBox” será igual a la variable “ValorResultado” que es la que contiene el resultado de la operación.

Posteriormente, el condicional que contiene nuestro “Select Case”, tiene un “Else” el cual se ejecutará si la condición “ValorResultado IsNot Nothing”  no se cumple; si esto pasa la variable “ValorResultado” será igual a “Valor2”.

Resultado Final:

Cómo hacer una calculadora en Visual Basic :: Resultado Final

Y este sería el resultado final de nuestra calculadora. Espera muy pronto más posts relacionado con Visual Basic .NET.