コード例 #1
0
        private void button1_Click(object sender, EventArgs e)
        {
            var         valM           = textBox1.Text;
            var         valZ           = textBox2.Text;
            var         correct_result = 333333.333333;
            SingleCount exercise1      = new SingleCount();
            Random      random         = new Random();

            exercise1.X1 = 0;
            exercise1.X2 = 100;
            int  m; double z;
            bool parseSuccess1 = int.TryParse(valM, out m);
            bool parseSuccess2 = double.TryParse(valZ, out z);                     // Percentage error from 0 to 100

            if (parseSuccess1 && parseSuccess2)
            {
                Wynik.Items.Clear();
                if (z >= 0 && z <= 100 && m >= 1 && m <= 1000)
                {
                    exercise1.CalculationNumber = m;
                    double percentVal = z * correct_result / 100;               // Value of percentage error
                    double maxAccVal  = correct_result + percentVal;            // Maximal accepted value
                    double minAccVal  = correct_result - percentVal;            // Minimal accepted value

                    for (int i = 0; i < exercise1.CalculationNumber; ++i)
                    {
                        exercise1.N = random.Next(10, 100000);
                        var result_trap = exercise1.TrapezoidMethod(exercise1.FUNX2);
                        var result_rec  = exercise1.RectangleMethod(exercise1.FUNX2);
                        if (result_trap >= minAccVal && result_trap <= maxAccVal)
                        {
                            Wynik.Items.Add("Trapezoid method: " + result_trap);
                        }
                        if (result_rec >= minAccVal && result_rec <= maxAccVal)
                        {
                            Wynik.Items.Add("Rectangle method: " + result_rec);
                        }
                    }
                    Wynik.Items.Add("END OF CALCULATION");
                }
                else
                {
                    Wynik.Items.Add("Please change value of Z or M");
                    Wynik.Items.Add("The valid values are:");
                    Wynik.Items.Add("M range 1 1000");
                    Wynik.Items.Add("Z range 0 100");
                }
            }
            else
            {
                Wynik.Items.Add("The given data was invalid");
            }
        }
コード例 #2
0
ファイル: Exercise3.cs プロジェクト: aleksiwoncz/WinForms
        private void CALCULATE_Click(object sender, EventArgs e)
        {
            var         correct_result = 333333.333333;
            SingleCount exercise3      = new SingleCount();

            exercise3.X1 = 0;
            exercise3.X2 = 100;

            for (int i = 1; i < 7; ++i)
            {
                exercise3.N = (int)Math.Pow(10, i);
                Wynik.Items.Add("For n: " + exercise3.N);
                var result_trap = exercise3.TrapezoidMethod(exercise3.FUNX2);
                exercise3.MinSquareError = Math.Pow(correct_result - result_trap, 2);
                Wynik.Items.Add("Trapezoid method: " + exercise3.MinSquareError);

                var result_rec = exercise3.RectangleMethod(exercise3.FUNX2);
                exercise3.MinSquareError = Math.Pow(correct_result - result_rec, 2);
                Wynik.Items.Add("Rectangle method: " + exercise3.MinSquareError);
            }
        }
コード例 #3
0
        private double integralX(SingleCount exercise5, bool method, Func <double, double> fun, Random random)
        {
            exercise5.X1 = 0;
            while (true)
            {
                exercise5.X2 = findX(random);
                if (exercise5.X2 > exercise5.X1)
                {
                    break;
                }
            }
            double local_x = 0;

            if (method)     // Trapezoid
            {
                local_x = exercise5.TrapezoidMethod(fun);
            }
            else
            {
                local_x = exercise5.RectangleMethod(fun);
            }

            return(local_x);
        }
コード例 #4
0
        private void CALCULATE_Click(object sender, EventArgs e)
        {
            var         valZ           = textBox1.Text;
            var         correct_result = 1;
            SingleCount exercise8      = new SingleCount();

            exercise8.X1 = 0;
            exercise8.X2 = Math.PI / 2;
            double z;
            bool   parseSuccess1 = double.TryParse(valZ, out z);                   // Percentage error from 0 to 100

            if (parseSuccess1)
            {
                Wynik.Items.Clear();
                if (z >= 0 && z <= 100)
                {
                    double percentVal = z * correct_result / 100;               // Value of percentage error
                    double maxAccVal  = correct_result + percentVal;            // Maximal accepted value
                    double minAccVal  = correct_result - percentVal;            // Minimal accepted value

                    bool flag = false;
                    for (int i = 1; i < 25000; ++i)
                    {
                        exercise8.N = i;
                        var result_trap = exercise8.TrapezoidMethod(exercise8.FUNCOSX);
                        if (result_trap >= minAccVal && result_trap <= maxAccVal)
                        {
                            Wynik.Items.Add("Trapezoid method: " + result_trap);
                            Wynik.Items.Add("For n: " + exercise8.N);
                            flag = true;
                            break;
                        }
                    }
                    if (!flag)
                    {
                        Wynik.Items.Add("No matches for Trapezoid method..");
                    }

                    flag = false;
                    for (int i = 1; i < 25000; ++i)
                    {
                        exercise8.N = i;
                        var result_rec = exercise8.RectangleMethod(exercise8.FUNCOSX);
                        if (result_rec >= minAccVal && result_rec <= maxAccVal)
                        {
                            Wynik.Items.Add("Rectangle method: " + result_rec);
                            Wynik.Items.Add("For n: " + exercise8.N);
                            flag = true;
                            break;
                        }
                    }
                    if (!flag)
                    {
                        Wynik.Items.Add("No matches for Rectangle method..");
                    }
                }
                else
                {
                    Wynik.Items.Add("Please change value of Z");
                    Wynik.Items.Add("The valid values are:");
                    Wynik.Items.Add("Z range 0 100");
                }
            }
            else
            {
                Wynik.Items.Add("The given data was invalid");
            }
        }
コード例 #5
0
ファイル: Exercise7.cs プロジェクト: aleksiwoncz/WinForms
        private void CALCULATE_Click(object sender, EventArgs e)
        {
            var         valZ      = textBox1.Text;
            var         valx1     = textBox2.Text;
            var         valx2     = textBox3.Text;
            SingleCount exercise7 = new SingleCount();

            double x1, x2;
            int    Z;
            bool   parseSuccess1 = double.TryParse(valx1, out x1);
            bool   parseSuccess2 = double.TryParse(valx2, out x2);
            bool   parseSuccess3 = int.TryParse(valZ, out Z);

            if (parseSuccess1 && parseSuccess2 && parseSuccess3)
            {
                Wynik.Items.Clear();
                if (x1 >= 0 && x1 <= 1000 && x2 >= 0 && x2 <= 1000 && x2 > x1 && Z > 0 && Z <= 1000)
                {
                    exercise7.X1 = x1;
                    exercise7.X2 = x2;

                    bool flag = false;
                    for (int i = 2; i < 25000; ++i)
                    {
                        exercise7.N = i;
                        var result_trap = exercise7.TrapezoidMethod(exercise7.FUNX2);

                        if (result_trap % Z == 0)
                        {
                            Wynik.Items.Add("Trapezoid method: " + result_trap);
                            Wynik.Items.Add("For n: " + exercise7.N);
                            flag = true;
                            break;
                        }
                    }
                    if (!flag)
                    {
                        Wynik.Items.Add("No matches for Trapezoid method..");
                    }

                    flag = false;
                    for (int i = 2; i < 25000; ++i)
                    {
                        exercise7.N = i;
                        var result_rec = exercise7.RectangleMethod(exercise7.FUNX2);

                        if (result_rec % Z == 0)
                        {
                            Wynik.Items.Add("Rectangle method: " + result_rec);
                            Wynik.Items.Add("For n: " + exercise7.N);
                            flag = true;
                            break;
                        }
                    }
                    if (!flag)
                    {
                        Wynik.Items.Add("No matches for Rectangle method..");
                    }
                }
                else
                {
                    Wynik.Items.Add("Please change value of X1 or X1 or Z");
                    Wynik.Items.Add("The valid values are:");
                    Wynik.Items.Add("X1 range 0 1000");
                    Wynik.Items.Add("X2 range 0 1000");
                    Wynik.Items.Add("Z range >0 1000");
                    Wynik.Items.Add("X2 > X1");
                }
            }
            else
            {
                Wynik.Items.Add("The given data was invalid");
            }
        }
