Програма обчислення визначених інтегралів по квадратурним формулам

Автор работы: Пользователь скрыл имя, 09 Января 2013 в 13:31, курсовая работа

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

В данной расчетно-графической работе осуществляется разработка учебной программы по вычислению определённых интегралов(по формулам прямоугольников) с помощью программы Delphi7. Эта программа помогает вычислять некоторые определённые интегралы. В использовании не требует особого обучения . Это приложение популярно среди людей нуждающихся в точном подсчёте интегралов . Подсчёт интегралов не занимает много времени, что так же повышает ее популярность.

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

ВСТУПЛЕНИЕ……………………………………………..………………………..3
1. ПОСТАНОВКА ЗАДАЧИ…………………………………………….….……...4
2. ПРОЕКТИРОВАНИЕ ПРОГРАММНЫХ СРЕДСТВ………………….……5
2.1. Математические методы решения задачи………………………….…….......6
2.2. Проектирование алгоритмов ………………………………………………..10
2.2.1. Структура программного обеспечения …………………………….....11
2.2.2. Описание разработанных алгоритмов ………………………….…....12
2.2.3. Средства управления программами ……………………………........13
2.3. Информационное обеспечение…...………………………………………....14
2.3.1. Описание входных данных ……………………………….……..…...15
2.3.2. Описание результатов …………………………………….…………...16
3. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ……………………………………………..17
3.1. Описание разработанных программ……….….………………………...18
3.2 Требования к аппаратным и программным средствам…………………..19
3.3. Руководство пользователя ………………………………………………..20
4. ИСПЫТАНИЕ РАЗРАБОТАННЫХ ПРОГРАММ ……………………….....25
4.1 Описание контрольных примеров. Результаты тестирования на ЭВМ...25
ЗАКЛЮЧЕНИЕ…………………………………………………………………….30
ЛИТЕРАТУРА………………………………………………………………..…….31
ПРИЛОЖЕНИЯ ..………………………………………………

Файлы: 1 файл

Пояснювальна записка.docx

— 2.50 Мб (Скачать файл)

 

 

 

 

 

 

 

 

 

2.3.2. Описание результатов

Результатом выполнения программы будут значения левых, правых, центральных интегральных сумм и точности вычисления представленные действительными числами типа real с 5 значащими цифрами после запятой которые будут выводиться в форму, предназначенную для вывода результатов.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.ПРОГРАММНАЯ РЕАЛИЗАЦИЯ

В данной программе используются следующие подпрограммы, которые упрощают написание главной программы: процедуры T, print_function() и функции enter_data():boolean , Step(x : real; k : integer):real, F(x : real):real .

Кроме    данных   процедур   программа   одержит    также   стандартные процедуры на каждую кнопку Button1Click:

TForm1.Button1Click(Sender: TObject); TForm2.PyskClick(Sender: TObject);  TForm2.Button1Click(Sender: TObject); TForm3.PyskClick(Sender: TObject);

TForm3.Button3Click(Sender: TObject); TForm4.PyskClick(Sender: TObject);

TForm4.Button1Click(Sender: TObject);  TForm5.PyskClick(Sender: TObject);

TForm5.Button1Click(Sender: TObject); TForm9.PyskClick(Sender: TObject);

TForm9.Button1Click(Sender: TObject); TForm10.PyskClick(Sender: TObject); TForm10.Button1Click(Sender: TObject); TForm12.PyskClick(Sender: TObject);

TForm12.Button1Click(Sender: TObject); TForm_Close.BitBtn1Click(Sender: TObject); TForm_Close.BitBtn2Click(Sender: TObject); TForm_rez.Button1Click(Sender: TObject); TForm_Task.BitBtn1Click(Sender: TObject);

 

 

 

 

 

 

 

 

 

 

 

 

 

3.1. Описание разработанных программ

Рассмотрим  детальнее перечисленные подпрограммы.

Процедуры: 

T - вычисляет шаг и количество разбиений отрезка интегрирования ;

print_function() – вывод результата вычисления в форму предназначенную для этого;

TForm1.Button1Click(Sender: TObject) – выбор вида подинтегральной функции;

TForm2.PyskClick(Sender: TObject), TForm3.PyskClick(Sender: TObject), TForm4.PyskClick(Sender: TObject), TForm5.PyskClick(Sender: TObject), TForm9.PyskClick(Sender: TObject), TForm10.PyskClick(Sender: TObject), TForm12.PyskClick(Sender: TObject) – подсчёт интеграла (если коэффициенты введены правильно, иначе выводит на экран ошибку);

TForm2.Button1Click(Sender:   TObject),  TForm3.Button3Click(Sender: TObject),

TForm4.Button1Click(Sender: TObject), TForm5.Button1Click(Sender: TObject), TForm9.Button1Click(Sender: TObject), TForm10.Button1Click(Sender: TObject), TForm12.Button1Click(Sender: TObject), TForm_rez.Button1Click(Sender: TObject), TForm_Task.BitBtn1Click(Sender: TObject) – вернутся к главному меню;

TForm_Close.BitBtn1Click(Sender: TObject) – завершает работу программы;

TForm_Close.BitBtn2Click(Sender: TObject) – возвращает нас к главному меню(не завершает работу программы);

           Функции :

enter_data():boolean  - проверяет правильность введенных данных и заполняет, если это необходимо соответствующие массивы. Если данные введены неправильно возвращает значение false не давая этим перейти к вычислению интеграла дальше выводя сообщение о соответствующей ошибке после чего программа ожидает другого выбора до тех пор, пока не будет сделан правильный. 

Step(x : real; k : integer):real – возводит х в степень k;

F(x : real):real – вычисляет значение соответствующей функции;

3.2. Требования к аппаратным и программным средствам

           Данная программа работает в среде Windows. Скомпилирована с помощью среды программирования  Delphi 7.  Программа занимает 1 433 088 байт памяти. Для корректной работы программы необходимо 4,7 МБ оперативной памяти. Программа работает в любой среде Windows.

Файлы программы:

Error.exe – исполняемый файл;

1.jpg, 2.jpg, 3.jpg, 4.jpg  - файлы с изображениями, которые используются программой.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.3 Руководство пользователя

Данный  программный продукт не требует  системной инсталляции и записи в реестр Windows, а установка программы  осуществляется через копирование  программных файлов на жесткий диск компьютера. Также программу можно запустить и с внешнего носителя, на котором она храниться.

Для запуска необходимо средствами Windows запустить главный файл Error.exe.

При запуске  программы появляется заставка, которая  остаётся на экране до тех пор, пока не загрузится главное меню программы (5 секунд).

Рис. 3.1.1 Заставка

После того как загрузилась программа на экране появляется главное меню. В меню которого  содержатся пункты: «Задача», «Выход» и отдельно пункт «О программе».

                 

 Рис. 3.1.2 Меню

При нажатии  соответствующего пункта меня появятся окна:

 

 

Рис. 3.1.4 Задача

 

 

 

Рис. 3.1.5 Подтверждение  о желании выйти

 

 

 

Рис. 3.1.3 Коротко  о программе

При выборе формы интеграла и нажатии на кнопку «Выбрать» появится соответствующее окно. Одно из:        

                    

 

                   Рис. 3.1.6                         Рис. 3.1.7

 

              

 

                        Рис. 3.1.8                                                             Рис. 3.1.9

                  

 

                    Рис. 3.1.10                                                            Рис. 3.1.11

 

 

Рис.3.1.12

 

 

После чего при правильном введении коэффициентов  и отрезка интегрирования мы видим  новое окно с результатами вычисления:

 

 

Рис. 3.1.13

         

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4. ИСПЫТАНИЕ РАЗРАБОТАННЫХ ПРОГРАММ

4.1 Описание контрольных примеров. Результаты тестирования на ЭВМ

Пример 1.

Посчитать определённый интеграл

F(x) =

Подсчёт определённого  интеграла будет происходить  после того как пользователь введёт данные о интеграле (коэффициенты, отрезок  на котором нужно считать интеграл).

Рис. 4.1.1

На первом этапе нужно  ввести сетку, разбивающую отрезок [-3,7] на N равностоящих узлов. N = 100. Вычислим шаг h=(b-a)/N=0,1. Образуем новый одномерный массив из значений аргумента в каждой точке разбиения.

