Como fazer uma calculadora com o Visual Basic

Abra o Visual Basic 6 e selecione "Standard EXE" no menu do novo projeto. Você verá um formulário em branco aparecer na tela.

Renomeie seu projeto e seu formulário clicando em "Projeto1" no lado direito da tela, na lista de projetos, e inserir um novo nome na linha "Nome" da caixa Propriedades, que deve aparecer abaixo da lista do projeto por padrão. Pressione “Enter” para aceitar o novo nome. Faça o mesmo para o seu formulário (um nome de formulário sugerido é "CalculatorUI"), certificando-se de inserir um nome semelhante na propriedade "Caption" também, o que mudará o texto na barra superior do formulário. Salve o projeto em uma nova pasta em seu computador.

Adicione botões e uma caixa de texto ao formulário. Primeiro, adicione uma caixa de texto, que será onde aparecem os números inseridos na calculadora, bem como os resultados dos cálculos. Faça isso selecionando o botão TextBox na barra de ferramentas no lado esquerdo da tela e, em seguida, arraste com o mouse o tamanho e a localização que deseja para a TextBox. Depois de colocar o TextBox, você pode alterar o tamanho e a localização arrastando-o para outro local do formulário ou arrastando as alças (os pequenos quadrados) ao longo da borda do TextBox. Certifique-se de alterar as seguintes linhas na janela Propriedades, com TextBox selecionado: "(Nome)" = tbResult, "Alinhamento" = 1- Justificado à direita, "Formato de dados" = (clique no botão "..." para selecionar) Número, "Bloqueado" = Verdadeiro e "Texto" = 0.

Selecione o ícone CommandButton na barra de ferramentas e crie o primeiro botão da mesma forma que você criou o TextBox para adicionar botões. Para referência, use a calculadora do Windows no modo de exibição Padrão (Programas> Acessórios> Calculadora) como base para o layout da calculadora, deixando de fora os botões "MC", "MR", "MS" e "M +". Em cada botão, altere as seguintes propriedades (usando o botão "+" como exemplo): "(Nome)" = btnPlus, "Caption" = +. Faça o mesmo para o resto dos botões da calculadora e salve seu trabalho. Seu formulário agora deve se parecer com o exemplo mostrado aqui.

Adicione o código. Observe que se os seus botões e caixa de texto não tiverem o mesmo nome que o código listado aqui espera, você precisará para alterar os nomes para corresponder aos seus botões e caixa de texto, ou alterar seus botões e caixa de texto para corresponder a este código. Primeiro, precisamos criar algumas variáveis ​​para processar a entrada da 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 em quatro partes: um número à esquerda do operador (sLeft, iLeft), um operador (sOperator), um número à direita do operador (sRight, iRight) e um resultado (iResult). Para rastrear se o usuário está inserindo o número esquerdo ou direito, precisamos criar uma variável booleana, bLeft. Se bLeft for true, o lado esquerdo do cálculo está sendo inserido; se bLeft for false, o lado direito está sendo inserido.

Inicialize a variável bLeft. Fazemos isso criando uma sub-rotina Form_Load, que você pode digitar conforme listado aqui ou criar automaticamente clicando duas vezes em qualquer parte do formulário não coberta por um botão ou caixa de texto. Dentro da função, precisamos definir bLeft como True, porque o primeiro número inserido será a parte esquerda:

Crie uma sub-rotina que manipulará o clique de qualquer um dos botões numéricos. Criamos isso como uma sub-rotina porque usamos um código idêntico para cada botão, e usar uma sub-rotina significa não ter que repetir o mesmo código dez vezes. Insira o seguinte abaixo da linha End Sub da sub-rotina Form_Load:

Como você pode ver, essa função recebe um parâmetro de string, sNumber, que conterá o número em que o usuário clicou. Se bLeft for verdadeiro, esse número é anexado à string que representa o número que está sendo inserido, sLeft, e a caixa de texto, tbResult, é atualizada para exibir o novo número. Se bLeft for falso, a mesma operação será executada usando sRight.

Finalmente, crie uma função de evento Click para cada número que chama nossa sub-rotina AddNumber. Você pode fazer isso facilmente clicando duas vezes em cada botão de número, o que criará a estrutura da sub-rotina para você. Em seguida, adicione a chamada para AddNumber, substituindo o número entre aspas pelo número associado ao botão. Para o botão zero, seu código terá a seguinte aparência:

Da mesma forma, para o botão um, seu código será semelhante a este:

