public static void EvaluateExpression(String str) { StackOp pila = new StackOp(30); char op; //Operador u operando for (int i = 0; i < str.Length; i++) { op = str.ElementAt(i); if (op >= '0' && op <= '9') { if (!pila.Push(op)) { System.out.println("La expresión posfija no puede evaluarse, PILA LLENA"); return; } continue; } else if (Car == '+' || Car == '-' || Car == '*' || Car == '/') { if (!Obj.Retira()) { System.out.println("La expresión posfija esta incorrecta"); return; } float V2 = Obj.Dr; if (!Obj.Retira()) { System.out.println("La expresión posfija esta incorrecta"); return; } float V1 = Obj.Dr; float Res = 0.0f; switch (Car) { case '+': Res = V1 + V2; break; case '-': Res = V1 - V2; break; case '*': Res = V1 * V2; break; case '/': Res = V1 / V2; break; } Obj.Inserta(Res); } } if (Obj.Retira()) { System.out.println("Resultado= " + Obj.Dr); } }
public static void EvaluateExpression(String str) { StackOp pila = new StackOp(30); char op; //Operador u operando for (int i = 0; i < str.Length; i++) { op = str.ElementAt(i); if (op >= '0' && op <= '9') { if (!pila.Push(op)) { System.out.println("La expresión posfija no puede evaluarse, PILA LLENA"); return; } continue; } else if (Car == '+' || Car == '-' || Car == '*' || Car == '/') { if (!Obj.Retira()) { System.out.println("La expresión posfija esta incorrecta"); return; } float V2 = Obj.Dr; if (!Obj.Retira()) { System.out.println("La expresión posfija esta incorrecta"); return; } float V1 = Obj.Dr; float Res = 0.0f; switch (Car) { case '+': Res = V1 + V2; break; case '-': Res = V1 - V2; break; case '*': Res = V1 * V2; break; case '/': Res = V1 / V2; break; } Obj.Inserta(Res); } } if (Obj.Retira()) System.out.println("Resultado= " + Obj.Dr); }