Exemplo n.º 1
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);
            }
        }
Exemplo n.º 2
0
 void Zero(bool isInput, string msg)
 {
     if (isInput)
     {
         calcState    = CalcState.Zero;
         tempNumber   = "0";
         resultNumber = "0";
         displayMsg(tempNumber);
     }
     else
     {
         if (Rules.IsNonZeroDigit(msg))
         {
             resultNumber = "";
             tempNumber   = "";
             AccumulateDigit(true, msg);
         }
         else if (Rules.IsOperator(msg))
         {
             resultNumber = "0";
             Compute(true, msg);
         }
         else if (Rules.IsEqualSign(msg))
         {
             Result(true, msg);
         }
         else if (Rules.IsStrange(msg))
         {
             Compute2(true, msg);
         }
         else if (Rules.IsClear(msg))
         {
             Zero(true, msg);
         }
         else if (Rules.IsDot(msg))
         {
             AccumulateDigit(true, msg);
         }
     }
 }
Exemplo n.º 3
0
        void Compute(bool isInput, string msg)
        {
            if (isInput)
            {
                calcState = CalcState.Compute;

                if (operation.Length > 0)
                {
                    Calculate();

                    displayMsg(resultNumber);
                }

                else
                {
                    resultNumber = tempNumber;
                }

                tempNumber = "";
                operation  = msg;
            }
            else
            {
                if (Rules.IsDigit(msg))
                {
                    AccumulateDigit(true, msg);
                }
                else if (Rules.IsClear(msg))
                {
                    tempNumber = "";
                    Zero(true, msg);
                }
                else if (Rules.IsDot(msg))
                {
                    AccumulateDigit(true, msg);
                }
            }
        }
Exemplo n.º 4
0
 void AccumulateDigit(bool isInput, string msg)
 {
     if (isInput)
     {
         calcState   = CalcState.AccumulateDigit;
         tempNumber += msg;
         displayMsg(tempNumber);
     }
     else
     {
         if (Rules.IsDigit(msg))
         {
             AccumulateDigit(true, msg);
         }
         else if (Rules.IsDot(msg))
         {
             AccumulateDigit(true, msg);
         }
         else if (Rules.IsOperator(msg))
         {
             Compute(true, msg);
         }
         else if (Rules.IsEqualSign(msg))
         {
             Result(true, msg);
         }
         else if (Rules.IsStrange(msg))
         {
             Compute2(true, msg);
         }
         else if (Rules.IsClear(msg))
         {
             Zero(true, msg);
         }
     }
 }