unit UnIterate;
Interface
Uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, Spin;
Type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
SpinEdit1: TSpinEdit;
Edit1: TEdit;
Edit2: TEdit;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
CheckBox3: TCheckBox;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Memo1: TMemo;
Label4: TLabel;
Edit3: TEdit;
procedure FormCreate(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Var
Form1: TForm1;
Implementation
{$R *.dfm}
procedureTForm1.FormCreate(Sender: TObject);
Begin
SpinEdit1.Text:='8';
Edit1.Text:='0,1';
Edit2.Text:='1';
Edit3.Text:='0,0001';
Memo1.Clear;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
Var
eps,xn,xk,x,h,y,s,p,ab,ot:real;
n,i:byte;
Begin
n: = StrToInt(SpinEdit1.Text);
xn: = StrToFloat(Edit1.Text);
xk: = StrToFloat(Edit2.Text);
eps: = StrToFloat(Edit3.Text);
h: = (xk–xn)/n;
Memo1.Clear;
if CheckBox1.Checked then
Memo1.Lines.Add('Исходные данные: n= '+SpinEdit1.Text+
' Xn = '+Edit1.Text+' Xk= '+Edit2.Text+
' Eps = '+Edit3.Text);
Memo1.Lines.Add('');
x:=xn;
Repeat
y:=2*(sqr(cos(x))-1);
s:=0; p:=1; i:=1;
while abs(p)>eps do
Begin
p:=p*(-sqr(2*x))/((2*i-1)*2*i);
s:=s+p;
i:=i+1;
end;
ab:=s-y;
ot:=abs(ab/y)*100;
ifCheckBox2.Checked then
if CheckBox3.Checked then
Memo1.Lines.Add('x='+FloatToStrF(x,ffFixed,4,2)+
' S='+FloatToStrF(s,ffFixed,6,3)+
' Y='+FloatToStrF(y,ffFixed,6,3)+
' A='+FloatToStrF(ab,ffFixed,6,3)+
' D='+FloatToStrF(ot,ffFixed,6,3)+'%')
Else
Memo1.Lines.Add('x='+FloatToStrF(x,ffFixed,4,2)+
' S='+FloatToStrF(s,ffFixed,6,3)+
' Y='+FloatToStrF(y,ffFixed,6,3)+
' A='+FloatToStrF(ab,ffFixed,6,3))
Else
if CheckBox3.Checked then
Memo1.Lines.Add('x='+FloatToStrF(x,ffFixed,4,2)+
' S='+FloatToStrF(s,ffFixed,6,3)+
' Y='+FloatToStrF(y,ffFixed,6,3)+
' D='+FloatToStrF(ot,ffFixed,6,3)+'%')
Else
Memo1.Lines.Add('x='+FloatToStrF(x,ffFixed,4,2)+
' S='+FloatToStrF(s,ffFixed,6,3)+
' Y='+FloatToStrF(y,ffFixed,6,3));
x:=x+h;
untilx>xk;
end;
End.