Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unit Unit1;
- interface
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, ExtCtrls, TeeProcs, TeEngine, Chart, jpeg, Grids, StdCtrls,
- Series;
- type
- TForm1 = class(TForm)
- lbl1: TLabel;
- edt1: TEdit;
- btn1: TButton;
- edt2: TEdit;
- edt3: TEdit;
- strngrd1: TStringGrid;
- img1: TImage;
- cht1: TChart;
- lnsrsSeries1: TLineSeries;
- pntsrsSeries1: TPointSeries;
- procedure FormClose(Sender: TObject; var Action: TCloseAction);
- procedure FormCreate(Sender: TObject);
- procedure btn1Click(Sender: TObject);
- procedure edt1Click(Sender: TObject);
- procedure edt2Click(Sender: TObject);
- procedure edt3Click(Sender: TObject);
- procedure edt1KeyPress(Sender: TObject; var Key: Char);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
- var
- Form1: TForm1;
- implementation
- {$R *.dfm}
- uses Math;
- procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
- begin
- if MessageDlg('Закрыть форму?', mtConfirmation, mbOKCancel, 0) = 2 then Action:= caNone else Action:= caFree;
- end;
- procedure TForm1.FormCreate(Sender: TObject);
- begin
- Lbl1.Caption:='';
- StrnGrd1.Cells[1,0]:='Аргумент x';
- StrnGrd1.Cells[2,0]:='Функция f';
- StrnGrd1.Cells[3,0]:='Сумма ряда s';
- StrnGrd1.Cells[4,0]:='Итерация n';
- Edt1.Text:=('2');
- Edt2.Text:=('50');
- Edt3.Text:=('0,1');
- end;
- procedure TForm1.btn1Click(Sender: TObject);
- var x,s,y,j:Real;
- i,n:Integer;
- begin
- if StrToFloat(Edt1.Text)<=1 then
- begin
- MessageDLG('Ошибка! x не больше 1', mtError, [mbOK],0);
- Edt1.Text:=('2');
- end;
- x:=StrToFloat(edt1.text);
- lnsrsSeries1.Clear;
- pntsrsSeries1.Clear;
- StrnGrd1.RowCount:=(trunc((StrToFloat(edt2.Text)-(StrToFloat(edt1.Text)))/(StrToFloat(edt3.Text))))+2;
- For i:=1 to StrnGrd1.RowCount do
- begin
- y:=Ln((x+1)/(x-1));
- s:=0;
- n:=0;
- while ((Abs(y-s))>0.001) do
- begin
- n:=n+1;
- j:=2*(1/((2*n+1)*power(x,(2*n+1))));
- s:=s+j;
- end;
- end;
- StrnGrd1.Cells[0,i]:=IntToStr(i);
- StrnGrd1.Cells[1,i]:=FloatToStrf(x,fffixed,0,3);
- StrnGrd1.Cells[2,i]:=FloatToStrf(y,fffixed,0,3);
- StrnGrd1.Cells[3,i]:=FloatToStrf(s,fffixed,0,3);
- StrnGrd1.Cells[4,i]:=IntToStr(n);
- lnsrsSeries1.AddXY(x,y,'',clred);
- pntsrsSeries1.AddXY(x,s,'',clgreen);
- x:=x+StrToFloat(edt3.Text);
- end;
- procedure TForm1.edt1Click(Sender: TObject);
- begin
- Lbl1.Caption:='Строка для ввода начального значения';
- end;
- procedure TForm1.edt2Click(Sender: TObject);
- begin
- Lbl1.Caption:='Строка для ввода конечного значения';
- end;
- procedure TForm1.edt3Click(Sender: TObject);
- begin
- Lbl1.Caption:='Строка для ввода шага';
- end;
- procedure TForm1.edt1KeyPress(Sender: TObject; var Key: Char);
- begin
- if not (Key in['1'..'9','0',DecimalSeparator,#8]) then Key:=#0;
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement