4 function Calculator with 8 level memory

By | 2002-06-01

This is a 4 function calculator with 8 – level memory, it performs calculations

Original Author: James Bergeron

Assumptions

Nothing, it works nicely

Returns

Values you calculated

Side Effects

None, I hope 🙂

API Declarations


NONE

Code

Dim calcarray(0 To 3) As Double
Dim holder As Integer
Dim operation As Integer
Dim decicount As Integer
Dim newnum As Integer
Dim clearcount As Integer
Dim memstorebut(1 To 8) As Double
Dim location As Single

Private Sub clear_Click()
     If clearcount = 0 Then
       txtcal.Text = ""
       clearcount = 1
     Else
       calcarray(0) = 0
       clearcount = 0
     End If
     decicount = 0
End Sub

Private Sub cmdInfo_Click()
  Dim Sure As String
  Sure = "Created By James Bergeron, For more info e-mail berg0036@algonquinc.on.ca"
  
  Rem Get results from the button click (action)
  ButtonClicked = MsgBox(Sure, 0 + 256 + 32, "Info")
End Sub
Private Sub decimal_Click()
  clearcount = 0
  If decicount = 0 Then
    txtcal.Text = txtcal.Text + decimal.Caption
    decicount = 1
  Else
    txtcal.Text = txtcal.Text
  End If
End Sub
Private Sub digit_Click(Index As Integer)
  If newnum = 1 Then
   txtcal.Text = ""
   txtcal.Text = txtcal.Text + digit(Index).Caption
   calcarray(holder) = txtcal.Text
   newnum = 0
  Else
  txtcal.Text = txtcal.Text + digit(Index).Caption
  calcarray(holder) = txtcal.Text
  End If
  clearcount = 0
End Sub

Private Sub equal_Click()
  Select Case operation
  
    Case 1
       txtcal.Text = calcarray(holder - 1) + calcarray(holder)
       calcarray(0) = txtcal.Text
    Case 2
       txtcal.Text = calcarray(holder - 1) - calcarray(holder)
       calcarray(0) = txtcal.Text
    Case 3
       txtcal.Text = calcarray(holder - 1) * calcarray(holder)
       calcarray(0) = txtcal.Text
    Case 4
       If calcarray(holder) = 0 Then
         txtcal.Text = "Error, can't divide by 0"
       Else
         txtcal.Text = calcarray(holder - 1) / calcarray(holder)
         calcarray(0) = txtcal.Text
       End If
    Case Else
      txtcal.Text = txtcal.Text
  End Select
  operation = 5
  holder = 0
  decicount = 0
  newnum = 1
  clearcount = 0
End Sub
Private Sub Form_Load()
operation = 0
location = 0
decicount = 0
End Sub
Private Sub memclear_Click()
  clearcount = 0
  For i = 1 To 8
    memstorebut(i) = 0
  Next i
  location = 0
  
End Sub
Private Sub memrecall_Click()
  clearcount = 0
  newnum = 1
  If location >= 1 Then
    txtcal.Text = memstorebut(location)
    calcarray(holder) = memstorebut(location)
    memstorebut(location) = 0
    location = location - 1
  End If
End Sub
Private Sub memstore_Click()
  clearcount = 0
  If location <= 7 And txtcal.Text > "" Then
    location = location + 1
    memstorebut(location) = txtcal.Text
  End If
End Sub

Private Sub mult_Click()
  Call equal_Click
  holder = holder + 1
  operation = 3
End Sub
Private Sub plus_Click()
   Call equal_Click
   holder = holder + 1
   operation = 1
End Sub
Private Sub div_Click()
  Call equal_Click
  holder = holder + 1
  operation = 4
End Sub

Private Sub sub_Click()
  Call equal_Click
  holder = holder + 1
  operation = 2
End Sub

Author: dwirch

Derek Wirch is a seasoned IT professional with an impressive career dating back to 1986. He brings a wealth of knowledge and hands-on experience that is invaluable to those embarking on their journey in the tech industry.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.