Автор работы: Пользователь скрыл имя, 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
ПРИЛОЖЕНИЯ ..………………………………………………
begin
Form_Close.Show;
CanClose:=false;
Form1.Enabled:=false;
end;
end.
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, jpeg, ComCtrls, Math;
type
TForm2 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Pysk: TButton;
c: TEdit;
st: TEdit;
fin: TEdit;
Image1: TImage;
GroupBox1: TGroupBox;
Button1: TButton;
procedure PyskClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure cKeyPress(Sender: TObject; var Key: Char);
procedure stKeyPress(Sender: TObject; var Key: Char);
procedure finKeyPress(Sender: TObject; var Key: Char);
procedure Show_GraphClick(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
flag:boolean;
implementation
uses Unit1, Unit8, DateUtils;
{$R *.dfm}
procedure TForm2.PyskClick(Sender: TObject);
var
ms:array[1..3] of string;
mr:array[1..3] of real;
//----------------ввод данных------------------------
function enter_data():boolean;
label m1;
var
i, index:integer;
flag:boolean;
s:string;
begin
ms[1]:=c.Text; ms[2]:=st.Text; ms[3]:=fin.Text;
for i:=1 to 3 do
if ms[i]='' then begin
enter_data:=false;
ShowMessage('Одно или
Goto m1;
end;
flag:=true;
for i:=1 to 3 do begin
s:=ms[i];
index:=pos(',', s);
delete(s, Pos(',', s), 1);
if(index<>0)and(Pos(',', s)<>0)then begin
enter_data:=false;
ShowMessage('Введены
goto m1;
end;
s:=ms[i];
index:=pos('-',s); //минус
if(index<>0)and(index<>1)then begin
enter_data:=false;
ShowMessage('Введены
goto m1;
end;
end;
Try
for i:=1 to 3 do begin
mr[i]:=Roundto(StrToFloat(ms[
ms[i]:=FloatToStr(mr[i]);
end;
Except
enter_data:=false;
ShowMessage('Вы ввели неправильные(не числовые) данные ');
flag:=false;
end;
if(flag=false)then goto m1;
//проверить чтобы подкоренное выражение было > 0
if (mr[3] < mr[2]) then begin
enter_data:=false;
ShowMessage('Конец отрезка должен быть больше, чем начало !');
goto m1;
end;
enter_data:=true;
m1:end;
//---------------тело программы---------------------
begin
if (enter_data=true) then begin
Label6.Caption := ms[1];
Form_rez.Label6.Caption:= ms[1];
Form_rez.Label6.Caption:=Form_
Form_rez.eps.Caption:='0';
Form_rez.Left.Caption := FloattoStr((mr[3] - mr[2])*mr[1]);
Form_rez.Right.Caption := FloattoStr((mr[3] - mr[2])*mr[1]);
Form_rez.Central.Caption := FloattoStr((mr[3] - mr[2])*mr[1]);
Form_rez.Visible:=true;
Form2.Visible:=false;
end;
end;
procedure TForm2.Button1Click(Sender: TObject);
begin
Form1.Visible := true;
Form2.Visible := false;
end;
procedure TForm2.cKeyPress(Sender: TObject; var Key: Char);
begin
with Sender as TEdit do begin
case Key of
'0': if Text='0' then begin Key:=#0; beep; end;
'1'..'9': ;
',': ;
#8: ;
'-': ;
else begin Key:=#0; beep; end;
end;
end;
end;
procedure TForm2.stKeyPress(Sender: TObject; var Key: Char);
begin
with Sender as TEdit do begin
case Key of
'0': if Text='0' then begin Key:=#0; beep; end;
'1'..'9': ;
',': ;
#8: ;
'-': ;
else begin Key:=#0; beep; end;
end;
end;
end;
procedure TForm2.finKeyPress(Sender: TObject; var Key: Char);
begin
with Sender as TEdit do begin
case Key of
'0': if Text='0' then begin Key:=#0; beep; end;
'1'..'9': ;
',': ;
#8: ;
'-': ;
else begin Key:=#0; beep; end;
end;
end;
end;
procedure TForm2.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
Form1.Visible := true;
Form2.Visible := false;
end;
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(' Выполнила студентка факультета прикладной математики НТУУ КПИ Щербаченко Лариса');
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:=
Form1.Enabled:=false;
end;
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
Form_Close.Show;
CanClose:=false;
Form1.Enabled:=false;
end;
end.
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, jpeg, ComCtrls, Math;
type
TForm2 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Pysk: TButton;
c: TEdit;
st: TEdit;
fin: TEdit;
Image1: TImage;
GroupBox1: TGroupBox;
Button1: TButton;
procedure PyskClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure cKeyPress(Sender: TObject; var Key: Char);
procedure stKeyPress(Sender: TObject; var Key: Char);
procedure finKeyPress(Sender: TObject; var Key: Char);
procedure Show_GraphClick(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
flag:boolean;
implementation
uses Unit1, Unit8, DateUtils;
{$R *.dfm}
procedure TForm2.PyskClick(Sender: TObject);
var
ms:array[1..3] of string;
mr:array[1..3] of real;
//----------------ввод данных------------------------
function enter_data():boolean;
label m1;
var
i, index:integer;
flag:boolean;
s:string;
begin
ms[1]:=c.Text; ms[2]:=st.Text; ms[3]:=fin.Text;
for i:=1 to 3 do
if ms[i]='' then begin
enter_data:=false;
ShowMessage('Одно или
Goto m1;
end;
flag:=true;
for i:=1 to 3 do begin
s:=ms[i];
index:=pos(',', s);
delete(s, Pos(',', s), 1);
if(index<>0)and(Pos(',', s)<>0)then begin
enter_data:=false;
ShowMessage('Введены
goto m1;
end;
s:=ms[i];
index:=pos('-',s); //минус
if(index<>0)and(index<>1)then begin
enter_data:=false;
ShowMessage('Введены
goto m1;
end;
end;
Try
for i:=1 to 3 do begin
mr[i]:=Roundto(StrToFloat(ms[
ms[i]:=FloatToStr(mr[i]);
end;
Except
enter_data:=false;
ShowMessage('Вы ввели неправильные(не числовые) данные ');
flag:=false;
end;
if(flag=false)then goto m1;
//проверить чтобы подкоренное выражение было > 0
if (mr[3] < mr[2]) then begin
enter_data:=false;
ShowMessage('Конец отрезка должен быть больше, чем начало !');
goto m1;
end;
enter_data:=true;
m1:end;
//---------------тело программы---------------------
begin
if (enter_data=true) then begin
Label6.Caption := ms[1];
Form_rez.Label6.Caption:= ms[1];
Form_rez.Label6.Caption:=Form_
Form_rez.eps.Caption:='0';
Form_rez.Left.Caption := FloattoStr((mr[3] - mr[2])*mr[1]);
Form_rez.Right.Caption := FloattoStr((mr[3] - mr[2])*mr[1]);
Form_rez.Central.Caption := FloattoStr((mr[3] - mr[2])*mr[1]);
Form_rez.Visible:=true;
Form2.Visible:=false;
end;
end;
procedure TForm2.Button1Click(Sender: TObject);
begin
Form1.Visible := true;
Form2.Visible := false;
end;
procedure TForm2.cKeyPress(Sender: TObject; var Key: Char);
begin
with Sender as TEdit do begin
case Key of
'0': if Text='0' then begin Key:=#0; beep; end;
'1'..'9': ;
',': ;
#8: ;
'-': ;
else begin Key:=#0; beep; end;
end;
end;
end;
procedure TForm2.stKeyPress(Sender: TObject; var Key: Char);
begin
with Sender as TEdit do begin
case Key of
'0': if Text='0' then begin Key:=#0; beep; end;
'1'..'9': ;
',': ;
#8: ;
'-': ;
else begin Key:=#0; beep; end;
end;
end;
end;
procedure TForm2.finKeyPress(Sender: TObject; var Key: Char);
begin
with Sender as TEdit do begin
case Key of
'0': if Text='0' then begin Key:=#0; beep; end;
'1'..'9': ;
',': ;
#8: ;
'-': ;
else begin Key:=#0; beep; end;
end;
end;
end;
end.
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, jpeg, ExtCtrls, Math;
type
TForm3 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
a: TEdit;
b: TEdit;
st: TEdit;
fin: TEdit;
Button2: TButton;
Button3: TButton;
Image1: TImage;
GroupBox1: TGroupBox;
procedure PyskClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure aKeyPress(Sender: TObject; var Key: Char);
procedure bKeyPress(Sender: TObject; var Key: Char);
procedure stKeyPress(Sender: TObject; var Key: Char);
procedure finKeyPress(Sender: TObject; var Key: Char);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses Unit1, Unit8;
{$R *.dfm}
procedure TForm3.PyskClick(Sender: TObject);
var
fst, ffin, h, feps, m : real;
I_left, I_right, I_central : real;
i, n : longint;
//----------------вычисляем
function F(x : real):real;
begin
F := StrtoFloat(a.Text)*ln(
end;
//----------------вычисляем
Procedure T;
var
p : real;
begin
m := -10000; p := fst;
While(p <= ffin) do begin
if F(p) > m then m := F(p);
p := p + 0.01;
end;
if F(ffin) > m then m := F(ffin);
feps := m*h*h*(ffin-fst)/24;
Form_rez.eps.Caption := FloattoStr(feps);
n := Trunc((ffin-fst)/h) + 1;
end;
//---------------тело программы---------------------
begin
Label6.Caption := a.Text+'*ln('+b.Text+'*x)';
fst := StrtoFloat(st.Text); ffin := StrtoFloat(fin.Text);
h := 0.01;
T;
I_left:= 0; I_right:= 0; I_central:= 0;
for i:= 1 to n do begin
I_left:= I_left+F(fst+(i-1)*h)*h;
I_right:= I_right+F(fst+i*h)*h;
I_central:= I_central+F(fst+(i-0.5)*h)*h;
end;
Form_rez.left.Caption := FloattoStr(I_left);
Form_rez.right.Caption := FloattoStr(I_right);
Form_rez.Central.Caption := FloattoStr(I_central);
end;
procedure TForm3.Button1Click(Sender: TObject);
begin
Form1.Visible := true;
Form3.Visible := false;
end;
procedure TForm3.Button2Click(Sender: TObject);
var
h : real;
I_left, I_right, I_central : real;
i, n : longint;
ms:array[1..4] of string;
mr:array[1..4] of real;
//----------------ввод данных------------------------
function enter_data():boolean;
label m1;
var
i, index:integer;
flag:boolean;
s:string;
q:real;
begin
ms[1]:=a.Text;ms[2]:=b.Text;
for i:=1 to 4 do
if ms[i]='' then begin
enter_data:=false;
ShowMessage('Одно или
Goto m1;
end;
flag:=true;
for i:=1 to 4 do begin
s:=ms[i];
index:=pos(',', s);
delete(s, Pos(',', s), 1);
if(index<>0)and(Pos(',', s)<>0)then begin
enter_data:=false;
ShowMessage('Введены
goto m1;
end;
s:=ms[i];
index:=pos('-',s); //минус
if(index<>0)and(index<>1)then begin
enter_data:=false;
ShowMessage('Введены
goto m1;
end;
end;
Try
for i:=1 to 4 do begin
mr[i]:=Roundto(StrToFloat(ms[
ms[i]:=FloatToStr(mr[i]);
end;
Except
enter_data:=false;
ShowMessage('Вы ввели неправильные(не числовые) данные ');
flag:=false;
end;
if(flag=false)then goto m1;
q:=mr[3];
while(q<mr[4]) do begin
if(mr[2]*q<=0)or(mr[3]=0)or (mr[2]=0)then begin
enter_data:=false;
ShowMessage('
Информация о работе Програма обчислення визначених інтегралів по квадратурним формулам