На втором этапе посчитаем интеграл по квадратурной формуле левых прямоугольников:

Integral_l=  2716,628.

 

На третем этапе посчитаем интеграл по квадратурной формуле правых прямоугольников:

Integral_r= 2732,764.

 На четвёртом  этапе посчитаем интеграл по квадратурной формуле центральных прямоугольников:

Integral_с= 2734,689.

На пятом  этапе посчитаем точность вычислений:

Точность=0,00673 (по центральных прямоугольниках).

Рис. 3.1.2

Пример 2.

Посчитать определённый интеграл F(x)=

Рис. 3.1.3

На первом этапе нужно  ввести сетку, разбивающую отрезок [0,2] на N равностоящих узлов.

На втором этапе посчитаем интеграл по квадратурной формуле левых прямоугольников:

Integral_l=  2,024.

На третем этапе посчитаем интеграл по квадратурной формуле правых прямоугольников:

Integral_r= 2,024.

На четвёртом  этапе посчитаем интеграл по квадратурной формуле центральных прямоугольников:

Integral_с= 2,024.

На пятом  этапе посчитаем точность вычислений:

Точность=0. Это значит, что интеграл подсчитан с точностью больше чем 5 знаков после запятой.

 

Рис. 3.1.4

 

 

 

 

 

 

Пример  3.

Посчитать определённый интеграл F(x)=

 

Рис. 3.1.5

 

На первом этапе нужно  ввести сетку, разбивающую отрезок [1,100] на N равностоящих узлов.

На втором этапе посчитаем интеграл по квадратурной формуле левых прямоугольников:

Integral_l=  1807,24.

На третем этапе посчитаем интеграл по квадратурной формуле правых прямоугольников:

Integral_r= 1807,47.

На четвёртом  этапе посчитаем интеграл по квадратурной формуле центральных прямоугольников:

Integral_с= 1807,355.

На пятом  этапе посчитаем точность вычислений:

Точность=0,00012.

 

Рис.3.1.6

 

 Контрольные  примеры показывают что программа  работает корректно.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ЗАКЛЮЧЕНИЕ

Разработанная программа является несложной в  использовании, имеет удобный интерфейс. Программа выполняется в соответствие с математическими правилами подсчёта определённых интегралов, имеются простые процедуры выхода из программы, выдаются сообщения о ошибках(при некорректном введении данных, или не заполнении полей). Таким образом, выполнены все поставленные требования.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ЛИТЕРАТУРА

1.Чертов О.Р. Математичний  аналіз для програмістів частина перша.-

   Київ,2005-279с.

2.Вычислительная техника и программирование: Учебник для технических

    вузов/  А.В. Петров /- М., Высш. шк., 1990- 497с.

3. Рапаков Г.Г., Ржеуцкая С.Ю. Turbo Pascal для студентов и школьников.-

     Санкт-Петербугр, 2002.

4.Фарoнoв В.В. Delphi 2005. Язык, среда, разрабoтка прилoжений. –СПб.:

   Питер, 2006. – 560 с.

5. Фарoнoв В.В. Delphi. Прoграммирoвание на языке высoкoгo урoвня: Учебник

   для вузoв. – СПб.: Питер, 2006. – 640 с.

6. Митчелл К. Керман. Прoграммирoвание и oтладка в Delphi. Учебный курс. –

   СПб.: Вильямс, 2004. – 720 с.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ПРИЛОЖЕНИЕ (текст программы)

program Error;

uses

  Forms,

  Unit1 in 'Unit1.pas' {Form1},

  Unit2 in 'Unit2.pas' {Form2},

  Unit3 in 'Unit3.pas' {Form3},

  Unit4 in 'Unit4.pas' {Form4},

  Unit5 in 'Unit5.pas' {Form5},

  Unit6 in 'Unit6.pas' {Form_Close},

  Unit7 in 'Unit7.pas' {Form_Task},

  Unit8 in 'Unit8.pas' {Form_rez},

  Unit9 in 'Unit9.pas' {Form9},

  Unit10 in 'Unit10.pas' {Form10},

  Unit11 in 'Unit11.pas' {Form_About_Program},

  Unit12 in 'Unit12.pas' {Form12},

  Unit13 in 'Unit13.pas' {Form13};

 

