VB Tip: Básico sobre programação, variáveis, e POO
Autor: Diego Silva | Publicado: 2012-03-09T13:39:00-03:00

Olá.
À pedidos, criei a primeira videoaula voltada para quem ainda não tem conhecimento sobre a programação, e que se interessa em aprender sobre.

Como dito anteriormente, esse blog é voltado tanto para a programação básica quanto para a programação hardcore.

















function copia(s){
 document.getElementById("txtCopia").value = s;
 document.getElementById("txtCopia").cols=50;
 document.getElementById("txtCopia").rows=5;
 document.getElementById("bHideTXArea").style.display="";
 document.getElementById("txtCopia").style.display="";
 document.getElementById("txtCopia").focus();
 document.getElementById("txtCopia").select();
};

function ocultatextarea(){
document.getElementById("bHideTXArea").style.display="none";
document.getElementById("txtCopia").style.display="none";
};
function copiaCodigo(indice){
 switch(indice){
 case 0:
 copia("Public Class Pessoa\n \
 Friend Nome As String\n \
 Friend Sexo As String\n \
 Friend DataDeNascimento As Date\n \
 Friend EstáVivo As Boolean\n \
 Friend Pai As Pessoa\n \
 Friend Mãe As Pessoa\n \
 \n \
 'Aqui podem vir procedimentos ou funções relacionadas à pessoa genérica,\n \
 'como, por exemplo, \"falar\", \"andar\", e outros\n \
 End Class");
 break;
 
 case 1:
copia("Dim Lucas As New Pessoa\n\
Lucas.DataDeNascimento = DateValue(\"08/09/1995\")\n\
Lucas.Nome = \"Lucas Batista da Costa Silva\"\n\
Lucas.Sexo = \"Masculino\"\n\
Lucas.EstáVivo = True\n\
\n\
Lucas.Pai.Nome = \"Gustavo da Costa\"\n\
Lucas.Pai.DataDeNascimento = DateValue(\"26/09/1968\")\n\
Lucas.Pai.Sexo = \"Masculino\"\n\
Lucas.Pai.EstáVivo = True\n\
\n\
Lucas.Mãe.Nome = \"Andréia Silva\"\n\
Lucas.Mãe.DataDeNascimento = DateValue(\"11/07/1964\")\
Lucas.Mãe.Sexo = \"Feminino\"\n\
Lucas.Mãe.EstáVivo = True\n\
\n\
'[...]\n\
\n\
Lucas.Mãe.Mãe.Pai.Mãe.Mãe.Pai.Mãe.Pai.Pai.Pai.Pai.Pai.Pai.Pai.Pai.Pai.Nome = \"...\"");
 break;
 
 case 2:
 copia("Public Class Canis\n \
   Friend Overridable Function Nome() As String\n \
     Return \"Gênero Canis\"\n \
   End Function\n \
 End Class");
 break;
 
 case 3:
 copia("Public Class Lupus\n\
  Inherits Canis\n\
  Friend Overrides Function Nome() As String\n\
    Return \"Lobo\"\n\
  End Function\n\
End Class\n\
\n\
Public Class Familiaris\n\
  Inherits Canis\n\
  Friend Overrides Function Nome() As String\n\
    Return \"Cachorro\"\n\
  End Function\n\
End Class\n\
\n\
Public Class Latrans\n\
  Inherits Canis\n\
  Friend Overrides Function Nome() As String\n\
    Return \"Coiote\"\n\
  End Function\n\
End Class");
 break;
 
 case 4:
 copia("If Usuário = \"Admin\" Then\n \
MsgBox \"Você é o administrador do sistema\"\n \
End If\n \
\n \
If Usuário = \"Admin\" Then\n \
MsgBox \"Você é o administrador do Sistema\"\n \
Else\n \
MsgBox \"Você é um usuário comum do Sistema\"\n \
End If\n \
\n \
If Usuário = \"Admin\" Then\n \
MsgBox \"Você é o administrador do Sistema\"\n \
ElseIf PrivilégiosDeUsuário = \"m\" Then\n \
MsgBox \"Você é mediador do Sistema\"\n \
End If\n \
\n \
If Usuário = \"Admin\" Then\n \
MsgBox \"Você é o administrador do Sistema\"\n \
ElseIf PrivilégiosDeUsuário = \"m\" Then\n \
MsgBox \"Você é mediador do Sistema\"\n \
Else\n \
MsgBox \"Você é um usuário comum do Sistema\"\n \
End If");
 break;
 case 5:
 copia("Select Case Usuário\n\
Case \"Admin\"\n\
MsgBox(\"Bem-vindo, Administrador!\")\n\
Case \"Convidado\"\n\
MsgBox(\"Bem-vindo, convidado!\")\n\
Case Else\n\
MsgBox(\"Bem-vindo, \" & Usuário & \"!\")\n\
End Select");
 break;
 case 6:
 copia("Dim MyArray(0 To 20) As Double\n\
\n\
For i = 0 To 20\n\
MyArray(i) = i ^ 2\n\
Next\n\
\n\
'Resulta em MyArray={0,1,4,9,16,25,36,49,64,81,100,121,\n\
'144,169,196,225,256,289,324,361,400}");
 break;
 case 7:
 copia("While Not Finalizado\n\
If Microsoft.VisualBasic.Timer - Tempo > 5 Then\n\
Exit While\n\
End If\n\
Application.DoEvents()\n\
End While\n\
\n\
MsgBox(\"Finalizado\")\n\
--------------------------------------------------------\n\
Do While Not Finalizado\n\
If Microsoft.VisualBasic.Timer - Tempo > 5 Then\n\
Exit Do\n\
End If\n\
Application.DoEvents()\n\
Loop\n\
MsgBox(\"Finalizado\")");
 break;
 default:
 copia("Índice incorreto");
 }
}

Este artigo servirá como complemento do vídeo.


  
    
  
  
    
  
   O que é programação?
   O que programação tem em comum com a Matemática?
   Por quê programar?
   O que preciso saber para programar?
   Em qual linguagem programar?
   Freelancing ou emprego fixo em empresas de software, qual escolher?
   Programar é fácil?
   Qual a diferença entre linguagens de alto nível e linguagens de baixo nível?
   Criar páginas web ou criar programas para desktop?
   Classes e POO: O que são?
   Variáveis: o que são, e como funcionam?
   Estruturas de condição e repetição
   Criando o primeiro projeto: uma calculadora simples
  
 
  





O que é programação?
O termo "programação" tem vários sentidos, mas dentro do contexto de informática, "programação é o processo de escrita, teste e manutenção de um programa de computador. O programa é escrito em uma linguagem de programação, embora seja possível, com alguma dificuldade, escrevê-lo directamente em linguagem de máquina. Diferentes partes de um programa podem ser escritas em diferentes linguagens." (Fonte: Oficina da Net)

O que programação tem em comum com a Matemática?
Tudo. Podemos dizer que a programação é um tipo de matemática, voltada para aplicações desktop e web. A programação utiliza variáveis, constantes e funções, da mesma forma que na matemática. O primeiro computador, por assim dizer, foi o ábaco, que nada mais era que uma calculadora. Um computador nada mais é do que uma calculadora, uma vez que realiza milhões e até bilhões de contas por segundo. A programação utiliza também base decimal, hexadecimal, binária e octal, nos códigos. Enfim, na prática, a programação nada mais é do que cálculo.

Por quê programar?
Com o avanço da tecnologia e a adaptação das leis e das empresas para com essas novas tecnologias, a cada dia torna-se mais importante saber pelo menos o básico da informática, e esse básico não se restringe à mexer em planílhas do Excel ou em acessar webchats. Toda pessoa que se inicia na informática deveria saber, pelo menos, o básico de algorítmo e programação, não para criar programas, mas para saber como a máquina funciona e saber resolver problemas básicos, como, por exemplo, remoção de um vírus ou instalação de um programa. Já para quem quer criar aplicativos ou mesmo sistemas, já é necessário saber além. Saber sobre as classes, sobre as estruturas de condição, sobre a POO (Programação Orientada a Objeto) é fundamental para se saber programar.

O que preciso saber para programar?
Primeiro de tudo é fundamental saber como funciona o próprio computador. Ser curioso e investigar sobre cada processo que roda no próprio computador, saber sobre o sistema operacional, e também saber a parte de hardware, saber basicamente como funciona o processador, o HD, a placa-mãe, enfim, é necessário conhecer o próprio computador antes de programar para outros computadores. É necessário saber também que cada computador tem as suas configurações de acordo com o usuário e com as configurações e características de hardware, como, por exemplo, modelo de processador, memória RAM, e velocidade de clock. Por isso, um programa que rode em seu computador não irá, necessariamente, rodar no computador de um amigo ou no notebook de um colega de trabalho. Portanto, é necessário criar programas que se adaptem às configurações de cada computador e criar versões para x86 (sistemas de 32 bits) e x64 (sistemas de 64 bits), que explicarei no próximo artigo. A curiosidade é mãe do conhecimento. Se essa curiosidade resultar em falhas, não tem problema: nós, seres humanos, aprendemos com essas falhas. É necessário errar para saber não errar novamente nas mesmas circunstâncias.

Em qual linguagem programar?
Há quem diga que C++ é melhor que Ruby ou VB, assim como há quem diga que distros Linux são melhores que Windows. Entretanto, o sistema operacional e linguagem não importam para saber programar. Para quem vai trabalhar com a programação e está no nível intermediário ou avançado/hardcore do conhecimento de programação, vai um conselho: há quem diga que a melhor linguagem é aquela que paga mais e, atualmente, Java, Python e C++ estão com mais "moral" no mercado, isso porque estão surgindo e imperando novas tecnologias portáteis, como Android (Google) e o Windows 8 (Microsoft), além de sistemas operacionais da Apple, tanto portáteis quanto para desktop (Macs, Mac OS X, Lion, etc.).
Entretanto, para quem está iniciando na programação, recomendo iniciar com linguagens simples e fáceis de programar, como Visual Basic, Delphi ou qualquer outra linguagem RAD (do inglês Rapid Application Development, Desenvolvimento rápido de aplicativos) e que permita arrastar controles e "debugar" o código.

Freelancing ou emprego fixo em empresas de software, qual escolher?
Fica à critério do programador. Enquanto no emprego fixo você tem garantia do salário todo mês, no freelancing você trabalha de modo autônomo e pode escolher o horário e dia da semana que você pode programar e não fica se estressando com sistemas de terceiros (a vida de um programador não é fácil, mesmo que muitos imaginem que seja).

Programar é fácil?
Depende. O que pode ser fácil para mim pode ser difícil para você, e vice-versa. Isso depende principalmente do quê a pessoa pretende fazer profissionalmente, e com qual área (exatas ou humanas) se tem mais interesse. Uma pessoa que lida bem com matemática ou física com certeza se dará bem com programação, uma vez que ela já está acostumada com variáveis, funções e fórmulas, e a programação não foge disso. Isso também vai depender da linguagem escolhida. Existem dois tipos de linguagens de programação: linguagens de alto nível (onde se incluem, C++, Cobol, Python e até VB) e linguagens de baixo nível (onde se inclui o Assembly e C, ambos não apresentam nenhuma ou pouca forma de abstração (como classes)). Irei explicar sobre alto nível e baixo nível, adiante.

Qual a diferença entre linguagens de alto nível e linguagens de baixo nível?
Linguagens de alto nível oferecem maior quantidade de abstrações, principalmente, a criação de classes.
Em Assembly e C, não existem classes, logo, não há formas de abstração.
Abstração vem de abstrato, algo intangível pelo processador, simplesmente porque pode ser algo tangível na realidade. Um exemplo é a criação de uma classe chamada Pessoa (que inclusive está exemplificada na vídeoaula), que é intangível pelo processador sem ser compilada e/ou interpretada, mas que é tangível por nós.

Criar páginas web ou criar programas para desktop?
Muitas pessoas acham que a criação de páginas web (sites como este, ou Wikipedia, ou Orkut, ou Facebook, etc) é diferente da criação de programas desktop (como MSN, Windows Media Player, Excel, Word, Bloco de notas, ou para usuários linux: GEdit, Nuvola Player, aMSN, Pidgin, OpenOffice, BrOffice), mas não é. A criação de páginas web envolve Javascript, ou mesmo o HTML e o CSS, que nada mais são do que linguagens de programação. A diferença é que as linguagens web não têm contato direto com todos os recursos que o computador do cliente pode oferecer. Por exemplo, um site não tem como acessar arquivos em seu computador, usando ActiveX, sem sua permissão e consentimento.

 
Agora, veremos sobre o conceito de classes.

Classes e POO: O que s&atilde;o?
A Programação Orientada a Objetos (POO) é um paradigma de análise, projeto e programação de sistemas de software baseado na composição e interação entre diversas unidades de software chamadas de objetos. (Fonte: Wikipédia). 

A POO permite a abstra&ccedil;&atilde;o, e, consequentemente, a cria&ccedil;&atilde;o de classes e inst&acirc;ncias destas (objetos), da&iacute;, Programa&ccedil;&atilde;o Orientada a Objeto.
Darei um exemplo presente no vídeo:


Acima, temos a classe Pessoa com suas propriedades (Nome, Data de nascimento, etc).
Criaremos instâncias dessa classe:




Como você pôde reparar, podemos criar uma árvore genealógica com a classe Pessoa. Isso porque a classe Pessoa faz referência circular à ela mesma (Dim Mãe As Pessoa e Dim Pai As Pessoa).

Uma classe pode ser criada com base em outra classe, ou seja, esta nova classe poderá herdar as funções, propriedades e eventos da classe pai. Vejamos um exemplo do vídeo:



Lembra-se das aulas de Biologia do Ensino Médio? Na Taxonomia, classificação dos seres vivos, existe o gênero Canis (Reino: Animalia, Filo: Chordata, Classe: Mammalia, Ordem: Carnivora, Família: Canidae, e Gênero: Canis). Dentro deste gênero, existem três animais conhecidos: cachorro, lobo e coiote. Como quase tudo em todas os ramos e disciplinas pode ser representado na informática, iremos representar as três principais espécies do gênero Canis. Para isso, criaremos três "classes" que herdam desta classe Canis(não confundir classe biológica com classe programática):




Veremos agora o básico da programação: o conceito de variáveis, e como são armazenadas.

Variáveis: o que são, e como funcionam?
Na matemática, as variáveis contém valores. Na programação, não é muito diferente disso. As variáveis em si não guardam dados: guardam, na verdade, um ponteiro para aqueles dados. 
Você pode estar se perguntando: "ponteiro?". Irei explicar: todos os dados no seu computador, sejam os programas ou seus comandos, são guardados na memória RAM.
Vamos imaginar a memória RAM como sendo uma enorme rua: cada casa, tem um endereço próprio. 


Pois bem, cada casa desta, contém 8 pessoas. Essas 8 pessoas, são os 8 bits do byte. A casa é o byte e as 8 pessoas ali dentro são os bits. A variável, seria o carteiro que entrega as cartas e recebe as cartas dessas pessoas. Para isso, ele precisa saber aonde estão essas oito pessoas, para poder entregar ou receber essas cartas no endereço correto. Dados maiores que 1 byte (como word, ou dword) são armazenados em 2 e 4 casas, respectivamente, mas cada uma com o mesmo número de moradores.
A variável, está localizada em um ponto da memória (mais precisamente em quatro casas desta enorme rua, pois ocupa 32 bits) e contém, como valor, o endereço dos dados que ela aponta.

