/// <summary> /// To change the current expression depending on the pressed operation and the state of the buttons /// </summary> private string NewCurrentExpression(AdditionalOperations pressedOperation) { //If an additional operation is not used for the first time if (buttonsState.AdditionalOperationBtnPressed) { return(ChangeTheSetOfRecentAdditionalOperations(currentData.CurrentExpression, SetSelectedAdditionalOperation(pressedOperation))); } else { return(currentData.CurrentExpression + SetSelectedAdditionalOperation(pressedOperation) + '(' + NumberStandardization.Standardization(currentData.CurrentNumber) + ')'); } }
/// <summary> /// To set the symbolic representation of an additional operation /// </summary> /// <returns> /// A string representing the selected operation /// </returns> private string SetSelectedAdditionalOperation(AdditionalOperations pressedOperation) { switch (pressedOperation) { case AdditionalOperations.PartOfTheWhole: return("1/"); case AdditionalOperations.Exponentiation: return("Sqr"); case AdditionalOperations.RootExtraction: return("√"); } return("Operation not found"); }
/// <summary> /// To add the selected operation applied to the current number in the current expression /// </summary> public void SetAdditionalOperation(AdditionalOperations pressedOperation) { if (buttonsState.EqualBtnPressed) { currentData.CurrentExpression = clearData.ClearExpression(currentData.CurrentExpression); buttonsState.NumberPadBtnPressed_Change(true); buttonsState.AdditionalOperationBtnPressed_Change(false); buttonsState.EqualBtnPressed_Change(false); } currentData.CurrentExpression = NewCurrentExpression(pressedOperation); currentData.CurrentNumber = clearData.ClearNumber(currentData.CurrentNumber); buttonsState.NumberPadBtnPressed_Change(true); buttonsState.AdditionalOperationBtnPressed_Change(true); }