Cómo hacer una calculadora con Visual Basic (En 12 Pasos)

Por violet mabe
Cómo hacer una calculadora con Visual Basic (En 12 Pasos)
OJO Images/OJO Images/Getty Images

Microsoft Visual Basic es un lenguaje de programación basado en el lenguaje Basic, originariamente desarrollado para hacer que la programación fuera más fácil de aprender. Visual Basic toma los comandos de Basic y añade herramientas orientadas a objetos e interfaces para diseñar aplicaciones Windows parecidas a WYSIWYG y controles web, entre otras muchas mejoras. Un proyecto de aprendizaje relativamente simple para Visual Basic es la creación de una calculadora Windows.

Paso 1

Abre Microsoft Visual Basic 6 y selecciona "Standard EXE" del menú de proyecto nuevo. Aparecerá en la pantalla un formulario en blanco.

Paso 2

Vuelve a nombrar tu proyecto y tu formulario haciendo clic en "Project1" situado al lado derecho de la pantalla, en la lista de proyectos e introduce un nombre nuevo en la línea "Name" (Nombre) del cuadro de propiedades, que debe aparecer por defecto debajo de la lista de proyectos. Presiona "Enter" para aceptar el nombre nuevo. Haz lo mismo para tu formulario que podría ser "CalculatorUI", asegurándote de que introduces también un nombre similar en la propiedad "Caption" (Encabezamiento), que cambiará el texto en la barra superior del formulario. Guarda el proyecto en una carpeta nueva en tu computadora.

Paso 3

Añade botones y un texto al formulario. Primero, añade un cuadro de texto que será donde aparecerán los números que introduzcas en la calculadora, así como los resultados del cálculo. Haz esto seleccionando el botón TextBox de la barra de herramientas situado en el lado izquierdo de la pantalla y luego dibuja con tu mouse el tamaño y lugar en el que desees colocar el TextBox. Cuando hayas colocado el TextBox puedes cambiar el tamaño y la posición dibujando otra posición del formulario o dibujando las manijas, es decir, los cuadrados pequeños, a lo largo del borde del TextBox. Asegúrate de cambiar las siguientes líneas en la ventana "Properties" (Propiedades) con el TextBox seleccionado: "(Name)" = tbResult, "Alignment" = 1- Right Justify, "Data Format" = (click on the "..." botón para seleccionar) Number, "Locked" = True, and "Text" = 0.

Paso 4

Selecciona el icono "CommandButton" en la barra de herramientas y crea el primer botón de la misma forma que has creado los botones de TextBox. Para hacer una consulta, utiliza la calculadora de Windows en la vista Standard (Programs > Accessories > Calculator) como base para el diseño de tu calculadora, omitiendo los botones "MC", "MR", "MS" y "M+". En cada botón debes cambiar las siguientes propiedades, utilizar el botón "+" como ejemplo: "(Name)" = btnPlus, "Caption" = +. Haz lo mismo para el resto de los botones de la calculadora y luego guarda tu trabajo.

Paso 5

Añade el código. Observa que si los botones y el TextBox no son llamados igual que el código enumerado aquí, deberás cambiar los nombres para que correspondan tus botones y el TextBox o cambiar tus botones y el TextBox para que correspondan con este código. Primero necesitamos crear unas pocas variables para la entrada de datos de la calculadora:

Dim sLeft As String, sRight As String, sOperator As String Dim iLeft As Double, iRight As Double, iResult As Double Dim bLeft As Boolean

Cada cálculo consiste en cuatro partes: un número a la izquierda del operador (sLeft, iLeft), un operador (sOperator), un número a la derecha del operador (sRight, iRight) y un resultado (iResult). Para saber si el usuario está introduciendo el número izquierdo o el derecho, necesitamos crear una variable boolena, bLeft. Si bLeft es verdadero, se está introduciendo el lado izquierdo; si bLeft es falso, se introduce el lado derecho.

Paso 6

