var
Form5: TForm5;
a,b,c:integer;
x1,d,l,p,y,xn,xs,xk,x2,x0,x01:extended;
x:real;
FName:string;
var xc,yc,w,h,i:integer;
mx,my,x11,y1:real;
implementation
uses Unit6, Unit7;
{$R *.dfm}
procedure TForm5.Button2Click(Sender: TObject);
begin
saveDialog1.DefaultExt := 'txt';
saveDialog1.FilterIndex := 1;
SaveDialog1.FileName := FName;
//Первый из этих операторов присваивает свойству FileName компонента SaveDialog1 запомненное имя файла.
if SaveDialog1.Execute then //Следующий оператор открывает диалог и, если пользователь выбрал в нем файл,
begin
FName := SaveDialog1.FileName; //запоминает новое имя файла и сохраняет в файле с этим именем текст компонента Memo1.
Memo1.Lines.SaveToFile(FName);
end;
end;
procedure TForm5.Button1Click(Sender: TObject);
begin
form6.show;
xn:=strtofloat(Edit3.text);
xs:=strtofloat(Edit4.text);
xk:=strtofloat(Edit5.text);
a:=strtoint(Edit1.text);
b:=strtoint(Edit6.text);
c:=strtoint(Edit7.text);
memo1.lines.add('x y');
d:=(b*b)-(4*a*c);
if d>0 then begin
x1:=(-b+sqrt(d))/(2*a);
x2:=(-b-sqrt(d))/(2*a);
edit2.text:=(floattostr(x1)+' '+floattostr(x2));
end else
if d=0 then begin
x1:=(-b)/(2*a);
x2:=x1;
end;
edit2.text:=(floattostr(x1));
//Tchart
while xn<=xk do
begin
if abs(x1-xn)>0.001 //если не 0, т.е. если определено
then begin
y:=xn/(xn*xn+2*xn+1);
memo1.lines.add(floattostrF(xn,ffFixed,3,2)+' | '+floattostrF(y,ffFixed,5,3));
form6.series1.addXY(xn,y);
xn:=xn+xs;
end
else begin
x0:=xn;
x0:=x0+0.1;
y:=x0/(x0*x0+2*x0+1);
memo1.lines.add(floattostrF(xn,ffFixed,3,2)+' | '+'не определено');
form6.series1.AddXY(x0,y,'',clwhite);
xn:=xn+xs;
end;
end;
end;
procedure TForm5.Button3Click(Sender: TObject);
begin
form7.show;
end;
end.
procedure TForm5.Button1Click(Sender: TObject);
Ввод
xn,xk,xs
a,b,c
d:=(b*b)-(4*a*c);
x1:=(-b+sqrt(d))/(2*a); x2:=(-b-sqrt(d))/(2*a);
if
d>0
if
d=0
x1:=(-b)/(2*a); x2:=x1;
xn<=xk
Конец
abs(x1-xn)>0.001
y:=xn/(xn*xn+2*xn+1); memo1.lines.add(floattostrF(xn,ffFixed,3,2)+'
| '+floattostrF(y,ffFixed,5,3)); form6.series1.addXY(xn,y); xn:=xn+xs;
x0:=xn; x0:=x0+0.1; y:=x0/(x0*x0+2*x0+1); memo1.lines.add(floattostrF(xn,ffFixed,3,2)+'
| '+'не
определено'); form6.series1.AddXY(x0,y,'',clwhite); xn:=xn+xs;
var
Form7: TForm7;
y1,m,k,i:integer;
x,y:real;
x1,x2,xn,xr,xk:extended;
var xc,yc,w,h:integer;
mx,my:real;
implementation
{$R *.dfm}
procedure TForm7.Button1Click(Sender: TObject);
begin
xn:=-2; //начало
xr:=-1; //разрыв
xk:=2; //конец
m:=50;
w:=Image1.Width;
xc:=w div 2;
h:=Image1.Height;
yc:=Image1.Height div 2;
mx:=(w-50)/8;
my:=(yc-10)/180;
with Image1.Canvas do
begin
Brush.Color:=clWhite;
Pen.Color:=clblack;
MoveTo(0,yc);
LineTo(w,yc);
MoveTo(xc,0);
LineTo(xc,h);
textout(w-20,yc-20,'X');
textout(xc+10,10,'Y');
textout(xc+10,yc+10,'0');
for i:=1 to 4 do
begin
MoveTo(xc+round(i*mx),yc-3); LineTo(xc+round(i*mx),yc+3);
MoveTo(xc-round(i*mx),yc-3); LineTo(xc-round(i*mx),yc+3);
textout(xc+round(i*mx),yc+10,Inttostr(i));
textout(xc-round(i*mx),yc+10,Inttostr(-i));
end;
for i:=1 to 11 do
begin
MoveTo(xc+3,yc-round(i*my*250)); LineTo(xc-3,yc-round(i*my*250));
MoveTo(xc+3,yc+round(i*my*250)); LineTo(xc-3,yc+round(i*my*250));
textout(xc-30,yc-round(i*my*10),Inttostr(10*i));
textout(xc-30,yc+round(i*my*10),Inttostr(-10*i));
end;
Pen.Color:=clred;
y:=xn/(xn*xn+2*xn+1);
MoveTo(xc+trunc(xn*mx),yc-trunc(y*my));
with image1 do begin
while xn<=xk do //
begin
if abs(xr-xn)>0.001 //если не равен 0. без разрыва
then begin
y:=xn/(xn*xn+2*xn+1);
LineTo(xc+trunc(xn*mx),yc-trunc(y*my));
xn:=xn+0.1;
end
else begin
xn:=xn+0.1;
y:=xn/(xn*xn+2*xn+1);
MoveTo(xc+trunc(xn*mx),yc-trunc(y*my)); //переносит курсор
LineTo(xc+trunc(xn*mx),yc-trunc(y*my)); //строит линию
end;
end;
end;
end;
end;
end.