Моделирования маятника с подвижной точкой подвеса

Рассмотрение структурной схемы программы визуального проектирования маятника Капицы. Описание разработанного класса модели. Характеристика реализаций технологий Com. Определение динамических библиотек. Выявление возможностей созданной программы.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 05.02.2015
Размер файла 933,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

FPhi: Double;

Fw: Double;

FG: Double;

FTimeLimit: Double;

FTime: Double;

FNomerSeries: Integer;

Fk: Integer;

Fk0: Integer;

Fk1: Integer;

FImage: TImage;

FFormIm: TForm;

FWidthImage, FHeightImage: Integer;

FWidthFormIm, FHeightFormIm: Integer;

FMainTable: TStringGrid;

FTable: TStringGrid;

FMemo: TMemo;

FChart: TChart;

FSeparatewindow: Boolean;

FMultipleinstances: Boolean;

FLog: Boolean;

protected

procedure SetSeparatewindow(NewSeparatewindow: Boolean);stdcall;

procedure SetMultipleinstances(NewMultipleinstances: Boolean);stdcall;

procedure SetLog(NewLog: Boolean);stdcall;

procedure SetTimeLimit(NewTimeLimit: Double);stdcall;

procedure SetImage(NewImage: TImage);stdcall;

procedure SetFormIm(NewFormIm: TForm);stdcall;

procedure SetMainTable(NewMainTable: TStringGrid);stdcall;

procedure SetTable(NewTable: TStringGrid);stdcall;

procedure SetChart(NewChart: TChart);stdcall;

procedure SetMemo(NewMemo: TMemo);stdcall;

procedure SetCenterXImage(NewCenterXImage: Integer);stdcall;

procedure SetCenterYImage(NewCenterYImage: Integer);stdcall;

procedure SetCenterXFormIm(NewCenterXFormIm: Integer);stdcall;

procedure SetCenterYFormIm(NewCenterYFormIm: Integer);stdcall;

procedure AddTable;

procedure CalcPhi;virtual;

procedure DifUrav;

procedure DrawNextMain;virtual;

procedure DrawNext;virtual;

function f(t,y,z: Double): Double;

function g(t,y,z: Double): Double;

function GetAmplitInit: Double;stdcall;

function GetFrequency: Double;stdcall;

function GetLength: Double;stdcall;

function GetDeviation: Double;stdcall;

function GetPastTime: Double;stdcall;

function GetAngularVelocity: Double;stdcall;

public

procedure Create(A,v,L,f,w,g: Double;time: Double;nomer: Integer);stdcall;

procedure StartBuilding;stdcall;

procedure ReadToIni;virtual;stdcall;

property Separatewindow: Boolean write SetSeparatewindow;

property Multipleinstances: Boolean write SetMultipleinstances;

property Log: Boolean write SetLog;

property TimeLimit: Double write SetTimeLimit;

property Image: TImage write SetImage;

property FormIm: TForm write SetFormIm;

property MainTable: TStringGrid write SetMainTable;

property Table: TStringGrid write SetTable;

property Memo: TMemo write SetMemo;

property Chart: TChart write SetChart;

property CenterXImage: Integer write SetCenterXImage;

property CenterYImage: Integer write SetCenterYImage;

property CenterXFormIm: Integer write SetCenterXFormIm;

property CenterYFormIm: Integer write SetCenterYFormIm;

property AmplitInit: Double read GetAmplitInit;

property Frequency: Double read GetFrequency;

property Length: Double read GetLength;

property PastTime: Double read GetPastTime;

property Deviation: Double read GetDeviation;

property AngularVelocity: Double read GetAngularVelocity;

end;

TInvertedPendulumCom=class(TPendulumCom)

protected

procedure CalcPhi;override;

procedure DrawNextMain;override;

procedure DrawNext;override;

public

procedure ReadToIni;override;

end;

const

ValArr: array[0..1] of Double = (-0.5, 0.5);

implementation

uses ComServ;

procedure TPendulumCom.Create(A,v,L,f,w,g: Double;time: Double;nomer: Integer);

begin

FA:=A;

Fv:=v;

FL:=L;

FPhi:=f;

FG:=g;

Fw:=w;

FTime:=time;

FNomerSeries:=nomer;

Fk:=RandomRange(0, 2);

Fk0:=1;

Fk1:=0;

end;

procedure TPendulumCom.SetSeparatewindow(NewSeparatewindow: Boolean);

begin

FSeparatewindow:=NewSeparatewindow;

end;

procedure TPendulumCom.SetMultipleinstances(NewMultipleinstances: Boolean);

begin

FMultipleinstances:=NewMultipleinstances;

end;

procedure TPendulumCom.SetLog(NewLog: Boolean);

begin

FLog:=NewLog;

end;

procedure TPendulumCom.SetTimeLimit(NewTimeLimit: Double);

begin

FTimeLimit:=NewTimeLimit;

end;

procedure TPendulumCom.SetImage(NewImage: TImage);

begin

FImage:=NewImage;

end;

procedure TPendulumCom.SetFormIm(NewFormIm: TForm);

begin

FFormIm:=NewFormIm;

end;

procedure TPendulumCom.SetMainTable(NewMainTable: TStringGrid);

begin

FMainTable:=NewMainTable;

end;

procedure TPendulumCom.SetTable(NewTable: TStringGrid);

begin

FTable:=NewTable;

end;

procedure TPendulumCom.SetChart(NewChart: TChart);

begin

FChart:=NewChart;

end;

procedure TPendulumCom.SetMemo(NewMemo: TMemo);

begin

FMemo:=NewMemo;

end;

procedure TPendulumCom.SetCenterXImage(NewCenterXImage: Integer);

begin

FWidthImage:=NewCenterXImage;

end;

procedure TPendulumCom.SetCenterYImage(NewCenterYImage: Integer);

begin

FHeightImage:=NewCenterYImage;

end;

procedure TPendulumCom.SetCenterXFormIm(NewCenterXFormIm: Integer);

begin

FWidthFormIm:=NewCenterXFormIm;

end;

procedure TPendulumCom.SetCenterYFormIm(NewCenterYFormIm: Integer);

begin

FHeightFormIm:=NewCenterYFormIm;

end;

function TPendulumCom.GetAmplitInit : Double;

begin

Result:=FA;

end;

function TPendulumCom.GetFrequency : Double;

begin

Result:=Fv;

end;

function TPendulumCom.GetLength : Double;

begin

Result:=FL;

end;

function TPendulumCom.GetDeviation : Double;

begin

Result:=RadToDeg(FPhi);

end;

function TPendulumCom.GetPastTime : Double;

begin

Result:=FTime;

end;

function TPendulumCom.GetAngularVelocity : Double;

begin

Result:=Fw;

end;

function TPendulumCom.f(t,y,z: Double) : Double;

begin

Result:=-(Fg/Fl+(FA*Fv*Fv)/FL*cos(Fv*t))*y;

end;

function TPendulumCom.g(t,y,z: Double) : Double;

begin

Result:=z;

end;

procedure TPendulumCom.DifUrav;

var

l1,l2,l3,l4,q1,q2,q3,q4: Double;

begin

l1:= 0.1 * f(FTime, FPhi, Fw);

q1:= 0.1 * g(FTime, FPhi, Fw);

l2:= 0.1 * f(FTime + 0.1/2, FPhi + q1/2, Fw + l1/2);

q2:= 0.1 * g(FTime + 0.1/2, FPhi + q1/2, Fw + l1/2);

l3:= 0.1 * f(FTime + 0.1/2, FPhi + q2/2, Fw + l2/2);

q3:= 0.1 * g(FTime + 0.1/2, FPhi + q2/2, Fw + l2/2);

l4:= 0.1 * f(FTime + 0.1, FPhi + q3, Fw + l3);

q4:= 0.1 * g(FTime + 0.1, FPhi + q3, Fw + l3);

Fw:= Fw + (l1 + 2*l2 + 2*l3 + l4)/6;

FPhi:= FPhi + (q1 + 2*q2 + 2*q3 + q4)/6;

end;

procedure TPendulumCom.CalcPhi;

begin

DifUrav;

end;

procedure TInvertedPendulumCom.CalcPhi;

begin

if FA*Fv>sqrt(2*Fg*Fl)

then begin

if FPhi<>0

then

if (FPhi>-DegToRad(3)) and (FPhi<DegToRad(3))

then

FPhi:=0

else

if FPhi<DegToRad(3)

then

FPhi:=FPhi+DegToRad(5)

else

if FPhi>-DegToRad(3)

then

FPhi:=FPhi-DegToRad(5);

end

else

DifUrav;

end;

procedure TPendulumCom.StartBuilding;

begin

if (FTime=Fk0*10)

then

if Fk=0

then begin

FA:=FA+ValArr[Fk];

Fk:=Fk+1;

Fk0:=Fk0+1;

end

else begin

FA:=FA+ValArr[Fk];

Fk:=Fk-1;

Fk0:=Fk0+1;

end;

if FMultipleinstances=true

then begin

DrawNextMain;

DrawNext;

end

else

if FSeparatewindow=true

then

DrawNext

else

DrawNextMain;

FChart.Series[FNomerSeries].AddXY(FTime,FPhi);

if (FTime>=RoundTo(Fk1*FTimeLimit,-2))

then

AddTable;

FTime:=RoundTo(FTime+0.1,-2);

CalcPhi;

end;

procedure TPendulumCom.DrawNextMain;

var

y0: Double;

x,y: Integer;

begin

FImage.Canvas.Brush.Color := ClWhite;

FImage.Canvas.FillRect(FImage.Canvas.ClipRect);

FImage.Canvas.Brush.Color:=clRed;

y0:=FA*cos(Fv*FTime);

FImage.Canvas.MoveTo(FWidthImage,FHeightImage+Round(y0));

FImage.Canvas.Ellipse(FWidthImage-6,FHeightImage+Round(y0)-6,FWidthImage+6,FHeightImage+Round(y0)+6);

x:=FWidthImage+Round(FL*sin(FPhi));

y:=FHeightImage+Round(FL*cos(FPhi)+y0);

FImage.Canvas.Brush.Color:=clBlack;

FImage.Canvas.LineTo(x,y);

FImage.Canvas.Ellipse(x-10,y-10,x+10,y+10);

if FLog=true

then

FMemo.Lines.Add(FormatDateTime('[DD\MM\YYYY hh:mm:ss]', Now)+' [PendulumMain]'+' Амплитуда='+FloatToStr(FA)+' Частота='+FloatToStr(Fv)+' Длина='+FloatToStr(FL)+' Угол='+FloatToStr(FPhi)+' Угловая скорость=' + FloatToStr(Fw)+' Время='+FloatToStr(FTime)+' Середина листа= ['+IntToStr(FWidthImage) +',' + IntToStr(FHeightImage)+']'+' Значение Y точки подвеса='+FloatToStr(y0)+' Используемое значение для Y точки подвеса='+FloatToStr(Round(y0))+' Координаты точки подвеса=['+IntToStr(FWidthImage)+' ,'+ IntToStr(FHeightImage+Round(y0))+']'+' Координаты маятника=['+IntToStr(x)+','+FloatToStr(y)+']');

end;

procedure TPendulumCom.DrawNext;

var

y0: Double;

x,y: integer;

begin

FFormIm.Canvas.Brush.Color := ClWhite;

FFormIm.Canvas.FillRect(FFormIm.Canvas.ClipRect);

FFormIm.Canvas.Brush.Color:=clRed;

y0:=FA*cos(Fv*FTime);

FFormIm.Canvas.MoveTo(FWidthFormIm,FHeightFormIm+Round(y0));

