Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОАиП кр2 в4.doc
Скачиваний:
6
Добавлен:
01.04.2014
Размер:
504.32 Кб
Скачать

Interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, TeEngine, Series, Buttons, StdCtrls, ExtCtrls, TeeProcs, Chart, math;

type

TForm1 = class(TForm)

Chart1: TChart;

Edit1: TEdit;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Edit6: TEdit;

Edit7: TEdit;

Label6: TLabel;

Button1: TButton;

BitBtn1: TBitBtn;

Series1: TLineSeries;

Series2: TLineSeries;

Series3: TLineSeries;

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

Implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);

begin

Edit1.Clear;Edit2.Clear;Edit3.Clear;Edit4.Clear;

Edit5.Clear;Edit6.Clear;Edit7.Clear;

end;

procedure TForm1.Button1Click(Sender: TObject);

var

x0, x1, x2, y0, y1, y2, r, x, y, z, c, a : extended;

begin

x1:=StrToFloat(Edit1.Text);

x2:=StrToFloat(Edit2.Text);

y1:=StrToFloat(Edit3.Text);

y2:=StrToFloat(Edit4.Text);

x0:=StrToFloat(Edit5.Text);

y0:=StrToFloat(Edit6.Text);

r:=StrToFloat(Edit7.Text);

x:=-50;

y:=0;

c:=0;

while (x<=50) do

begin

//окружность

while abs(x-x0)<=r do begin

y:=sqrt(sqr(r)-sqr(x-x0))+y0;

Series2.AddXY(x,c,'',clGreen);

c:=-sqrt(sqr(r)-sqr(x-x0))+y0;

Series3.AddXY(x,y,'',clGreen);

x:=x+0.002;

z:=((y2-y1)*(x-x1))/(x2-x1)+y1;

Series1.AddXY(x,z,'',clRed);

x:=x+0.002

end;

z:=((y2-y1)*(x-x1))/(x2-x1)+y1;

Series1.AddXY(x,z,'',clRed);

x:=x+0.02;

end;

end;

end.