Загрузка данных


using System;
using System.Globalization;
using System.Windows.Forms;

private void button1_Click(object sender, EventArgs e)
{
    try
    {
        // Считываем значения параметров (для 12 варианта: x0 = 1; xk = 2.2; dx = 0.2; b = 3.2)
        double Xmin = double.Parse(textBox1.Text.Replace(',', '.'), CultureInfo.InvariantCulture); 
        double Xmax = double.Parse(textBox2.Text.Replace(',', '.'), CultureInfo.InvariantCulture); 
        double Step = double.Parse(textBox3.Text.Replace(',', '.'), CultureInfo.InvariantCulture); 
        double b = double.Parse(textBox4.Text.Replace(',', '.'), CultureInfo.InvariantCulture);    

        if (Step <= 0 || Xmin >= Xmax)
        {
            MessageBox.Show("Проверьте ввод: Xmax должен быть больше Xmin, а шаг больше 0.");
            return;
        }

        // Вычисляем количество точек
        int count = (int)Math.Ceiling((Xmax - Xmin) / Step) + 1;

        double[] x = new double[count];
        double[] y1 = new double[count]; // Для основной функции (Вариант 12)
        double[] y2 = new double[count]; // Для произвольной функции

        for (int i = 0; i < count; i++)
        {
            x[i] = Xmin + Step * i;
            
            // 1. Основная функция варианта 12: y = 9 * (x^3 + b^3) * tg(x)
            y1[i] = 9 * (Math.Pow(x[i], 3) + Math.Pow(b, 3)) * Math.Tan(x[i]);
            
            // 2. Произвольная функция (например, y = x^2)
            y2[i] = Math.Pow(x[i], 2);
        }

        // Настройка сетки графика
        chart1.ChartAreas[0].AxisX.Minimum = Xmin;
        chart1.ChartAreas[0].AxisX.Maximum = Xmax;
        chart1.ChartAreas[0].AxisX.MajorGrid.Interval = Step;

        // Полностью очищаем старые серии, чтобы избежать конфликтов индексов
        chart1.Series.Clear();
        
        // Добавляем ПЕРВЫЙ график (Вариант 12)
        var series1 = chart1.Series.Add("y = 9(x³+b³)tg(x)");
        series1.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;
        series1.BorderWidth = 3;
        series1.Points.DataBindXY(x, y1);

        // Добавляем ВТОРОЙ график (Произвольная функция)
        var series2 = chart1.Series.Add("y = x² (Произвольная)");
        series2.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;
        series2.BorderWidth = 3;
        series2.Points.DataBindXY(x, y2);
    }
    catch (FormatException)
    {
        MessageBox.Show("Пожалуйста, проверьте правильность ввода числовых параметров.");
    }
    catch (Exception ex)
    {
        MessageBox.Show($"Произошла ошибка: {ex.Message}");
    }
}