示例#1
0
        static void Main(string[] args)
        {
            Binnary Mul = Calc.Multiplication;
            Binnary Div = Calc.Division;
            Binnary Add = Calc.Addition;
            Binnary Sub = Calc.Substraction;
            Binnary Pow = Calc.Pow;
            Unnary  Neg = Calc.Negative;

            double X = -3, A = -3;
            double Y = 0;

            for (int i = 0; i < 7; i++)
            {
                double tA = Pow(A, i);
                double tX = Pow(X, 6 - i);
                if (tA == 1)
                {
                    Y = Sub(Y, tX);
                }
                else if (tX == 1)
                {
                    Y = Sub(Y, tA);
                }
                else
                {
                    int    Sign = i % 2 == 0 ? -1 : 1;
                    double temp = Div(tA, tX);
                    temp = Mul(Sign, temp);
                    Y    = Add(Y, temp);
                }
            }
            double controlY = -Math.Pow(X, 6) + A / Math.Pow(X, 5) - Math.Pow(A, 2) / Math.Pow(X, 4) + Math.Pow(A, 3) / Math.Pow(X, 3) - Math.Pow(A, 4) / Math.Pow(X, 2) + Math.Pow(A, 5) / X - Math.Pow(A, 6);
        }
示例#2
0
        static void Main(string[] args)
        {
            Console.Write("Введите X: ");
            double X = double.Parse(Console.ReadLine());

            Console.Write("Введите A: ");
            double A        = double.Parse(Console.ReadLine());
            double xCopy    = X;
            double controlX = Math.Pow((A / Math.Pow(X, A) + A) * A - A, A);

            Binnary CalcY;
            Binnary Mul = delegate(double x, ref double y) { y *= x; };
            Binnary Div = delegate(double x, ref double y) { y = x / y; };
            Binnary Add = delegate(double x, ref double y) { y += x; };
            Binnary Sub = delegate(double x, ref double y) { y = y - x; };
            Binnary Pow = delegate(double x, ref double y) { y = Math.Pow(y, x); };

            CalcY  = Pow;
            CalcY += Div;
            CalcY += Add;
            CalcY += Mul;
            CalcY += Sub;
            CalcY += Pow;

            CalcY.Invoke(A, ref xCopy);

            Console.WriteLine("Проверка с использованием анонимных методов: " + (xCopy == controlX));

            xCopy = X;

            Mul = (double x, ref double y) => y *= x;
            Div = (double x, ref double y) => y = x / y;
            Add = (double x, ref double y) => y += x;
            Sub = (double x, ref double y) => y = y - x;
            Pow = (double x, ref double y) => y = Math.Pow(y, x);

            CalcY  = Pow;
            CalcY += Div;
            CalcY += Add;
            CalcY += Mul;
            CalcY += Sub;
            CalcY += Pow;

            CalcY.Invoke(A, ref xCopy);

            Console.WriteLine("Проверка с использованием блочных лямбда выражений: " + (xCopy == controlX));
        }
示例#3
0
        static void Main(string[] args)
        {
            Console.Write("Введите X: ");
            double X = double.Parse(Console.ReadLine());

            Console.Write("Введите A: ");
            double A        = double.Parse(Console.ReadLine());
            double xCopy    = X;
            double controlX = Math.Pow((A / Math.Pow(X, A) + A) * A - A, A);

            Binnary CalcY;
            Binnary Mul = Calc.Multiplication;
            Binnary Div = Calc.Division;
            Binnary Add = Calc.Addition;
            Binnary Sub = Calc.Substraction;
            Binnary Pow = Calc.Pow;

            CalcY  = Pow;
            CalcY += Div;
            CalcY += Add;
            CalcY += Mul;
            CalcY += Sub;
            CalcY += Pow;

            CalcY.Invoke(A, ref xCopy);

            Console.WriteLine("Проверка со статическими методами пройдена: " + (xCopy == controlX));

            xCopy = X;
            Calc calc = new Calc();

            CalcY  = calc.InstancePow;
            CalcY += calc.InstanceDivision;
            CalcY += calc.InstanceAddition;
            CalcY += calc.InstanceMultiplication;
            CalcY += calc.InstanceSubstraction;
            CalcY += calc.InstancePow;

            CalcY.Invoke(A, ref xCopy);

            Console.WriteLine("Проверка с экземплярными методами пройдена: " + (xCopy == controlX));
        }