private void CalculateFunction() { if (match.Count > 0) { foreach (Match m in match) { mathematicalOperation = new MathematicalOperation(m, x, y); //отправляем для рассчета functionResult = functionResult.Replace(m.ToString(), mathematicalOperation.result); //переписываем тригонометрические функции на их результаты } } }
private void CheckBrackets() { while (functionResult.Contains("(")) { PlusOrMinus(); //убираем двойные минусы и минусплюс string worckValue = functionResult.Substring(functionResult.LastIndexOf("("), functionResult.IndexOf(")") - //определяем последнюю открывающуюся скобку, и первую закрывающуюся functionResult.LastIndexOf("(") + 1); //все что между ними отправляем на расчет, через перегруженный конструктор mathematicalOperation = new MathematicalOperation(worckValue, x, y); //и переписывае найденное значение между скобок на результат расчета functionResult = functionResult.Replace(worckValue, mathematicalOperation.result); } mathematicalOperation = new MathematicalOperation(functionResult, x, y); //финальный расчет отдельно, так как скобок больше нет functionResult = mathematicalOperation.result; }