FFormIm.Canvas.Ellipse(FWidthFormIm-6,FHeightFormIm+Round(y0)-6,FWidthFormIm+6,FHeightFormIm+Round(y0)+6);

x:=FWidthFormIm+Round(FL*sin(FPhi));

y:=FHeightFormIm+Round(FL*cos(FPhi)+y0);

FFormIm.Canvas.Brush.Color:=clBlack;

FFormIm.Canvas.LineTo(x,y);

FFormIm.Canvas.Ellipse(x-10,y-10,x+10,y+10);

if FLog=true

then

FMemo.Lines.Add(FormatDateTime('[DD\MM\YYYY hh:mm:ss]', Now)+' [Pendulum]'+' Амплитуда='+FloatToStr(FA)+' Частота='+FloatToStr(Fv)+' Длина='+FloatToStr(FL)+' Угол='+FloatToStr(FPhi)+' Угловая скорость= '+FloatToStr(Fw)+' Время='+FloatToStr(FTime)+' Середина листа=['+IntToStr(FWidthFormIm)+ ','+ IntToStr(FHeightFormIm)+']'+' Значение Y точки подвеса='+FloatToStr(y0)+' Используемое значение для Y точки подвеса='+FloatToStr(Round(y0))+' Координаты точки подвеса=['+IntToStr(FWidthFormIm)+ ','+IntToStr(FHeightFormIm+Round(y0))+']'+' Координаты маятника=['+IntToStr(x)+','+IntToStr(y)+']');

end;

procedure TPendulumCom.AddTable;

begin

if (FMultipleinstances=true) or (FSeparatewindow=false)

then begin

FMainTable.Cells[0,FMainTable.RowCount-1]:=FloatToStr(FA);

FMainTable.Cells[1,FMainTable.RowCount-1]:=FloatToStr(Fv);

FMainTable.Cells[2,FMainTable.RowCount-1]:=FloatToStr(FL);

FMainTable.Cells[3,FMainTable.RowCount-1]:=FloatToStr(RoundTo(RadToDeg(FPhi),-2));

FMainTable.Cells[4,FMainTable.RowCount-1]:=FloatToStr(FTime);

FMainTable.RowCount:=FMainTable.RowCount+1;

FTable.Cells[0,FTable.RowCount-1]:=FloatToStr(FA);

FTable.Cells[1,FTable.RowCount-1]:=FloatToStr(Fv);

FTable.Cells[2,FTable.RowCount-1]:=FloatToStr(FL);

FTable.Cells[3,FTable.RowCount-1]:=FloatToStr(RoundTo(RadToDeg(FPhi),-2));

FTable.Cells[4,FTable.RowCount-1]:=FloatToStr(FTime);

FTable.RowCount:=FTable.RowCount+1;

end

else begin

FMainTable.Cells[0,FMainTable.RowCount-1]:=FloatToStr(FA);

FMainTable.Cells[1,FMainTable.RowCount-1]:=FloatToStr(Fv);

FMainTable.Cells[2,FMainTable.RowCount-1]:=FloatToStr(FL);

FMainTable.Cells[3,FMainTable.RowCount-1]:=FloatToStr(RoundTo(RadToDeg(FPhi),-2));

FMainTable.Cells[4,FMainTable.RowCount-1]:=FloatToStr(FTime);

FMainTable.RowCount:=FMainTable.RowCount+1;

end;

Fk1:=Fk1+1;

end;

procedure TInvertedPendulumCom.DrawNextMain;

var

y0: Double;

x,y: integer;

begin

FImage.Canvas.Brush.Color := ClWhite;

FImage.Canvas.FillRect(FImage.Canvas.ClipRect);

FImage.Canvas.Brush.Color:=clRed;

y0:=FA*cos(Fv*FTime);

FImage.Canvas.MoveTo(FWidthImage,FHeightImage+Round(y0));

FImage.Canvas.Ellipse(FWidthImage-6,FHeightImage+Round(y0)-6,FWidthImage+6,FHeightImage+Round(y0)+6);

