Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
12
44.2016.00-12
Министерство общего и профессионального
образования Российской Федерации
Государственный Университет Аэрокосмического
Приборостроения
РЕШЕНИЕ НЕЛИНЕЙНЫХ И ТРАНСЦЕНДЕНТНЫХ УРАВНЕНИЙ КОМБИНИРОВАННЫМ МЕТОДОМ СЕКУЩИХ - ХОРД.
ТЕКСТ ПРОГРАММЫ
Руководитель Ст. преподаватель Пятлина Е.О. Нормоконтроллер |
Выполнил студент гр.4911 Степанов О.Ю. |
САНКТ-ПЕТЕРБУРГ
2000
В данном программном документе представлен текст программы, реализующей решение нелинейных и трансцендентных уравнений методом секущих - хорд. Текст включает в себя текст програмных модулей functions (искуственно созданый) и progr (модуль обработки главного окна программы). Модуль Functions состоит из функций расчитывающих значени самих функций (func1, аunc2, func3), значения производных функий (func_proizv1, func_proizv2, func_proizv3), функция возведения любого чила в любую степень (stepp), а также функция описывающая алгоритм нахождения приближений к искомому корню (f). Модуль progr содержит в себе процедуры обработки обьектов главного окна программы. Также в листинге описаны модули работы с окнами предназначенными для обработки определенных математических функций.
Программа написана на языке Object Pascal., операционная среда Wsndows.
Текст модуля “functions”.
unit functions;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls;
type
func=function(var x:real):real;
var
sv_chlen:real;
function f(var a,b:real; f1,f2:func):real;
function func1(var x:real):real;
function func_proizv1(var x:real):real;
function func_proizv2(var x:real):real;
function func2(var x:real):real;
function func_proizv3(var x:real):real;
function func3(var x:real):real;
function stepp(i,j:real):real;
implementation
function f(var a,b:real; f1,f2:func):real;
var
x1,x2:real;
begin
x1:=a-((b-a)*f1(a))/(f1(b)-f1(a));
x2:=a-(f1(a))/(f2(a));
a:=x1;
b:=x2;
f:=a-b;
end;
{$F+}
function func_proizv1(var x:real):real;
var
y:real;
begin
y:=stepp(2,x)*ln(2)-4;
func_proizv1:=y;
end;
{$F-}
{$F+}
function func_proizv2(var x:real):real;
var
y:real;
begin
y:=3*stepp(x,2)+2*x-1;
func_proizv2:=y;
end;
{$F-}
{$F+}
function func_proizv3(var x:real):real;
var
y:real;
begin
y:=1-cos(x);
func_proizv3:=y;
end;
{$F-}
function stepp(i,j:real):real;
var
z:real;
begin
z:=exp(j*ln(i));
stepp:=z;
end;
{$F+}
function func1(var x:real):real;
var
y:real;
begin
y:=stepp(2,x)-4*x;
func1:=y;
end;
{$F-}
{$F+}
function func2(var x:real):real;
var
y:real;
begin
y:=stepp(x,3)+stepp(x,2)-x-1;
func2:=y;
end;
{$F-}
{$F+}
function func3(var x:real):real;
var
y:real;
begin
y:=x-sin(x)-sv_chlen;
func3:=y;
end;
{$F-}
end.
Текст модуля “progr”.
unit progr;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, Menus;
type
TMain = class(TForm)
GroupBox1: TGroupBox;
F1: TRadioButton;
F2: TRadioButton;
Fuvktion_f: TButton;
Button1: TButton;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
F3: TRadioButton;
procedure Fuvktion_fClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Main: TMain;
implementation
uses f1, f2, about, f3;
{$R *.DFM}
procedure TMain.Fuvktion_fClick(Sender: TObject);
begin
if f1.Checked=true then
begin
f1_form.show;
f1_form.Label3.caption:='';
f1_form.x1.text:='';
f1_form.x2.text:='';
f1_form.e.text:='';
f1_form.Label3.caption:='';
end;
if f2.Checked=true then
begin
f2_form.show;
f2_form.Label3.caption:='';
end;
if f3.Checked=true then
begin
f3_form.show;
f3_form.x1.text:='';
f3_form.x2.text:='';
f3_form.e.text:='';
f3_form.a.text:='';
f3_form.Label6.caption:='';
end;
end;
procedure TMain.Button1Click(Sender: TObject);
begin
close;
end;
procedure TMain.N2Click(Sender: TObject);
begin
aboutbox.show;
end;
end.
Текст модулей “f1”, “f2”, “f3”.
unit f1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls, functions;
type
TF1_form = class(TForm)
Bevel1: TBevel;
graf: TImage;
x1: TEdit;
x2: TEdit;
Label1: TLabel;
Label2: TLabel;
OK_f1: TButton;
Label4: TLabel;
Label3: TLabel;
Label5: TLabel;
e: TEdit;
close_f1: TButton;
procedure OK_f1Click(Sender: TObject);
procedure close_f1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
F1_form: TF1_form;
implementation
{$R *.DFM}
procedure TF1_form.OK_f1Click(Sender: TObject);
var
e,znach,a,b:real;
s1,s2,s3,s:string;
varkod1,varkod2,varkod3:integer;
begin
s1:=f1_form.x1.text;
s2:=f1_form.x2.text;
s3:=f1_form.e.text;
val(s1,a,varkod1);
val(s2,b,varkod2);
val(s3,e,varkod3);
znach:=f(a,b,func2,func_proizv2);
while znach>e do
znach:=f(a,b,func2,func_proizv2);
znach:=(a+b)/2;
str(znach,s);
f1_form.Label3.caption:=s;
end;
procedure TF1_form.close_f1Click(Sender: TObject);
begin
close;
end;
end.
unit f2;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls, functions;
type
Tf2_form = class(TForm)
bevel2: TBevel;
graf2: TImage;
Label1: TLabel;
Label2: TLabel;
ok_f2: TButton;
Label3: TLabel;
Label4: TLabel;
close_f2: TButton;
procedure ok_f2Click(Sender: TObject);
procedure close_f2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
f2_form: Tf2_form;
implementation
{$R *.DFM}
procedure Tf2_form.ok_f2Click(Sender: TObject);
const
e=0.0001;
var
znach,a,b:real;
s:string;
begin
a:=0; b:=0.5;
znach:=f(a,b,func1,func_proizv1);
while znach>e do
znach:=f(a,b,func1,func_proizv1);
znach:=(a+b)/2;
str(znach,s);
f2_form.Label3.caption:=s;
end;
procedure Tf2_form.close_f2Click(Sender: TObject);
begin
close;
end;
end.
unit f3;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, functions;
type
TF3_form = class(TForm)
Bevel1: TBevel;
Image1: TImage;
x1: TEdit;
e: TEdit;
x2: TEdit;
a: TEdit;
ok_f3: TButton;
close_f3: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
procedure close_f3Click(Sender: TObject);
procedure ok_f3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
F3_form: TF3_form;
implementation
uses f1;
{$R *.DFM}
procedure TF3_form.close_f3Click(Sender: TObject);
begin
close;
end;
procedure TF3_form.ok_f3Click(Sender: TObject);
var
e,znach,a,b:real;
s1,s2,s3,s4,s:string;
varkod1,varkod2,varkod3,varkod4:integer;
begin
s1:=f3_form.x1.text;
s2:=f3_form.x2.text;
s3:=f3_form.e.text;
s4:=f3_form.a.text;
val(s1,a,varkod1);
val(s2,b,varkod2);
val(s3,e,varkod3);
val(s4,sv_chlen,varkod4);
znach:=f(a,b,func3,func_proizv3);
while znach>e do
znach:=f(a,b,func3,func_proizv3);
znach:=(a+b)/2;
str(znach,s);
f3_form.Label6.caption:=s;
end;
end.
Лист регистрации изменений |
|||||||||
Номера страниц |
Всего страниц в документе |
№ документа |
Входящий номер сопроводительного документа |
подпись |
Дата |
||||
изменения |
Измененных |
замененных |
новых |
аннулированных |
|||||