Распишите пожалуйста как работает программа
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace CubSpline
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public double FUNC(double x)
{
return Math.Exp(-x) + Math.Sin(x);
}
private void button1_Click(object sender, EventArgs e)
{
double all = Convert.ToDouble(textBox2.Text);
double bll = Convert.ToDouble(textBox3.Text);
double hl = Convert.ToDouble(textBox4.Text);
int N = Convert.ToInt32((bll - all) / hl);
double[] Xe = new double[N+1];
double[] Ye = new double[N+1];
double[] a = new double[N+1];
double[] b = new double[N+1];
double[] c = new double[N+1];
double[] d = new double[N+1];
double[] PointX = new double[N+1];
double[] PointY = new double[N+1];
double x = all;
double forCompare = 0;
double xinnterpol = Convert.ToDouble(textBox5.Text);
int L = 1;
int Ngr = Convert.ToInt32(textBox1.Text);
double[] Xg = new double[Ngr + 1];
double[] Yg = new double[Ngr + 1];
double[] X = new double[Ngr + 1];
double[] Y = new double[Ngr + 1];
for (int i = 0; i <= N; i++)
{
Xe[i] = x;
Ye[i] = FUNC(x);
x += hl;
}
CubSplineClass Cub_Spline = new CubSplineClass();
Cub_Spline.spline_coef(Xe, Ye, N, a, b, c, d);
double al = Xe[0];
double bl = Xe[N-1];
double h = (bl - al) / Ngr;
int pointToSearch = 0;
for (int i = 0; i <= Ngr; i++)
{
Xg[i] = al;
Yg[i] = a[L] + b[L] * (Xg[i] - Xe[L]) + c[L] * Math.Pow(Xg[i] - Xe[L], 2) / 2 + d[L] * Math.Pow(Xg[i]-Xe[L],3)/6;
if (al < xinnterpol)
{
pointToSearch = L;
}
if (Xg[i] > Xe[L])
{
L++;
}
al += h;
}
forCompare = a[pointToSearch] + b[pointToSearch] * (xinnterpol - Xe[pointToSearch]) + c[pointToSearch] * Math.Pow(xinnterpol - Xe[pointToSearch], 2) / 2 + d[pointToSearch] * Math.Pow(xinnterpol - Xe[pointToSearch], 3) / 6;
label9.Text = "Значення функції в Хo = " + Convert.ToString(xinnterpol);
label10.Text = Convert.ToString(forCompare);
x = all;
for (int i = 0; i < Ngr - 1; i++)
{
X[i] = x;
Y[i] = FUNC(x);
x += h;
}
Graphics p = pictureBox1.CreateGraphics();
pictureBox1.Refresh();
BuildGraph.draw(p, Xg, Yg, Xe, Ye,X, Y, pictureBox1.Width, pictureBox1.Height);
double tochnist = forCompare;
forCompare = xinnterpol * xinnterpol + Math.Sin(xinnterpol);
label11.Text = Convert.ToString(forCompare);
tochnist = Math.Abs(tochnist - forCompare);
label12.Text = Convert.ToString(tochnist);
}
private void groupBox2_Enter(object sender, EventArgs e)
{
}
private void button2_Click(object sender, EventArgs e)
{
Close();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void groupBox1_Enter(object sender, EventArgs e)
{
}
private void pictureBox1_Click(object sender, EventArgs e)
{
}
}
}
________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(это кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!
Модератор.