Imports System
Module Program
Sub Main(args As String())
Dim rpnstr As String = "6.1 5.2 4.3 * + 3.4 2.5 / 1.6 * - "
Dim opeStack As New Stack
While True
If rpnstr.Length = 0 Then
GoTo owari
End If
Dim fSpacePosition As Integer = rpnstr.IndexOf(" ")
Dim fstr As String = rpnstr.Substring(0, fSpacePosition)
Dim nstr As String = Strings.Right(rpnstr, rpnstr.Length - fSpacePosition - 1)
If fstr = "+" Or fstr = "-" Or fstr = "*" Or fstr = "/" Then
Dim y As Double = CDbl(opeStack.Pop)
Dim x As Double = CDbl(opeStack.Pop)
Select Case fstr
Case "+" : opeStack.Push(CStr(x + y))
Case "-" : opeStack.Push(CStr(x - y))
Case "*" : opeStack.Push(CStr(x * y))
Case "/" : opeStack.Push(CStr(x / y))
End Select
Else
opeStack.Push(fstr)
End If
rpnstr = nstr
End While
owari:
Console.WriteLine(opeStack.Pop)
Console.WriteLine("Hello World!")
End Sub
End Module
カテゴリー