コード例 #6
0
ファイル: Exercise4.cs プロジェクト: aleksiwoncz/WinForms
        private void CALCULATE_Click(object sender, EventArgs e)
        {
            var         valZ      = textBox1.Text;
            var         valK      = textBox3.Text;
            SingleCount exercise4 = new SingleCount();

            exercise4.X1 = 0;
            int  K; int Z;
            bool parseSuccess1 = int.TryParse(valK, out K);
            bool parseSuccess2 = int.TryParse(valZ, out Z);

            if (parseSuccess1 && parseSuccess2)
            {
                Wynik.Items.Clear();
                if (K >= 0 && K <= 4 && Z > 0 && Z <= 1000)
                {
                    exercise4.N = (int)Math.Pow(10, K);
                    int x2 = 1;

                    bool flag = false;
                    for (int i = 1; i < 25000; ++i)
                    {
                        exercise4.X2 = i;
                        var result = exercise4.TrapezoidMethod(exercise4.FUNX3);
                        if (result % Z == 0)
                        {
                            Wynik.Items.Add("Trapezoid Method");
                            Wynik.Items.Add("Result: " + result);
                            Wynik.Items.Add("For x1: " + exercise4.X1 + ", x2: " + exercise4.X2);
                            flag = true;
                            break;
                        }
                    }
                    if (!flag)
                    {
                        Wynik.Items.Add("No matches for Trapezoid method..");
                    }

                    flag = false;
                    for (int i = 1; i < 25000; ++i)
                    {
                        exercise4.X2 = i;
                        var result = exercise4.RectangleMethod(exercise4.FUNX3);
                        if (result % Z == 0)
                        {
                            Wynik.Items.Add("Rectangle Method");
                            Wynik.Items.Add("Result: " + result);
                            Wynik.Items.Add("For x1: " + exercise4.X1 + ", x2: " + exercise4.X2);
                            flag = true;
                            break;
                        }
                    }
                    if (!flag)
                    {
                        Wynik.Items.Add("No matches for Rectangle method..");
                    }
                }
                else
                {
                    Wynik.Items.Add("Please change value of Z or K");
                    Wynik.Items.Add("The valid values are:");
                    Wynik.Items.Add("K range 0 4");
                    Wynik.Items.Add("Z range >0 1000");
                }
            }
            else
            {
                Wynik.Items.Add("The given data was invalid");
            }
        }
コード例 #7
0
ファイル: Exercsie6.cs プロジェクト: aleksiwoncz/WinForms
        private void CALCULATE_Click(object sender, EventArgs e)
        {
            var         valK      = textBox3.Text;
            var         valM      = textBox1.Text;
            SingleCount exercise6 = new SingleCount();
            Random      random    = new Random();

            int  m; int k;
            bool parseSuccess1 = int.TryParse(valM, out m);
            bool parseSuccess2 = int.TryParse(valK, out k);

            if (parseSuccess1 && parseSuccess2)
            {
                Wynik.Items.Clear();
                if (k >= 0 && k <= 4 && m >= 1 && m <= 1000)
                {
                    exercise6.N = (int)Math.Pow(10, k);

                    double result_x2 = 0, result_x3 = 0, diff = double.MaxValue;
                    double local_x2, local_x3, local_diff;
                    // Trapezoid method
                    for (int i = 0; i < m; ++i)
                    {
                        exercise6.X1 = random.Next(0, 100);
                        exercise6.X2 = random.Next(100, 300);

                        local_x2   = exercise6.TrapezoidMethod(exercise6.FUNX2);
                        local_x3   = exercise6.TrapezoidMethod(exercise6.FUNX3);
                        local_diff = local_x2 - local_x3;
                        if (local_diff < 0)
                        {
                            local_diff *= -1;
                        }
                        if (local_diff < diff)
                        {
                            diff      = local_diff;
                            result_x2 = local_x2;
                            result_x3 = local_x3;
                        }
                    }
                    Wynik.Items.Add("Trapezoid method");
                    Wynik.Items.Add("X^2 function: " + result_x2);
                    Wynik.Items.Add("X^3 function: " + result_x3);
                    Wynik.Items.Add("Lowest difference: " + diff);


                    result_x2 = 0; result_x3 = 0; diff = double.MaxValue;
                    // Rectangle method
                    for (int i = 0; i < m; ++i)
                    {
                        exercise6.X1 = random.Next(0, 100);
                        exercise6.X2 = random.Next(100, 300);

                        local_x2   = exercise6.RectangleMethod(exercise6.FUNX2);
                        local_x3   = exercise6.RectangleMethod(exercise6.FUNX3);
                        local_diff = local_x2 - local_x3;
                        if (local_diff < 0)
                        {
                            local_diff *= -1;
                        }
                        if (local_diff < diff)
                        {
                            diff      = local_diff;
                            result_x2 = local_x2;
                            result_x3 = local_x3;
                        }
                    }
                    Wynik.Items.Add("Rectangle method");
                    Wynik.Items.Add("X^2 function: " + result_x2);
                    Wynik.Items.Add("X^3 function: " + result_x3);
                    Wynik.Items.Add("Lowest difference: " + diff);
                }
                else
                {
                    Wynik.Items.Add("Please change value of Z or M");
                    Wynik.Items.Add("The valid values are:");
                    Wynik.Items.Add("M range 1 1000");
                    Wynik.Items.Add("K range 0 4");
                }
            }
            else
            {
                Wynik.Items.Add("The given data was invalid");
            }
        }