Inicializa la variable bLeft. Debes hacerlo creando una subrutina Form_Load, que puedes escribir incluso como se lista aquí o crearla automáticamente haciendo clic dos veces en cualquier parte del formulario que no esté cubierto por un botón o un cuadro de texto. Dentro de la función, necesitamos ajustar bLeft a True porque el primer número introducido será la tercera parte:

Private Sub Form_Load() bLeft = True End Sub

Paso 7

Crea una subrutina que maneje el clic de cualquiera de los botones de números. Vas a crear esto como una subrutina porque utilizas códigos idénticos para cada botón y usar una significa no tener que repetir el mismo código diez veces. Introduce lo siguiente debajo de la subrutina Form_Load End Sub Line:

Private Sub AddNumber(sNumber As String) If bLeft Then sLeft = sLeft + sNumber tbResult.Text = sLeft Else sRight = sRight + sNumber tbResult.Text = sRight End If End Sub

Como puedes ver, la función toma un parámetro serie, sNumber, que contendrá el número que el usuario ha pulsado. Si bLeft es verdadero, este número se agrega a la serie que representa el número que has introducido, sLeft y el cuadro de texto, tbResult, se actualizan para mostrar el número nuevo. Si bLeft es falso, se lleva a cabo la misma operación pero utilizando sRight. Por último, crea una función Click para cada número que nombre a la subrutina AddNumber. Puedes hacer esto haciendo clic dos veces en cada botón numérico, lo que creará la estructura de subrutina. Luego añade el Addnumber, sustituyendo el número en citas con el número asociado al botón.

Para crear el botón cero, tu código debe parecerse a este: Private Sub btn0_Click() AddNumber ("0") End Sub Likewise, para el botón uno el código será: Private Sub btn1_Click() AddNumber ("1") End Sub.

Paso 8

Maneja las operaciones: más, menos, horas y dividir. Haremos esto como último paso, crear una subrutina que se nombra en los Click para los botones operadores. La subrutina se parecerá a lo siguiente:

Private Sub AddOperator(sNewOperator As String) If bLeft Then sOperator = sNewOperator bLeft = False Else btnEquals_Click sOperator = sNewOperator sRight = "" bLeft = False End If End Sub

Si bLeft es verdadero, significa que el usuario ha introducido la parte izquierda del cálculo, este subrutina ajusta la variable sOperator que has creado en el paso 5 para igualar el operador introducido, que pasará al AddOperator como sNewOperator. El segundo paso es ajustar bLeft como falso, porque la entrada de una operación significa que lo que el usuario está haciendo es introducir el lado izquierdo de la ecuación. Para manejar entradas que multipliquen operadores, como 932*6, también necesitamos revisar si bLeft tiene un valor falso, lo que quiere decir que el usuario ha introducido un operador donde está esperando equivalentes. Primero nombramos el botón Click para el de equivalentes que se describe en el siguiente paso, que hace el cálculo y fija tbResult al resultado que ya ha sido introducido. Luego borramos sRight para que el usuario pueda introducir el siguiente número y fijamos bLeft en falso para que el programa reconozca que estamos introduciendo la parte derecha del cálculo.

Por último, añade un AddOperator al Click para cada botón operador, utilizando el mismo método que utilizaste en el Paso 7 para crear los eventos Click para los botones numéricos. Tu código para el botón de multiplicar se debe parecer a esto:

Private Sub btnPlus_Click() AddOperator ("+") End Sub Likewise, el código para el botón de resta será: Private Sub btnMinus_Click() AddOperator ("-") End Sub.

Paso 9

Crear el Click para los botones de igual que, es el código más complejo en este programa. Crea la estructura de subrutina como hiciste para los otros botones, haciendo clic dos veces en los botones de igual de tu formulario. Tu subrutina será así cuando hayas introducido el código:

Private Sub btnEquals_Click() If sLeft <> "" And sRight = "" And sOperator <> "" Then sRight = sLeft End If

If sLeft <> "" And sRight <> "" And sOperator <> "" Then iLeft = sLeft iRight = sRight

