public void AccumulateDigits(char item, bool isInput) { if (isInput) { result = result + item; invoker.Invoke(result); currentState = CalcStates.AccumulateDigits; } else { if (digits.Contains(item)) { AccumulateDigits(item, true); } else if (operations.Contains(item)) { ComputePending(item, true); } else if (separators.Contains(item)) { AccumulateDigitsWithDecimal(item, true); } else if (equals.Contains(item)) { Compute(item, true); } else if (operations.Contains(item)) { ComputePending(item, true); } } }
public void Zero(char item, bool isInput) { if (isInput) { numbers = "0"; result = "0"; op = '.'; invoker.Invoke(numbers); currentState = CalcStates.Zero; } else { if (nonzerodigits.Contains(item)) { AccumulateDigits(item, true); } else if (separators.Contains(item)) { AccumulateDigitsWithDecimal(item, true); } else if (zero.Contains(item)) { Zero(item, true); } } }
public void Compute(char item, bool isInput) { if (isInput) { currentState = CalcStates.Compute; double a1 = double.Parse(numbers); double a2 = double.Parse(result); double a3 = 0; if (op == '+') { a3 = a1 + a2; } else if (op == '-') { a3 = a1 - a2; } result = a3.ToString(); invoker.Invoke(result); } else { if (nonzerodigits.Contains(item)) { AccumulateDigits(item, true); } else if (zero.Contains(item)) { Zero(item, true); } else if (operations.Contains(item)) { ComputePending(item, true); } } }
public void ComputePending(char item, bool isInput) { if (isInput) { currentState = CalcStates.ComputePending; op = item; if (numbers != "") { double a1 = double.Parse(numbers); double a2 = double.Parse(result); double a3 = 0; if (op == '+') { a3 = a1 + a2; } else if (op == '-') { a3 = a1 - a2; } result = a3.ToString(); } numbers = result; invoker.Invoke(result); result = ""; } else { if (digits.Contains(item)) { AccumulateDigits(item, true); } } }
public Calc() { currentState = CalcStates.FirstNumber; firstNumber = 0; secondNumber = 0; resultNumber = 0; }
public Calc() { currentstate = CalcStates.Firstnumber; firstnumber = 0; secondnumber = 0; resultnumber = 0; lastnumber = 0; a = 0; }