A seguir veremos algumas estruturas da programação, como, por exemplo, condições (if) e repetições (for, while).

Estruturas de condição e repetição
Para fazer comparações entre dados, existem as estruturas de condição. São duas: IF e Select Case. Veremos primeiro a estrutura IF.
A estrutura IF (em português, "se") pode se apresentar de quatro formas: If..EndIf, If..Else..EndIf, If..ElseIf..EndIf e If..ElseIf..Else..EndIf.

Veremos cada uma:

 

Esses foram alguns exemplos da estrutura IF. Agora, veremos outra estrutura: A estrutura condicional Select Case.





A estrutura condicional Select Case pode se apresentar com o Case Else (quando nenhum dos casos corresponde ao valor) ou sem o Case Else.

Veremos agora, as estruturas de repeti&ccedil;&atilde;o: For e While.

For: estrutura de repeti&ccedil;&atilde;o em que se tem um valor de vezes em que o c&oacute;digo ser&aacute; executado:




While: estrutura de repeti&ccedil;&atilde;o onde n&atilde;o se h&aacute; um n&uacute;mero exato de vezes em que o c&oacute;digo ser&aacute; executado.




Essas caracter&iacute;sticas (while para quantidade indefinida de execu&ccedil;&otilde;es ou for para quantidade conhecida) n&atilde;o s&atilde;o  regras, ou seja, voc&ecirc; pode usar o for para quantidades indefinidas de execu&ccedil;&atilde;o de c&oacute;digo, ou o while para quantidades conhecidas.

