Смекни!
smekni.com

Разработка программы расчета определенного интеграла по формуле Буля по схеме двойного пересчета с заданной точностью (стр. 2 из 3)

Список использованных источников

1 Крылов В.И. Вычислительные методы высшей математики. Т.1./ Под ред. И.П. Мысовских. — Мн.: Вышэйшая школа, 1972.

2 Мудров А.Е. Численные методы для ПЭВМ на языках Бейсик, Фортран, Паскаль - Томск: МП Таско", 1992

3 Херхагер М., Партолль X. MathCAD 2000; полное руководство: Пер. с нем. - К.: Издательская группа BHV, 2000. - 416с.

4 Гусак А.А., Гусак ГМ. Справочник по высшей математике. - Мн.: Наука и тех­ника, 1991.

Приложение А

(обязательное)

Твёрдая копия

Project1.cpp

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

USERES("Project1.res");

USEFORM("Unit1.cpp", Form1);

USEFORM("Unit2.cpp", Form2);

USEFORM("Unit3.cpp", Form3);

//---------------------------------------------------------------------------

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)

{

try

{

Application->Initialize();

Application->CreateForm(__classid(TForm1), &Form1);

Application->CreateForm(__classid(TForm2), &Form2);

Application->CreateForm(__classid(TForm3), &Form3);

Application->Run();

}

catch (Exception &exception)

{

Application->ShowException(&exception);

}

return 0;

}

//---------------------------------------------------------------------------

Unit1.cpp

//---------------------------------------------------------------------------

#include <vcl.h>

#include<io.h>

#include<math.h>

#pragma hdrstop

#include "Unit1.h"

#include "Unit2.h"

#include "Unit3.h"

#include <fcntl.h>

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

float a=0,b=10,e=0.01,I[2];

float f(float x)

{

return 5*pow(x,5)-pow(x,3);

}

//-------------------------------------

void Bool()

{

float h,s,x[5],N=2;

int i,l;

do

{

for(l=0;l<=1;l++)

{

s=0;

h=(b-a)/N;

x[0]=a;

x[1]=a+h/4;

x[2]=a+h/2;

x[3]=a+3*h/4;

x[4]=a+h;

for(i=1;i<=N;i++)

{

s=(7*f(x[0])+32*f(x[1])+12*f(x[2])+32*f(x[3])+7*f(x[4]))+s;

x[0]+=h;

x[1]+=h;

x[2]+=h;

x[3]+=h;

x[4]+=h;

}

I[l]=h*s/45/2;

N=N*2;

}

}while(fabs(I[0]-I[1])>e);

}

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Exit1Click(TObject *Sender)

{

Close();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Exit2Click(TObject *Sender)

{

Close();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Exit1pop(TObject *Sender, TCanvas *ACanvas,

TRect &ARect, bool Selected)

{

SB1->SimpleText="Выход";

}

//---------------------------------------------------------------------------

void __fastcall TForm1::N1Click(TObject *Sender)

{

Form2->Show();

SB1->SimpleText="Ввод данных закончен";

}

//---------------------------------------------------------------------------

void __fastcall TForm1::N2Click(TObject *Sender)

{

Bool();

Form3->Show();

SB1->SimpleText="Произведен расчет";

}

//---------------------------------------------------------------------------

Unit2.cpp

//---------------------------------------------------------------------------

#include <vcl.h>

#include<iostream.h>

#pragma hdrstop

#include "Unit2.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma link "ibctrls"

#pragma link "ibreg"

#pragma link "CSPIN"

#pragma resource "*.dfm"

TForm2 *Form2;

extern float a,b,e;

//---------------------------------------------------------------------------

__fastcall TForm2::TForm2(TComponent* Owner)

: TForm(Owner)

{

}

//------------------------------------------

//---------------------------------------------------------------------------

void __fastcall TForm2::Button2Click(TObject *Sender)

{

Form2->Close();

}

//---------------------------------------------------------------------------

float __fastcall TForm2::checkf(TObject *Sender,TEdit *e1,float w)

{

float buf;

do{

try

{

if(e1->Text!="")

buf=StrToFloat(e1->Text);else buf=w;

}

catch(const EConvertError &e)

{

int j=Application->MessageBox("Неверные данные", NULL, MB_OK);

buf=-1;

e1->Text=FloatToStr(w);

}}while((buf==-1));

return buf;

}

//----------------------------------------

void __fastcall TForm2::Button1Click(TObject *Sender)

{

e=checkf(Sender,Edit4,e);

a=checkf(Sender,Edit1,a);

b=checkf(Sender,Edit2,b);

Form2->Close();

}

//---------------------------------------------------------------------------

void __fastcall TForm2::FormCreate(TObject *Sender)

{

Edit1->Text=FloatToStr(a);

Edit2->Text=FloatToStr(b);

Edit4->Text=FloatToStr(e);

}

//---------------------------------------------------------------------------

void __fastcall TForm2::GroupBox1Click(TObject *Sender)

{

}

//---------------------------------------------------------------------------

Unit3.cpp

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit3.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma link "PERFGRAP"

#pragma resource "*.dfm"

TForm3 *Form3;

extern float I[2];

//---------------------------------------------------------------------------

__fastcall TForm3::TForm3(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm3::BitBtn1Click(TObject *Sender)

{

Form3->Close();

}

//---------------------------------------------------------------------------

void __fastcall TForm3::FormCreate(TObject *Sender)

{

SaveDialog1->InitialDir= GetCurrentDir();

Edit1->Text=FloatToStr(I[1]);

}

//---------------------------------------------------------------------------

void __fastcall TForm3::Button1Click(TObject *Sender)

{

TStringList *s;

s= new TStringList;

SaveDialog1->Execute();

s->Add(" Значение интеграла равно"+FloatToStr(I[1]));

s->SaveToFile(SaveDialog1->FileName);

delete s;

}

//---------------------------------------------------------------------------

void __fastcall TForm3::Label1Click(TObject *Sender)

{

}

//---------------------------------------------------------------------------

Приложение Б

Результаты тестирования программы.

Рисунок 4 - Результат тестирования

Приложение В.

Тестирование данных в математическом пакете.

Приложение Г

Гипертекстовый вариант документа

<html xmlns:v="urn:schemas-microsoft-com:vml"

xmlns:o="urn:schemas-microsoft-com:office:office"

xmlns:w="urn:schemas-microsoft-com:office:word"

xmlns="http://www.w3.org/TR/REC-html40">

<head>

<meta http-equiv=Content-Type content="text/html; charset=windows-1251">

<meta name=ProgId content=Word.Document>

<meta name=Generator content="Microsoft Word 9">

<meta name=Originator content="Microsoft Word 9">

<link rel=File-List href="./1%20Постановка%20задач1.files/filelist.xml">

<link rel=Edit-Time-Data href="./1%20Постановка%20задач1.files/editdata.mso">

<link rel=OLE-Object-Data href="./1%20Постановка%20задач1.files/oledata.mso">

<!--[if !mso]>

<style>

v&bsol;:* {behavior:url(#default#VML);}

o&bsol;:* {behavior:url(#default#VML);}

w&bsol;:* {behavior:url(#default#VML);}

.shape {behavior:url(#default#VML);}

</style>

<![endif]-->

<title>1 Постановка задачи</title>

<!--[if gte mso 9]><xml>

<o:DocumentProperties>

<o:Author>ДМИТРИЙ</o:Author>

<o:Template>Normal</o:Template>

<o:LastAuthor>ДМИТРИЙ</o:LastAuthor>

<o:Revision>1</o:Revision>

<o:TotalTime>0</o:TotalTime>

<o:Created>2003-06-07T13:56:00Z</o:Created>

<o:LastSaved>2003-06-07T13:57:00Z</o:LastSaved>

<o:Pages>1</o:Pages>

<o:Company>HOME</o:Company>

<o:Lines>1</o:Lines>

<o:Paragraphs>1</o:Paragraphs>

<o:Version>9.2812</o:Version>

</o:DocumentProperties>

</xml><![endif]-->

<style>

<!--

/* Style Definitions */

p.MsoNormal, li.MsoNormal, div.MsoNormal

{mso-style-parent:"";

margin:0cm;

margin-bottom:.0001pt;

mso-pagination:widow-orphan;

font-size:12.0pt;

font-family:"Times New Roman";

mso-fareast-font-family:"Times New Roman";}

h2

{mso-style-next:Обычный;

margin-top:0cm;

margin-right:0cm;

margin-bottom:0cm;

margin-left:35.9pt;

margin-bottom:.0001pt;

mso-pagination:widow-orphan;

page-break-after:avoid;

mso-outline-level:2;

background:white;

font-size:14.0pt;

mso-bidi-font-size:12.0pt;

font-family:"Courier New";

color:black;

letter-spacing:-.6pt;

mso-bidi-font-weight:normal;}

h6

{mso-style-next:Обычный;

margin:0cm;

margin-bottom:.0001pt;

text-align:center;

mso-pagination:widow-orphan;

page-break-after:avoid;

mso-outline-level:6;

tab-stops:61.7pt;

font-size:14.0pt;

mso-bidi-font-size:12.0pt;

font-family:"Times New Roman";}

@page Section1

{size:595.3pt 841.9pt;

margin:2.0cm 42.5pt 2.0cm 3.0cm;

mso-header-margin:35.4pt;

mso-footer-margin:35.4pt;

mso-paper-source:0;}

div.Section1

{page:Section1;}

-->

</style>

<!--[if gte mso 9]><xml>

<o:shapedefaults v:ext="edit" spidmax="1134"/>

</xml><![endif]--><!--[if gte mso 9]><xml>

<o:shapelayout v:ext="edit">

<o:idmap v:ext="edit" data="1"/>

</o:shapelayout></xml><![endif]-->

</head>

<body lang=RU style='tab-interval:35.4pt'>

<div class=Section1>

<h6 style='tab-stops:35.4pt'><a name="_Toc11439953">1 Постановка задачи</a></h6>

<p class=MsoNormal><b><span style='font-size:14.0pt;mso-bidi-font-size:12.0pt'><span

style="mso-spacerun: yes"> </span></span></b><span style='font-size:14.0pt;

mso-bidi-font-size:12.0pt'><span style="mso-spacerun:

yes"> </span><o:p></o:p></span></p>

<h2><a name="_Toc11439954"><span style='font-family:"Times New Roman";

font-weight:normal;mso-bidi-font-weight:bold'>1.1 Общая характеристика задачи</span></a><span

style='font-family:"Times New Roman";font-weight:normal;mso-bidi-font-weight:

bold'><o:p></o:p></span></h2>

<p class=MsoNormal style='margin-left:36.0pt'><span style='font-size:14.0pt;

mso-bidi-font-size:12.0pt'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:36.0pt'><span style='font-size:14.0pt;

mso-bidi-font-size:12.0pt'>Численное интегрирование используется для

приближенного поиска значения определенного интеграла непрерывной функции </span><span

lang=EN-US style='font-size:14.0pt;mso-bidi-font-size:12.0pt;mso-ansi-language:

EN-US'>f</span><span style='font-size:14.0pt;mso-bidi-font-size:12.0pt'>(</span><span

lang=EN-US style='font-size:14.0pt;mso-bidi-font-size:12.0pt;mso-ansi-language: