
лабораторная работа / лабораторные работы по LAZARUS / Lab №3 вариант 21
.doc
МИНИСТЕРСТВО ОБЩЕГО И ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ РФ
САРАТОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
БАЛАКОВСКИЙ ИНСТИТУТ ТЕХНИКИ, ТЕХНОЛОГИИ И УПРАВЛЕНИЯ
факультет: иженерно-строительный
кафедра: управление и информатика в технических системах
Лабораторная работа №3
по дисциплине: СПО
Вариант №21
Выполнил ст. гр. УИТ-33
Принял:
2009 г.
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, Buttons,
StdCtrls, Spin;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
CheckBox3: TCheckBox;
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Memo1: TMemo;
SpinEdit1: TSpinEdit;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
begin
SpinEdit1.Value:=15;
Edit1.Text:='0.1';
Edit2.Text:='0.5';
Memo1.Clear;
Memo1.Lines.Add('Дэлфи рулеZZZZZZ!!!');
end;
procedure TForm1.Button1Click(Sender: TObject);
var
xn,xk,x,h, an,y, al, R, del, S:real;
n,k:integer;
begin
n:=SpinEdit1.Value;
xn:=StrToFloat(Edit1.Text);
xk:=StrToFloat(Edit2.Text);
if CheckBox1.Checked then
Memo1.Lines.Add('исходники: n:='+IntToStr(n)+
' xn='+FloatToStr(xn)+
' xk='+floatToStr(xk));
h:=(xk-xn)*0.1;
x:=xn;
repeat
an:=x;
S:=an;
for k:=1 to n do
begin
R:=(-x*x*(2*(k-1)+1))/(2*(k-1)+3);
an:=an*R;
S:=S+an;
end;
y:=arctan(x);
if CheckBox2.checked then
if checkbox3.checked then begin
al:=S-y;
del:=abs((S-y)/y)*100;
Memo1.Lines.Add('x='+FloatToStr(x)+
' S='+ FloatToStrF(s,ffFixed,6,2)+
' Y='+ FloatToStrF(y,ffFixed,6,2)+
' A='+ FloatToStrF(al,ffFixed,6,2)+
' D='+ FloatToStrF(del,ffFixed,6,0)+'%');
end
else
if CheckBox2.Checked then begin
al:=s-y;
Memo1.Lines.Add('x='+FloatToStr(x)+
' S='+ FloatToStrF(s,ffFixed,6,2)+
' Y='+ FloatToStrF(y,ffFixed,6,2)+
' A='+ FloatToStrF(al,ffFixed,6,2));
end
else
if checkbox3.checked then begin
del:=abs((s-y)/y)*100;
Memo1.Lines.Add('x='+FloatToStr(x)+
' S='+ FloatToStrF(s,ffFixed,6,2)+
' Y='+ FloatToStrF(y,ffFixed,6,2)+
' D='+ FloatToStrF(del,ffFixed,6,2)+'%');
end
else
Memo1.Lines.Add('x='+FloatToStr(x)+
' S='+ FloatToStrF(s,ffFixed,6,2)+
' Y='+ FloatToStrF(y,ffFixed,6,2));
x:=x+h;
until x>xk;
end;
initialization
{$I unit1.lrs}
end.