Agora veremos sobre o projeto da Calculadora.
Criando o primeiro projeto: uma calculadora simples
Agora que temos uma noção básica de o que é e como funciona a programação, criaremos o nosso primeiro projeto em Visual Basic 2008: uma calculadora simples.
Antes de tudo, temos que ter o VB2008 instalado na máquina. Entre na página da Microsoft do VB2008 (cujo link é http://www.microsoft.com/visualstudio/en-us/products/2008-editions/express), procure por "Visual Basic 2008 Express Edition with SP1" e clique. Uma dropbox irá aparecer (caixa de seleção de itens). Escolha "English" e clique em "Free Download". Um arquivo pedirá para ser baixado, baixe-o e o execute. O arquivo chama-se vbsetup.exe. Mas não se preocupe: é um programa confiável da Microsoft. No instalador, vá clicando Next até que ele baixe os componentes necessários para a instalação (detalhe: aproximadamente uns 100MB serão baixados, ou seja, se você não tiver uma boa internet, execute o instalador de manhã para terminar à noite). Após o download concluir, provavelmente aparecerão mais telas e vá clicando em "next", até que a instalação seja concluída. Após isso, vá em Iniciar e procure pelo Visual Basic 2008. Na primeira execução ele pedirá que você registre o produto mas não se preocupe: ele só vai abrir uma página para que você coloque quais as intenções para com o programa. Prefira colocar que servirá para estudos (Student). Após a etapa do preenchimento das informações na página, ele dará uma chave. Use ela para licenciar o programa, que é totalmente gratuíto.  

Caso tiver o VB2008 j&aacute; instalado, pule para este par&aacute;grafo.
No v&iacute;deo, ele vai ensinando como criar a calculadora. Abaixo, disponibilizarei o c&oacute;digo-fonte do programa (o que far&aacute; a nossa calculadora funcionar):
Public Class fCalc
    Public OperadorA As String
    Public OperadorB As String
    Public Operation As String
    Private Sub fCalc_Load(ByVal sender As System.Object, _
                           ByVal e As System.EventArgs) Handles MyBase.Load
        CalcDisplay.Text = CStr(CDbl(OperadorA))
    End Sub
    Private Sub fCalc_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
        Select Case e.KeyCode
            Case Keys.NumPad0
                bNP0_Click(sender, e)
            Case Keys.NumPad1
                bNP1_Click(sender, e)
            Case Keys.NumPad2
                bNP2_Click(sender, e)
            Case Keys.NumPad3
                bNP3_Click(sender, e)
            Case Keys.NumPad4
                bNP4_Click(sender, e)
            Case Keys.NumPad5
                bNP5_Click(sender, e)
            Case Keys.NumPad6
                bNP6_Click(sender, e)
            Case Keys.NumPad7
                bNP7_Click(sender, e)
            Case Keys.NumPad8
                bNP8_Click(sender, e)
            Case Keys.NumPad9
                bNP9_Click(sender, e)

            Case Keys.D0
                bNP0_Click(sender, e)
            Case Keys.D1
                bNP1_Click(sender, e)
            Case Keys.D2
                bNP2_Click(sender, e)
            Case Keys.D3
                bNP3_Click(sender, e)
            Case Keys.D4
                bNP4_Click(sender, e)
            Case Keys.D5
                bNP5_Click(sender, e)
            Case Keys.D6
                bNP6_Click(sender, e)
            Case Keys.D7
                bNP7_Click(sender, e)
            Case Keys.D8
                bNP8_Click(sender, e)
            Case Keys.D9
                bNP9_Click(sender, e)


            Case Keys.Enter
                bEqual_Click(sender, e)
            Case Keys.Add
                bOPPlus_Click(sender, e)
            Case Keys.Subtract
                bOPMinus_Click(sender, e)
            Case Keys.Multiply
                bOPTimes_Click(sender, e)
            Case Keys.Divide
                bOPDivide_Click(sender, e)

            Case Keys.Decimal
                bNPComma_Click(sender, e)

            Case Keys.Escape
                bC_Click(sender, e)
            Case Keys.Delete
                bCE_Click(sender, e)
            Case Keys.Back
                Button1_Click(sender, e)
        End Select
    End Sub
    Public Sub Calc_AppendNumber(ByVal Numero As String)
        If Operation = "" Then
            If Len(OperadorA) < 10 Then OperadorA = OperadorA + Numero
            CalcDisplay.Text = CStr(CDbl(OperadorA))
        Else
            If Len(OperadorB) < 10 Then OperadorB = OperadorB + Numero
            CalcDisplay.Text = CStr(CDbl(OperadorB))
        End If
    End Sub

    Private Sub bNP0_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bNP0.Click
        Calc_AppendNumber("0")
    End Sub

    Private Sub bNP1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bNP1.Click
        Calc_AppendNumber("1")
    End Sub

    Private Sub bNP2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bNP2.Click
        Calc_AppendNumber("2")
    End Sub

    Private Sub bNP3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bNP3.Click
        Calc_AppendNumber("3")
    End Sub

    Private Sub bNP4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bNP4.Click
        Calc_AppendNumber("4")
    End Sub

    Private Sub bNP5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bNP5.Click
        Calc_AppendNumber("5")
    End Sub

    Private Sub bNP6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bNP6.Click
        Calc_AppendNumber("6")
    End Sub

    Private Sub bNP7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bNP7.Click
        Calc_AppendNumber("7")
    End Sub

    Private Sub bNP8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bNP8.Click
        Calc_AppendNumber("8")
    End Sub

    Private Sub bNP9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bNP9.Click
        Calc_AppendNumber("9")
    End Sub

    Private Sub bNPComma_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bNPComma.Click
        If Operation = "" Then
            If InStr(OperadorA, ",") = 0 Then
                OperadorA = OperadorA + ","
                CalcDisplay.Text = CStr(CDbl(OperadorA))
            End If
        Else
            If InStr(OperadorB, ",") = 0 Then
                OperadorB = OperadorB + ","
                CalcDisplay.Text = CStr(CDbl(OperadorB))
            End If
        End If
    End Sub
    
    Private Sub bCE_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bCE.Click
        If Operation = "" Then
            OperadorA = ""
            CalcDisplay.Text = CStr(CDbl(CorrigeOperador(OperadorA)))
        Else
            OperadorB = ""
            CalcDisplay.Text = CStr(CDbl(CorrigeOperador(OperadorB)))
        End If

    End Sub
    Function CorrigeOperador(ByVal operador As String) As String
        If operador = "" Then
            CorrigeOperador = "0"
        Else
            CorrigeOperador = operador
        End If
    End Function
    Private Sub bC_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bC.Click
        OperadorA = ""
        OperadorB = ""
        Operation = "" : bOperation.Text = Operation
        CalcDisplay.Text = CStr(CDbl(CorrigeOperador(OperadorA)))

    End Sub

    Private Sub CalcDisplay_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles CalcDisplay.GotFocus
        CalcDisplay.SelectionLength = 0

    End Sub
    Sub FazOperacao(ByVal Operacao As String)
        If Operation = "" Then
            Operation = Operacao : bOperation.Text = Operation
        ElseIf OperadorB = "" Then
            Operation = Operacao : bOperation.Text = Operation
        Else
            FazIgualdade()
        End If
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If Operation = "" Then
            If Len(OperadorA) > 0 Then OperadorA = Mid(OperadorA, 1, Len(OperadorA) - 1)
            CalcDisplay.Text = CStr(CDbl(CorrigeOperador(OperadorA)))
        Else
            If Len(OperadorB) > 0 Then OperadorB = Mid(OperadorB, 1, Len(OperadorB) - 1)
            CalcDisplay.Text = CStr(CDbl(CorrigeOperador(OperadorB)))
        End If
    End Sub

    Private Sub bOPPlus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bOPPlus.Click
        FazOperacao("+")
    End Sub

    Private Sub bOPMinus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bOPMinus.Click
        FazOperacao("-")
    End Sub

    Private Sub bOPTimes_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bOPTimes.Click
        FazOperacao("*")
    End Sub

    Private Sub bOPDivide_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bOPDivide.Click
        FazOperacao("/")
    End Sub
    Sub FazIgualdade()
        If Operation <> "" Then
            If OperadorB = "" Then OperadorB = OperadorA
            Select Case Operation
                Case "+"
                    OperadorA = CStr(CDbl(CorrigeOperador(OperadorA)) + CDbl(CorrigeOperador(OperadorB)))
                Case "-"
                    OperadorA = CStr(CDbl(CorrigeOperador(OperadorA)) - CDbl(CorrigeOperador(OperadorB)))
                Case "*"
                    OperadorA = CStr(CDbl(CorrigeOperador(OperadorA)) * CDbl(CorrigeOperador(OperadorB)))
                Case "/"
                    If OperadorB = "0" Or OperadorB = "" Then
                        OperadorA = "0"
                    Else
                        OperadorA = CStr(CDbl(CorrigeOperador(OperadorA)) / CDbl(CorrigeOperador(OperadorB)))
                    End If
            End Select
            CalcDisplay.Text = CStr(OperadorA)
            OperadorB = ""
        End If
    End Sub
    Private Sub bEqual_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bEqual.Click
        FazIgualdade()
    End Sub
End Class
O projeto, pronto e compactado, se encontra em https://skydrive.live.com/redir.aspx?cid=b278d5e7a71b5dca&resid=B278D5E7A71B5DCA!165&parid=B278D5E7A71B5DCA!101&authkey=!AKPBZC3j_lEkJz4 (pasta do Windows Live SkyDrive. Baixe o arquivo zip "Tutorial-Blog_Diego_Silva-Calculadora_Simples").

É isso, pessoal.
Em breve postarei mais artigos.
Qualquer dúvida, sugestão ou reclamação, contate-me pelo Fale Conosco lá em cima.
Até o próximo artigo!