Руководство программиста
Программа предназначена для численного решение алгебраических уравнений, комбинированным методом хорд и касательных. В программе содержится поля для ввода данных, поля для вывода данных, таблица и две кнопки решение, очистить. Если не заполнить хоть одно значение, вылезет предупреждение. После запуска программы будет происходить: 1) Выбор пункта меню. 2) Переход к основной части программы. 3) Ввод данных запроса 4) Обработка запроса 5) Выдача результатов решения на экран 6) Выход
Руководство оператора Программа «Численное решение алгебраических уравнений. Метод касательных» предназначена для автоматизированного решения методом касательных, и выдача ответа пользователю. При запуске программы выводится форма, в которой осуществляется выбор метода численного решение алгебраических уравнений, имеющая следующий вид:
При выборе метода выводится форма имеющая следующий вид: Форма содержит семь полей для ввода данных выделено оваломи, и одно поле для вывода ответа выдилено прямоугольником
Если не вести хоть одно поля для ввода данных и нажать на решение появиться предупреждение, имеющий следующий вид: При нажатии на кнопку “ОК” программа автоматически переходит обратно. Когда ведены все значение нужна нажать кнопку решить. Расчеты сводиться в таблицу и выводиться ответ: Так же есть кнопка очистить поля для набора значений.
Интерпретация и анализ результатов решения Все результаты работы программы выводятся в той же форме в которой заводились значения, на которой расположено три панели, в которых выводятся введённые пользователем вводимые данные, ответ,и таблица, содержащие расчеты по запросу пользователя.
Заключение
Список используемой литературы
Лекции по предметам «Базы Данных» и «ТРПП», «Численные методы» Приложения Приложение 1 Листинг программы unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, jpeg, ExtCtrls,mmsystem;
type TForm1 = class(TForm) Image1: TImage; Image2: TImage; Image3: TImage; Image4: TImage; Image5: TImage; procedure Image1Click(Sender: TObject); procedure Image5Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.Image1Click(Sender: TObject); begin PlaySound('D:\learning\prog\Image\1.wav',0,SND_ASYNC); end;
procedure TForm1.Image5Click(Sender: TObject); begin horcas.show; end;
end.
unit Unit2;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids, jpeg, ExtCtrls, ToolWin, ComCtrls;
type Thorcas = class(TForm) Panel1: TPanel; Panel2: TPanel; Panel3: TPanel; Button1: TButton; Button2: TButton; StringGrid1: TStringGrid; Edit4: TEdit; Edit5: TEdit; Edit6: TEdit; Edit2: TEdit; Edit3: TEdit; Edit7: TEdit; Edit1: TEdit; Label1: TLabel; Label2: TLabel; Edit8: TEdit; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var horcas: Thorcas; x4,x5,x6,x7:real;
implementation
uses Unit1;
{$R *.dfm} function f(var x:real):real; begin f:= x4*x*x*x+x5*x*x+x6*x+x7; end; function f1(var x:real):real; begin f1:= 3*x*x-x5*x+x6; {первая производная} end; function f2(var x:real):real;{вторая производная} begin f2:=6*x-x6; end;
procedure Thorcas.FormCreate(Sender: TObject); begin with Stringgrid1 do begin RowCount:=2; ColCount:=6; DefaultColWidth:=100; Width:=630; Cells[0,0]:='Номер шага'; Cells[1,0]:='Xi левое'; Cells[2,0]:='Xi правое'; Cells[3,0]:='Xiп - Xiл'; Cells[4,0]:='F(Xiл)'; Cells[5,0]:='F(Xiп)'; end; end;
procedure Thorcas.Button1Click(Sender: TObject); var a,b:real; e:real; x1,x2:real; k:integer; begin if (Edit2.Text='') or (Edit3.Text='') or (Edit4.Text='') or (Edit5.Text='') or (Edit6.Text='') or (Edit7.Text='') or (Edit8.Text='') then begin Application.MessageBox('Для решение уравнения должно быть заполнено все значения','Предупреждение',mb_OK); Exit; end; x4:=StrToFloat(Edit4.Text); x5:=StrToFloat(Edit5.Text); x6:=StrToFloat(Edit6.Text); x7:=StrToFloat(Edit7.Text); a:=StrToFloat(Edit2.Text); b:=StrToFloat(Edit3.Text); e:=StrToFloat(Edit8.Text); k:=0; StringGrid1.Cells[0,k+1]:=IntToStr(k); StringGrid1.Cells[1,k+1]:=FloatToStrF(a,ffFixed,4,1); StringGrid1.Cells[2,k+1]:=FloatToStrF(b,ffFixed,4,1); StringGrid1.Cells[3,k+1]:=FloatToStrF(b-a,ffFixed,4,1); StringGrid1.Cells[4,k+1]:=FloatToStrF(F(a),ffFixed,4,1); StringGrid1.Cells[5,k+1]:=FloatToStrF(F(b),ffFixed,4,1); repeat k:=k+1; if f1(a)*f2(a)>0 then begin x1:=a-(f(a)*(b-a))/(f(b)-f(a)); x2:=x1-(f(x1)*(b-x1)/(f(B)-f(x1))); a:=x2; end else begin x1:=b-(f(b)*(b-a))/(f(b)-f(a)); x2:=x1-f(x1)*(x1-a)/(f(x1)-f(a)); b:=x2; end; StringGrid1.RowCount:=StringGrid1.RowCount+1; StringGrid1.Cells[0,k]:=IntToStr(k-1); StringGrid1.Cells[1,k]:=FloatToStrF(x1,ffFixed,7,4); StringGrid1.Cells[2,k]:=FloatToStrF(x2,ffFixed,7,4); StringGrid1.Cells[3,k]:=FloatToStrF(x2-x1,ffFixed,7,4); StringGrid1.Cells[4,k]:=FloatToStrF(F(x1),ffFixed,7,4); StringGrid1.Cells[5,k]:=FloatToStrF(F(x2),ffFixed,7,4); until abs(x2-x1)<=e; Edit1.Text:='Корень = '+FloatToStrF(x2,ffFixed,7,3); end;
procedure Thorcas.Button2Click(Sender: TObject); var i:integer; begin Edit1.Text:=''; Edit2.Text:=''; Edit3.Text:=''; Edit4.Text:=''; Edit5.Text:=''; Edit6.Text:=''; Edit7.Text:=''; Edit8.Text:=''; for i:=1 to StringGrid1.RowCount do StringGrid1.Rows[i].Clear; end;
end.
Приложение 2
Популярное: Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе... ![]() ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (290)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |