Program w c# rysowanie funkcji kwadratowej

0

mam za zadanie napisać program do rysowania funkcji kwadratowej, napisałem kod ale coś w nim nie gra. Moze ktoś potrafil by wskazac błąd?

private void button2_Click(object sender, EventArgs e)
{

        int[,] tabWykres;


        double a1, b1, c1;
        a1 = Convert.ToDouble(textBox5.Text);
        b1 = Convert.ToDouble(textBox6.Text);
        c1 = Convert.ToDouble(textBox7.Text);
        
        
        double d, g;

        d = Convert.ToDouble(textBox1.Text);
        g = Convert.ToDouble(textBox4.Text);
  

        for (int i = 0; i > d; i++)
             for (int j = 0; j < g; j++)
     {
         double x, y;

            x=i;
            y = a1 * Math.Pow(x, 2) + (b1 * x) + c1;


            tabWykres[0, i] = x;
            tabWykres[1, i] = y;

            chart2.Series[0].Points.AddXY(tabWykres[0, i], tabWykres[1, i]);

chodzi o to ze podaje współczynniki a, b i c funkcji kwadratowej a także x1 i x2 są to przedzialy w ktorych funkcja ma byc rysowana. hełp!

0

zakładam że d to x1, a g to x2
nie mam pojęcia po co ci zagnieżdzona pętla

jeśli dodajesz je do punktów na wykresie, to po co w ogole ci pamiętać je w dodatkowej strukturze?

for (int i=x1; i<=x2; i++)
{
  //liczysz y, akurat liczenie masz dobrze ;)
  //dodajesz to Series[0]
}
0
private void button2_Click(object sender, EventArgs e)
        {


            
            double[,] tabWykres;


            double a1, b1, c1;
            a1 = Convert.ToDouble(textBox5.Text);
            b1 = Convert.ToDouble(textBox6.Text);
            c1 = Convert.ToDouble(textBox7.Text);
            
            
            double x1, x2;

            x1 = Convert.ToDouble(textBox1.Text);
            x2 = Convert.ToDouble(textBox4.Text);


            for (int i = x1; i <= x2; i++)

         {
             double x, y;

                x=i;
                y = a1 * Math.Pow(x, 2) + (b1 * x) + c1;


                tabWykres[0, i] = x;
                tabWykres[1, i] = y;

                chart2.Series[0].Points.AddXY(tabWykres[0, i], tabWykres[1, i]);

tak teraz wygląda cały kod z tym ze nadal nie działa. a1, b1, c1 to są współczynniki funkcji kwadratowej, a x1 i x2 to przedział w jakim ta funkcja ma być wykreślana.

0
  1. masz deklarację tablicy tabWykres, ale nigdzie jej nie tworzysz, czy tobie się to w ogóle kompiluje?
  2. tablice indeksowane są od zero, a ty pętle masz od x1, które nie musi być zero - jeśli program się uruchomi dostanie IndexOutOfRangeException
  3. jeśli nie potrzebujesz wyliczonych punktów, nie ma potrzeby przechowywaćich w tablicy

oczywiście pomijam fakt, że zakładamy, że dane będą poprawne, czyli a1,b1,c1,x1,x2 będą liczbami oraz x1<=x2
zamiast textbox użyj NumercUpDown
oraz sprawdzaj czy x1 <= x2

   double a1, b1, c1;
   a1 = Convert.ToDouble(textBox5.Text);
   b1 = Convert.ToDouble(textBox6.Text);
   c1 = Convert.ToDouble(textBox7.Text);
 
 
   double x1, x2;
 
   x1 = Convert.ToDouble(textBox1.Text);
   x2 = Convert.ToDouble(textBox4.Text);

   double[,] tabWykres = new double[2, x2-x1+1];
for (int x=x1, i=0; x <= x2; x++, i++)
{
  tabWykres[0,i] = x;
  tabWykres[1,i] = a1 * x * x + b1 * x + c1;

  chart2.Series[0].Points.AddXY(tabWykres[0, i], tabWykres[1, i]);
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1