Модели сложных систем
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
?но-ориентированное программирование с использованием Delphi. - Киев: НПИФ "ДиаСофт", 1999.
. Г. Шилдт. Самоучитель Delphi 5. BHV-Санкт-Петербург. 2000
. П. Дарахвелидзе, Е. Марков Delphi - среда визуального программирования. - BHV-Санкт-Петербург 1996.
Приложения
ПРИЛОЖЕНИЕ А
Текст программы
Project15.dpr
program Project15;
Forms,
Unit2 in 'Unit2.pas' {Form1},
okean in 'okean.pas';
{$R *.res}
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;..pasUnit2;
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Buttons, ImgList, okean, Spin;
TForm1 = class(TForm)
Image1: TImage;
Image2: TImage;
Image3: TImage;
ImageList2: TImageList;
Field: TImage;
Timer1: TTimer;
Label5: TLabel;
Label1: TLabel;
Label2: TLabel;
Label8: TLabel;
ComboBox1: TComboBox;
Label3: TLabel;
Label9: TLabel;
SpinEdit4: TSpinEdit;
SpinEdit8: TSpinEdit;
Label4: TLabel;
Label7: TLabel;
SpinEdit1: TSpinEdit;
SpinEdit2: TSpinEdit;
SpinEdit3: TSpinEdit;
SpinEdit5: TSpinEdit;
procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormCreate(Sender: TObject);
procedure Image2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Image2MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Image3MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Timer1Timer(Sender: TObject);
procedure Image1Click(Sender: TObject);
procedure Image2Click(Sender: TObject);
procedure FieldMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FieldMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure SpinEdit1Change(Sender: TObject);
procedure SpinEdit2Change(Sender: TObject);
procedure SpinEdit3Change(Sender: TObject);
procedure SpinEdit5Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Form1: TForm1;
{$R *.dfm}
p0k0x0: TBitmap;
p0k0x3: TBitmap;
p0k0x6: TBitmap;
p0k0x8: TBitmap;
p0k3x0: TBitmap;
p0k3x3: TBitmap;
p0k3x6: TBitmap;
p0k3x8: TBitmap;
p0k6x0: TBitmap;
p0k6x3: TBitmap;
p0k6x6: TBitmap;
p0k6x8: TBitmap;
p0k8x0: TBitmap;
p0k8x3: TBitmap;
p0k8x6: TBitmap;
p0k8x8: TBitmap;
p3k0x0: TBitmap;
p3k0x3: TBitmap;
p3k0x6: TBitmap;
p3k0x8: TBitmap;
p3k3x0: TBitmap;
p3k3x3: TBitmap;
p3k3x6: TBitmap;
p3k3x8: TBitmap;
p3k6x0: TBitmap;
p3k6x3: TBitmap;
p3k6x6: TBitmap;
p3k6x8: TBitmap;
p3k8x0: TBitmap;
p3k8x3: TBitmap;
p3k8x6: TBitmap;
p3k8x8: TBitmap;
p6k0x0: TBitmap;
p6k0x3: TBitmap;
p6k0x6: TBitmap;
p6k0x8: TBitmap;
p6k3x0: TBitmap;
p6k3x3: TBitmap;
p6k3x6: TBitmap;
p6k3x8: TBitmap;
p6k6x0: TBitmap;
p6k6x3: TBitmap;
p6k6x6: TBitmap;
p6k6x8: TBitmap;
p6k8x0: TBitmap;
p6k8x3: TBitmap;
p6k8x6: TBitmap;
p6k8x8: TBitmap;
p8k0x0: TBitmap;
p8k0x3: TBitmap;
p8k0x6: TBitmap;
p8k0x8: TBitmap;
p8k3x0: TBitmap;
p8k3x3: TBitmap;
p8k3x6: TBitmap;
p8k3x8: TBitmap;
p8k6x0: TBitmap;
p8k6x3: TBitmap;
p8k6x6: TBitmap;
p8k6x8: TBitmap;
p8k8x0: TBitmap;
p8k8x3: TBitmap;
p8k8x6: TBitmap;
p8k8x8: TBitmap;
Play, Play_d, Nextb, Next_d, Pause, Pause_d, start, stop: TBitmap;
Playing, go: boolean;TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
if playing then
begin
Image1.Canvas.Draw(0,0,Pause_d);
playing:= false;
end else
begin
Image1.Canvas.Draw(0,0,Play_d);
playing:= true;
end;;TForm1.Image3MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
if go then
begin
Image3.Canvas.Draw(0,0,start);
go:= false;
Timer1.Enabled := not Timer1.Enabled;
end else
begin
Image3.Canvas.Draw(0,0,stop);
go:= true;
FormCreate(Sender);
Timer1.Enabled := not Timer1.Enabled;
end;;
{+}TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
if playing then
Image1.Canvas.Draw(0,0,Pause) else
Image1.Canvas.Draw(0,0,Play);
image2.Visible:=not image2.Visible;;TForm1.FormCreate(Sender: TObject);
CellSize:=52;
MaxLife:=100;
PoraDelK:=SpinEdit2.Value;
PoraDelX:=SpinEdit5.Value;
MaxGolK:=10;
MaxGolX:=10;
EST:=8;
AmountAtTheBeginingK:=SpinEdit1.Value;
AmountAtTheBeginingX := SpinEdit3.Value;
MAXSIZEX := SpinEdit4.Value;
MAXSIZEY := SpinEdit8.Value;
rasp:=ComboBox1.Text;
randomize;
Field.Left:=8;
Field.Top:=56;
Field.Width:=MAXSIZEX*CELLSIZE+1;
Field.Height:=MAXSIZEY*CELLSIZE+1;
Form1.Width:=MAXSIZEX*CELLSIZE+23;
Form1.Height:=MAXSIZEY*CELLSIZE+96;
Form1.Color:=rgb(236,233,217);
counter:=0;
go:=true;
playing:=true;
Play := TBitmap.Create;
ImageList2.GetBitmap(0,Play);
Play_d := TBitmap.Create;
ImageList2.GetBitmap(1,Play_d);
Pause := TBitmap.Create;
ImageList2.GetBitmap(2,Pause);
Pause_d := TBitmap.Create;
ImageList2.GetBitmap(3,Pause_d);
Nextb := TBitmap.Create;
ImageList2.GetBitmap(4,Nextb);
Next_d := TBitmap.Create;
ImageList2.GetBitmap(5,Next_d);
start := TBitmap.Create;
ImageList2.GetBitmap(6,start);
stop := TBitmap.Create;
ImageList2.GetBitmap(7,stop);
Image1.Canvas.Draw(0,0,Pause);
Image2.Canvas.Draw(0,0,Nextb);
Image3.Canvas.Draw(0,0,stop);
Syst := TOkean.Init(Field.Canvas);;TForm1.Image2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
Image2.Canvas.Draw(0,0,Next_d);;TForm1.Image2MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
Image2.Canvas.Draw(0,0,Nextb);;TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
Play.Free;
Play_d.Free;
Nextb.Free;
Next_d.Free;
Pause.Free;
Pause_d.Free;;TForm1.Timer1Timer(Sender: TObject);
Syst.Step;;TForm1.Image1Click(Sender: TObject);
Timer1.Enabled := not Timer1.Enabled;;TForm1.Image2Click(Sender: TObject);
Syst.Step;;TForm1.FieldMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
nx,ny:integer;
{nx:=(x div CELLSIZE)+1;
ny:=(y div CELLSIZE)+1;
if button=mbRight then
if syst.Mas[nx,ny].eda<>nil then
with syst.mas[nx,ny].eda^ do
begin
if Amount+20<=100 then Amount:=Amount+10 else
Amount:=0;
end;
if button=mbleft then
syst.Add(nx,ny,true); };TForm1.FieldMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
nx,ny:integer;
{ nx:=(x div CELLSIZE)+1;
ny:=(y div CELLSIZE)+1;
with syst.mas[nx,ny] do
begin
Field.Hint := 'TInfuz'+#13#10;
if Creature <> nil then
begin
Field.Hint:=Field.Hint+'Life='+inttostr(Creature.Life)+#13#10;
Field.Hint:=Field.Hint+'Gol='+inttostr(Creature.Gol)+#13#10;
Field.Hint:=Field.Hint+'Syt='+inttostr(Creature.Syt)+#13#10;
end else Field.Hint:=Field.Hint+'nil'+#13#10;
Field.Hint :=Field.Hint+#13#10+'THavka'+#13#10;
if Eda <> nil then
Field.Hint:=Field.Hint+'Amount='+inttostr(Eda.Amount)
else Field.Hint:=Field.Hint+'nil';
end; };TForm1.SpinEdit1Change(Sender: TObject);
AmountAtTheBeginingK:=SpinEdit1.Value;;TForm1.SpinEdit3Change(Sender: TObject);
AmountAtTheBeginingX := SpinEdit3.Value;;TForm1.SpinEdit2Change(Sender: TObject);
PoraDelK:=SpinEdit2.Value;;TForm1.SpinEdit5Change(Sender: TObject);
PoraDelX:=SpinEdit5.Value;;..pasokean;
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;=record
dx,dy:integer;
end;=class
public
x,y:integer;
private
constructor Init(InitX, InitY: integer);
procedure Draw;
destructor Done;
end;=class(TKletka)
public
Amount: integer;
Canv: TCanvas;
private
constructor Init(initx, inity, kol: integer; Canva:TCanvas)