Exemple #1
0
 public void SetValue(List<Expression> expressions)
 {
     foreach (var expression in expressions)
     {
         var newExpression = new Expression(expression.Coefficient, expression.Variable);
         Value.Add(newExpression);
     }
 }
Exemple #2
0
 public Equation(Expression leftPart, Expression rigthPart)
 {
     Init();
     var left = new Expression(leftPart.Coefficient, leftPart.Variable);
     var right = new Expression(rigthPart.Coefficient, rigthPart.Variable);
     _leftPart.Add(left);
     _rightPart.Add(right);
 }
Exemple #3
0
        public Equation(Expression leftPart, IEnumerable<Expression> rigthPart)
        {
            _leftPart = new List<Expression>();
            var left = new Expression(leftPart.Coefficient, leftPart.Variable);
            _leftPart.Add(left);

            _rightPart = new List<Expression>();
            AddListToRight(rigthPart);
        }
Exemple #4
0
        public Equation(IEnumerable<Expression> leftPart, Expression rigthPart)
        {
            _rightPart = new List<Expression>();
            var right = new Expression(rigthPart.Coefficient, rigthPart.Variable);
            _rightPart.Add(right);

            _leftPart = new List<Expression>();
            AddListToLeft(leftPart);
        }
Exemple #5
0
        /// <summary>
        /// Sums all expressions with same name in RigthPart eg 0=x+2x+y => 0=3x+y
        /// </summary>
        private void SummRightPart()
        {
            var i = 0;
            var newRightPart = new List<Expression>();
            foreach (var expression in _rightPart)
            {
                // if (expression.Variable != null)
                if (newRightPart.All(
                    x =>
                    {
                        var name1 = x.Variable != null
                            ? x.Variable.Name
                            : null;
                        var name2 = expression.Variable != null
                            ? expression.Variable.Name
                            : null;
                        return name1 != name2;

                    }))
                {
                    var name1 = expression.Variable != null
                            ? expression.Variable.Name
                            : null;
                    var temp = new Expression(0, expression.Variable);
                    for (int j = 0; j < _rightPart.Count; j++)
                    {
                        var name2 = _rightPart[j].Variable != null
                            ? _rightPart[j].Variable.Name
                            : null;

                        if (name2 == name1)
                            temp.Coefficient += _rightPart[j].Coefficient;
                    }
                    newRightPart.Add(temp);
                }
            }
            _rightPart = newRightPart.Where(x => !x.Coefficient.Equals(0)).ToList();
        }
Exemple #6
0
 private void AddToRight(Expression expression)
 {
     _leftPart.Remove(expression);
     expression.ChangeSignum();
     _rightPart.Add(expression);
 }
Exemple #7
0
 private void AddListToRight(IEnumerable<Expression> rightPartList)
 {
     foreach (var expression in rightPartList)
     {
         var right = new Expression(expression.Coefficient, expression.Variable);
         _rightPart.Add(right);
     }
 }
Exemple #8
0
 private void AddListToLeft(IEnumerable<Expression> leftPartList)
 {
     foreach (var expression in leftPartList)
     {
         var left = new Expression(expression.Coefficient, expression.Variable);
         _leftPart.Add(left);
     }
 }
Exemple #9
0
        public static Equation operator *(Equation eq1, double value)
        {
            var leftPart = new List<Expression>();
            var rightPart = new List<Expression>();
            eq1.LeftPart.ForEach(x =>
            {
                var expression = new Expression(x.Coefficient*value, x.Variable);
                leftPart.Add(expression);
            });

            eq1.RightPart.ForEach(x =>
            {
                var expression = new Expression(x.Coefficient*value, x.Variable);
                rightPart.Add(expression);
            });

            var newEquation = new Equation(leftPart, rightPart);
            return newEquation;
        }
Exemple #10
0
 public object Clone()
 {
     var newObj = new Expression(_coefficient, _variable);
     return newObj;
 }