Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace EJ10
- {
- class Program
- {
- static void Main(string[] args)
- {
- Stack<int> pilaN = new Stack<int>();
- Console.WriteLine("Ingrese una ecuacion en orden posfija: ");
- String ecuacion = Console.ReadLine();
- foreach (char letra in ecuacion)
- {
- if (Operando(letra) == true)
- {
- string unValor = letra.ToString();
- int numero = Int32.Parse(unValor);
- pilaN.Push(numero);
- }
- else if (Operadores(letra) == true)
- {
- int ope2 = pilaN.Pop();
- int ope1 = pilaN.Pop();
- int cal = Calculos(ope1, ope2, letra);
- pilaN.Push(cal);
- }
- }
- if (pilaN.Count() != 0)
- {
- Console.WriteLine("El valor del calculo es: " + pilaN.Peek());
- }
- Console.ReadKey();
- }
- private static bool Operando(char ec1)
- {
- bool band = false;
- String operando = "1234567890";
- foreach (char num in operando.Reverse())
- {
- if (ec1 == num)
- {
- band = true;
- }
- }
- return band;
- }
- private static bool Operadores(char ec2)
- {
- bool band2 = false;
- String operador = "*/+-";
- foreach (char simbolo in operador.Reverse())
- {
- if (ec2 == simbolo)
- {
- band2 = true;
- }
- }
- return band2;
- }
- private static int Calculos(int opa, int opb, char ec)
- {
- int resultado = 0;
- if (ec == '*')
- {
- resultado = (opa * opb);
- }
- else if (ec == '/')
- {
- resultado = (opa / opb);
- }
- if (ec == '+')
- {
- resultado = (opa + opb);
- }
- else if (ec == '-')
- {
- resultado = (opa - opb);
- }
- return resultado;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement