Разработка программы, вычисляющей интеграл

Автор работы: Пользователь скрыл имя, 09 Сентября 2011 в 08:48, курсовая работа

Описание работы

Цель курсовой работы является приобретение и углубление знаний в области высокоуровневых методов информатики и программирования, получения дополнительных практических навыков в использовании основных приёмов обработки экспериментальных данных, численного решения определенных интегралов.

Численное интегральное исчисление – часто используемая тема в математике. При решении ряда актуальных физических и технических задач встречаются определенные интегралы от функций, первообразные которых не выражаются через элементарные функции. Кроме того, в приложениях приходится иметь дело с определенными интегралами, сами подынтегральные функции которых не являются элементарными. Это приводит к необходимости использования приближенных методов вычисления определенных интегралов.

Содержание работы

ВВЕДЕНИЕ

Нормативные ссылки

Список используемой литературы

Файлы: 1 файл

Пример_курсовой_ООП.doc

— 731.00 Кб (Скачать файл)

        int n { get; set; } 

        string strMethodRectangles, strTrapezoids, strSimpsons; //Строки для хранения результатов 

        string strCalcStatus; //информационная строка 

        public MainForm()

        {

            InitializeComponent();

        } 

        private void DisambleButtons()

        {

            StartBtn.Enabled = false;

            SettingsBtn.Enabled = false;

            txtBoxX1.Enabled = false;

            txtBoxX2.Enabled = false;

            txtBoxN.Enabled = false;

            strMethodRectangles = "";

            strTrapezoids = "";

            strSimpsons = "";

            strCalcStatus = "Вычисление...\nНажмите 'x'\n для отмены.";

            DrawGraph();

        } 

        private void EnableButtons(object sender, RunWorkerCompletedEventArgs e)

        {

            StartBtn.Enabled = true;

            SettingsBtn.Enabled = true;

            txtBoxX1.Enabled = true;

            txtBoxX2.Enabled = true;

            txtBoxN.Enabled = true;

            strCalcStatus = "";

            DrawGraph();

        } 

        private void Integration(object sender, DoWorkEventArgs e)

        {

            Integral myIntegral;

            Patsev.Integrals.Integral.Killed = false;

            myIntegral = new Patsev.Integrals.Rectangles(x1, x2, n);

            strMethodRectangles = myIntegral.ToString();

            myIntegral = new Patsev.Integrals.Trapezoids(x1, x2, n);

            strTrapezoids = myIntegral.ToString();

            myIntegral = new Patsev.Integrals.Simpsons(x1, x2, n);

            strSimpsons = myIntegral.ToString();

        }//интегрирование 

        private void DrawGraph() //вывод графика функции

        {

           

            // Получим панель для рисования

            GraphPane pane = zedGraph.GraphPane; 

            // Очистим список текстов и кривых на тот случай, если до этого сигналы уже были нарисованы

            pane.CurveList.Clear();

            pane.GraphObjList.Clear(); 

            // Печать заголовка

            TextObj headline = new TextObj("Значение интеграла / Погрешность", 0.27F, 0.04F);

            headline.FontSpec.FontColor = Color.DarkBlue;

            headline.FontSpec.IsBold = true;

            headline.FontSpec.Size = 8;

            headline.FontSpec.IsAntiAlias = true;

            // Disable the border and background fill options for the text

            headline.FontSpec.Border.IsVisible = false;

            headline.FontSpec.Fill.IsVisible = false;

            headline.FontSpec.IsUnderline = true;

            // Align the text such the the Left-Bottom corner is at the specified coordinates

            // use AxisFraction coordinates so the text is placed relative to the ChartRect

            headline.Location.CoordinateFrame = CoordType.ChartFraction;

            headline.Location.AlignH = AlignH.Left;

            headline.Location.AlignV = AlignV.Bottom;

            pane.GraphObjList.Add(headline);

           

            //Печать подписей к результатам

            string textline = "Метод прямоугольников: \nМетод трапеций: \nМетод парабол:";

            TextObj textresults = new TextObj(textline, 0.04F, 0.15F);

            textresults.Location.CoordinateFrame = CoordType.ChartFraction;

            textresults.FontSpec.Border.IsVisible = false;

            textresults.FontSpec.Fill.IsVisible = false;

            textresults.FontSpec.IsAntiAlias = true;

            textresults.FontSpec.Size = 8;

            textresults.Location.AlignH = AlignH.Left;

            textresults.Location.AlignV = AlignV.Bottom;

            textresults.FontSpec.StringAlignment = StringAlignment.Near;

            pane.GraphObjList.Add(textresults); 

            //Печать результатов

            string strresults = strMethodRectangles + "\n" + strTrapezoids + "\n" + strSimpsons;

            TextObj results = new TextObj(strresults, 0.27F, 0.15F);

            results.Location.CoordinateFrame = CoordType.ChartFraction;

            results.FontSpec.FontColor = Color.DarkGreen;

            results.FontSpec.Border.IsVisible = false;

            results.FontSpec.Fill.IsVisible = false;

            results.FontSpec.IsAntiAlias = true;

            results.FontSpec.Size = 8;

            results.Location.AlignH = AlignH.Left;

            results.Location.AlignV = AlignV.Bottom;

            results.FontSpec.StringAlignment = StringAlignment.Near;

            pane.GraphObjList.Add(results); 

            //Печать надписи "Вычисление..."

            TextObj txtCalc = new TextObj(strCalcStatus, 0.8F, 0.05F);

            // use AxisFraction coordinates so the text is placed relative to the ChartRect

            txtCalc.Location.CoordinateFrame = CoordType.ChartFraction;

            // rotate the text 15 degrees

            txtCalc.FontSpec.Angle = -45.0F;

            // Text will be red, bold, and 16 point

            txtCalc.FontSpec.FontColor = Color.Red;

            txtCalc.FontSpec.IsBold = true;

            txtCalc.FontSpec.Size = 16;

            // Disable the border and background fill options for the text

            txtCalc.FontSpec.Border.IsVisible = false;

            txtCalc.FontSpec.Fill.IsVisible = false;

            // Align the text such the the Left-Bottom corner is at the specified coordinates

            txtCalc.Location.AlignH = AlignH.Left;

            txtCalc.Location.AlignV = AlignV.Bottom;

            pane.GraphObjList.Add(txtCalc); 

            //Вывод графика: 

            // Создадим список точек

            PointPairList list = new PointPairList();

            PointPairList plist = new PointPairList(); 

            double xmin = x1;

            double xmax = x2; 

            // Заполняем список точек

            plist.Add(xmin, Integral.F(xmin));

            double xp = Math.Max(Math.Abs(xmin) , Math.Abs(xmax));

Информация о работе Разработка программы, вычисляющей интеграл