VB6 - Calculadora Científica


Que tal uma calculadora cientifica feita no VB6 ?

Se você pensa que é necessário um código muito complexo para fazer uma calculadora científica vai se espantar ao ver o código desta que eu apresento aqui. O código precisa de refinamento mas mostra que com criatividade você pode fazer coisas incríveis com a linguagem Visual Basic.

Calculadora Científica

Na verdade eu creio que desenhar a interface da aplicação vai dar mais trabalho que o código necessário para ela funcionar.

Crie um novo projeto do tipo STANDARD EXE e altere o nome do formulário form1 para calculator.frm.

Crie o seguinte leiaute no formulário do projeto:

A seguir inclua o código abaixo no formulário:

Dim op1 As Double
Dim res As Double
Dim op2 As Double
Dim n As Double
Dim i As Integer
Dim operator As String
Dim s As String
Dim c As String

Private Sub cmdclear_Click()
    txtResultado.Text = ""
End Sub

Private Sub cmddegrad_Click(Index As Integer)

op1 = Val(txtResultado.Text)

Select Case (Index)
Case 0
    res = op1 * 3.142 / 180
Case 1
   res = 180 * op1 / 3.142
End Select
   txtResultado.Text = res
End Sub

Private Sub cmde_Click()
  txtResultado.Text = "2.71828182845904523536"
End Sub

Private Sub cmdlog_Click(Index As Integer)

op1 = Val(txtResultado.Text)

Select Case (Index)
Case 0
    res = Log(op1)
Case 1
    res = Log(op1) / Log(10)
Case 2
    res = 10 ^ op1
End Select
    txtResultado.Text = res
End Sub

Private Sub cmdmemory_Click(Index As Integer)
Static m As Double

Select Case (Index)
Case 0
  m = m + Val(txtResultado.Text)
Case 1
  m = m - Val(txtResultado.Text)
Case 2
  m = 0
  txtResultado.Text = ""
Case 3
  txtResultado.Text = m
  MsgBox m
End Select

If m = 0 Then
    Text1.Text = ""
Else
    Text1.Text = "M"
End If
End Sub

Private Sub cmdnumber_Click(Index As Integer)
Select Case (Index)
Case 0
   txtResultado.Text = txtResultado + "1"
Case 1
   txtResultado.Text = txtResultado + "2"
Case 2
   txtResultado.Text = txtResultado + "3"
Case 3
   txtResultado.Text = txtResultado + "4"
Case 4
   txtResultado.Text = txtResultado + "5"
Case 5
   txtResultado.Text = txtResultado + "6"
Case 6
   txtResultado.Text = txtResultado + "7"
Case 7
   txtResultado.Text = txtResultado + "8"
Case 8
   txtResultado.Text = txtResultado + "9"
Case 9
   txtResultado.Text = txtResultado + "0"
Case 10
   txtResultado.Text = txtResultado + "."
Case 11
txtResultado.Text = txtResultado + "A"
Case 12
   txtResultado.Text = txtResultado + "B"
Case 13
   txtResultado.Text = txtResultado + "C"
Case 14
   txtResultado.Text = txtResultado + "D"
Case 15
   txtResultado.Text = txtResultado + "E"
Case 16
   txtResultado.Text = txtResultado + "F"
End Select
End Sub

Private Sub cmdoperation_Click(Index As Integer)

On Error GoTo trataerro

Select Case (Index)
Case 0
   op1 = Val(txtResultado.Text)
   operator = "/"
   txtResultado.Text = ""
Case 1
   op1 = Val(txtResultado.Text)
   operator = "*"
   txtResultado.Text = ""
Case 2
   op1 = Val(txtResultado.Text)
   operator = "+"
   txtResultado.Text = ""
Case 3
   op1 = Val(txtResultado.Text)
   operator = "-"
   txtResultado.Text = ""
Case 5
   op1 = Val(txtResultado.Text)
   operator = "^"
   txtResultado.Text = ""
Case 6
op1 = Val(txtResultado.Text)
operator = "%"
txtResultado.Text = ""
Case 7
   op1 = Val(txtResultado.Text)
   operator = "$"
   txtResultado.Text = ""
Case 4
   op2 = Val(txtResultado.Text)
Select Case (operator)
Case "+"
   res = op1 + op2
Case "-"
   res = op1 - op2
Case "*"
   res = op1 * op2
Case "/"
   res = op1 / op2
Case "^"
   res = op1 ^ op2
Case "%"
   res = op1 / op2 * 100
Case "$"
   res = op1 ^ (1 / op2)
End Select
 txtResultado.Text = res
op1 = res
End Select
Exit Sub
trataerro:
   MsgBox "Erro no processamento."
End Sub

Private Sub cmdpercent_Click()
   res = res * 100
   txtResultado.Text = res
End Sub

Private Sub cmdpi_Click()
   txtResultado.Text = 62832 / 20000 
End Sub

Private Sub cmdpn_Click()
   res = Val(txtResultado.Text)
   res = -(res)
   txtResultado.Text = res
End Sub

Private Sub cmdsqr_Click(Index As Integer)
 op1 = Val(txtResultado.Text)

Select Case (Index)
Case 0
   res = op1 * op1 * op1
Case 1
   res = op1 * op1
Case 2
   res = Sqr(op1)
Case 3
   res = 1 / op1
Case 4
   n = 1
   For i = 1 To op1
       n = i * n
   Next i
res = n
End Select
txtResultado.Text = res
End Sub

Private Sub cmdtrigno_Click(Index As Integer)

op1 = Val(txtResultado.Text)
Select Case (Index)
Case 0
   res = Sin(op1 * 3.142 / 180)
Case 1
   res = Cos(op1 * 3.142 / 180)
Case 2
   res = Tan(op1 * 3.142 / 180)
Case 3
   res = 1 / Tan(op1 * 3.142 / 180)
End Select

txtResultado.Text = res
End Sub

Private Sub Command1_Click()

  s = txtResultado.Text
  c = Len(s)

   If c = 0 Then
       txtResultado.Text = ""
   Else
       c = c - 1
       txtResultado.Text = Left(s, c)
    End If

End Sub
Private Sub Form_Load()
   txtResultado.Text = "www.macoratti.net"
End Sub

E pronto ! podemos testar a calculadora:

Pegue o projeto completo aqui : CalculadoraCientifica.zip

Veja a mesma calculadora no VB .NET : VB .NET - Calculadora Cientifica

Eu sei é apenas Visual Basic , mas eu gosto...


José Carlos Macoratti