Example #1
0
 void Result(bool isInput, string msg)
 {
     if (isInput)
     {
         calcState = CalcState.Result;
         Calculate();
         displayMsg(resultNumber);
     }
     else
     {
         if (Rules.IsNonZeroDigit(msg))
         {
             AccumulateDigit(true, msg);
         }
         else if (Rules.IsZero(msg))
         {
             Zero(true, msg);
         }
         else if (Rules.IsOperator(msg))
         {
             operation  = "";
             tempNumber = resultNumber;
             Compute(true, msg);
         }
     }
 }
Example #2
0
File: Calc.cs Project: Groompel/PP2
 private void Result(bool isInput, string msg)
 {
     if (isInput)
     {
         calcState = CalcState.RESULT;
         Calculate();
         displayMsg(resNumber);
     }
     else
     {
         if (Rules.IsZero(msg))
         {
             Zero(true, msg);
         }
         else if (Rules.IsNonZeroDigit(msg))
         {
             tempNumber = "";
             operation  = "";
             AccumulateDigits(true, msg);
         }
         else if (Rules.IsOperator(msg))
         {
             operation  = "";
             tempNumber = resNumber;
             Compute(true, msg);
         }
         else if (Rules.IsEqualSign(msg))
         {
             Calculate();
             displayMsg(resNumber);
         }
     }
 }
Example #3
0
 void Result(string msg, bool isInput)
 {
     if (isInput)
     {
         calcState = CalcState.Result;
         if (Rules.IsOperation(operation))
         {
             Operation();
         }
         if (Rules.IsOneOperation(operation))
         {
             OneOperation();
         }
         if (Rules.IsPlusMinus(operation))
         {
             PlusMinus();
         }
         if (Rules.IsDelete(operation))
         {
             Delete();
         }
         operation = "";
         changeTextDelegate.Invoke(resultNumber);
     }
     else
     {
         if (Rules.IsOperation(msg) || Rules.IsOneOperation(msg) || Rules.IsPlusMinus(msg) || Rules.IsDelete(msg))
         {
             Compute(msg, true);
         }
         else if (Rules.IsNonZeroDigit(msg))
         {
             tempNumber = "";
             AccumulateDigits(msg, true);
         }
         else if (Rules.IsZero(msg))
         {
             Zero(msg, true);
         }
         else if (Rules.IsSeparator(msg))
         {
             operation  = "";
             tempNumber = resultNumber;
             AccumulateDigitsWithDecimal(msg, true);
         }
         else if (Rules.IsC(msg))
         {
             Zero(msg, true);
         }
         else if (Rules.IsCE(msg))
         {
             tempNumber = "";
             AccumulateDigits(tempNumber, true);
         }
     }
 }
Example #4
0
        void Compute2(bool isInput, string msg)
        {
            if (isInput)
            {
                calcState    = CalcState.Compute2;
                resultNumber = tempNumber;
                tempNumber   = "";
                operation    = msg;
                Calculate();

                displayMsg(resultNumber);
            }
            else if (Rules.IsNonZeroDigit(msg))
            {
                AccumulateDigit(true, msg);
            }
            else if (Rules.IsZero(msg))
            {
                Zero(true, msg);
            }
            else if (Rules.IsOperator(msg))
            {
                operation  = "";
                tempNumber = resultNumber;
                Compute(true, msg);
            }
            else if (Rules.IsStrange(msg))
            {
                operation  = "";
                tempNumber = resultNumber;
                Compute2(true, msg);
            }
            else if (Rules.IsClear(msg))
            {
                operation  = "";
                tempNumber = resultNumber;
                Zero(true, msg);
            }
            else if (Rules.IsDot(msg))
            {
                AccumulateDigit(true, msg);
            }
        }
Example #5
0
 void  Operation()
 {
     if (operation == "+")
     {
         resultNumber = (double.Parse(resultNumber) + double.Parse(tempNumber)).ToString();
     }
     if (operation == "-")
     {
         resultNumber = (double.Parse(resultNumber) - double.Parse(tempNumber)).ToString();
     }
     if (operation == "*")
     {
         resultNumber = (double.Parse(resultNumber) * double.Parse(tempNumber)).ToString();
     }
     if (operation == "/")
     {
         if (Rules.IsZero(tempNumber))
         {
             Error("ERROR", true);
         }
         else
         {
             resultNumber = (double.Parse(resultNumber) / double.Parse(tempNumber)).ToString();
         }
     }
     if (operation == "%")
     {
         resultNumber = (double.Parse(resultNumber) * double.Parse(tempNumber) / 100).ToString();
     }
     if (operation == "x^y")
     {
         double result    = 1;
         double resNumber = double.Parse(resultNumber);
         double tNumber   = double.Parse(tempNumber);
         for (int i = 0; i < tNumber; i++)
         {
             result *= resNumber;
         }
         resultNumber = result.ToString();
     }
 }