Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static int Calculating(string opz)
- {
- string OPZ = opz.ToString();
- int result = 0;
- Stack<int> stack = new Stack<int>();
- for (int i = 0; i < OPZ.Length; i++)
- {
- if (Char.IsDigit(OPZ[i]))
- {
- string str = string.Empty;
- while (!Mest(OPZ[i].ToString()) && !Oper(OPZ[i]))
- {
- str = str + OPZ[i];
- i++;
- if (i == OPZ.Length)
- break;
- }
- stack.Push(int.Parse(str));
- i--;
- }
- else if (Char.IsLetter(OPZ[i]))
- {
- string str = string.Empty;
- while (!Mest(OPZ[i].ToString()) && !Oper(OPZ[i]))
- {
- Console.WriteLine("Введите {0}", OPZ[i]);
- char item = char.Parse(Console.ReadLine());
- str = str + item;
- i++;
- if (i == OPZ.Length)
- {
- break;
- }
- }
- stack.Push(int.Parse(str));
- i--;
- }
- else if (Oper(OPZ[i]))
- {
- int a = stack.Pop();
- int b = stack.Pop();
- switch (OPZ[i])
- {
- case '+': result = b + a; break;
- case '-': result = b - a; break;
- case '*': result = b * a; break;
- case '/': result = b / a; break;
- case '%': result = b % a; break;
- case '|': result = b | a; break;
- case '&': result = b & a; break;
- case '^': result = int.Parse(Math.Pow(int.Parse(b.ToString()), int.Parse(a.ToString())).ToString()); break;
- }
- stack.Push(result);
- }
- }
- return stack.Peek();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement