StrListToNumber('Предел До', Data.UpLimit, SList);
StrListToNumber('Точность', Data.Accuracy, SList);
StrListToNumber('Количество отрезков', Data.Guantit, SList);
StrListPresenceOfNames('Метод интегрирования', s, SList);
SList.Clear;
{Начало интегрирования}
{Проверка на наличии ошибок
в процесе интегрирования}
Int := CreateMethodIntegrirovaniya(StrMethodIntegral(s), Report);
Int.RunWithNewData(Data);
Int.Free;
(*if Report.Count = 0 then Begin
int := CreateMethodIntegrirovaniya(StrMethodIntegral(s), Report);
if Report.Count = 0 then Begin
if Int is TMethodTrapeciy then Begin
SList.Add('Трапеция занимает своё место в истории нападают');
{ TMethodtrapeciy(Int).RunWithNewData(Data);}
end;
if Int is TMethodSimpsona then Begin
SList.Add('Симсоны нападают');
{ TMethodSimpsona(Int).RunWithNewData(Data);}
end;
If Report.Count = 0 then Begin
Slist.Add('Интеграл решон :-)');
SList.Add('Интегральная сумма = ' + FloatToStr(Data.Result));
SList.Add('Погрешность составила ' + FloatTOStr(Data.Tochnost));
end;
Int.Free;
end;
end; *)
if Report.Count <> 0 then Begin
SList.Add('Количество ошибок = ' + IntToStr(Report.Count));
For i := 0 to Report.Count-1 do SList.Add(Report[i]);
end
else Begin
Slist.Add('Интеграл решон :-)');
SList.Add('Интегральная сумма = ' + FloatToStr(Data.Result));
SList.Add('Погрешность составила ' + FloatTOStr(Data.Tochnost));
end;
Report.Clear;
End;
End.
unit FormaFromIntegrirovaniya;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls, ExtCtrls, Integrirovanie;
type
TFormForIntegrala = class(TForm)
EnterFunction: TEdit;
LabelFormuli: TLabel;
PridelyIntrgrirovaniyaOt: TLabel;
PridelyIntrgrirovaniyaDo: TLabel;
StartIntegrirovaniya: TEdit;
FinishIntegrirovaniya: TEdit;
LabelAccuracy: TLabel;
Accuracy: TEdit;
LabelRezult: TLabel;
Status: TLabel;
Coun: TButton;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
NameStatus: TLabel;
Rezult: TMemo;
Method: TRadioGroup;
PopupMenu1: TPopupMenu;
N4: TMenuItem;
N7: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
Kachestvo1: TLabel;
Kachestvo2: TLabel;
GuantitSection: TEdit;
procedure FormCreate(Sender: TObject);
procedure Exit(Sender: TObject);
procedure CallPopupMeny(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure ClickForCoun(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
public
Integral: TIntegral;
end;
var
FormForIntegrala: TFormForIntegrala;
implementation
{$R *.dfm}
procedure TFormForIntegrala.FormCreate(Sender: TObject);
Begin
Integral := TIntegral.Create;
End;
procedure TFormForIntegrala.FormClose(Sender: TObject;
var Action: TCloseAction);
Begin
Integral.Free;
End;
procedure TFormForIntegrala.Exit(Sender: TObject);
Begin
If CloseQuery then Close
else Application.Terminate;
End;
procedure TFormForIntegrala.CallPopupMeny(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
Var P: Tpoint;
Begin
P := GetClientOrigin;
if Button = mbRight then PopupMenu1.Popup(P.X+X,P.Y+Y);
End;
procedure TFormForIntegrala.ClickForCoun(Sender: TObject);
Var s: String;
SList: TStringList;
Begin
Status.Caption := 'Считаем';
SList := TStringList.Create;
SList.Add('Функция=' + EnterFunction.Text);
SList.Add('Предел От=' + StartIntegrirovaniya.Text);
SList.Add('Предел До=' + FinishIntegrirovaniya.Text);
SList.Add('Точность=' + Accuracy.Text);
SList.Add('Количество отрезков=' + GuantitSection.Text);
Case Method.ItemIndex of
0: s := 'трапеция';
1: s := 'симсоны';
else s := '';
end;
SList.Add('Метод интегрирования=' + s);
Integral.Schetat(SList);
Rezult.Lines := SList;
SList.Clear;
SList.Free;
Status.Caption := 'Посчитано';
End;
end.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.