Exemplo n.º 1
0
        private void wykres_btn_Click(object sender, RoutedEventArgs e)
        {
            Funkcje wykres = new Funkcje();

            wykres.a = Convert.ToDouble(tb_a.Text);
            wykres.b = Convert.ToDouble(tb_b.Text);
            wykres.c = Convert.ToDouble(tb_c.Text);


            wykres.obl_delta = (wykres.b * wykres.b) - 4 * wykres.a * wykres.c;
            wykres.p         = ((-wykres.b) / (2 * wykres.a));
            wykres.q         = ((-wykres.obl_delta) / (4 * wykres.a));
            wykres.x1        = (-wykres.b - Math.Sqrt(wykres.obl_delta)) / (2 * wykres.a);
            wykres.x2        = (-wykres.b + Math.Sqrt(wykres.obl_delta)) / (2 * wykres.a);



            if (wykres.a > 0 & wykres.obl_delta > 0)
            {
                wykres1.Visibility     = Visibility;
                tb_result8.Visibility  = Visibility;
                tb_result9.Visibility  = Visibility;
                tb_result10.Visibility = Visibility;
                tb_result10.Text       = "(" + Math.Round(wykres.p, 2) + ";" + Math.Round(wykres.q, 2) + ")";
                tb_result8.Text        = "(" + Math.Round(wykres.x1, 2) + ";" + "0)";
                tb_result9.Text        = "(" + Math.Round(wykres.x2, 2) + ";" + "0)";
            }
            if (wykres.a < 0 & wykres.obl_delta > 0)
            {
                wykres2.Visibility     = Visibility;
                tb_result11.Visibility = Visibility;
                tb_result8.Visibility  = Visibility;
                tb_result9.Visibility  = Visibility;
                tb_result11.Text       = "(" + Math.Round(wykres.p, 2) + ";" + Math.Round(wykres.q, 2) + ")";
                tb_result8.Text        = "(" + Math.Round(wykres.x1, 2) + ";" + "0)";
                tb_result9.Text        = "(" + Math.Round(wykres.x2, 2) + ";" + "0)";
            }
            if (wykres.a < 0 & wykres.obl_delta < 0)
            {
                wykres3.Visibility     = Visibility;
                tb_result11.Visibility = Visibility;
                tb_result11.Text       = "(" + Math.Round(wykres.p, 2) + ";" + Math.Round(wykres.q, 2) + ")";
            }
            if (wykres.a > 0 & wykres.obl_delta < 0)
            {
                wykres4.Visibility     = Visibility;
                tb_result10.Visibility = Visibility;
                tb_result10.Text       = "(" + Math.Round(wykres.p, 2) + ";" + Math.Round(wykres.q, 2) + ")";
            }

            wykres_btn.IsEnabled = false;
        }
