Example #1
0
 void AccumulateDigitsWithDecimal(string msg, bool isInput)
 {
     if (isInput)
     {
         calcState   = CalcState.AccumulateDigitsWithDecimal;
         tempNumber += msg;
         changeTextDelegate.Invoke(tempNumber);
     }
     else
     {
         if (Rules.IsDigit(msg))
         {
             AccumulateDigitsWithDecimal(msg, true);
         }
         else if (Rules.IsOperation(msg) || Rules.IsOneOperation(msg) || Rules.IsPlusMinus(msg) || Rules.IsDelete(msg))
         {
             Compute(msg, true);
         }
         else if (Rules.IsEqualSign(msg))
         {
             Result(msg, true);
         }
         else if (Rules.IsC(msg))
         {
             Zero(msg, true);
         }
         else if (Rules.IsCE(msg))
         {
             tempNumber = "";
             AccumulateDigits(tempNumber, true);
         }
     }
 }
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
File: Calc.cs Project: Groompel/PP2
        private void AccumulateDigitsWithDecimal(bool isInput, string msg)
        {
            if (isInput)
            {
                calcState = CalcState.AC_DGTS_WDCML;
                if (!tempNumber.Contains(","))
                {
                    tempNumber += ",";
                }
                displayMsg(tempNumber);
            }
            else
            {
                if (Rules.IsChangeSign(msg))
                {
                    if (double.Parse(tempNumber) > 0)
                    {
                        tempNumber = "-" + tempNumber;
                    }
                    else
                    {
                        tempNumber = tempNumber.Substring(1, tempNumber.Length - 2);
                    }
                    displayMsg(tempNumber);
                    AccumulateDigits(false, " ");
                }

                if (Rules.IsDigit(msg))
                {
                    AccumulateDigits(true, msg);
                }
                else if (Rules.IsOperator(msg))
                {
                    Compute(true, msg);
                }
                else if (Rules.IsEqualSign(msg))
                {
                    Result(true, msg);
                }
                if (Rules.IsBackSpace(msg))
                {
                    tempNumber = tempNumber.Substring(0, tempNumber.Length - 2);
                    AccumulateDigits(false, msg);
                }
            }
        }
Example #4
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);
         }
     }
 }
Example #5
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.IsOperator(msg))
         {
             Compute(true, msg);
         }
         else if (Rules.IsEqualSign(msg))
         {
             Result(true, msg);
         }
     }
 }
Example #6
0
File: Calc.cs Project: Groompel/PP2
        private void AccumulateDigits(bool isInput, string msg)
        {
            if (isInput)
            {
                calcState = CalcState.AC_DGTS;

                tempNumber += msg;
                displayMsg(tempNumber);
            }
            else
            {
                if (Rules.IsPrimeSum(msg))
                {
                    Compute(true, msg);
                }
                if (Rules.IsChangeSign(msg))
                {
                    if (double.Parse(tempNumber) > 0)
                    {
                        tempNumber = "-" + tempNumber;
                    }
                    else
                    {
                        tempNumber = tempNumber.Substring(1, tempNumber.Length - 2);
                    }

                    displayMsg(tempNumber);

                    AccumulateDigits(false, " ");
                }

                if (Rules.IsDigit(msg))
                {
                    AccumulateDigits(true, msg);
                }
                else if (Rules.IsOperator(msg))
                {
                    Compute(true, msg);
                }
                else if (Rules.IsEqualSign(msg))
                {
                    Result(true, msg);
                }
                if (Rules.IsSeparator(msg))
                {
                    AccumulateDigitsWithDecimal(true, msg);
                }
                if (Rules.IsBackSpace(msg))
                {
                    if (tempNumber.Length != 1)
                    {
                        tempNumber = tempNumber.Substring(0, tempNumber.Length - 1);
                        displayMsg(tempNumber);
                        AccumulateDigits(false, " ");
                    }

                    else
                    {
                        tempNumber = tempNumber.Substring(0, tempNumber.Length - 1);
                        displayMsg("0");
                        AccumulateDigits(false, " ");
                    }
                }
            }
        }