Lidar com os operadores: mais, menos, tempos e dividir. Faremos isso como na última etapa, criando uma sub-rotina que é chamada nos eventos Click para os botões do operador. A sub-rotina será semelhante a esta:

Se bLeft for verdadeiro, o que significa que o usuário acabou de inserir a parte esquerda do cálculo, esta sub-rotina define o Variável sOperator que criamos na etapa 5 para igualar o operador inserido, que é passado para AddOperator como a string sNewOperator. A segunda etapa é definir bLeft como False, porque a entrada de um operador significa que o usuário acabou de inserir o lado esquerdo da equação. Para lidar com entradas que agrupam vários operadores, como 9 * 3 * 2 * 6, precisamos também verifique se bLeft é falso, o que significa que o usuário inseriu um operador onde esperávamos um é igual a. Primeiro chamamos o evento Click para o botão igual (descrito na próxima etapa), que faz o cálculo e define tbResult como o resultado do que já foi inserido. Em seguida, limpamos sRight para que o usuário possa inserir o próximo número e definimos bLeft como False para que o programa saiba que estamos inserindo o lado direito do cálculo a seguir.

Finalmente, adicione uma chamada AddOperator ao evento Click de cada botão do operador, usando o mesmo método que usamos na etapa 7 para criar os eventos Click para os botões numéricos. Seu código para o botão de adição será semelhante a este:

Crie o evento Click para o botão igual, que é o código mais complexo neste programa. Crie a estrutura de sub-rotina como você fez para os outros botões, clicando duas vezes no botão igual em seu formulário. Sua sub-rotina ficará assim quando você inserir o código:

As primeiras três linhas do código verificam se ambos os lados do cálculo foram inseridos junto com um operador. Se apenas o lado esquerdo e um operador forem inseridos, o valor do lado esquerdo será copiado para a direita, para que possamos imitar o comportamento padrão da calculadora para lidar com uma entrada como 9 * =, que multiplica 9 por si mesma para obter um resultado de 81. O resto do código será executado apenas se esquerda, direita e operador forem inseridos, e começa copiando as cadeias de números em nossas variáveis ​​de tipo duplo iLeft e iRight, que podem fazer o cálculos. A instrução Select Case nos permite executar códigos diferentes, dependendo de qual operador foi inserido, e executa o cálculo real, colocando o resultado em iResult. Por fim, atualizamos a caixa de texto com o resultado, copiamos o resultado em sLeft, redefinimos sRight e definimos bLeft = True. Essas últimas linhas nos permitem pegar o resultado do cálculo e usá-lo para realizar outro cálculo.

Manipula os últimos três botões de operação: sqrt,% e 1 / x. Para o evento Click do botão de raiz quadrada, seu código será semelhante a este:

As primeiras 11 linhas de código garantem que, se não tivermos um valor inserido para nenhum dos lados da equação, substituímos zero em vez de tentar copiar uma string vazia para iLeft ou iRight, o que irá gerar um erro. As linhas do meio executam a função de raiz quadrada na parte atual do cálculo, tanto à esquerda quanto à direita. Finalmente, invertemos as verificações que fizemos no início para que um zero seja copiado como uma string vazia de volta para sLeft e sRight.

Para o botão de porcentagem, o código é semelhante, com uma exceção: a operação de porcentagem só pode ser executada se os lados esquerdo e direito forem inseridos.

Por último, o 1 / x, ou fração, evento Click, que é muito semelhante ao código acima:

Adicione código para lidar com os botões C e CE. C apaga todas as entradas para a calculadora, enquanto CE apaga apenas o número que está sendo inserido.

Execute o programa da calculadora e faça qualquer cálculo que desejar. Esta calculadora pode ser facilmente expandida para lidar com mais operações, cálculos mais complexos ou até mesmo para ser uma calculadora científica com um pouco de trabalho extra.

Dica

Se você encontrar erros, verifique seu código linha por linha, concentrando-se nas linhas que o VB chamou de conter erros, e compare-o com o código acima. O código contido neste artigo foi totalmente testado para evitar erros, portanto, copiá-lo fielmente resultará em um programa funcional. Se você estiver usando uma versão anterior do Visual Basic, poderá encontrar alguns problemas em que foram feitas alterações no idioma entre as versões. As versões anteriores do VB, por exemplo, usavam o Math. Sqrt () em vez de Math. Sqr () para realizar uma operação de raiz quadrada. Verifique as referências de sua versão específica para ver se alguma alteração é necessária.