Exemplo n.º 2
0
        private void draw_btn_Click(object sender, RoutedEventArgs e)
        {
            Funkcje obiekt2 = new Funkcje();

            if (tb_a.Text == "a" | tb_b.Text == "b" | tb_c.Text == "c")
            {
                tb_a.Text = string.Empty;
                tb_b.Text = string.Empty;
                tb_c.Text = string.Empty;
                tb_a.Text = "a";
                tb_b.Text = "b";
                tb_c.Text = "c";
                MessageBox.Show("Brak danych !");
                return;
            }

            else if (tb_a.Text == string.Empty & tb_a.Text == string.Empty & tb_a.Text == string.Empty)
            {
                tb_a.Text = string.Empty;
                tb_b.Text = string.Empty;
                tb_c.Text = string.Empty;
                tb_a.Text = "a";
                tb_b.Text = "b";
                tb_c.Text = "c";
                MessageBox.Show("Brak danych !");
                return;
            }


            wyczysc_btn.Visibility = Visibility;
            obiekt2.a = Convert.ToDouble(tb_a.Text);
            obiekt2.b = Convert.ToDouble(tb_b.Text);
            obiekt2.c = Convert.ToDouble(tb_c.Text);


            tb_result.Text       = string.Empty;
            tb_result2.Text      = string.Empty;
            tb_result3.Text      = string.Empty;
            tb_result4.Text      = string.Empty;
            tb_result5.Text      = string.Empty;
            tb_result6.Text      = string.Empty;
            tb_result7.Text      = string.Empty;
            tb_a.IsEnabled       = false;
            tb_b.IsEnabled       = false;
            tb_c.IsEnabled       = false;
            oblicz_btn.IsEnabled = false;

            wykres_btn.Visibility = Visibility;
            wykres_btn.IsEnabled  = true;


            //Warunek dla istnienia funkcji kwadratowej
            if (obiekt2.a != 0)
            {
                obiekt2.obl_delta = (obiekt2.b * obiekt2.b) - 4 * obiekt2.a * obiekt2.c;

                tb_result.Text = "Δ = " + Math.Round(obiekt2.obl_delta, 2).ToString();
                //Delta = 0
                if (obiekt2.obl_delta == 0)
                {
                    obiekt2.x1      = obiekt2.x2 = -obiekt2.b / (2 * obiekt2.a);
                    tb_result2.Text = "Δ równa 0: \nx1 wynosi : " + Math.Round(obiekt2.x1, 2);
                }
                //Delta > 0
                else if (obiekt2.obl_delta > 0)
                {
                    obiekt2.x1      = (-obiekt2.b - Math.Sqrt(obiekt2.obl_delta)) / (2 * obiekt2.a);
                    obiekt2.x2      = (-obiekt2.b + Math.Sqrt(obiekt2.obl_delta)) / (2 * obiekt2.a);
                    tb_result2.Text = "Δ większa od 0: \nx1: " + Math.Round(obiekt2.x1, 2) + "\nx2: " + Math.Round(obiekt2.x2, 2);
                }
                //Delta < 0
                else if (obiekt2.obl_delta < 0)
                {
                    tb_result2.Text = "Brak rozwiązań. Δ ujemna!";
                }
                //Zbiór wartości
                {
                    if (obiekt2.a > 0)
                    {
                        obiekt2.zw1     = (-obiekt2.obl_delta / 4 * obiekt2.a);
                        tb_result3.Text = "Zbiór wartości funkcji:" + "\n(" + Math.Round(obiekt2.zw1, 2) + " ,+ ∞ )";
                    }
                    else if (obiekt2.a < 0)
                    {
                        obiekt2.zw2     = (-obiekt2.obl_delta / 4 * obiekt2.a);
                        tb_result3.Text = "Zbiór wartości funkcji:" + "\n(- ∞, " + Math.Round(obiekt2.zw2, 2) + ")";
                    }
                }

                // Wierzchołek paraboli
                obiekt2.p       = ((-obiekt2.b) / (2 * obiekt2.a));
                obiekt2.q       = ((-obiekt2.obl_delta) / (4 * obiekt2.a));
                tb_result4.Text = "p = " + Math.Round(obiekt2.p, 2) + " , q = " + Math.Round(obiekt2.q, 2) + ", W = (" + Math.Round(obiekt2.p, 2) + ";" + Math.Round(obiekt2.q, 2) + ")";

                // Monotoniczność funkcji
                {
                    if (obiekt2.a > 0)
                    {
                        tb_result5.Text = "Funkcja jest malejąca w przedziale: " + "(- ∞ ," + Math.Round(obiekt2.p, 2) + ")"
                                          + "\nFunkcja jest rosnąca w przedziale: " + "( " + Math.Round(obiekt2.p, 2) + ", + ∞)";
                    }
                    else
                    {
                        tb_result5.Text = "Funkcja jest rosnąca w przedziale: " + "(-∞ ," + Math.Round(obiekt2.p, 2) + ")"
                                          + "\nFunkcja jest malejąca w przedziale: " + "( " + Math.Round(obiekt2.p, 2) + ", + ∞)";
                    }
                }

                //Dziedzina Funkcji
                {
                    if (obiekt2.a > 0)
                    {
                        tb_result6.Text = "Dziedzina funkcji: " + "\n( " + Math.Round(obiekt2.q, 2) + ", + ∞)";
                    }
                    else
                    {
                        tb_result6.Text = "Dziedzina funkcji: " + "\n(- ∞ ," + Math.Round(obiekt2.q, 2) + ")";
                    }
                }


                //Postacie funkcji dla delty równej 0
                if (obiekt2.obl_delta == 0)
                {
                    if ((obiekt2.x1 = obiekt2.x2 = -obiekt2.b / (2 * obiekt2.a)) < 0)
                    {
                        tb_result7.Text = "Postać iloczynowa: " + obiekt2.a + "(x + " + (-1) * obiekt2.x1 + ")^2" + "\nPostać kanoniczna: " + obiekt2.a + "(x " + obiekt2.p + ") + " + obiekt2.q +
                                          "\nPostać ogólna: " + obiekt2.a + "x^2 + " + obiekt2.b + "x + " + obiekt2.c;
                    }
                    else
                    {
                        tb_result7.Text = "Postać iloczynowa: " + obiekt2.a + "(x " + (-1) * obiekt2.x1 + ")^2" + "\nPostać kanoniczna: " + obiekt2.a + "(x + " + obiekt2.p + ") + " + obiekt2.q +
                                          "\nPostać ogólna: " + obiekt2.a + "x^2 + " + obiekt2.b + "x + " + obiekt2.c;
                    }
                }
                //Postacie funckji dla dlety większej od 0
                if (obiekt2.obl_delta > 0)
                {
                    obiekt2.x1 = (-obiekt2.b - Math.Sqrt(obiekt2.obl_delta)) / (2 * obiekt2.a);
                    obiekt2.x2 = (-obiekt2.b + Math.Sqrt(obiekt2.obl_delta)) / (2 * obiekt2.a);

                    if (obiekt2.x1 > 0 & obiekt2.x2 > 0 & obiekt2.p >= 0 & obiekt2.q >= 0)
                    {
                        tb_result7.Text = "Postać iloczynowa: " + Math.Round(obiekt2.a, 2) + "(x -" + Math.Round(obiekt2.x1, 2) + ")*(x - " + Math.Round(obiekt2.x2, 2) + ")" + "\nPostać kanoniczna: " + Math.Round(obiekt2.a, 2) + "(x " + Math.Round(obiekt2.p, 2) + ") + " + Math.Round(obiekt2.q, 2) +
                                          "\nPostać ogólna: " + Math.Round(obiekt2.a, 2) + "x^2 + " + Math.Round(obiekt2.b, 2) + "x + " + Math.Round(obiekt2.c, 2);
                    }
                    if (obiekt2.x1 < 0 & obiekt2.x2 < 0 & obiekt2.p < 0 & obiekt2.q < 0)
                    {
                        tb_result7.Text = "Postać iloczynowa: " + Math.Round(obiekt2.a, 2) + "(x " + Math.Round(-obiekt2.x1, 2) + ")*(x + " + Math.Round(-obiekt2.x2, 2) + ")" + "\nPostać kanoniczna: " + Math.Round(obiekt2.a, 2) + "(x + " + Math.Round(-obiekt2.p, 2) + ")  " + Math.Round(obiekt2.q, 2) +
                                          "\nPostać ogólna: " + Math.Round(obiekt2.a, 2) + "x^2 + " + Math.Round(obiekt2.b, 2) + "x + " + Math.Round(obiekt2.c, 2);
                    }
                    if (obiekt2.x1 > 0 & obiekt2.x2 < 0 & obiekt2.p < 0 & obiekt2.q < 0)
                    {
                        tb_result7.Text = "Postać iloczynowa: " + Math.Round(obiekt2.a, 2) + "(x " + Math.Round(-obiekt2.x1, 2) + ")*(x + " + Math.Round(-obiekt2.x2, 2) + ")" + "\nPostać kanoniczna: " + Math.Round(obiekt2.a, 2) + "(x + " + Math.Round(-obiekt2.p, 2) + ")  " + Math.Round(obiekt2.q, 2) +
                                          "\nPostać ogólna: " + Math.Round(obiekt2.a, 2) + "x^2 + " + Math.Round(obiekt2.b, 2) + "x + " + Math.Round(obiekt2.c, 2);
                    }
                    if (obiekt2.x1 < 0 & obiekt2.x2 > 0 & obiekt2.p < 0 & obiekt2.q < 0)
                    {
                        tb_result7.Text = "Postać iloczynowa: " + Math.Round(obiekt2.a, 2) + "(x +" + Math.Round(-obiekt2.x1, 2) + ")*(x " + Math.Round(-obiekt2.x2, 2) + ")" + "\nPostać kanoniczna: " + Math.Round(obiekt2.a, 2) + "(x + " + Math.Round(-obiekt2.p, 2) + ")  " + Math.Round(obiekt2.q, 2) +
                                          "\nPostać ogólna: " + Math.Round(obiekt2.a, 2) + "x^2 + " + Math.Round(obiekt2.b, 2) + "x " + Math.Round(obiekt2.c, 2);
                    }
                    if (obiekt2.x1 > 0 & obiekt2.x2 < 0 & obiekt2.p > 0 & obiekt2.q < 0)
                    {
                        tb_result7.Text = "Postać iloczynowa: " + Math.Round(obiekt2.a, 2) + "(x " + Math.Round(-obiekt2.x1, 2) + ")*(x " + Math.Round(-obiekt2.x2, 2) + ")" + "\nPostać kanoniczna: " + Math.Round(obiekt2.a, 2) + "(x + " + Math.Round(-obiekt2.p, 2) + ")  " + Math.Round(obiekt2.q, 2) +
                                          "\nPostać ogólna: " + Math.Round(obiekt2.a, 2) + "x^2 + " + Math.Round(obiekt2.b, 2) + "x " + Math.Round(obiekt2.c, 2);
                    }
                    if (obiekt2.x1 > 0 & obiekt2.x2 < 0 & obiekt2.p > 0 & obiekt2.q > 0)
                    {
                        tb_result7.Text = "Postać iloczynowa: " + Math.Round(obiekt2.a, 2) + "(x " + Math.Round(-obiekt2.x1, 2) + ")*(x + " + Math.Round(-obiekt2.x2, 2) + ")" + "\nPostać kanoniczna: " + Math.Round(obiekt2.a, 2) + "(x " + Math.Round(-obiekt2.p, 2) + ") + " + Math.Round(obiekt2.q, 2) +
                                          "\nPostać ogólna: " + Math.Round(obiekt2.a, 2) + "x^2 + " + Math.Round(obiekt2.b, 2) + "x + " + Math.Round(obiekt2.c, 2);
                    }
                }
                // postacie funkcji dla delty mniejszej od 0
                else if (obiekt2.obl_delta < 0)// brak postaci iloczynowej
                {
                    if (obiekt2.p < 0 & obiekt2.b >= 0)
                    {
                        tb_result7.Text = "Brak postaci iloczynowej" + "\nPostać kanoniczna: " + obiekt2.a + "(x " + Math.Round(obiekt2.p, 2) + ") + " + Math.Round(obiekt2.q, 2) +
                                          "\nPostać ogólna: " + Math.Round(obiekt2.a, 2) + "x^2 +" + Math.Round(obiekt2.b, 2) + "x + " + Math.Round(obiekt2.c, 2);
                    }
                    if (obiekt2.p > 0)
                    {
                        tb_result7.Text = "Brak postaci iloczynowej" + "\nPostać kanoniczna: " + obiekt2.a + "(x +" + Math.Round(obiekt2.p, 2) + ") " + Math.Round(obiekt2.q, 2) +
                                          "\nPostać ogólna: " + Math.Round(obiekt2.a, 2) + "x^2 +" + Math.Round(obiekt2.b, 2) + "x " + Math.Round(obiekt2.c, 2);
                    }
                    if (obiekt2.p > 0 & obiekt2.b < 0)
                    {
                        tb_result7.Text = "Brak postaci iloczynowej" + "\nPostać kanoniczna: " + obiekt2.a + "(x +" + Math.Round(obiekt2.p, 2) + ") +" + Math.Round(obiekt2.q, 2) +
                                          "\nPostać ogólna: " + Math.Round(obiekt2.a, 2) + "x^2 " + Math.Round(obiekt2.b, 2) + "x +" + Math.Round(obiekt2.c, 2);
                    }
                }
            }
            else
            {
                wyczysc_btn.Visibility = Visibility.Hidden;
                MessageBox.Show("To nie jest funkcja kwadratowa! \nZmienna a musi być różna od 0.");
                tb_a.Text            = string.Empty;
                tb_b.Text            = string.Empty;
                tb_c.Text            = string.Empty;
                tb_a.Text            = "a";
                tb_b.Text            = "b";
                tb_c.Text            = "c";
                tb_result.Text       = string.Empty;
                tb_result2.Text      = string.Empty;
                tb_result3.Text      = string.Empty;
                tb_result4.Text      = string.Empty;
                tb_result5.Text      = string.Empty;
                tb_result6.Text      = string.Empty;
                tb_result7.Text      = string.Empty;
                oblicz_btn.IsEnabled = true;
                tb_a.IsEnabled       = true;
                tb_b.IsEnabled       = true;
                tb_c.IsEnabled       = true;
            }
        }