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); } } }
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); } } }
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); } } }
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); } }
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(); } }