mirror of
https://github.com/EverythingWindows/ShiftOS-TheRevival-Old.git
synced 2025-01-23 10:12:16 +00:00
86 lines
3.3 KiB
VB.net
86 lines
3.3 KiB
VB.net
Module App_BC
|
|
'Basic Calculator's RAM
|
|
Public BC_ReadNumbers As Integer
|
|
Public BC_Numbers1 As String
|
|
Public BC_Numbers2 As String
|
|
Public BC_ThriceMoreValue As Integer
|
|
Public BC_ThriceMoreCount As Integer
|
|
Public BC_CurrentNumber As String
|
|
Public BC_Result As Integer
|
|
Public BC_Operation2 As String
|
|
|
|
Public Sub BC_Start()
|
|
Console.DefaultPrompt = "> "
|
|
ResetLine("bc (Basic Calcultator)")
|
|
NewLine("Copyright, Free Software Foundation.")
|
|
NewLine("ShiftOS port by DevX.")
|
|
NewLine("This is free software with ABSOLUTELY NO WARRANTY.")
|
|
NewLine(Nothing)
|
|
Console.CurrentInterpreter = "bc"
|
|
Console.ShouldChange = True
|
|
End Sub
|
|
|
|
Public Sub BC_Calculate()
|
|
BC_ReadNumbers = 0
|
|
BC_ThriceMoreValue = 1
|
|
BC_Numbers1 = Nothing
|
|
BC_Numbers2 = Nothing
|
|
BC_Operation2 = Nothing
|
|
BC_CurrentNumber = Nothing
|
|
BC_Result = Nothing
|
|
Dim GetText As String
|
|
Try
|
|
Do
|
|
GetText = command.Chars(BC_ReadNumbers)
|
|
Select Case GetText
|
|
Case "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"
|
|
BC_CurrentNumber = BC_CurrentNumber & GetText
|
|
Case "+", "-", "*", "/", "^"
|
|
Dim BC_Numbers3 As Integer
|
|
Select Case BC_ThriceMoreValue
|
|
Case 1
|
|
BC_Numbers1 = BC_CurrentNumber
|
|
BC_CurrentNumber = Nothing
|
|
BC_Operation2 = GetText
|
|
BC_ThriceMoreValue = BC_ThriceMoreValue + 1
|
|
Case >= 2
|
|
BC_Numbers2 = BC_CurrentNumber
|
|
BC_Counting(BC_Numbers1, BC_Numbers2, BC_Operation2)
|
|
BC_Numbers3 = BC_Result
|
|
BC_Numbers1 = BC_Numbers3
|
|
BC_Numbers2 = Nothing
|
|
BC_CurrentNumber = Nothing
|
|
BC_ThriceMoreValue = BC_ThriceMoreValue + 1
|
|
End Select
|
|
BC_Operation2 = GetText
|
|
Case "."
|
|
NewLine("Decimals aren't supported yet!")
|
|
Case Else
|
|
'BC_Counting(BC_Numbers1, BC_Numbers2, BC_Operation2)
|
|
End Select
|
|
BC_ReadNumbers = BC_ReadNumbers + 1
|
|
Loop
|
|
Catch ex As Exception
|
|
BC_Numbers2 = BC_CurrentNumber
|
|
BC_CurrentNumber = Nothing
|
|
End Try
|
|
BC_Counting(BC_Numbers1, BC_Numbers2, BC_Operation2)
|
|
BC_ThriceMoreValue = Nothing
|
|
NewLine(BC_Result)
|
|
End Sub
|
|
|
|
Public Sub BC_Counting(FirstNum As Integer, SecondNum As Integer, Operation As String)
|
|
Select Case Operation
|
|
Case "+"
|
|
BC_Result = FirstNum + SecondNum
|
|
Case "-"
|
|
BC_Result = FirstNum - SecondNum
|
|
Case "*"
|
|
BC_Result = FirstNum * SecondNum
|
|
Case "/"
|
|
BC_Result = FirstNum / SecondNum
|
|
Case "^"
|
|
BC_Result = FirstNum ^ SecondNum
|
|
End Select
|
|
End Sub
|
|
End Module
|