x:=FWidthImage+Round(FL*sin(FPhi));

y:=FHeightImage+Round(-FL*cos(FPhi)+y0);

FImage.Canvas.Brush.Color:=clBlack;

FImage.Canvas.LineTo(x,y);

FImage.Canvas.Ellipse(x-10,y-10,x+10,y+10);

if FLog=true

then

FMemo.Lines.Add(FormatDateTime('[DD\MM\YYYY hh:mm:ss]', Now)+' [InvPendulumMain]'+' Амплитуда='+ FloatToStr(FA)+' Частота='+FloatToStr(Fv)+' Длина='+FloatToStr(FL)+' Угол='+FloatToStr(FPhi)+' Угловая скорость='+FloatToStr(Fw)+' Время='+FloatToStr(FTime)+' Середина листа=['+IntToStr(FWidthImage) + ','+IntToStr(FHeightImage)+']'+' Значение Y точки подвеса='+FloatToStr(y0)+' Используемое значение для Y точки подвеса='+FloatToStr(Round(y0))+' Координаты точки подвеса=['+IntToStr(FWidthImage) + ', ' +IntToStr(FHeightImage+Round(y0))+']'+' Координаты маятника=['+IntToStr(x)+','+IntToStr(y)+']');

end;

procedure TInvertedPendulumCom.DrawNext;

var

y0: Double;

x,y: integer;

begin

FFormIm.Canvas.Brush.Color := ClWhite;

FFormIm.Canvas.FillRect(FFormIm.Canvas.ClipRect);

FFormIm.Canvas.Brush.Color:=clRed;

y0:=FA*cos(Fv*FTime);

FFormIm.Canvas.MoveTo(FWidthFormIm,FHeightFormIm+Round(y0));

FFormIm.Canvas.Ellipse(FWidthFormIm-6,FHeightFormIm+Round(y0)-6,FWidthFormIm+6,FHeightFormIm+Round(y0)+6);

x:=FWidthFormIm+Round(FL*sin(FPhi));

y:=FHeightFormIm+Round(-FL*cos(FPhi)+y0);

FFormIm.Canvas.Brush.Color:=clBlack;

FFormIm.Canvas.LineTo(x,y);

FFormIm.Canvas.Ellipse(x-10,y-10,x+10,y+10);

if FLog=true

then

FMemo.Lines.Add(FormatDateTime('[DD\MM\YYYY hh:mm:ss]', Now)+' [InvPendulum]'+' Амплитуда='+FloatToStr(FA)+' Частота='+FloatToStr(Fv)+' Длина='+FloatToStr(FL)+' Угол='+FloatToStr(FPhi)+' Угловая скорость='+ FloatToStr(Fw)+' Время='+FloatToStr(FTime)+' Середина листа=['+IntToStr(FWidthFormIm)+ ','+ IntToStr(FHeightFormIm)+']'+' Значение Y точки подвеса='+FloatToStr(y0)+' Используемое значение для Y точки подвеса='+FloatToStr(Round(y0))+' Координаты точки подвеса= ['+IntToStr(FWidthFormIm) +','+ IntToStr(FHeightFormIm+Round(y0))+']'+' Координаты маятника=['+IntToStr(x)+','+IntToStr(y)+']');

end;

procedure TPendulumCom.ReadToIni;

var

Ini: Tinifile;

begin

Ini:=TiniFile.Create(extractfilepath(paramstr(0))+'\Option.ini');

FA:=Ini.ReadFloat('ParametrPendulum','Amplitude',2);

Fv:=Ini.ReadFloat('ParametrPendulum','Frequency',3);

FL:=Ini.ReadFloat('ParametrPendulum','Length',40);

FPhi:=Ini.ReadFloat('ParametrPendulum','Angle',0.1);

Fw:=Ini.ReadFloat('ParametrPendulum','Acceleration due to gravity',9.81);

FTimeLimit:=Ini.ReadFloat('ParametrPendulum','Time',10);

Ini.Free;

end;

procedure TInvertedPendulumCom.ReadToIni;

var

Ini: Tinifile;

begin

Ini:=TiniFile.Create(extractfilepath(paramstr(0))+'\Option.ini');

FA:=Ini.ReadFloat('ParametrPendulum','Amplitude',2);

Fv:=Ini.ReadFloat('ParametrPendulum','Frequency',3);

FL:=Ini.ReadFloat('ParametrPendulum','Length',40);

FPhi:=Ini.ReadFloat('ParametrPendulum','Angle',0.1);

Fw:=Ini.ReadFloat('ParametrPendulum','Acceleration due to gravity',9.81);

FTimeLimit:=Ini.ReadFloat('ParametrPendulum','Time',10);

Ini.Free;

end;

initialization

TComObjectFactory.Create(ComServer, TPendulumCom, ClassPendulumCom,

'PendulumCom', '', ciMultiInstance, tmApartment);

TComObjectFactory.Create(ComServer, TInvertedPendulumCom, ClassInvertedPendulumCom,

'PendulumCom', '', ciMultiInstance, tmApartment);

end.

unit UComPendulumTlb;//Com-ентерфейс

interface

uses

Forms, Graphics, Grids, Chart, StdCtrls, ExtCtrls;

const

ClassPendulumCom: TGUID = '{34E1E2C3-C747-4DC9-82D4-9380EA668FC9}';

ClassInvertedPendulumCom: TGUID = '{034CB2B8-30D7-4287-A609-895E8EF4FC0F}';

type

IPendulumCom = interface

['{2064989E-6DA5-4273-B54E-4A60CC6EF2B6}']

procedure SetSeparatewindow(NewSeparatewindow: Boolean);stdcall;

procedure SetMultipleinstances(NewMultipleinstances: Boolean);stdcall;

procedure SetLog(NewLog: Boolean);stdcall;

procedure SetTimeLimit(NewTimeLimit: Double);stdcall;

procedure SetImage(NewImage: TImage);stdcall;

procedure SetFormIm(NewFormIm: TForm);stdcall;

procedure SetMainTable(NewMainTable: TStringGrid);stdcall;

procedure SetTable(NewTable: TStringGrid);stdcall;

procedure SetChart(NewChart: TChart);stdcall;

procedure SetMemo(NewMemo: TMemo);stdcall;

procedure SetCenterXImage(NewCenterXImage: Integer);stdcall;

procedure SetCenterYImage(NewCenterYImage: Integer);stdcall;

procedure SetCenterXFormIm(NewCenterXFormIm: Integer);stdcall;

procedure SetCenterYFormIm(NewCenterYFormIm: Integer);stdcall;

function GetAmplitInit: Double;stdcall;

function GetFrequency: Double;stdcall;

function GetLength: Double;stdcall;

function GetDeviation: Double;stdcall;

function GetPastTime: Double;stdcall;

function GetAngularVelocity: Double;stdcall;

procedure Create(A,v,L,f,w,g: Double;time: Double;nomer: Integer);stdcall;

procedure StartBuilding;stdcall;

procedure ReadToIni;stdcall;

property Separatewindow: Boolean write SetSeparatewindow;

property Multipleinstances: Boolean write SetMultipleinstances;

property Log: Boolean write SetLog;

property TimeLimit: Double write SetTimeLimit;

property Image: TImage write SetImage;

property FormIm: TForm write SetFormIm;

property MainTable: TStringGrid write SetMainTable;

property Table: TStringGrid write SetTable;

property Memo: TMemo write SetMemo;

property Chart: TChart write SetChart;

property CenterXImage: Integer write SetCenterXImage;

property CenterYImage: Integer write SetCenterYImage;

property CenterXFormIm: Integer write SetCenterXFormIm;

property CenterYFormIm: Integer write SetCenterYFormIm;

property AmplitInit: Double read GetAmplitInit;

property Frequency: Double read GetFrequency;

property Length: Double read GetLength;

property PastTime: Double read GetPastTime;

property Deviation: Double read GetDeviation;

property AngularVelocity: Double read GetAngularVelocity;

end;

implementation

end.

library Prompt;//Библиотека

uses

SysUtils,

Classes,

Windows,

UnitPrompt in 'UnitPrompt.pas' {FormPrompt};

{$R *.res}

procedure ShowPrompt(AOwner:TComponent);stdcall;

var

Form:TFormPrompt;

begin

Form:=TFormPrompt.Create(AOwner); //создать форму

Form.Show; //покащать форму

Form.Repaint; //перерисовать форму

//пока не вышел лимит времени - ничего не делать

sleep(5000);

Form.Close; //закрыть форму

Form.Free; //уничтожить форму

end;

exports ShowPrompt;

begin

end.

unit UnitPrompt;

interface

uses

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

Dialogs, ExtCtrls;

type

TFormPrompt = class(TForm)

Image1: TImage;

private

{ Private declarations }

public

{ Public declarations }

end;

var

FormPrompt: TFormPrompt;

implementation

{$R *.dfm}

end.

library About;//Библиотека

uses

SysUtils,

Classes,

Windows,

UnitAbout in 'UnitAbout.pas' {FormAbout};

{$R *.res}

procedure ShowAbout(AOwner:TComponent);stdcall;

var

Form:TFormAbout;

begin

Form:=TFormAbout.Create(AOwner);

Form.ShowModal;

Form.Free;

end;

exports ShowAbout;

begin

end.

unit UnitAbout;

interface

uses

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

Dialogs, StdCtrls, XPMan, ExtCtrls;

type

TFormAbout = class(TForm)

Button1: TButton;

Label1: TLabel;

XPManifest1: TXPManifest;

Label2: TLabel;

Label3: TLabel;

Image1: TImage;

Panel1: TPanel;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TFormAbout;

implementation

{$R *.dfm}

procedure TFormAbout.Button1Click(Sender: TObject);

begin

Close;

end;

end.

Размещено на Allbest.ru

...

