Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабы / 2 семестр / 3 лаба

.docx
Скачиваний:
0
Добавлен:
04.04.2018
Размер:
307.23 Кб
Скачать

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.

Соседние файлы в папке 2 семестр