Function RPN(expr As String) As String Dim tokenArray() As String Dim stack() As String Dim Wert1 As Double Dim Wert2 As Double 'Initialize array (removed later) ReDim tokenArray(1) ReDim stack(1) tokenArray = Split(expr, " ") Dim i As integer i = 0 While i <= tokenArray.Ubound If tokenArray(i) = "+" Then Wert2 = Val(stack.pop) Wert1 = Val(stack.pop) stack.Append(Str(Wert1+Wert2)) ElseIf tokenArray(i) = "-" Then Wert2 = Val(stack.pop) Wert1 = Val(stack.pop) stack.Append(Str(Wert1-Wert2)) ElseIf tokenArray(i) = "*" Then Wert2 = Val(stack.pop) Wert1 = Val(stack.pop) stack.Append(Str(Wert1*Wert2)) ElseIf tokenArray(i) = "/" Then Wert2 = Val(stack.pop) Wert1 = Val(stack.pop) stack.Append(Str(Wert1/Wert2)) ElseIf tokenArray(i) = "^" Then Wert2 = Val(stack.pop) Wert1 = Val(stack.pop) stack.Append(Str(pow(Wert1,Wert2))) Else stack.Append(tokenArray(i)) End If i = i +1 Wend Return stack(2) End Function