Zły wynik w DataGridView

0

Witam
Zaczynam uczyć się programować i mam problem aby program wpisał poprawny wynik do tabeli.
Wyznaczam przedział (dolny i górny) i te wartości dobrze są wpisane, ale poprawny wynik jest tylko dla pierwszego, a kolejnych nie liczy tylko przepisuje.

W konsoli jest poprawnie

9cd44315279e3ce049bfcc4ab2bcbdb5.jpg

Natomiast w windows forms "wartości x" są złe

1e648ccea4b6eb8f9f85db7f060375bc.jpg

Tutaj kod

// Zainicjowanie stanu poczÄtkowego zmiennych
n0 = 0;
n1 = 0;
n = 0;
X = Xd;
// Kod funkcji x <- 10
if (X < -10)
{
    do
   {
        n0 = n1;
        n1 += (Math.Pow(X, n)) / (silnia(n));
        n++;
    } while ((Math.Abs(Math.Abs(n0) - Math.Abs(n1)) >= Eps2) && (X < -10));
}
// Kod funkcji dla -10 =< x <= 10 
if ((X >= -10) && (X <= 10))
{
   do
   {
        n0 = n1;
        n1 += Math.Pow(-1, n) * (Math.Pow(X, 2 * n + 1)) / (silnia(2 * n + 1));
        n++;
   } while ((Math.Abs(Math.Abs(n0) - Math.Abs(n1)) >= Eps2) && (X >= -10) && (X <= 10));
}
// Kod funkcji dla x > 10
if (X > 10)
{
    do
    {
        n0 = n1;
        n1 += Math.Pow(-1, n) * (Math.Pow(X, 2 * n)) / (silnia(2 * n));
        n++;
    } while ((Math.Abs(Math.Abs(n0) - Math.Abs(n1)) >= Eps2) && (X > 10));
}
//wpisanie do datagridview
X2 = (int)(Xg - Xd) / h;

for (int i = 0; i <= X2; i++)
{

    dgvTabela.Rows.Add();
    dgvTabela.Rows[i].Cells[0].Value=Xd;    
    dgvTabela.Rows[i].Cells[1].Value=n1;

    Xd = Xd + h;     
}

Wydaje mi się że tutaj jest błąd

dgvTabela.Rows[i].Cells[1].Value=n1;

Tylko nie mam pojęcia jak napisać by ten wynik(n1) w kolejnych wierszach wczytywał X i podawał poprawny wynik.

poprawienie tytułu wątku, dołączanie obrazów i kodu do treści posta + dodanie znaczików <code class="csharp"> - fp

1

może dlatego że w tej pętli to n1 się wcale nie zmienia?

0

Co należy wpisać żeby się zmieniało?

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