public List <Calculation> SplitToCalculations(ObjCalcScript cspt) { List <Calculation> calculations = prs .Divide(cspt.CalculationScriptText, breakPairs, ';', bracketPairs) .Select(x => new Calculation(x, SplitToProperties(x))) .ToList() ; return(calculations); }
public void DoMath() { switch (selectOperator) { case "+": Console.WriteLine(adder.Add()); break; case "-": Console.WriteLine(subtractor.Subtract( )); break; case "*": Console.WriteLine(multiplier.Multiply()); break; case "/": Console.WriteLine(divider.Divide()); break; case "^": Console.WriteLine(exponenter.Exponent()); break; default: break; } }
public decimal Calculate(string text) { var query = _queryParser.Parse(text); var result = 0m; switch (query.Operation) { case "x": result = _multiplier.Multiply(query.FirstNumber, query.SecondNumber); break; case "+": result = _adder.Add(query.FirstNumber, query.SecondNumber); break; case "-": result = _subtractor.Subtract(query.FirstNumber, query.SecondNumber); break; case "/": result = _divider.Divide(query.FirstNumber, query.SecondNumber); break; } return(result); }
public Decomposed Execute( Factor factors, IDivider divider, dynamic algorithm, IUserAlgorithmStrategyProvider strategtProvider ) { factors = Normalize(factors); var decomposed = new Decomposed(); decomposed.Factors.Add(factors); var continueFlag = true; while (continueFlag) { continueFlag = false; var freeTermFactors = (List <int>)GetNumberFactors(decomposed.Factors.Last().Terms.Where(x => x.SymbolsPower == 0).Select(term => term.Number).FirstOrDefault(), algorithm, strategtProvider ); freeTermFactors.ForEach(coefficent => { var dividedPart = divider.Divide(decomposed.Factors.Last(), -coefficent); if (dividedPart != null) { Console.WriteLine(decomposed); var newdividerFactor = new Factor(); newdividerFactor.Terms = new List <Term>() { new Term { Number = 1, Sign = Sign.Plus, Symbol = 'x', SymbolsPower = 1 }, new Term { Number = Math.Abs(coefficent), Sign = (coefficent >= 0) ? Sign.Minus : Sign.Plus, SymbolsPower = 1 } }; decomposed.Factors.Insert(0, newdividerFactor); decomposed.Factors[decomposed.Factors.Count() - 1] = dividedPart; continueFlag = true; } }); } return(decomposed); }
/// <summary> /// This function loops through the items of the collection of values and performs the division or attemps to divide. /// The result returned will be displayed by the print delegate, which is set by the caller. /// </summary> /// <param name="divider"></param> /// <param name="print"></param> public void RunDivider(IDivider divider, Delegates.DisplayDelegate display) { string returnResult; display("There are " + _nObjects.Count() + " elements in the collection."); foreach (NObject nObject in _nObjects) { returnResult = divider.Divide(nObject); display(returnResult); } }
public T Divide(T valueX, T valueY) { return(_divider.Divide(valueX, valueY)); }