{$R *.res}

 

begin

  Application.Initialize;

  Application.CreateForm(TForm13, Form13);

  Application.CreateForm(TForm1, Form1);

  Application.CreateForm(TForm2, Form2);

  Application.CreateForm(TForm3, Form3);

  Application.CreateForm(TForm4, Form4);

  Application.CreateForm(TForm5, Form5);

  Application.CreateForm(TForm_Close, Form_Close);

  Application.CreateForm(TForm_Task, Form_Task);

  Application.CreateForm(TForm_rez, Form_rez);

  Application.CreateForm(TForm9, Form9);

  Application.CreateForm(TForm10, Form10);

  Application.CreateForm(TForm_About_Program, Form_About_Program);

  Application.CreateForm(TForm12, Form12);

  Application.Run;

End.


 

unit Unit1;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, ExtCtrls, xpman, jpeg, Menus;

 

type

  TForm1 = class(TForm)

    RadioButton1: TRadioButton;

    RadioButton2: TRadioButton;

    RadioButton3: TRadioButton;

    RadioButton4: TRadioButton;

    RadioButton5: TRadioButton;

    RadioButton7: TRadioButton;

    RadioButton8: TRadioButton;

    Button1: TButton;

    GroupBox1: TGroupBox;

    Image1: TImage;

    Label2: TLabel;

    MainMenu1: TMainMenu;

    N1: TMenuItem;

    N2: TMenuItem;

    N3: TMenuItem;

    N4: TMenuItem;

    Label1: TLabel;

    procedure Button1Click(Sender: TObject);

    procedure N3Click(Sender: TObject);

    procedure N2Click(Sender: TObject);

    procedure N4Click(Sender: TObject);

    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form1: TForm1;

 

implementation

 

uses Unit2, Unit3, Unit4, Unit5, Unit6, Unit7, Unit9, Unit10, Unit11,

  Unit12;

 

{$R *.dfm}

 

procedure TForm1.Button1Click(Sender: TObject);

begin

     Form1.Visible := False;

     if RadioButton1.Checked = true then Form2.Visible := True

     else begin

       if RadioButton2.Checked = true then Form3.Visible := True

       else begin

         if RadioButton3.Checked = true then Form4.Visible := True

         else begin

           if RadioButton4.Checked = true then Form5.Visible := True

           else begin

           if RadioButton5.Checked = true then Form9.Visible := True

             else begin

               if RadioButton7.Checked = true then Form10.Visible := True

               else begin

                 if RadioButton8.Checked = true then Form12.Visible := True

                 else begin

                   Beep;

                   Form1.Visible := True;

                   MessageDlg('Выберите вариант функции !!!',mtError,[mbOK],0);

                 end;

               end;

             end;

           end;

         end;

       end;

     end;

     RadioButton1.Checked:=false;

     RadioButton2.Checked:=false;

     RadioButton3.Checked:=false;

     RadioButton4.Checked:=false;

     RadioButton5.Checked:=false;

     RadioButton7.Checked:=false;

     RadioButton8.Checked:=false;

end;

procedure TForm1.N3Click(Sender: TObject);

begin

  Form1.Enabled:=false;

  Form_Close.Visible:=true;

end;

 

procedure TForm1.N2Click(Sender: TObject);

begin

  Form_Task.Caption:=' Задача ';

  Form_Task.Memo1.Clear;

  Form_Task.Memo1.Lines.Add(' Выполнила студентка 1 курса, факультета прикладной математики  ');

  Form_Task.Memo1.Lines.Add('   Задача :');

  Form_Task.Memo1.Lines.Add('Вычисление определённых интегралов с помощью формул прямоугольников ');

  Form_Task.Visible:=true;

  Form1.Enabled:=false;

end;

 

procedure TForm1.N4Click(Sender: TObject);

begin

  Form_About_Program.Visible:=true;

  Form1.Enabled:=false;

end;

 

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

Информация о работе Програма обчислення визначених інтегралів по квадратурним формулам