Advertisement
alon2k2

Calculator

Dec 8th, 2016
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.93 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace Calculator
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             Main:
  14.  
  15.             int i = 0, j = 0;
  16.             string[] numbers = new string[122];
  17.             double num = 0;
  18.             string value;
  19.  
  20.             ///////////////////////////////////////////////
  21.  
  22.             Console.Write("Enter: ");
  23.             value = Console.ReadLine();
  24.  
  25.             ///////////////////////////////////////////////
  26.  
  27.             if (isValid(value))
  28.             {
  29.                 Error("Syntax ERROR");
  30.                 goto Main;
  31.             }
  32.             else if (value[value.Length - 1] != '=')
  33.             {
  34.                 Error("Please enter equal char");
  35.                 goto Main;
  36.             }
  37.  
  38.             ///////////////////////////////////////////////
  39.  
  40.             for (i = 0; i < value.Length; i++)
  41.                 numbers[i] += value[i];
  42.  
  43.             ///////////////////////////////////////////////
  44.  
  45.             string[] calc = new string[i];
  46.  
  47.             for (i = 0; i < numbers.Length; i++)
  48.             {
  49.                 if (numbers[i] == null || numbers[i] == "=")
  50.                     break;
  51.  
  52.                 if (value[i] == '+' || value[i] == '-' ||
  53.                     value[i] == '*' || value[i] == '/') {
  54.                     calc[j+1] += value[i];
  55.                     j+=2;
  56.                 }
  57.                 else
  58.                 {
  59.                     calc[j] += value[i];
  60.                 }
  61.             }
  62.  
  63.             ///////////////////////////////////////////////
  64.  
  65.             for (j = 0; j < calc.Length; j++)
  66.             {
  67.                 if ((j % 2) != 0)
  68.                 {
  69.                     try
  70.                     {
  71.                         //////////////////////////////////////////////
  72.                         if (calc[j] == "+")
  73.                         {
  74.                             if (double.Parse(calc[j - 1]) > 0 && j == 1)
  75.                                 num += double.Parse(calc[j - 1]);
  76.  
  77.                             if (double.Parse(calc[j + 1]) > 0)
  78.                                 num += double.Parse(calc[j + 1]);
  79.                         }
  80.                         //////////////////////////////////////////////
  81.                         if (calc[j] == "-")
  82.                         {
  83.                             if (double.Parse(calc[j - 1]) > 0 && j == 1)
  84.                                 num += double.Parse(calc[j - 1]);
  85.  
  86.                             if (double.Parse(calc[j + 1]) > 0)
  87.                                 num -= double.Parse(calc[j + 1]);
  88.                         }
  89.                         //////////////////////////////////////////////
  90.                         if (calc[j] == "*")
  91.                         {
  92.                             if (num == 0) num = 1;
  93.  
  94.                             if (double.Parse(calc[j - 1]) > 0 && j == 1)
  95.                                 num *= double.Parse(calc[j - 1]);
  96.  
  97.                             if (double.Parse(calc[j + 1]) > 0)
  98.                                 num *= double.Parse(calc[j + 1]);
  99.                         }
  100.                         //////////////////////////////////////////////
  101.                         if (calc[j] == "/")
  102.                         {
  103.                             if (double.Parse(calc[j - 1]) > 0 && j == 1)
  104.                             {
  105.                                 if (num == 0)
  106.                                     num = double.Parse(calc[j - 1]);
  107.                                 else
  108.                                     num /= double.Parse(calc[j - 1]);
  109.                             }
  110.  
  111.                             if (double.Parse(calc[j + 1]) > 0)
  112.                                 num /= double.Parse(calc[j + 1]);
  113.                         }
  114.                         //////////////////////////////////////////////
  115.                     }
  116.                     catch (Exception e) {
  117.                         Error(e.Message);
  118.                         goto Main;
  119.                     }
  120.                 }
  121.             }
  122.  
  123.             Console.ForegroundColor = ConsoleColor.Green;
  124.             Console.WriteLine("====================");
  125.             Console.WriteLine("Result: " + num);
  126.             Console.WriteLine("====================");
  127.             Console.ResetColor();
  128.  
  129.             goto Main;
  130.         }
  131.  
  132.         public static void Error(string message)
  133.         {
  134.             Console.ForegroundColor = ConsoleColor.Red;
  135.             Console.WriteLine(message);
  136.             Console.ResetColor();
  137.         }
  138.  
  139.         public static bool isValid(string value)
  140.         {
  141.             if (value == "") return true;
  142.  
  143.             if (value.ToString()[0] == '+' || value.ToString()[0] == '-' ||
  144.                 value.ToString()[0] == '*' || value.ToString()[0] == '/') {
  145.                 return true;
  146.             }
  147.  
  148.             return false;
  149.         }
  150.     }
  151. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement