Ejemplo n.º 1
0
        public override double Execute()
        {
            switch (index)
            {
            case 1:
                return(Math.Cos(right.Execute()));

            case 2:
                return(Math.Sin(right.Execute()));

            case 3:
                return(Math.Asin(right.Execute()));

            case 4:
                return(Math.Acos(right.Execute()));

            case 5:
                return(Math.Sqrt(right.Execute()));

            case 6:
                return(left.Execute() + right.Execute());

            case 7:
                return(left.Execute() - right.Execute());

            case 8:
                return(left.Execute() * right.Execute());

            case 9:
                return(left.Execute() / right.Execute());

            case 10:
                return(Math.Pow(left.Execute(), right.Execute()));

            case 11:
                return(-1 * right.Execute());

            case 12:
                return(Math.Abs(right.Execute()));

            case 13:
                return(x);

            case 14:
                return(Math.E);

            case 15:
                return(Math.PI);

            default:
                throw new Exception("Not Assigned Formula was executed");
            }
        }
Ejemplo n.º 2
0
 //in constructor we get the text of neccessary formula
 //parse it and form the binary tree of calculating order
 //and we do it just once, that let to mitigate the count of computing for each X when Charting
 public double Execute(double argument)
 {
     Operation.x = argument;
     return(root.Execute());
 }