Ejemplo n.º 1
0
 public void SetButtonEvent(FunDelegate delBuy)
 {
     if (delBuy != null)
     {
         this.m_BuyDelegate = (FunDelegate)Delegate.Combine(this.m_BuyDelegate, new FunDelegate(delBuy.Invoke));
     }
 }
Ejemplo n.º 2
0
        public double[,] MetodRK4(FunDelegate fun)
        {
            int n;//количество шагов

            double[] f1;
            double[] f2;
            double[] f3;
            double[] f4;

            n            = (int)((b - a) / h);//количество шагов
            double[,] xr = new double[n + 1, x.Length];
            double t = a;

            double[] pr = new double[x.Length];

            for (int j = 0; j < x.Length; j++)//begin point
            {
                xr[0, j] = x[j];
            }
            for (int i = 1; i <= n; i++)
            {
                f1 = fun(t, x);// first prav
                t  = t + h / 2;
                for (int k = 0; k < x.Length; k++)
                {
                    pr[k] = (x[k] + h * f1[k] / 2);
                }

                f2 = fun(t, pr); // second prav
                for (int k = 0; k < x.Length; k++)
                {
                    pr[k] = (x[k] + h * f2[k] / 2);
                }

                f3 = fun(t, pr); //third prav
                t  = t + h / 2;
                for (int k = 0; k < x.Length; k++)
                {
                    pr[k] = (x[k] + h * f3[k]);
                }

                f4 = fun(t, pr);
                for (int k = 0; k < x.Length; k++)
                {
                    x[k] = x[k] + (h / 6) * (f1[k] + f2[k] * 2 + f3[k] * 2 + f4[k]);
                }

                Console.Write(("t=" + t).PadRight(10));
                for (int j = 0; j < x.Length; j++)
                {
                    xr[i, j] = x[j];
                    WriteArgs(j, x[j], Math.Exp(t));
                }
                Console.WriteLine();
            }
            return(xr);
        }
Ejemplo n.º 3
0
        static void SimpleTest()
        {
            fprav += EasyMethod;

            double[] x = new double[] { 1.0 };
            double[,] rez;
            RangeKutta rk = new RangeKutta(0, 1, x, 0.1);

            while (true)
            {
                var ch = IOSystem.SafeSimpleChoice("Выберите метод: ", new string[]
                {
                    "Range Kutta 2 порядка",
                    "Range Kutta 4 порядка",
                    "Метод Эйлера",
                    "Закончить тест"
                });

                //Console.WriteLine();

                var endWork = false;

                switch (ch)
                {
                case 0:
                    rez = rk.MetodRK2(fprav);
                    Write(rez, 0.0, 1.0, 0.1);
                    break;

                case 1:
                    rez = rk.MetodRK4(fprav);
                    Write(rez, 0.0, 1.0, 0.1);
                    break;

                case 2:
                    rez = rk.MetodEulera(fprav);
                    Write(rez, 0.0, 1.0, 0.1);
                    break;

                case 3:
                    endWork = true;
                    break;
                }

                Console.WriteLine();

                if (endWork)
                {
                    break;
                }
            }
        }
Ejemplo n.º 4
0
        public double[,] MetodRK2(FunDelegate fun)
        {
            int n;//количество шагов

            double[] f1;
            double[] f2;


            n            = (int)((b - a) / h);//количество шагов
            double[,] xr = new double[n + 1, x.Length];
            double t = a;

            double[] pr = new double[x.Length];

            for (int j = 0; j < x.Length; j++)
            {
                xr[0, j] = x[j];
            }
            for (int i = 1; i <= n; i++)
            {
                f1 = fun(t, x); //1
                t  = t + h;
                for (int k = 0; k < x.Length; k++)
                {
                    pr[k] = x[k] + h * f1[k];
                }

                f2 = fun(t, pr);
                for (int k = 0; k < x.Length; k++)
                {
                    x[k] = x[k] + (h / 2) * (f1[k] + f2[k]);
                }

                Console.Write(("t=" + t).PadRight(10));
                for (int j = 0; j < x.Length; j++)
                {
                    xr[i, j] = x[j];
                    WriteArgs(j, x[j], Math.Exp(t));
                }
                Console.WriteLine();
            }
            return(xr);
        }
Ejemplo n.º 5
0
        static void Main(string[] args)
        {
            //Instantiation of Delegates
            Multiplydelegate  mul_del   = new Multiplydelegate(Multiply);
            WriteNameDelegate write_del = new WriteNameDelegate(WriteName);
            DivisonDeletgate  div_del   = new DivisonDeletgate(Division);
            FunDelegate       fun_del   = new FunDelegate(fun);
            FindDelegate      feven_del = new FindDelegate(FindEven);
            FindDelegate      fmul5_del = new FindDelegate(FindMultipleof5);

            //Invoking The delegates
            int Result = mul_del.Invoke(5, 7);

            Console.WriteLine("Result is {0}", Result);

            string str = write_del("SWATI");

            Console.WriteLine(str);

            div_del.Invoke(10, 2);

            fun_del.Invoke();

            if (feven_del.Invoke(20))
            {
                Console.WriteLine("Number is EVEN");
            }
            else
            {
                Console.WriteLine("Number is ODD");
            }

            if (fmul5_del.Invoke(30))
            {
                Console.WriteLine("Multiple of 5");
            }
            else
            {
                Console.WriteLine("Not multiple of 5");
            }

            Console.ReadKey();
        }
Ejemplo n.º 6
0
        static void Main(string[] args)
        {
            //instantiate the delegates
            Multiplydelegate mul_del = (x, y) =>        //lambda expression
            {
                return(x * y);
            };

            WriteNameDelegate write_del = name =>
            {
                return("My Name is " + name);
            };

            DivisonDeletgate div_del = (x, y) =>
            {
                Console.WriteLine("Divide Result is : {0}", x / y);
            };

            FunDelegate fun_del = () =>
            {
                Console.WriteLine("Programming is fun");
            };

            FindDelegate feven_del = x =>
            {
                if (x % 2 == 0)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            };


            FindDelegate fmul5_del = x =>
            {
                if (x % 5 == 0)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            };


            //Invoking The delegates

            int Result = mul_del.Invoke(5, 7);

            Console.WriteLine("Result is {0}", Result);

            string str = write_del("SWATI");

            Console.WriteLine(str);

            div_del.Invoke(10, 2);

            fun_del.Invoke();

            if (feven_del.Invoke(20))
            {
                Console.WriteLine("Number is EVEN");
            }
            else
            {
                Console.WriteLine("Number is ODD");
            }

            if (fmul5_del.Invoke(30))
            {
                Console.WriteLine("Multiple of 5");
            }
            else
            {
                Console.WriteLine("Not multiple of 5");
            }

            Console.ReadKey();
        }