Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- class XExpression
- {
- static void Main()
- {
- string expression = Console.ReadLine();
- double numbersAdd = 0;
- List<double> numbers = new List<double>();
- List<double> numbersInBracket = new List<double>();
- List<char> sign = new List<char>();
- List<char> signInBracket = new List<char>();
- List<int> brackets = new List<int>();
- double sumToBrackets = 0;
- double sumInBrackets = 0;
- int brackeCounter = 0;
- for (int i = 0, p = 0; i < expression.Length; i++, p++)
- {
- numbersAdd = (int)Char.GetNumericValue(expression[i]);
- if (numbersAdd == -1)
- {
- numbersAdd = (int)expression[i];
- if (numbersAdd == 42)
- {
- sign.Add((char)numbersAdd);
- }
- if (numbersAdd == 47)
- {
- sign.Add((char)numbersAdd);
- }
- if (numbersAdd == 43)
- {
- sign.Add((char)numbersAdd);
- }
- if (numbersAdd == 45)
- {
- sign.Add((char)numbersAdd);
- }
- if (numbersAdd == 40 || numbersAdd == 41)
- {
- sign.Add((char)numbersAdd);
- brackets.Add(i);
- brackeCounter++;
- int v = 0;
- for (int i = expression[brackets[v]]; i < expression[brackets[v+1]]; i++, v++)
- {
- numbersAdd = (int)Char.GetNumericValue(expression[p + 1]);
- if (numbersAdd == -1)
- {
- numbersAdd = (int)expression[p];
- if (numbersAdd == 42)
- {
- signInBracket.Add((char)numbersAdd);
- }
- if (numbersAdd == 47)
- {
- signInBracket.Add((char)numbersAdd);
- }
- if (numbersAdd == 43)
- {
- signInBracket.Add((char)numbersAdd);
- }
- if (numbersAdd == 45)
- {
- signInBracket.Add((char)numbersAdd);
- }
- else
- {
- numbersInBracket.Add(numbersAdd);
- }
- }
- }
- }
- }
- else
- {
- numbers.Add(numbersAdd);
- }
- }
- int helper = 0;
- for (int i = 0, p = 0; i < (sign.Count - 1) - brackeCounter; i++, p++)
- {
- if (sign[p] != '(' && sign[p] != ')')
- {
- if (sign[p] == '*' && helper == 0)
- {
- sumToBrackets += (numbers[p] * numbers[p + 1]);
- }
- if (sign[p] == '/' && helper == 0)
- {
- sumToBrackets += (numbers[p] / numbers[p + 1]);
- }
- if (sign[p] == '-' && helper == 0)
- {
- sumToBrackets += (numbers[p] - numbers[p + 1]);
- }
- if (sign[p] == '+' && helper == 0)
- {
- sumToBrackets += (numbers[p] + numbers[p + 1]);
- }
- helper = 1;
- }
- if (helper == 1)
- {
- if (sign[p+1] == '*')
- {
- sumToBrackets *= numbers[p + 2];
- }
- if (sign[p+1] == '/')
- {
- sumToBrackets /= numbers[p + 2];
- }
- if (sign[p+1] == '-')
- {
- sumToBrackets -= numbers[p + 2];
- }
- if (sign[p+1] == '+')
- {
- sumToBrackets += numbers[p + 2];
- }
- }
- }
- Console.WriteLine("{0:F2}", sumToBrackets);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement