VerticalWall(5,1,5);
HorizontalWall(5,1,4);
RobotEnd(6,2);
Tag(6,2);
end;
begin
RegisterGroup('myrob','ΠΠΎΠΈ Π·Π°Π΄Π°Π½ΠΈΡ Π΄Π»Ρ Π ΠΎΠ±ΠΎΡΠ°','RobTasks',2);
RegisterTask('myrob1',FirstRob);
end.
ΠΠ°Π±Π΅ΡΠ΅ΠΌ ΠΈ Π·Π°ΠΏΡΡΡΠΈΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π΅Π΅ Π² ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ ΡΠ°ΠΉΠ»Π΅ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ):
uses Robot, RobTasks;
begin
Task('myrob1');
end.
ΠΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ Π΄Π»Ρ Π ΠΎΠ±ΠΎΡΠ°:
ΠΠΎΠ±Π°Π²ΠΈΠΌ Π·Π°Π΄Π°Π½ΠΈΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΏΠΎΠ»Ρ ΡΠ»ΡΡΠ°ΠΉΠ½Π°:
procedure SecondRob;
var n,i: integer;
begin
TaskText('ΠΠ°Π΄Π°Π½ΠΈΠ΅ myrob2. ΠΠ°ΠΊΡΠ°ΡΠΈΡΡ ΠΊΠ»Π΅ΡΠΊΠΈ ΠΏΠΎΠ΄ Π·Π°ΠΊΡΠ°ΡΠ΅Π½Π½ΡΠΌΠΈ');
n:=Random(4)+7;
Field(n,4);
RobotBeginEnd(1,3,n,3);
MarkPainted(n,2);
Tag(n,3);
for i:=2 to n-1 do
if Random(3)=1 then
begin
MarkPainted(i,2);
Tag(i,3);
end;
end;
ΠΠΎΠ±Π°Π²ΠΈΠΌ Π²ΡΠ·ΠΎΠ² ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ; Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠ΅ΠΊΡΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΠΈΠ΄:
begin
RegisterGroup('myrob','ΠΠΎΠΈ Π·Π°Π΄Π°Π½ΠΈΡ Π΄Π»Ρ Π ΠΎΠ±ΠΎΡΠ°','RobTasks',2);
RegisterTask('myrob1',FirstRob);
RegisterTask('myrob2',SecondRob);
end.
ΠΠ·ΠΌΠ΅Π½ΠΈΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
uses Robot, RobTasks;
begin
Task('myrob2');
end.
ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΡΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΠΎΠΊΠ½Π΅ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ Π ΠΎΠ±ΠΎΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ Π½ΠΎΠ²ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅:
ΠΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ DMTasks ΡΠΎΠ·Π΄Π°Π½Π½Π°Ρ Π½Π°ΠΌΠΈ Π³ΡΡΠΏΠΏΠ° Π±ΡΠ»Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π° Π² ΠΌΠ°ΡΡΠ΅ΡΠ΅ ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ-Π·Π°Π³ΠΎΡΠΎΠ²ΠΎΠΊ PT4Load. ΠΡΠ»ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ Π½Π°ΠΆΠ°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΈ Π² ΠΏΠΎΡΠ²ΠΈΠ²ΡΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ PT4Load Π²Π²Π΅ΡΡΠΈ ΠΏΡΠ΅ΡΠΈΠΊΡ RB Π² ΠΏΠΎΠ»Π΅ ΠΠ°Π΄Π°Π½ΠΈΠ΅", ΡΠΎ ΠΎΠΊΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΠΈΠ΄:
ΠΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ Π³ΡΡΠΏΠΏΠ° Π·Π°Π΄Π°Π½ΠΈΠΉ myrob ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π² ΡΠΏΠΈΡΠΊΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π³ΡΡΠΏΠΏ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ Π ΠΎΠ±ΠΎΡ. ΠΠ°Π±Π΅ΡΠ΅ΠΌ ΠΈΠΌΡ Π·Π°Π΄Π°Π½ΠΈΡ myrob1:
ΠΠΎΡΠ»Π΅ Π½Π°ΠΆΠ°ΡΠΈΡ Enter Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» RBmyrob1.pas ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ:
uses Robot, RobTasks;
begin
Task('myrob1');
end.
ΠΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΡΡΠΏΠ°ΡΡ ΠΊ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΡΡΡΠ½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ :)
ΠΠΎΠ΄ΡΠ»Ρ DMTaskMaker
Π’ΠΈΠΏΡ ΠΌΠΎΠ΄ΡΠ»Ρ DMTaskMaker
type TaskProcType = procedure;
Π’ΠΈΠΏ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, Π³Π΅Π½Π΅ΡΠΈΡΡΡΡΠ΅ΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅. ΠΠ°ΠΆΠ΄ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ; Π΄Π»Ρ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π·Π°Π΄Π°Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ RegisterTask, ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌΡΡ Π½ΠΈΠΆΠ΅.
ΠΡΠΎΡΠ΅Π΄ΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ DMTaskMaker
procedure Field(szx,szy: integer);
ΠΠ°Π΄Π°Π΅Ρ ΠΏΠΎΠ»Π΅ Π§Π΅ΡΡΠ΅ΠΆΠ½ΠΈΠΊΠ° ΡΠ°Π·ΠΌΠ΅ΡΠ° szx Π½Π° szy ΠΊΠ»Π΅ΡΠΎΠΊ.
procedure DoToPoint(x,y: integer);
ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅Ρ ΠΏΠ΅ΡΠΎ Π§Π΅ΡΡΠ΅ΠΆΠ½ΠΈΠΊΠ°-ΠΏΠΎΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊΠ° Π·Π°Π΄Π°Π½ΠΈΠΉ Π² ΡΠΎΡΠΊΡ Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ (x, y).
procedure DoOnVector(dx,dy: integer);
ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅Ρ ΠΏΠ΅ΡΠΎ Π§Π΅ΡΡΠ΅ΠΆΠ½ΠΈΠΊΠ°-ΠΏΠΎΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊΠ° Π·Π°Π΄Π°Π½ΠΈΠΉ Π² ΡΠΎΡΠΊΡ Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ (x, y).
procedure DoPenUp;
ΠΠΎΠ΄Π½ΠΈΠΌΠ°Π΅Ρ ΠΏΠ΅ΡΠΎ Π§Π΅ΡΡΠ΅ΠΆΠ½ΠΈΠΊΠ°-ΠΏΠΎΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊΠ° Π·Π°Π΄Π°Π½ΠΈΠΉ.
procedure DoPenDown;
ΠΠΏΡΡΠΊΠ°Π΅Ρ ΠΏΠ΅ΡΠΎ Π§Π΅ΡΡΠ΅ΠΆΠ½ΠΈΠΊΠ°-ΠΏΠΎΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊΠ° Π·Π°Π΄Π°Π½ΠΈΠΉ.
procedure TaskText(s: string);
ΠΠ°Π΄Π°Π΅Ρ ΠΈΠΌΡ ΠΈ ΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²ΠΊΡ Π·Π°Π΄Π°Π½ΠΈΡ Π² ΡΡΡΠΎΠΊΠ΅ s.
procedure RegisterGroup(name,description,unitname: string; count: integer);
ΠΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ Π½ΠΎΠ²ΠΎΠΉ Π³ΡΡΠΏΠΏΡ Π·Π°Π΄Π°Π½ΠΈΠΉ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ PT4Load. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΈΠΌΡ Π΄Π°Π½Π½ΠΎΠΉ Π³ΡΡΠΏΠΏΡ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π² ΠΎΠΊΠ½Π΅ ΠΌΠΎΠ΄ΡΠ»Ρ PT4Load Π² ΡΠΏΠΈΡΠΊΠ΅ Π³ΡΡΠΏΠΏ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π΅ΠΌ Π§Π΅ΡΡΠ΅ΠΆΠ½ΠΈΠΊ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ-Π·Π°Π³ΠΎΡΠΎΠ²ΠΊΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π»ΡΠ±ΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ ΡΡΠΎΠΉ Π³ΡΡΠΏΠΏΡ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΈΠΌΡ Π³ΡΡΠΏΠΏΡ name, ΠΊΡΠ°ΡΠΊΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π³ΡΡΠΏΠΏΡ description, ΠΈΠΌΡ ΠΌΠΎΠ΄ΡΠ»Ρ unitname, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠΏΠΈΡΠ°Π½Π° Π³ΡΡΠΏΠΏΠ°, ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°Π΄Π°Π½ΠΈΠΉ count. ΠΠΌΡ Π³ΡΡΠΏΠΏΡ Π·Π°Π΄Π°Π½ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 7 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² (ΡΠΈΡΡ ΠΈ Π»Π°ΡΠΈΠ½ΡΠΊΠΈΡ Π±ΡΠΊΠ²) ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΠΊΠ°Π½ΡΠΈΠ²Π°ΡΡΡΡ ΡΠΈΡΡΠΎΠΉ, ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°Π΄Π°Π½ΠΈΠΉ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠ΅Π²ΡΡΠ°ΡΡ 999. ΠΡΠΎΡΠ΅Π΄ΡΡΠ° RegisterGroup Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ Π² ΡΠ΅ΠΊΡΠΈΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½ΠΎΠ²ΠΎΠΉ Π³ΡΡΠΏΠΏΡ Π·Π°Π΄Π°Π½ΠΈΠΉ Π΄Π»Ρ Π§Π΅ΡΡΠ΅ΠΆΠ½ΠΈΠΊΠ°.
RegisterTask(name: string; p: TaskProcType);
Π‘Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΈΠΌΡ Π·Π°Π΄Π°Π½ΠΈΡ name Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΎΠΉ p, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π΄Π°Π½Π½ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅. ΠΠ°Π½Π½ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ. ΠΠΎΠ΄ΠΎΠ±Π½ΠΎ ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ Π²ΡΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ RegisterGroup, ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° RegisterTask Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ Π² ΡΠ΅ΠΊΡΠΈΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½ΠΎΠ²ΠΎΠΉ Π³ΡΡΠΏΠΏΡ Π·Π°Π΄Π°Π½ΠΈΠΉ Π΄Π»Ρ Π§Π΅ΡΡΠ΅ΠΆΠ½ΠΈΠΊΠ°. ΠΠΎΡΡΠ΄ΠΎΠΊ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠΈΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π·Π°Π΄Π°Π½ΠΈΠΉ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ Π§Π΅ΡΡΠ΅ΠΆΠ½ΠΈΠΊ
ΠΠΏΠΈΡΠ΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π³ΡΡΠΏΠΏΡ Π·Π°Π΄Π°Π½ΠΈΠΉ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ Π§Π΅ΡΡΠ΅ΠΆΠ½ΠΈΠΊ. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ DMTasks.pas ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠ΅ΠΊΡΡΠΎΠΌ:
unit DMTasks;
interface
uses DMTaskMaker;
implementation
procedure FirstDM;
var i,a: integer;
begin
TaskText('ΠΠ°Π΄Π°Π½ΠΈΠ΅ mydm1. ΠΠ°ΡΠ΅ΡΡΠΈΡΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΈΠΊΠ»');
Field(14,8);
DoToPoint(7,7);
a:=6;
for i:=1 to 6 do
begin
DoPenDown;
DoOnVector(a,-a);
DoOnVector(-a,a);
DoOnVector(-a,-a);
DoOnVector(a,a);
Dec(a);
DoPenUp;
DoOnVector(0,-1);
end;
end;
begin
RegisterGroup('mydm','ΠΠΎΠΈ Π·Π°Π΄Π°Π½ΠΈΡ Π΄Π»Ρ Π§Π΅ΡΡΠ΅ΠΆΠ½ΠΈΠΊΠ°','DMTasks',2);
RegisterTask('mydm1',FirstDM);
end.
ΠΠ°Π±Π΅ΡΠ΅ΠΌ ΠΈ Π·Π°ΠΏΡΡΡΠΈΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π΅Π΅ Π² ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ ΡΠ°ΠΉΠ»Π΅ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ):
uses Drawman, DMTasks;
begin
Task('mydm1');
end.
ΠΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ Π΄Π»Ρ Π§Π΅ΡΡΠ΅ΠΆΠ½ΠΈΠΊΠ°:
ΠΠΎΠ±Π°Π²ΠΈΠΌ Π·Π°Π΄Π°Π½ΠΈΠ΅ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ:
procedure DoCross;
begin
DoPenDown;
DoOnVector(1,0); DoOnVector(0,-1);
DoOnVector(1,0); DoOnVector(0,-1);
DoOnVector(-1,0); DoOnVector(0,-1);
DoOnVector(-1,0); DoOnVector(0,1);
DoOnVector(-1,0); DoOnVector(0,1);
DoOnVector(1,0); DoOnVector(0,1);
DoPenUp;
end;
procedure SecondDM;
begin
TaskText('ΠΠ°Π΄Π°Π½ΠΈΠ΅ mydm2. ΠΠ°ΡΠ΅ΡΡΠΈΡΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Cross');
Field(18,12);
DoToPoint(3,8);
DoCross;
DoToPoint(8,4);
DoCross;
DoToPoint(12,11);
DoCross;
DoToPoint(15,6);
DoCross;
end;
ΠΠΎΠ±Π°Π²ΠΈΠΌ Π²ΡΠ·ΠΎΠ² ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ; Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠ΅ΠΊΡΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΠΈΠ΄:
begin
RegisterGroup('mydm','ΠΠΎΠΈ Π·Π°Π΄Π°Π½ΠΈΡ Π΄Π»Ρ Π§Π΅ΡΡΠ΅ΠΆΠ½ΠΈΠΊΠ°','DMTasks',2);
RegisterTask('mydm1',FirstDM);
RegisterTask('mydm2',SecondDM);
end.
ΠΠ·ΠΌΠ΅Π½ΠΈΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
uses Drawman, DMTasks;
begin
Task('mydm2');
end.
ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΡΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΠΎΠΊΠ½Π΅ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ Π§Π΅ΡΡΠ΅ΠΆΠ½ΠΈΠΊ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ Π½ΠΎΠ²ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅:
ΠΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ DMTasks ΡΠΎΠ·Π΄Π°Π½Π½Π°Ρ Π½Π°ΠΌΠΈ Π³ΡΡΠΏΠΏΠ° Π±ΡΠ»Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π° Π² ΠΌΠ°ΡΡΠ΅ΡΠ΅ ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ-Π·Π°Π³ΠΎΡΠΎΠ²ΠΎΠΊ PT4Load. ΠΡΠ»ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ Π½Π°ΠΆΠ°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΈ Π² ΠΏΠΎΡΠ²ΠΈΠ²ΡΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ PT4Load Π²Π²Π΅ΡΡΠΈ ΠΏΡΠ΅ΡΠΈΠΊΡ DM Π² ΠΏΠΎΠ»Π΅ ΠΠ°Π΄Π°Π½ΠΈΠ΅", ΡΠΎ ΠΎΠΊΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΠΈΠ΄:
ΠΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ Π³ΡΡΠΏΠΏΠ° Π·Π°Π΄Π°Π½ΠΈΠΉ mydm ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π² ΡΠΏΠΈΡΠΊΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π³ΡΡΠΏΠΏ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ Π§Π΅ΡΡΠ΅ΠΆΠ½ΠΈΠΊ. ΠΠ°Π±Π΅ΡΠ΅ΠΌ ΠΈΠΌΡ Π·Π°Π΄Π°Π½ΠΈΡ mydm1:
ΠΠΎΡΠ»Π΅ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡΠΈ Enter Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» DMmydm1.pas ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ:
uses Drawman, DMTasks;
begin
Task('mydm1');
end.
ΠΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΡΠ΅ΡΠΈΡΡ :)
ΠΠΎΠ΄ΡΠ»Ρ PT4TaskMakerNET: ΠΎΠ±ΡΠ΅Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΡΡΠ΅Π±Π½ΡΡ Π·Π°Π΄Π°Π½ΠΈΠΉ PT4TaskMaker ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ Π³ΡΡΠΏΠΏΡ Π·Π°Π΄Π°Π½ΠΈΠΉ Π΄Π»Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠ³ΠΎ Π·Π°Π΄Π°ΡΠ½ΠΈΠΊΠ° Programming Taskbook.
ΠΠ°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡΠΈΠΈ 4.11, Π½ΠΎΠ²ΡΠ΅ Π³ΡΡΠΏΠΏΡ Π·Π°Π΄Π°Π½ΠΈΠΉ, Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ Π·Π°Π΄Π°ΡΠ½ΠΈΠΊΠΎΠΌ ΡΡΠ΅Π΄, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΠ·ΡΠΊΠ΅ Pascal, Π½ΠΎ ΠΈ Π½Π° ΡΠ·ΡΠΊΠ°Ρ C++ ΠΈ C#, ΠΏΡΠΈΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π΄Π»Ρ ΡΠ·ΡΠΊΠ° Pascal ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈ Π² ΡΡΠ΅Π΄Π΅ PascalABC.NET. ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π΄Π»Ρ ΡΡΠ΅Π΄Ρ PascalABC.NET ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² Π²ΠΈΠ΄Π΅ ΠΌΠΎΠ΄ΡΠ»Ρ PT4TaskMakerNET.
ΠΠ°ΠΆΠ΄Π°Ρ Π³ΡΡΠΏΠΏΠ° ΡΡΠ΅Π±Π½ΡΡ Π·Π°Π΄Π°Π½ΠΈΠΉ ΠΎΡΠΎΡΠΌΠ»ΡΠ΅ΡΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ (dll-ΡΠ°ΠΉΠ»Π°). Dll-ΡΠ°ΠΉΠ»Ρ Ρ Π½ΠΎΠ²ΡΠΌΠΈ Π³ΡΡΠΏΠΏΠ°ΠΌΠΈ ΠΌΠΎΠ³ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π»ΠΈΠ±ΠΎ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΡΡΠ°ΡΠ΅Π³ΠΎΡΡ, Π»ΠΈΠ±ΠΎ Π² ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Lib ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Π·Π°Π΄Π°ΡΠ½ΠΈΠΊΠ°. ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ Π³ΡΡΠΏΠΏ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π·Π°Π΄Π°Π½ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π²ΠΈΠ΄ ΠΏΡΠΎΠ΅ΠΊΡΠ°-Π·Π°Π³ΠΎΡΠΎΠ²ΠΊΠΈ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π½ΠΎΠ²ΡΠΌΠΈ Π³ΡΡΠΏΠΏΠ°ΠΌΠΈ Π½Π΅ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° Π±Π°Π·ΠΎΠ²ΡΠ΅ Π³ΡΡΠΏΠΏΡ Π·Π°Π΄Π°Π½ΠΈΠΉ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π½ΠΎΠ²ΡΠ΅ Π³ΡΡΠΏΠΏΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ Π² ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π³ΡΡΠΏΠΏ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΌΠΎΠ΄ΡΠ»ΡΡ PT4Demo ΠΈ PT4Load. Π‘ΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π² Π²ΠΈΠ΄Π΅ dll-ΡΠ°ΠΉΠ»ΠΎΠ² Π½ΠΎΠ²ΡΠ΅ Π³ΡΡΠΏΠΏΡ Π·Π°Π΄Π°Π½ΠΈΠΉ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π² Π»ΡΠ±ΡΡ ΡΡΠ΅Π΄Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ Π·Π°Π΄Π°ΡΠ½ΠΈΠΊΠ°, Π½ΠΎ ΠΈ Π² ΡΡΠ΅Π΄Π΅ PascalABC.NET; Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ dll-ΡΠ°ΠΉΠ» Π² ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ PT4\Lib ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° PascalABC.NET ΠΈΠ»ΠΈ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΡΡΠ°ΡΠ΅Π³ΠΎΡΡ.
ΠΠ±Π·ΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΡΡΠ΅Π±Π½ΡΡ Π·Π°Π΄Π°Π½ΠΈΠΉΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΡΡΠ΅Π±Π½ΡΡ Π·Π°Π΄Π°Π½ΠΈΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π½Π°Π±ΠΎΡ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ, ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π²Ρ ΠΎΠ΄ΡΡΠΈΡ Π² Π³ΡΡΠΏΠΏΡ Π·Π°Π΄Π°Π½ΠΈΠΉ, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ²ΠΎΠΉΡΡΠ² Π³ΡΡΠΏΠΏΡ Π² ΡΠ΅Π»ΠΎΠΌ.