Select Case sOperator Case "+" iResult = iLeft + iRight Case "-" iResult = iLeft - iRight Case "/" iResult = iLeft / iRight Case "*" iResult = iLeft * iRight End Select

tbResult.Text = iResult

sLeft = iResult sRight = "" bLeft = True End If End Sub

Debes revisar las tres primeras líneas del código para ver si los dos lados del cálculo han sido introducidos junto con un operador. Si sólo se introdujeron el lado izquierdo y un operador, el valor del lado izquierdo se copiará en el derecho, así que podemos imitar el comportamiento de la calculadora estándar manejando una entrada como 9*=, que multiplica el 9 por sí mismo para obtener un resultado de 81. El resto del código funcionará si se introducen el lado izquierdo, el derecho y el operador y comenzará a copiar la serie de números en nuestras variables escritas dos veces iLeft e iRight, que podrá hacer los cálculos actuales. La frase Select Case nos permite ejecutar códigos diferentes dependiendo del operador introducido y lleva a cabo el cálculo, colocando el resultado en iResult. Por último, debemos actualizar el cuadro de texto con el resultado, copiar el resultado en sLeft, restaurar sRight y ajustar iResult. Estas últimas líneas nos permiten tomar el resultado del cálculo y utilizarlo para realizar otro cálculo.

Paso 10

Procesa los tres últimos botones de operaciones: sqrt, % y 1/x. Para el hacer el click del botón de la raíz cuadrada, tu código debe parecerse a este:

Private Sub btnPercent_Click() If Not bLeft Then If sRight <> "" Then iRight = sRight Else iRight = 0 End If

iRight = iRight * (iLeft / 100) tbResult.Text = iRight

If iRight <> 0 Then sRight = iRight Else sRight = "" End If End If End Sub

Debemos asegurarnos de que no tenemos un valor introducido en ambos lados de la ecuación en las primeras once líneas del código, debemos sustituir el cero en lugar de intentar copiar una serie vacía en iLeft o iRight ya que generará un error. Las líneas del medio realizarán la función de raíz cuadrada en la parte del cálculo, a la izquierda o a la derecha. Por último, debemos colocar al revés las comprobaciones que hicimos en el comienzo para que se copie un cero como una serie vacía en sLeft y en sRight.

Para el botón del porcentaje, el código debe ser parecido a lo siguiente pero con una excepción: la operación del porcentaje sólo se puede ejecutar si se introducen tanto el lado izquierdo como el derecho:

Private Sub btnPercent_Click() If Not bLeft Then If sRight <> "" Then iRight = sRight Else iRight = 0 End If

iRight = iRight * (iLeft / 100) tbResult.Text = iRight

If iRight <> 0 Then sRight = iRight Else sRight = "" End If End If End Sub

Lastly, the 1/x, or fraction, Click event, which is very similar to the code above: Private Sub btnFraction_Click() If sLeft <> "" Then iLeft = sLeft Else iLeft = 0 End If

If sRight <> "" Then iRight = sRight Else iRight = 0 End If

If bLeft Then iLeft = 1 / iLeft tbResult.Text = iLeft Else iRight = 1 / iRight tbResult.Text = iRight End If

If iLeft <> 0 Then sLeft = iLeft Else sLeft = "" End If

If iRight <> 0 Then sRight = iRight Else sRight = "" End If End Sub

Paso 11

Añade el código para manejar los botones C y CE. El botón C limpiar todas las entradas de datos de la calculadora, mientras que el CE sólo elimina el número que acabas de introducir. El código sería:

Private Sub btnC_Click() sLeft = "" sRight = "" sOperator = "" tbResult.Text = "0" bLeft = True End Sub

Private Sub btnCE_Click() If bLeft Then sLeft = "" Else sRight = "" End If tbResult.Text = "0" End Sub

Paso 12

Opera con tu programa de calculadora y haz cualquier cálculo que desees. Esta calculadora se puede ampliar fácilmente para manejar cualquier tipo de operaciones, hacer cálculos más complejos o incluso para que sea una calculadora científica con un poco de trabajo.