Подобные документы

  • Анализ временных рядов. Разработка программы для среды визуального проектирования Borland Delphi 7.0. Математическая формулировка задачи. Структурная схема программы. Описание реализации технологии COM, динамических библиотек, возможностей программы.

    курсовая работа [4,3 M], добавлен 14.11.2010

  • Анализ преимуществ и недостатков различных численных методов решения дифференциальных уравнений высших порядков. Обоснование выбора метода Рунге-Кутта четвертого порядка. Разработка программы, моделирующей физическое и математическое поведение маятника.

    курсовая работа [1,6 M], добавлен 11.07.2012

  • Разработка имитационной модели для изучения движения нелинейного маятника с графическим отображением в ГИС Maple в режиме функционирования системы наблюдений без задержки времени. Гармонические и периодические колебания маятника. Теорема Гюйгенса.

    курсовая работа [1,3 M], добавлен 29.05.2014

  • Стандартная библиотека для всех 32-разрядных операционных систем - OpenGL. Структурная схема программы. Описание разработанного класса, реализации технологии Com, динамических библиотек. Средства использования сервисов, предоставляемых Microsoft Office.

    курсовая работа [4,3 M], добавлен 14.11.2010

  • Исследование характера движения математического маятника в идеальных условиях, то есть без учёта сил сопротивления, что позволяет маятнику совершать гармонические колебания неограниченное количество времени. Рассмотрение алгоритма решения задачи на ЭВМ.

    курсовая работа [231,1 K], добавлен 07.03.2013

  • Процесс моделирования работы САПР: описание моделирующей системы, разработка структурной схемы и Q-схемы, построение временной диаграммы, построение укрупненного моделирующего алгоритма. Описание математической модели, машинной программы решения задачи.

    курсовая работа [291,6 K], добавлен 03.07.2011

  • Существующие альтернативы программы. Описание формул для выкроек, используемых в разработке. Описание разрабатываемой программы, а также структура ее интерфейса. Детальное описание возможностей и спецификация, функциональные особенности программы.

    курсовая работа [427,4 K], добавлен 10.10.2015

  • Постановка нелинейной задачи. Кусочно-линейная и кусочно-постоянная аппроксимация нелинейностей. Сопровождающая кусочно-линейная задача минимальной интенсивности. Свойства оптимальной стартовой обратной связи. Стабилизация перевернутого маятника.

    дипломная работа [412,8 K], добавлен 28.05.2013

  • Применение программного обеспечения для разработки игры "Быки и коровы". Описание алгоритма и интерфейса пользователя программы. Назначение и область применения и описание возможностей программы. Рассмотрение списка сообщений об ошибках программы.

    курсовая работа [799,2 K], добавлен 26.04.2021

  • Основные типы динамических подключаемых библиотек DLL: исполняемые и библиотеки ресурсов. Способы экспорта процедур и функций: по имени и порядковому номеру. Системные требования к разработке программы для организации проведения опросов (тестов).

    курсовая работа [124,3 K], добавлен 23.07.2012

  • Описание структурной схемы операционного устройства. Построение обратной структурной таблицы автомата. Проектирование функций выходов и управление элементами памяти. Изображение пользовательского интерфейса и инструкции по инсталляции и запуску программы.

    курсовая работа [642,6 K], добавлен 19.05.2014

  • Характеристика функций имитационного моделирования. Знакомство с особенностями имитационного моделирования агрегированной системы массового обслуживания. Анализ программы GPSSWorld: рассмотрение возможностей, способы составления имитационной модели.

    курсовая работа [1,6 M], добавлен 27.05.2013

  • Характеристика состава, интерфейса и основных возможностей программы схемотехнического моделирования и проектирования семейства Micro-Cap8, которая относится к наиболее популярным системам автоматизированного проектирования (САПР) электронных устройств.

    реферат [108,0 K], добавлен 12.03.2011

  • Характеристика алгоритмов и программных реализаций поведения агентов в двумерной среде. Исследование разработки структур данных и знаний. Особенность создания интерфейса и карты лабиринта. Экспериментальное тестирование и отладка модулей программы.

    дипломная работа [2,4 M], добавлен 12.08.2017

  • Назначение и применение микроконтроллеров - интегральных микросхем, предназначенных для управления электронными схемами. Описание способа адресации. Разработка программы, описание электрической и структурной схемы разрабатываемого микроконтроллера.

    курсовая работа [177,6 K], добавлен 30.06.2014

  • Необходимость создания моделируемой системы. Описание моделируемой системы и задание моделирования. Структурная схема модели системы. Блок–диаграмма. Текст программы. Описание текста программы. Результаты моделирования. Эксперимент, его результаты.

    курсовая работа [35,9 K], добавлен 19.11.2007

  • Разработка алгоритма решения задачи численного интегрирования методом трапеции. Словесное описание и блок-схема разработанного алгоритма программы. Описание интерфейса, главного окна и основных форм программы. Проверка работоспособности программы.

    курсовая работа [1,4 M], добавлен 16.03.2012

  • Изучение методов разработки приложений в среде визуального программирования Visual Studio. Создание программы, реализующей заказ железнодорожных билетов. Язык SQL-запросов в системе управления базами данных MS Access. Тестирование созданной программы.

    курсовая работа [1,0 M], добавлен 03.07.2016

  • Определение ускорения свободного падения с помощью физического маятника. Период колебания физического маятника. Нахождение ускорения свободного падения методом наименьших квадратов. Решение задач методами Гаусса-Ньютона и квазиньютоновскими методами.

    лабораторная работа [32,4 K], добавлен 29.03.2015

  • Порядок проектирования программы, демонстрирующей принцип заполнения очереди и стека и принцип удаления элементов из очереди и стека. Определение класса и всех необходимых функций. Программа на языке С, описание возможностей, используемых для алгоритма.

    курсовая работа [254,3 K], добавлен 20.05.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.