Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пояснительная записка, Евтушенко Г.И..doc
Скачиваний:
1
Добавлен:
22.09.2019
Размер:
352.77 Кб
Скачать

Исходные коды программы

unit Unit1;

interface

uses

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

Dialogs, ExtCtrls, ComCtrls, StdCtrls, Menus, Math, ImgList,mmsystem,grfunc_,unit3,

Gauges;

Type

TAxes = class

private

xS,yS:integer; //Начальные координаты осей

Constructor create;

public

Procedure Show;

end;

Type //5

TSlideBlock = class //Описание класса первого звена

private

x1,x2:integer; //координаты Х

y1,y2:integer;

public

t,TN:real; //время

fblockwidth:integer; //ширина первого звена

fblockheight:integer; //высота

a,v,k : double;

vpravo:boolean; //направление движения

SMax:integer; //длинна пути(в одну сторону)

Constructor Create;

procedure time;

procedure Show;virtual;

procedure Move;

procedure setStartPos(XPos , YPos:integer);

procedure setBlockWidth(const Value: integer);

procedure setBlockHeight(const Value:integer);

procedure writeX1(newX:integer);

function getX1():integer;

procedure writeY1(newY:integer);

function getY1():integer;

procedure writeY2(newY:integer);

function getY2():integer;

Property prX1: integer read getX1 write writeX1;

Property prY1: integer read getY1 write writeY1;

Property prY2: integer read getY2 write writeY2;

end;

Type //12

TSlideBlock2 = class(TSlideBlock)

z1,z2:real;

procedure Show; override;

Constructor Create;

end;

Type //1

TCrank = class(TSlideBlock2)

public

Angle : real;

i : integer;

procedure Show;override;

Constructor Create;

end;

type

TForm1 = class(TForm)

PageControl1: TPageControl;

TabSheet1: TTabSheet;

TabSheet2: TTabSheet;

Panel1: TPanel;

Image1: TImage;

Button1: TButton;

GroupBox1: TGroupBox;

Edit1: TEdit;

GroupBox2: TGroupBox;

Edit2: TEdit;

GroupBox3: TGroupBox;

Edit3: TEdit;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Edit4: TEdit;

Label4: TLabel;

Edit5: TEdit;

Label5: TLabel;

Edit6: TEdit;

Label6: TLabel;

Label7: TLabel;

MainMenu1: TMainMenu;

File1: TMenuItem;

Button2: TButton;

Edit7: TEdit;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

Edit8: TEdit;

Edit9: TEdit;

Help1: TMenuItem;

E1: TMenuItem;

Label11: TLabel;

Label12: TLabel;

Label13: TLabel;

Edit10: TEdit;

Timer1: TTimer;

Save1: TMenuItem;

Saveas1: TMenuItem;

N1: TMenuItem;

N2: TMenuItem;

Edit11: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

ImageList1: TImageList;

ools1: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

Button3: TButton;

Timer2: TTimer;

Button4: TButton;

N9: TMenuItem;

Button5: TButton;

Load1: TMenuItem;

N10: TMenuItem;

SaveDialog1: TSaveDialog;

Animate1: TAnimate;

Gauge1: TGauge;

function Map(x,in_min,in_max,out_min,out_max : double) : double;

procedure Erase;

procedure Button1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure AllEditKeyPress(Sender:TObject; var Key: Char);

procedure Button2Click(Sender: TObject);

procedure E1Click(Sender: TObject);

procedure TabSheet1ContextPopup(Sender: TObject; MousePos: TPoint;

var Handled: Boolean);

