예제 #1
0
 public string DoMath(Stack stack)
 {
     if (stack.GetDictionary().ContainsKey(InputArray[0]))
     {
         Dictionary<string, string> dictionary = stack.GetDictionary();
         string value = dictionary[InputArray[0]];
         InputArray[0] = value;
     }
     if (stack.GetDictionary().ContainsKey(InputArray[2]))
     {
         Dictionary<string, string> dictionary = stack.GetDictionary();
         string value = dictionary[InputArray[2]];
         InputArray[2] = value;
     }
     switch (InputArray[1])
     {
         case "+" :
             return (int.Parse(InputArray[0]) + int.Parse(InputArray[2])).ToString();
         case "-":
             return (int.Parse(InputArray[0]) - int.Parse(InputArray[2])).ToString();
         case "*":
             return (int.Parse(InputArray[0]) * int.Parse(InputArray[2])).ToString();
         case "/":
             return (int.Parse(InputArray[0]) / int.Parse(InputArray[2])).ToString();
         case "%":
             return (int.Parse(InputArray[0]) % int.Parse(InputArray[2])).ToString();
         default:
                 throw new ArgumentException("no good");
     }
 }
예제 #2
0
 public string AddConstant(Stack stack)
 {
     if (stack.GetDictionary().ContainsKey(InputArray[0]))
     {
         stack.dictionary[InputArray[0]] = InputArray[2];
         return InputArray[0] + " " + InputArray[1] + " " + InputArray[2];
     }
     stack.AddToDictionary(InputArray[0], InputArray[2]);
     return InputArray[0] + " " + InputArray[1] + " " + InputArray[2];
 }