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}");
}
}