Advertisement
lnikod4s

X Expression

Jan 2nd, 2015
220
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.95 KB | None | 0 0
  1. // Telerik Academy Exam 1 @ 6 December 2013 Morning
  2. // Problem 3. X Expression
  3.  
  4. using System;
  5.  
  6. class ExpressionSolution
  7. {
  8.     static void Main()
  9.     {
  10.         int symbol = Console.Read();
  11.         decimal sum = 0;
  12.         int o = '+';
  13.  
  14.         while (symbol != '=')
  15.         {
  16.             if (symbol == '(')
  17.             {
  18.                 decimal innerSum = 0;
  19.                 int innerO = '+';
  20.                 symbol = Console.Read();
  21.  
  22.                 while (symbol != ')')
  23.                 {
  24.                     if (0 <= symbol - '0' && symbol - '0' <= 9)
  25.                     {
  26.                         switch (innerO)
  27.                         {
  28.                             case '+':
  29.                                 innerSum += symbol - '0';
  30.                                 break;
  31.                             case '-':
  32.                                 innerSum -= symbol - '0';
  33.                                 break;
  34.                             case '*':
  35.                                 innerSum *= symbol - '0';
  36.                                 break;
  37.                             case '/':
  38.                                 innerSum /= symbol - '0';
  39.                                 break;
  40.                         }
  41.                     }
  42.                     else if (symbol == '+' ||
  43.                              symbol == '-' ||
  44.                              symbol == '/' ||
  45.                              symbol == '*')
  46.                     {
  47.                         innerO = symbol;
  48.                     }
  49.                     symbol = Console.Read();
  50.                 }
  51.  
  52.                 switch (o)
  53.                 {
  54.                     case '+':
  55.                         sum += innerSum;
  56.                         break;
  57.                     case '-':
  58.                         sum -= innerSum;
  59.                         break;
  60.                     case '*':
  61.                         sum *= innerSum;
  62.                         break;
  63.                     case '/':
  64.                         sum /= innerSum;
  65.                         break;
  66.                 }
  67.             }
  68.             else if (0 <= symbol - '0' && symbol - '0' <= 9)
  69.             {
  70.                 switch (o)
  71.                 {
  72.                     case '+':
  73.                         sum += symbol - '0';
  74.                         break;
  75.                     case '-':
  76.                         sum -= symbol - '0';
  77.                         break;
  78.                     case '*':
  79.                         sum *= symbol - '0';
  80.                         break;
  81.                     case '/':
  82.                         sum /= symbol - '0';
  83.                         break;
  84.                 }
  85.             }
  86.             else if (symbol == '+' ||
  87.                      symbol == '-' ||
  88.                      symbol == '/' ||
  89.                      symbol == '*')
  90.             {
  91.                 o = symbol;
  92.             }
  93.             symbol = Console.Read();
  94.         }
  95.    
  96.         Console.WriteLine("{0:0.00}", sum);
  97.     }
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement