Моделирования маятника с подвижной точкой подвеса
Рассмотрение структурной схемы программы визуального проектирования маятника Капицы. Описание разработанного класса модели. Характеристика реализаций технологий 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