Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.03.2013, 10:11   #1
lolbox
Новичок
Джуниор
 
Регистрация: 24.03.2013
Сообщений: 1
По умолчанию Прокомментировать код программы

Распишите пожалуйста как работает программа
Код:
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]
(это кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 24.03.2013 в 11:13.
lolbox вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C# - прокомментировать код программы шифрования магическим квадратом Darh Помощь студентам 0 07.11.2012 10:48
Нужно прокомментировать небольшую программу trum Помощь студентам 0 07.06.2012 19:29
Прокомментировать часть кода Kasper1 Общие вопросы по Java, Java SE, Kotlin 4 08.01.2011 20:42
Прокомментировать пару непонятных мест Kapitann PHP 3 21.09.2010 18:35
Помогите прокомментировать прогу Astor Помощь студентам 2 20.05.2008 21:28