Windows Forms C# Visual Studio problem z instrukcją if.

0

Hej,
Mam problem z umieszczeniem instrukcji if w kodzie programu ( rysowanie wykresów funkcji sin(x))

    double Funckja(double x, double A)
    {
        double z;
        if (checkBox1.Checked == true)
        {
            z = A * Math.Cos(x);
        }
        else if(checkBox1.Checked == false)
        {
            z = A * Math.Sin(x);
        }
        return z;
        }


    private void button1_Click(object sender, EventArgs e)
    {
        double[] vecX = new double[100];
        double[] vecY = new double[100];

        double krok = 0.1;
        double A;
        double.TryParse(textBox1.Text, out A);
        for (int i = 0; i < 99; i++)
        {
            vecX[i + 1] = vecX[i] + krok;
            vecY[i + 1] = Funckja(vecX[i + 1], A);
        }

        for (int i = 0; i < 99; i++)
        {
            chart1.Series[0].Points.AddXY(vecX[i], vecY[i]);
        }`

Wyskakuje błąd "nie przypisano zmiennej lokalnej "z" " po instrukcji warunkowej if, macie pomysł jakby to rozwiązać?
Program jest na zajęcia z programowania, uczę się dopiero ;)

0

Po return z; brakuje }
Poza tym ustaw wartość z=0.0000m;

0
Any napisał(a):

Po return z; brakuje }
Poza tym ustaw wartość z=0.0000m;

Jak dodam } to wyskakuje kolejne 7 błędów m.in. nie znajduje przycisków, textboxów itp.
Teraz patrze że juz tam była klamra, tylko nie skopiowała się tutaj :)
Poprawię...

0

Twoja funkcja jest przekombinowana. Skoro sprawdasz czy checkbox jest zaznaczony to po co sprawdasz czy nie jest zaznaczony? Wystarczy tak:

double Funckja(double x, double A)
{
    if (checkBox1.Checked)
        return A * Math.Cos(x);
    return A * Math.Sin(x);
}
0
Saalin napisał(a):

Twoja funkcja jest przekombinowana. Skoro sprawdasz czy checkbox jest zaznaczony to po co sprawdasz czy nie jest zaznaczony? Wystarczy tak:

double Funckja(double x, double A)
{
    if (checkBox1.Checked)
        return A * Math.Cos(x);
    return A * Math.Sin(x);
}

Okej, działa dobrze, myślę jeszcze o tym by kolejne naciśnięcie przycisku wymazywało ten poprzedni wykres i rysowało następny, jakieś propozycje?

0

Możesz usunąć te punkty z serii: chart1.Series[0].Points.Clear();

0
Saalin napisał(a):

Możesz usunąć te punkty z serii: chart1.Series[0].Points.Clear();

A wiesz może co wstawić jak chce by po drugim kliknięciu w ten przycisk ta twoja instukcja działała?
Znalazłem coś ale nie chce działać...

0

Sprawdź nawiasy klamrowe.

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