procedure N5Click(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure Edit1Exit(Sender: TObject);

procedure Edit4Exit(Sender: TObject);

procedure Edit5Exit(Sender: TObject);

procedure Edit6Exit(Sender: TObject);

procedure Edit2Exit(Sender: TObject);

procedure Edit7Exit(Sender: TObject);

procedure Edit9Exit(Sender: TObject);

procedure Edit3Exit(Sender: TObject);

procedure Edit10Exit(Sender: TObject);

procedure Edit8Exit(Sender: TObject);

procedure TabSheet2Enter(Sender: TObject);

procedure TabSheet2ContextPopup(Sender: TObject; MousePos: TPoint;

var Handled: Boolean);

procedure TabSheet2Show(Sender: TObject);

procedure TabSheet1Show(Sender: TObject);

procedure TabSheet1Enter(Sender: TObject);

procedure FormShow(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);

procedure Timer2Timer(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

procedure N8Click(Sender: TObject);

procedure N7Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure Save1Click(Sender: TObject);

procedure Load1Click(Sender: TObject);

procedure N1Click(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure N10Click(Sender: TObject);

procedure Saveas1Click(Sender: TObject);

procedure N9Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1 : TForm1;

SlideBlock1 : TSlideBlock;

SlideBlock2 : TSlideBlock2;

Crank : TCrank;

Axes : TAxes;

AlphaR : integer;

Clo : boolean;

xt,yt:integer;

implementation

uses LogoUnit, Unit4, Unit5, Unit6;

{$R *.dfm}

{ TSlideBlock }

constructor TSlideBlock.Create;

begin

inherited Create;

Self.setBlockWidth(strtoint(Form1.Edit1.Text));

Self.setStartPos(strtoint(Form1.Edit5.Text),strtoint(Form1.Edit6.Text));

Self.setBlockHeight(strtoint(Form1.Edit4.Text));

Self.SMax:=strtoint(Form1.Edit8.Text);

Self.vpravo:=true;

Self.t:=0;

Self.v:=0;

Self.TN:=1;

end;

function TSlideBlock.getX1: integer;

begin

Result:=Self.x1;

end;

function TSlideBlock.getY1: integer;

begin

Result:=Self.y1;

end;

function TSlideBlock.getY2: integer;

begin

Result:=Self.y2;

end;

procedure TSlideBlock.Move;

begin

end;

procedure TSlideBlock.setBlockHeight(const Value: integer);

begin

fblockheight:=Value;

end;

procedure TSlideBlock.setBlockWidth(const Value: integer);

begin

fblockwidth:=Value;

end;

procedure TSlideBlock.setStartPos(XPos, YPos: integer);

begin

prX1:=strtoint(Form1.Edit5.Text);

prY1:=strtoint(Form1.Edit6.Text);

end;

procedure TSlideBlock.Show;

begin

Form1.Image1.Canvas.Pen.Color:=clBlack;

Form1.Image1.Canvas.Pen.Width:=2;

Form1.Image1.Canvas.Rectangle(prX1,Form1.Image1.Height-strtoint(Form1.Edit6.Text),fblockwidth+prX1,Form1.Image1.Height-fblockheight-strtoint(Form1.Edit6.Text));

end;

procedure TSlideBlock.time;

begin

end;

{ Axes }

constructor TAxes.create;

begin

Self.xS:=5;

Self.yS:=5;

end;

procedure TAxes.Show;

begin

Form1.Image1.Canvas.Pen.Color:=clRed;

Form1.Image1.Canvas.Pen.Width:=1;

Form1.Image1.Canvas.MoveTo(xS,Form1.Image1.Height-5);

Form1.Image1.Canvas.LineTo(xS,5);

Form1.Image1.Canvas.MoveTo(xS,5);

Form1.Image1.Canvas.LineTo(0,10);

Form1.Image1.Canvas.MoveTo(xS,5);

Form1.Image1.Canvas.LineTo(10,10);

Form1.Image1.Canvas.MoveTo(xS,Form1.Image1.Height-yS);

Form1.Image1.Canvas.LineTo(Form1.Image1.Width-5,Form1.Image1.Height-yS);

Form1.Image1.Canvas.MoveTo(Form1.Image1.Width-5,Form1.Image1.Height-yS);

Form1.Image1.Canvas.LineTo(Form1.Image1.Width-10,Form1.Image1.Height-yS-5);

Form1.Image1.Canvas.MoveTo(Form1.Image1.Width-5,Form1.Image1.Height-yS);

Form1.Image1.Canvas.LineTo(Form1.Image1.Width-10,Form1.Image1.Height);

end;

procedure TForm1.AllEditKeyPress(Sender:TObject; var Key: Char);

begin

if(not(Key in ['0'..'9',#8])) then begin Key := #0;Beep;end;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

Axes:=TAxes.Create;

SlideBlock1:=TSlideBlock.Create;

SlideBlock2:=TSlideBlock2.Create;

Crank:=TCrank.Create;

Form1.Button2.Click;

Form1.Button1.Click;

Timer1.Enabled:=False;

AlphaR:=255;

Clo:=false;

xt:=0;

yt:=0;

SaveDialog1.Title := 'Сохранить таблицу в...';

SaveDialog1.InitialDir := GetCurrentDir;

SaveDialog1.Filter := 'Text file|*.txt|Robo file|*.ROBOT';

SaveDialog1.DefaultExt := 'ROBOT';

Animate1.FileName:='data\DELPHI.avi';

Animate1.Active:=true;

end;

procedure TSlideBlock.writeX1(newX: integer);

begin

Self.x1:=newX;

end;

procedure TSlideBlock.writeY1(newY: integer);

begin

Self.y1:=newY;

end;

procedure TSlideBlock.writeY2(newY: integer);

begin

Self.y2:=newY;

end;

{ TSlideBlock2 }

constructor TSlideBlock2.Create;

begin

Self.prX1:=SlideBlock1.prX1;

Self.prY1:=SlideBlock1.prY1;

Self.vpravo:=true;

prY2:=0;

end;

procedure TSlideBlock2.Show;

begin

prX1:=SlideBlock1.prX1+SlideBlock1.fblockwidth;

prY1:=SlideBlock1.prY1+SlideBlock1.fblockheight;

Form1.Image1.Canvas.Pen.Color:=clBlack;

Form1.Image1.Canvas.Pen.Width:=2;

Form1.Image1.Canvas.MoveTo(prX1-1,Form1.Image1.Height-y1);

Form1.Image1.Canvas.LineTo(prX1-1,Form1.Image1.Height-y1-strtoint(Form1.Edit9.Text)

-strtoint(Form1.Edit7.Text));

Form1.Image1.Canvas.MoveTo(prX1+fblockwidth-9,Form1.Image1.Height-2-prY1-prY2);

Form1.Image1.Canvas.LineTo(prX1+fblockwidth,Form1.Image1.Height-Round(fblockheight/2)-2-prY1-prY2);

Form1.Image1.Canvas.MoveTo(prX1+fblockwidth,Form1.Image1.Height-Round(fblockheight/2)-2-prY1-prY2);

Form1.Image1.Canvas.LineTo(prX1+fblockwidth-9,Form1.Image1.Height-fblockheight-2-prY1-prY2);

Form1.Image1.Canvas.Rectangle(prX1,Form1.Image1.Height-prY1-prY2,prX1+fblockwidth-8,Form1.Image1.Height-fblockheight-prY1-1-prY2);

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

Form1.Erase;

Axes.Show;

SlideBlock1.Show;

SlideBlock2.Show;

Crank.Show;

Form1.Button5.Show;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

Gauge1.MinValue:=strtoint(Form1.Edit5.Text);

Gauge1.MaxValue:=strtoint(Form1.Edit8.Text)-strtoint(Form1.Edit5.Text)-strtoint(Form1.Edit1.Text);

SlideBlock1.v:=0;

SlideBlock2.v:=0;

SlideBlock2.prY2:=1;

SlideBlock1.setBlockWidth(strtoint(Form1.Edit1.Text));

SlideBlock1.setBlockHeight(strtoint(Form1.Edit4.Text));

SlideBlock1.setStartPos(strtoint(Form1.Edit5.Text),strtoint(Form1.Edit6.Text));

SlideBlock2.fblockheight:=strtoint(Form1.Edit7.Text);

SlideBlock2.fblockwidth:=strtoint(Form1.Edit2.Text);

yt:=0; //удаляем старую таблицу.

end;

procedure TForm1.Erase;

begin

Form1.Image1.Canvas.Brush.Color:=clWhite;

Form1.Image1.Canvas.Rectangle(0,0,Form1.Image1.Width+1,Form1.Image1.Height+1);

end;

procedure TForm1.E1Click(Sender: TObject);

begin

Form1.Close;

end;

{ TCrank }

constructor TCrank.Create;

begin

i:=0;

t:=0;

Angle:=0;

end;

procedure TCrank.Show;

begin

Form1.Image1.Canvas.MoveTo(SlideBlock2.prX1+

SlideBlock2.fblockwidth,Form1.Image1.Height-Round(SlideBlock2.fblockheight/2)-

2-SlideBlock2.prY1-SlideBlock2.prY2);

Form1.Image1.Canvas.LineTo(SlideBlock2.prX1+

SlideBlock2.fblockwidth+Round(sin(Angle*pi/180)*strtoint(Form1.Edit3.Text)),

Form1.Image1.Height-Round(SlideBlock2.fblockheight/2)-

-2-SlideBlock2.prY1-Round(cos(Angle*pi/180)*strtoint(Form1.Edit3.Text))-SlideBlock2.prY2);

end;

procedure TForm1.TabSheet1ContextPopup(Sender: TObject; MousePos: TPoint;

var Handled: Boolean);

begin

Form1.Button2.Click;

end;

procedure TForm1.N5Click(Sender: TObject);

begin

Form1.Timer1.Enabled:=False;

end;

procedure TForm1.N6Click(Sender: TObject);

begin

Form1.Timer1.Enabled:=True;

end;

procedure TForm1.N4Click(Sender: TObject);

begin

Form1.Erase;

end;

procedure TForm1.N3Click(Sender: TObject);

begin

Form1.Button2.Click;

end;

procedure TForm1.Edit1Exit(Sender: TObject);

begin

if Form1.Edit1.Text='' then

begin

Form1.Edit1.Text:='1';

Playsound('data\sound\error',0,SND_ASYNC)

end;

end;

procedure TForm1.Edit4Exit(Sender: TObject);

begin

if Form1.Edit4.Text='' then

begin

Form1.Edit4.Text:='1';

Playsound('data\sound\error',0,SND_ASYNC)

end;

end;

procedure TForm1.Edit5Exit(Sender: TObject);

begin

if Form1.Edit5.Text='' then

begin

Form1.Edit5.Text:='1';

Playsound('data\sound\error',0,SND_ASYNC)

end;

end;

procedure TForm1.Edit6Exit(Sender: TObject);

begin

if Form1.Edit6.Text='' then

begin

Form1.Edit6.Text:='1';

Playsound('data\sound\error',0,SND_ASYNC)

end;

end;

procedure TForm1.Edit2Exit(Sender: TObject);

begin

if Form1.Edit2.Text='' then

begin

Form1.Edit2.Text:='1';

Playsound('data\sound\error',0,SND_ASYNC)

end;

end;

procedure TForm1.Edit7Exit(Sender: TObject);

begin

if Form1.Edit7.Text='' then

begin

Form1.Edit7.Text:='1';

Playsound('data\sound\error',0,SND_ASYNC)

end;

end;

procedure TForm1.Edit9Exit(Sender: TObject);

begin

if Form1.Edit9.Text='' then

begin

Form1.Edit9.Text:='1';

Playsound('data\sound\error',0,SND_ASYNC)

end;

end;

procedure TForm1.Edit3Exit(Sender: TObject);

begin

if Form1.Edit3.Text='' then

begin

Form1.Edit3.Text:='1';

Playsound('data\sound\error',0,SND_ASYNC)

end;

end;

procedure TForm1.Edit10Exit(Sender: TObject);

begin

if Form1.Edit10.Text='' then

begin

Form1.Edit10.Text:='1';

Playsound('data\sound\error',0,SND_ASYNC)

end;

end;

procedure TForm1.Edit8Exit(Sender: TObject);

begin

if Form1.Edit8.Text='' then

begin

Form1.Edit8.Text:='1';

Playsound('data\sound\error',0,SND_ASYNC)

end;

end;

procedure TForm1.TabSheet2Enter(Sender: TObject);

begin

Form1.Timer1.Enabled:=False;

end;

procedure TForm1.TabSheet2ContextPopup(Sender: TObject; MousePos: TPoint;

var Handled: Boolean);

begin

Form1.Timer1.Enabled:=False;

end;

procedure TForm1.TabSheet2Show(Sender: TObject);

begin

Form1.Timer1.Enabled:=False;

end;

procedure TForm1.TabSheet1Show(Sender: TObject);

begin

Form1.Button2.Click;

end;

procedure TForm1.TabSheet1Enter(Sender: TObject);

begin

Form1.Button2.Click;

end;

function TForm1.Map(x, in_min, in_max, out_min, out_max: double): double;

begin

Result:=(x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;

end;

procedure TForm1.FormShow(Sender: TObject);

begin

Logo.showmodal;

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

Form1.Timer1.Enabled:=True;

Form1.Button4.Visible:=True;

Playsound('data\sound\start moving',0,SND_ASYNC)

end;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

begin

Form2.Close;

Form3.Close;

AboutProg.Close;

AboutMe.Close;

Form6.Close;

Playsound('data\sound\escape',0,SND_ASYNC);

Form1.Timer2.Enabled:=true;

CanClose:=false;

if Clo=true then

begin

Form1.Timer2.Enabled:=false;

CanClose:=true;

end;

end;

procedure TForm1.Timer2Timer(Sender: TObject);

begin

AlphaR:=AlphaR-1;

Form1.AlphaBlendValue:=AlphaR;

if(AlphaR=0) then

begin

Clo:=true;

Close;

end;

end;

procedure TForm1.Timer1Timer(Sender: TObject);

begin

Form1.Button1.Click;

if SlideBlock1.vpravo=true then // позже заменить на тру

begin

//.................................... 1 звено..................................

SlideBlock1.k:=1-((strtoint(Form1.Edit8.Text) + strtoint(Form1.Edit5.Text) - strtoint(Form1.Edit1.Text) -

(SlideBlock1.prX1))/(strtoint(Form1.Edit8.Text) - strtoint(Form1.Edit1.Text) + strtoint(Form1.Edit5.Text)));

SlideBlock1.a:=0.5*sqr(pi)*Cos(pi*SlideBlock1.k);

SlideBlock1.v:=SlideBlock1.v+SlideBlock1.a;

SlideBlock1.prX1:=SlideBlock1.prX1 + round(SlideBlock1.v);

SlideBlock1.t:=SlideBlock1.t+0.01;

end;

//..............................................................................

//..................................... 2 звено.................................

SlideBlock2.k:=1-(strtoint(Form1.Edit9.Text)-

SlideBlock2.prY2)/(strtoint(Form1.Edit9.Text));

SlideBlock2.a:=2*pi*Sin(2*pi*SlideBlock2.k);

SlideBlock2.v:=SlideBlock2.v+SlideBlock2.a;

SlideBlock2.prY2:=round(SlideBlock2.prY2 + SlideBlock2.v);

//..............................................................................

//......3 ......................................................................

Crank.k:=1-(strtoint(Form1.Edit10.Text)-

Crank.Angle)/(strtoint(Form1.Edit10.Text));

if Crank.k<0.5 then

Crank.a:=4

else Crank.a:=-4;

Crank.v:=Crank.v+Crank.a;

Crank.Angle:=Crank.Angle+Crank.v;

//..............................................................................

if SlideBlock1.t/100<=Round(Form3.TN) then

begin

yt:=yt+1;

Form3.StringGrid1.Cells[1,yt]:=floattostr(SlideBlock1.a);

Form3.StringGrid1.Cells[2,yt]:=floattostr(SlideBlock1.v);

Form3.StringGrid1.Cells[3,yt]:=floattostr(SlideBlock1.prX1);

Form3.StringGrid1.Cells[4,yt]:=floattostr(SlideBlock2.a);

Form3.StringGrid1.Cells[5,yt]:=floattostr(SlideBlock2.v);

Form3.StringGrid1.Cells[6,yt]:=floattostr(SlideBlock2.prY2);

Form3.StringGrid1.Cells[7,yt]:=floattostr(Crank.a);

Form3.StringGrid1.Cells[8,yt]:=floattostr(Crank.v);

Form3.StringGrid1.Cells[9,yt]:=floattostr(Crank.angle);

end;

SlideBlock1.t:=SlideBlock1.t+1;

Gauge1.Progress:=SlideBlock1.prX1;

end;

procedure TForm1.N8Click(Sender: TObject);

begin

Form2.Visible:=true;

end;

procedure TForm1.N7Click(Sender: TObject);

begin

Form3.Visible:=true;

end;

procedure TForm1.Button4Click(Sender: TObject);

begin

Form1.Timer1.Enabled:=False;

Form1.Button4.Hide;

end;

procedure TForm1.Button5Click(Sender: TObject);

begin

Form1.Erase;

Form1.Button5.Hide;

end;

procedure TForm1.Save1Click(Sender: TObject);

begin

Form3.SaveStringGrid(Form3.StringGrid1, 'data\temp.ROBOT');

end;

procedure TForm1.Load1Click(Sender: TObject);

begin

Form3.LoadStringGrid(Form3.StringGrid1, 'data\temp.ROBOT');

end;

procedure TForm1.N1Click(Sender: TObject);

begin

AboutProg.Show;

end;

procedure TForm1.N2Click(Sender: TObject);

begin

AboutMe.Show;

end;

procedure TForm1.N10Click(Sender: TObject);

begin

Form6.Show;

end;

procedure TForm1.Saveas1Click(Sender: TObject);

begin

if SaveDialog1.Execute then

Form3.SaveStringGrid(Form3.StringGrid1,SaveDialog1.FileName);

end;

procedure TForm1.N9Click(Sender: TObject);

begin

Form2.Button2.Click;

end;

end.

unit grfunc_;

interface

uses

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

ExtCtrls, StdCtrls, Buttons, printers, TeEngine, TeeFunci, Series,

TeeProcs, Chart;

type

TForm2 = class(TForm)

GroupBox2: TGroupBox;

Chart1: TChart;

Series1: TLineSeries;

TeeFunction1: TAddTeeFunction;

Button1: TButton;

Button2: TButton;

Chart2: TChart;

LineSeries1: TLineSeries;

AddTeeFunction1: TAddTeeFunction;

Chart3: TChart;

LineSeries2: TLineSeries;

AddTeeFunction2: TAddTeeFunction;

GroupBox1: TGroupBox;

Chart4: TChart;

LineSeries3: TLineSeries;

AddTeeFunction3: TAddTeeFunction;

Chart5: TChart;

LineSeries4: TLineSeries;

AddTeeFunction4: TAddTeeFunction;

Chart6: TChart;

LineSeries5: TLineSeries;

AddTeeFunction5: TAddTeeFunction;

GroupBox3: TGroupBox;

Chart7: TChart;

LineSeries6: TLineSeries;

AddTeeFunction6: TAddTeeFunction;

Chart8: TChart;

LineSeries7: TLineSeries;

AddTeeFunction7: TAddTeeFunction;

Chart9: TChart;

LineSeries8: TLineSeries;

AddTeeFunction8: TAddTeeFunction;

RadioButton1: TRadioButton;

RadioButton2: TRadioButton;

RadioButton3: TRadioButton;

RadioButton4: TRadioButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

implementation

uses Unit1;

{$R *.DFM}

procedure TForm2.Button1Click(Sender: TObject);

var

i:double;

begin

Series1.Clear;

LineSeries1.Clear;

LineSeries2.Clear;

LineSeries3.Clear;

LineSeries4.Clear;

LineSeries5.Clear;

LineSeries6.Clear;

LineSeries7.Clear;

LineSeries8.Clear;

while i<=1 do

begin

Series1.AddXY(i,2*pi*Sin(2*pi*i),'',clGreen);

LineSeries1.AddXY(i,4*pi*pi*Cos(2*pi*i),'',clRed);

LineSeries2.AddXY(i,-8*pi*pi*pi*Sin(2*pi*i),'',clBlue);

LineSeries3.AddXY(i,0.5*pi*pi*Cos(pi*i),'',clGreen);

LineSeries4.AddXY(i,-2.78416*Sin(pi*i),'',clRed);

LineSeries5.AddXY(i,-8.7467*Cos(pi*i),'',clBlue);

if i<=0.5 then

begin

LineSeries6.AddXY(i,4,'',clGreen);

LineSeries7.AddXY(i,4*i,'',clRed);

LineSeries8.AddXY(i,2*i*i,'',clBlue);

end

else

begin

LineSeries6.AddXY(i,-4,'',clGreen);

LineSeries7.AddXY(i,-4*i,'',clRed);

LineSeries8.AddXY(i,-2*i*i,'',clBlue);

end;

i:=i+0.1;

end;

end;

procedure TForm2.Button2Click(Sender: TObject);

begin

if RadioButton1.Checked then

begin

Chart1.Print;

Chart2.Print;

Chart3.Print;

end;

if RadioButton2.Checked then

begin

Chart4.Print;

Chart5.Print;

Chart6.Print;

end;

if RadioButton3.Checked then

begin

Chart7.Print;

Chart8.Print;

Chart9.Print;

end;

if RadioButton4.Checked then

begin

Chart1.Print;

Chart2.Print;

Chart3.Print;

Chart4.Print;

Chart5.Print;

Chart6.Print;

Chart7.Print;

Chart8.Print;

Chart9.Print;

end;

end;

end.

unit LogoUnit;

interface

uses

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

Dialogs, ExtCtrls, pngimage,mmsystem;

type

TLogo = class(TForm)

Timer1: TTimer;

Image1: TImage;

procedure Timer1Timer(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Logo: TLogo;

t,a : integer;

implementation

{$R *.dfm}

procedure TLogo.Timer1Timer(Sender: TObject);

begin

if a<256 then

Logo.AlphaBlendValue:=a;

t:=t+70;

a:=a+2;

if t=7000 then

Close;

end;

procedure TLogo.FormCreate(Sender: TObject);

begin

t:=0;a:=0;

Logo.Image1.Picture.LoadFromFile('data\Logo.png');

Playsound('data\sound\entry',0,SND_ASYNC);

end;

end.

unit Unit3;

interface

uses

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

Dialogs, Grids;

type

TForm3 = class(TForm)

StringGrid1: TStringGrid;

procedure FormCreate(Sender: TObject);

procedure SaveStringGrid(StringGrid: TStringGrid; const FileName: TFileName);

procedure LoadStringGrid(StringGrid: TStringGrid; const FileName: TFileName);

function setTime():double;

private

{ Private declarations }

public

TN : real;

{ Public declarations }

end;

var

Form3: TForm3;

implementation

{$R *.dfm}

procedure TForm3.FormCreate(Sender: TObject);

begin

Form3.StringGrid1.Cells[0,0]:='Время';

Form3.StringGrid1.Cells[1,0]:='A1(t)';

Form3.StringGrid1.Cells[2,0]:='V1(t)';

Form3.StringGrid1.Cells[3,0]:='S1(t)';

Form3.StringGrid1.Cells[4,0]:='A2(t)';

Form3.StringGrid1.Cells[5,0]:='V2(t)';

Form3.StringGrid1.Cells[6,0]:='S2(t)';

Form3.StringGrid1.Cells[7,0]:='A3(t)';

Form3.StringGrid1.Cells[8,0]:='V3(t)';

Form3.StringGrid1.Cells[9,0]:='R3(t)';

TN:=0;

Self.setTime;

end;

procedure TForm3.LoadStringGrid(StringGrid: TStringGrid; const FileName: TFileName);

var

f: TextFile;

iTmp, i, k: Integer;

strTemp: String;

begin

AssignFile(f, FileName);

Reset(f);

with StringGrid do

begin

// Get number of columns

Readln(f, iTmp);

ColCount := iTmp;

// Get number of rows

Readln(f, iTmp);

RowCount := iTmp;

// loop through cells & fill in values

for i := 0 to ColCount - 1 do

for k := 0 to RowCount - 1 do

begin

Readln(f, strTemp);

Cells[i, k] := strTemp;

end;

end;

CloseFile(f);

end;

procedure TForm3.SaveStringGrid(StringGrid: TStringGrid; const FileName: TFileName);

var

f: TextFile;

i, k: Integer;

begin

AssignFile(f, FileName);

Rewrite(f);

with StringGrid do

begin

// Write number of Columns/Rows

Writeln(f, ColCount);

Writeln(f, RowCount);

// loop through cells

for i := 0 to ColCount - 1 do

for k := 0 to RowCount - 1 do

Writeln(F, Cells[i, k]);

end;

CloseFile(F);

end;

function TForm3.setTime: double;

var

i:integer;

begin

i:=1;

while TN<4 do

begin

Form3.StringGrid1.Cells[0,i]:=floattostr(TN);

TN:=TN+0.02;

i:=i+1;

end;

end;

end.

unit Unit4;

interface

uses

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

Dialogs, StdCtrls;

type

TAboutProg = class(TForm)

StaticText1: TStaticText;

private

{ Private declarations }

public

{ Public declarations }

end;

var

AboutProg: TAboutProg;

implementation

{$R *.dfm}

end.

unit Unit5;

interface

uses

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

Dialogs, ExtCtrls, StdCtrls;

type

TAboutMe = class(TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Image1: TImage;

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

AboutMe: TAboutMe;

implementation

{$R *.dfm}

procedure TAboutMe.FormCreate(Sender: TObject);

begin

AboutMe.Image1.Picture.LoadFromFile('data\bmp\me.bmp');

end;

end.

unit Unit6;

interface

uses

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

Dialogs, StdCtrls, ComCtrls;

type

TForm6 = class(TForm)

PageControl1: TPageControl;

TabSheet1: TTabSheet;

TabSheet2: TTabSheet;

TabSheet3: TTabSheet;

TabSheet4: TTabSheet;

TabSheet5: TTabSheet;

TabSheet6: TTabSheet;

TabSheet7: TTabSheet;

Memo1: TMemo;

Memo2: TMemo;

Memo3: TMemo;

Memo4: TMemo;

Memo5: TMemo;

Memo6: TMemo;

Memo7: TMemo;

private

{ Private declarations }

public

constructor Create;

{ Public declarations }

end;

var

Form6: TForm6;

implementation

{$R *.dfm}

{ TForm6 }

constructor TForm6.Create;

begin

end;

end.