Неверно рисуются графики - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Помогите, пожалуйста, разобраться, что я делаю не так. По заданию лабараторной у меня должно быть три кнопки, по нажатию на которые будут строиться три разные графика функции. И все как бы вышло, но только при повторном нажатии график меняется, и при нажатиях на другие кнопки появляются графики, но не такие, как должны быть. Подскажите в чем беда, пожалуйста. Заранее благодарен
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace Graph
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        #region variables
        double x = 0;
        double y = 0;
        #endregion
        private void button1_Click(object sender, EventArgs e)
        {
            chart2.Series[0].Points.Clear();
            chart2.Series[0].LegendText = "Функция 1";
            chart2.Series[0].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;
            for (int i = 0; i < 1000; i++)
            {
                double y = ((Math.Pow(x, 2) - 1) * (Math.Pow(x, 2) - 4) * (Math.Pow(x, 2) + 9));
                chart2.Series[0].Points.AddXY(x, y);
                x = x + 0.001;
            }
        }//функция 1
 
        private void button2_Click(object sender, EventArgs e)
        {
            chart2.Series[0].Points.Clear();
            chart2.Series[0].LegendText = "Функция 2";
            chart2.Series[0].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;
            for (int i = 0; i < 1000; i++)
            {
                double y = ((3 - 2 * (1 / Math.Tan(x))) / (Math.Cos(x) * Math.Cos(x)));
                chart2.Series[0].Points.AddXY(x, y);
                x = x + 0.001;
            }
        }//функция 2
 
        private void button3_Click(object sender, EventArgs e)
        {
            chart2.Series[0].Points.Clear();
            chart2.Series[0].LegendText = "Функция 3";
            chart2.Series[0].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;
            for (int i = 0; i < 1000; i++)
            {
                double y = ((Math.Pow(x, 2)) / ((Math.Pow((x * Math.Sin(x) + Math.Cos(x)), 2))));
                chart2.Series[0].Points.AddXY(x, y);
                x = x + 0.001;
            }
        }//функция 3
 
        private void chart2_Click(object sender, EventArgs e)
        {
 
        }
    }
}

Решение задачи: «Неверно рисуются графики»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace Graph
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        #region variables
        double x = 0;
        double y = 0;
        #endregion
        private void button1_Click(object sender, EventArgs e)
        {
            double x = 0;
            double y = 0;
            chart2.Series[0].Points.Clear();
            chart2.Series[0].LegendText = "Функция 1";
            chart2.Series[0].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;
            for (int i = 0; i < 1000; i++)
            {
                y = ((Math.Pow(x, 2) - 1) * (Math.Pow(x, 2) - 4) * (Math.Pow(x, 2) + 9));
                chart2.Series[0].Points.AddXY(x, y);
                x = x + 0.001;
            }
        }//функция 1
 
        private void button2_Click(object sender, EventArgs e)
        {
            double x = 0;
            double y = 0;
            chart2.Series[0].Points.Clear();
            chart2.Series[0].LegendText = "Функция 2";
            chart2.Series[0].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;
            for (int i = 0; i < 1000; i++)
            {
                y = ((3 - 2 * (1 / Math.Tan(x))) / (Math.Cos(x) * Math.Cos(x)));
                chart2.Series[0].Points.AddXY(x, y);
                x = x + 0.001;
            }
        }//функция 2
 
        private void button3_Click(object sender, EventArgs e)
        {
            double x = 0;
            double y = 0;
            chart2.Series[0].Points.Clear();
            chart2.Series[0].LegendText = "Функция 3";
            chart2.Series[0].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;
            for (int i = 0; i < 1000; i++)
            {
                y = ((Math.Pow(x, 2)) / ((Math.Pow((x * Math.Sin(x) + Math.Cos(x)), 2))));
                chart2.Series[0].Points.AddXY(x, y);
                x = x + 0.001;
            }
        }//функция 3
 
        private void chart2_Click(object sender, EventArgs e)
        {
 
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.273 из 5
Похожие ответы