Добавлен новый модуль TurtleWPF.pas

Добавлен модуль МозаикаABC.pas

В NUnitABC в InitPABCSystem добавлена установка кодировки

В Robot добавлено 5 задач на break
This commit is contained in:
Mikhalkovich Stanislav 2023-02-03 10:49:53 +03:00
parent 23635ace40
commit 9e89da9b32
21 changed files with 1158 additions and 373 deletions

View file

@ -15,7 +15,7 @@ internal static class RevisionClass
public const string Major = "3";
public const string Minor = "8";
public const string Build = "3";
public const string Revision = "3226";
public const string Revision = "3233";
public const string MainVersion = Major + "." + Minor;
public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision;

View file

@ -1,4 +1,4 @@
%COREVERSION%=3
%REVISION%=3226
%MINOR%=8
%REVISION%=3233
%COREVERSION%=3
%MAJOR%=3

View file

@ -1 +1 @@
3.8.3.3226
3.8.3.3233

View file

@ -1 +1 @@
!define VERSION '3.8.3.3226'
!define VERSION '3.8.3.3233'

View file

@ -6,7 +6,7 @@
GraphABCHelper,
GraphWPFBase,
Graph3D,
GraphWPF, Turtle,
GraphWPF, Turtle, TurtleWPF,
WPFObjects,
NumLibABC,
IniFile, PointerTools, PointRect, PT4, PT4MakerNetX, Robot, RobotField,

View file

@ -138,6 +138,7 @@
File ..\bin\Lib\School.pcu
File ..\bin\Lib\SF.pcu
File ..\bin\Lib\Turtle.pcu
File ..\bin\Lib\TurtleWPF.pcu
File ..\bin\Lib\LightPT.pcu
File ..\bin\Lib\Tasks.pcu
File ..\bin\Lib\TwoPanelsWindow.pcu
@ -146,13 +147,14 @@
File ..\bin\Lib\XLSX.pcu
File ..\bin\Lib\Мозаика.pcu
File ..\bin\Lib\PABCRtl.dll
File ..\bin\Lib\HelixToolkit.Wpf.dll
File ..\bin\Lib\HelixToolkit.dll
File ..\bin\Lib\nunit.framework.dll
File ..\bin\Lib\InteractiveDataDisplay.WPF.dll
File ..\bin\Lib\turtle.png
${AddFile} "__RedirectIOMode.pcu"
${AddFile} "__RunMode.pcu"
${AddFile} "ABCButtons.pcu"
@ -217,6 +219,7 @@
${AddFile} "School.pcu"
${AddFile} "SF.pcu"
${AddFile} "Turtle.pcu"
${AddFile} "TurtleWPF.pcu"
${AddFile} "LightPT.pcu"
${AddFile} "Tasks.pcu"
${AddFile} "TwoPanelsWindow.pcu"
@ -225,6 +228,7 @@
${AddFile} "XLSX.pcu"
${AddFile} "Мозаика.pcu"
${AddFile} "turtle.png"
${AddFile} "PABCRtl.dll"
${AddFile} "HelixToolkit.Wpf.dll"
@ -314,6 +318,7 @@
File ..\bin\Lib\School.pas
File ..\bin\Lib\SF.pas
File ..\bin\Lib\Turtle.pas
File ..\bin\Lib\TurtleWPF.pas
File ..\bin\Lib\LightPT.pas
File ..\bin\Lib\Tasks.pas
File ..\bin\Lib\TwoPanelsWindow.pas
@ -387,6 +392,7 @@
${AddFile} "School.pas"
${AddFile} "SF.pas"
${AddFile} "Turtle.pas"
${AddFile} "TurtleWPF.pas"
${AddFile} "LightPT.pas"
${AddFile} "Tasks.pas"
${AddFile} "TwoPanelsWindow.pas"

View file

@ -96,6 +96,8 @@ type
th: real := 1;
fx,fy: real;
rc: boolean := false;
public
///--
function PenConstruct: GPen;
begin
Result := new GPen(GetBrush(c),th);
@ -110,6 +112,7 @@ type
Result.StartLineCap := PenLineCap.Flat;
Result.EndLineCap := PenLineCap.Flat;
end;
Result.Freeze;
end;
public
/// Цвет пера

View file

@ -410,6 +410,12 @@ begin
RegisterTask('pp7',pp7);
RegisterTask('pp8',pp8);
RegisterTask('br1',br1);
RegisterTask('br2',br2);
RegisterTask('br3',br3);
RegisterTask('br4',br4);
RegisterTask('br5',br5);
RegisterTask('examen1',examen1);
RegisterTask('examen2',examen2);
RegisterTask('examen3',examen3);
@ -420,6 +426,7 @@ begin
RegisterTask('examen8',examen8);
RegisterTask('examen9',examen9);
RegisterTask('examen10',examen10);
end;
procedure Task(name: string);

File diff suppressed because it is too large Load diff

View file

@ -169,13 +169,13 @@ type
ob: FrameworkElement;
gr: Grid; // Grid связан только с текстом
t: TextBlock;
ChildrenWPF := new List<ObjectWPF>;
procedure InitOb(x,y,w,h: real; o: FrameworkElement; SetWH: boolean := True; Hidden: boolean := False);
protected
transfgroup: TransformGroup;
rot: RotateTransform;
sca: ScaleTransform;
transl: TranslateTransform;
ChildrenWPF := new List<ObjectWPF>;
procedure InitOb(x,y,w,h: real; o: FrameworkElement; SetWH: boolean := True; Hidden: boolean := False);
public
/// Направление движения по оси X. Используется методом Move
auto property Dx: real;
@ -1233,7 +1233,7 @@ type
// -----------------------------------------------------
/// Класс графических объектов "Рисунок"
PictureWPF = class(ObjectWPF)
private
protected
function CreateBitmapImage(fname: string) := new BitmapImage(new System.Uri(fname,System.UriKind.Relative));
procedure Rest(x,y,w,h: real; b: BitmapImage);
begin
@ -1244,6 +1244,7 @@ type
InitOb(x,y,w,h,im);
end;
private
procedure InitOb3(x,y,w,h: real; fname: string);
begin
var b := CreateBitmapImage(fname);

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View file

@ -53,7 +53,7 @@ namespace VisualPascalABC
try
{
WebClient client = new WebClient();
newVersion = client.DownloadString("http://pascalabc.net/downloads/pabcversion.txt").Trim();
newVersion = client.DownloadString("https://pascalabc.net/downloads/pabcversion.txt").Trim();
curVersion = Assembly.GetExecutingAssembly().GetName().Version.ToString();
if ((new Version(curVersion)).CompareTo(new Version(newVersion)) == -1)
status = 0;

View file

@ -53,7 +53,7 @@ namespace VisualPascalABC
try
{
WebClient client = new WebClient();
newVersion = client.DownloadString("http://pascalabc.net/downloads/pabcversion.txt").Trim();
newVersion = client.DownloadString("https://pascalabc.net/downloads/pabcversion.txt").Trim();
curVersion = Assembly.GetExecutingAssembly().GetName().Version.ToString();
if ((new Version(curVersion)).CompareTo(new Version(newVersion)) == -1)
status = 0;

View file

@ -96,6 +96,8 @@ type
th: real := 1;
fx,fy: real;
rc: boolean := false;
public
///--
function PenConstruct: GPen;
begin
Result := new GPen(GetBrush(c),th);
@ -110,6 +112,7 @@ type
Result.StartLineCap := PenLineCap.Flat;
Result.EndLineCap := PenLineCap.Flat;
end;
Result.Freeze;
end;
public
/// Цвет пера

View file

@ -6,6 +6,7 @@ uses NUnit.Framework;
procedure InitPABCSystem;
begin
__InitPABCSystem;
System.Console.OutputEncoding := Encoding.GetEncoding(866);
end;
type

View file

@ -410,6 +410,12 @@ begin
RegisterTask('pp7',pp7);
RegisterTask('pp8',pp8);
RegisterTask('br1',br1);
RegisterTask('br2',br2);
RegisterTask('br3',br3);
RegisterTask('br4',br4);
RegisterTask('br5',br5);
RegisterTask('examen1',examen1);
RegisterTask('examen2',examen2);
RegisterTask('examen3',examen3);
@ -420,6 +426,7 @@ begin
RegisterTask('examen8',examen8);
RegisterTask('examen9',examen9);
RegisterTask('examen10',examen10);
end;
procedure Task(name: string);

File diff suppressed because it is too large Load diff

170
bin/Lib/TurtleWPF.pas Normal file
View file

@ -0,0 +1,170 @@
unit TurtleWPF;
{$resource 'turtle.png'}
uses GraphWPF,WPFObjects,GraphWPFBase;
uses System.Windows.Media.Animation;
uses System.Windows.Media;
uses System.Windows.Media.Imaging;
var
TurtleX: real := 400;
TurtleY: real := 300;
w := 24; // размер изображения Черепахи
type
TurtleHelper = class(PictureWPF)
private
function CreateBitmapImageFromResource(resourcename: string): BitmapImage;
begin
var bi := new BitmapImage();
bi.BeginInit();
bi.StreamSource := GetResourceStream(resourcename);
bi.EndInit();
Result := bi;
end;
procedure InitObFromResource(x,y,w,h: real; fname: string);
begin
var b := CreateBitmapImageFromResource(fname);
Rest(x,y,w,h,b);
end;
procedure AnimMoveByPE(a,b,sec: real);
begin
var v := CreateVisual;
var p := Center;
var (x,y) := (transl.X,transl.Y);
var ax := new DoubleAnimation(a + transl.X, System.TimeSpan.FromSeconds(sec));
var ay := new DoubleAnimation(b + transl.Y, System.TimeSpan.FromSeconds(sec));
ax.FillBehavior := FillBehavior.Stop;
ay.FillBehavior := FillBehavior.Stop;
var transl1 := transl;
ax.Completed += (o,e) -> begin
DrawOnVisual(v,dc->dc.DrawLine(GraphWPF.Pen.PenConstruct,p,Pnt(p.X + a,p.Y + b)));
transl1.X := x + a; // transl - ошибка с лямбдами!
end;
ay.Completed += (o,e) -> begin
transl1.Y := y + b;
end;
ax.CurrentTimeInvalidated += (o,e) ->
DrawOnVisual(v,dc->dc.DrawLine(GraphWPF.Pen.PenConstruct,p,Pnt(Center.X,Center.Y)));
transl.BeginAnimation(TranslateTransform.XProperty, ax, HandoffBehavior.Compose);
transl.BeginAnimation(TranslateTransform.YProperty, ay, HandoffBehavior.Compose);
end;
public
constructor (x,y,w,h: real; fname: string) := Invoke(InitObFromResource,x,y,w,h,fname);
procedure AnimMoveByE(a,b,sec: real);
begin
Invoke(AnimMoveByPE,a,b,sec);
Sleep(Round(sec*1000 + 50)); // 50 мс - За это время анимация должна закончиться
TurtleX += a;
TurtleY += b;
GraphWPF.MoveTo(TurtleX,TurtleY);
end;
procedure AnimRotateE(a,sec: real);
begin
AnimRotate(a,sec);
Sleep(Round(sec*1000 + 50));
end;
end;
Colors = GraphWPF.Colors;
var t: TurtleHelper;
var
a: real := 0;
dr := False;
speed := 10;
procedure SetSpeed(sp: integer);
begin
speed := sp;
end;
var sl := 30;
procedure Hide;
begin
t.Visible := False;
end;
procedure Show;
begin
t.Visible := True;
end;
/// Поворачивает Черепаху на угол da по часовой стрелке
procedure Turn(da: real);
begin
a += da;
if speed = 10 then
begin
t.Rotate(da);
Sleep(sl);
end
else
begin
if dr then
t.AnimRotateE(da,Abs(da/(60*speed)))
else
begin
t.AnimRotate(da,Abs(da/(60*speed)));
Sleep(Round(Abs(da/(60*speed))*1000)+50);
end;
end;
end;
/// Продвигает Черепаху вперёд на расстояние r
procedure Forw(r: real);
begin
var v := r * Vect(Cos(DegToRad(a)),Sin(DegToRad(a)));
if (speed = 10) or (r < 20) then
begin
TurtleX += v.X;
TurtleY += v.Y;
if dr then
LineTo(TurtleX,TurtleY)
else MoveTo(TurtleX,TurtleY);
t.MoveBy(v.X,v.Y);
Sleep(sl);
end
else
begin
if dr then
t.AnimMoveByE(v.X,v.Y,r/(50*speed)) // 450 в секунду при скорости 9
else
begin
t.AnimMoveBy(v.X,v.Y,r/(50*speed));
Sleep(Round(r/(50*speed)*1000)+50);
end;
end;
end;
/// Опускает хвост Черепахи
procedure Down := dr := True;
/// Поднимает хвост Черепахи
procedure Up := dr := False;
/// Устанавливает ширину линии
procedure SetWidth(w: real) := GraphWPF.Pen.Width := w;
/// Устанавливает цвет линии
procedure SetColor(c: GColor) := GraphWPF.Pen.Color := c;
/// Перемещает Черепаху в точку (x,y)
procedure MoveTo(x,y: real);
begin
TurtleX := x;
TurtleY := y;
GraphWPF.MoveTo(x,y);
t.Center := Pnt(x,y);
end;
begin
Window.Title := 'Исполнитель Черепаха WPF';
t := new TurtleHelper(TurtleX-w/2,TurtleY-w/2,w,w,'turtle.png');
//Pen.RoundCap := True;
MoveTo(TurtleX,TurtleY);
a -= 90;
end.

View file

@ -169,13 +169,13 @@ type
ob: FrameworkElement;
gr: Grid; // Grid связан только с текстом
t: TextBlock;
ChildrenWPF := new List<ObjectWPF>;
procedure InitOb(x,y,w,h: real; o: FrameworkElement; SetWH: boolean := True; Hidden: boolean := False);
protected
transfgroup: TransformGroup;
rot: RotateTransform;
sca: ScaleTransform;
transl: TranslateTransform;
ChildrenWPF := new List<ObjectWPF>;
procedure InitOb(x,y,w,h: real; o: FrameworkElement; SetWH: boolean := True; Hidden: boolean := False);
public
/// Направление движения по оси X. Используется методом Move
auto property Dx: real;
@ -1233,7 +1233,7 @@ type
// -----------------------------------------------------
/// Класс графических объектов "Рисунок"
PictureWPF = class(ObjectWPF)
private
protected
function CreateBitmapImage(fname: string) := new BitmapImage(new System.Uri(fname,System.UriKind.Relative));
procedure Rest(x,y,w,h: real; b: BitmapImage);
begin
@ -1244,6 +1244,7 @@ type
InitOb(x,y,w,h,im);
end;
private
procedure InitOb3(x,y,w,h: real; fname: string);
begin
var b := CreateBitmapImage(fname);

BIN
bin/Lib/turtle.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View file

@ -0,0 +1,478 @@
unit МозаикаABC;
interface
uses GraphABC;
var Window := GraphABC.Window;
procedure п;
procedure к;
procedure кк1;
procedure кк2;
procedure кк3;
procedure кк4;
procedure кт1;
procedure кт2;
procedure кт3;
procedure кт4;
procedure ко;
procedure кок1;
procedure кок2;
procedure кок3;
procedure кок4;
procedure кот1;
procedure кот2;
procedure кот3;
procedure кот4;
procedure ж;
procedure жк1;
procedure жк2;
procedure жк3;
procedure жк4;
procedure жт1;
procedure жт2;
procedure жт3;
procedure жт4;
procedure г;
procedure гк1;
procedure гк2;
procedure гк3;
procedure гк4;
procedure гт1;
procedure гт2;
procedure гт3;
procedure гт4;
procedure ч;
procedure чк1;
procedure чк2;
procedure чк3;
procedure чк4;
procedure чт1;
procedure чт2;
procedure чт3;
procedure чт4;
procedure б;
procedure бт1;
procedure бт2;
procedure бт3;
procedure бт4;
procedure бк1;
procedure бк2;
procedure бк3;
procedure бк4;
procedure з;
procedure зт1;
procedure зт2;
procedure зт3;
procedure зт4;
procedure зк1;
procedure зк2;
procedure зк3;
procedure зк4;
procedure с;
procedure ст1;
procedure ст2;
procedure ст3;
procedure ст4;
procedure ск1;
procedure ск2;
procedure ск3;
procedure ск4;
procedure се;
procedure сет1;
procedure сет2;
procedure сет3;
procedure сет4;
procedure сек1;
procedure сек2;
procedure сек3;
procedure сек4;
procedure о;
procedure от1;
procedure от2;
procedure от3;
procedure от4;
procedure ок1;
procedure ок2;
procedure ок3;
procedure ок4;
procedure р;
procedure рт1;
procedure рт2;
procedure рт3;
procedure рт4;
procedure рк1;
procedure рк2;
procedure рк3;
procedure рк4;
procedure ф;
procedure фт1;
procedure фт2;
procedure фт3;
procedure фт4;
procedure фк1;
procedure фк2;
procedure фк3;
procedure фк4;
procedure Ряд(p: procedure);
procedure НарисоватьРяд(p: procedure);
implementation
var
w := 50;
z := 2;
x := 1;
y := 1;
procedure Draw(x, y: integer) := Rectangle(x * w, y * w, w - z, w - z);
procedure D(c: Color);
begin
Brush.Color := c;
Draw(x, y);
x += 1;
end;
procedure Ц1(c: Color);
begin
Brush.Color := c;
Pie(x * w + w - z,y * w + w - z,w-z,90,180);
x += 1;
end;
procedure Ц2(c: Color);
begin
Brush.Color := c;
Pie(x * w,y * w + w - z,w-z,0,90);
x += 1;
end;
procedure Ц3(c: Color);
begin
Brush.Color := c;
Pie(x * w,y * w,w-z,270,360);
x += 1;
end;
procedure Ц4(c: Color);
begin
Brush.Color := c;
Pie(x * w + w - z,y * w,w-z,180,270);
x += 1;
end;
procedure Тр1(c: Color);
begin
Brush.Color := c;
Polygon(Arr(Pnt(x * w + w - z,y * w + w - z),Pnt(x * w + w - z,y * w),Pnt(x * w,y * w + w - z)));
x += 1;
end;
procedure Тр2(c: Color);
begin
Brush.Color := c;
Polygon(Arr(Pnt(x * w,y * w + w - z),Pnt(x * w,y * w),Pnt(x * w + w - z,y * w + w - z)));
x += 1;
end;
procedure Тр3(c: Color);
begin
Brush.Color := c;
Polygon(Arr(Pnt(x * w,y * w),Pnt(x * w + w - z,y * w),Pnt(x * w,y * w + w - z)));
x += 1;
end;
procedure Тр4(c: Color);
begin
Brush.Color := c;
Polygon(Arr(Pnt(x * w + w - z,y * w),Pnt(x * w,y * w),Pnt(x * w + w - z,y * w + w - z)));
x += 1;
end;
//------ Соответствие цветов
var КрасныйЦвет := Color.Red;
var ОранжевыйЦвет := RGB(255,127,$00);
var ЖелтыйЦвет := Color.Yellow;
var ЗеленыйЦвет := RGB($00,$99,$00);
var ГолубойЦвет := RGB($61,$c3,$ff);
var СинийЦвет := RGB(0,0,255);
var ФиолетовыйЦвет := RGB($94,$00,$d3);
var РозовыйЦвет := Color.Magenta;
var КоричневыйЦвет := RGB($96,$4B,$00);
var СерыйЦвет := Color.Gray;
var БелыйЦвет := Color.White;
var ЧерныйЦвет := Color.Black;
//----------------
procedure Пусто := x += 1;
procedure НовыйРяд := (x, y) := (1, y + 1);
procedure Серый := D(СерыйЦвет);
procedure СерыйЦКруг1 := Ц1(СерыйЦвет);
procedure СерыйЦКруг2 := Ц2(СерыйЦвет);
procedure СерыйЦКруг3 := Ц3(СерыйЦвет);
procedure СерыйЦКруг4 := Ц4(СерыйЦвет);
procedure СерыйТр1 := Тр1(СерыйЦвет);
procedure СерыйТр2 := Тр2(СерыйЦвет);
procedure СерыйТр3 := Тр3(СерыйЦвет);
procedure СерыйТр4 := Тр4(СерыйЦвет);
procedure Оранжевый := D(ОранжевыйЦвет);
procedure ОранжевыйЦКруг1 := Ц1(ОранжевыйЦвет);
procedure ОранжевыйЦКруг2 := Ц2(ОранжевыйЦвет);
procedure ОранжевыйЦКруг3 := Ц3(ОранжевыйЦвет);
procedure ОранжевыйЦКруг4 := Ц4(ОранжевыйЦвет);
procedure ОранжевыйТр1 := Тр1(ОранжевыйЦвет);
procedure ОранжевыйТр2 := Тр2(ОранжевыйЦвет);
procedure ОранжевыйТр3 := Тр3(ОранжевыйЦвет);
procedure ОранжевыйТр4 := Тр4(ОранжевыйЦвет);
procedure Коричневый := D(КоричневыйЦвет);
procedure КоричневыйЦКруг1 := Ц1(КоричневыйЦвет);
procedure КоричневыйЦКруг2 := Ц2(КоричневыйЦвет);
procedure КоричневыйЦКруг3 := Ц3(КоричневыйЦвет);
procedure КоричневыйЦКруг4 := Ц4(КоричневыйЦвет);
procedure КоричневыйТр1 := Тр1(КоричневыйЦвет);
procedure КоричневыйТр2 := Тр2(КоричневыйЦвет);
procedure КоричневыйТр3 := Тр3(КоричневыйЦвет);
procedure КоричневыйТр4 := Тр4(КоричневыйЦвет);
procedure Белый := D(БелыйЦвет);
procedure БелыйЦКруг1 := Ц1(БелыйЦвет);
procedure БелыйЦКруг2 := Ц2(БелыйЦвет);
procedure БелыйЦКруг3 := Ц3(БелыйЦвет);
procedure БелыйЦКруг4 := Ц4(БелыйЦвет);
procedure БелыйТр1 := Тр1(БелыйЦвет);
procedure БелыйТр2 := Тр2(БелыйЦвет);
procedure БелыйТр3 := Тр3(БелыйЦвет);
procedure БелыйТр4 := Тр4(БелыйЦвет);
procedure Синий := D(СинийЦвет);
procedure СинийЦКруг1 := Ц1(СинийЦвет);
procedure СинийЦКруг2 := Ц2(СинийЦвет);
procedure СинийЦКруг3 := Ц3(СинийЦвет);
procedure СинийЦКруг4 := Ц4(СинийЦвет);
procedure СинийТр1 := Тр1(СинийЦвет);
procedure СинийТр2 := Тр2(СинийЦвет);
procedure СинийТр3 := Тр3(СинийЦвет);
procedure СинийТр4 := Тр4(СинийЦвет);
procedure Фиолетовый := D(ФиолетовыйЦвет);
procedure ФиолетовыйЦКруг1 := Ц1(ФиолетовыйЦвет);
procedure ФиолетовыйЦКруг2 := Ц2(ФиолетовыйЦвет);
procedure ФиолетовыйЦКруг3 := Ц3(ФиолетовыйЦвет);
procedure ФиолетовыйЦКруг4 := Ц4(ФиолетовыйЦвет);
procedure ФиолетовыйТр1 := Тр1(ФиолетовыйЦвет);
procedure ФиолетовыйТр2 := Тр2(ФиолетовыйЦвет);
procedure ФиолетовыйТр3 := Тр3(ФиолетовыйЦвет);
procedure ФиолетовыйТр4 := Тр4(ФиолетовыйЦвет);
procedure Красный := D(КрасныйЦвет);
procedure КрасныйЦКруг1 := Ц1(КрасныйЦвет);
procedure КрасныйЦКруг2 := Ц2(КрасныйЦвет);
procedure КрасныйЦКруг3 := Ц3(КрасныйЦвет);
procedure КрасныйЦКруг4 := Ц4(КрасныйЦвет);
procedure КрасныйТр1 := Тр1(КрасныйЦвет);
procedure КрасныйТр2 := Тр2(КрасныйЦвет);
procedure КрасныйТр3 := Тр3(КрасныйЦвет);
procedure КрасныйТр4 := Тр4(КрасныйЦвет);
procedure Черный := D(ЧерныйЦвет);
procedure Чёрный := D(ЧерныйЦвет);
procedure ЧерныйТр1 := Тр1(ЧерныйЦвет);
procedure ЧерныйТр2 := Тр2(ЧерныйЦвет);
procedure ЧерныйТр3 := Тр3(ЧерныйЦвет);
procedure ЧерныйТр4 := Тр4(ЧерныйЦвет);
procedure ЧерныйЦКруг1 := Ц1(ЧерныйЦвет);
procedure ЧерныйЦКруг2 := Ц2(ЧерныйЦвет);
procedure ЧерныйЦКруг3 := Ц3(ЧерныйЦвет);
procedure ЧерныйЦКруг4 := Ц4(ЧерныйЦвет);
procedure ЧёрныйЦКруг1 := Ц1(ЧерныйЦвет);
procedure ЧёрныйЦКруг2 := Ц2(ЧерныйЦвет);
procedure ЧёрныйЦКруг3 := Ц3(ЧерныйЦвет);
procedure ЧёрныйЦКруг4 := Ц4(ЧерныйЦвет);
procedure Зелёный := D(ЗеленыйЦвет);
procedure ЗелёныйЦКруг1 := Ц1(ЗеленыйЦвет);
procedure ЗелёныйЦКруг2 := Ц2(ЗеленыйЦвет);
procedure ЗелёныйЦКруг3 := Ц3(ЗеленыйЦвет);
procedure ЗелёныйЦКруг4 := Ц4(ЗеленыйЦвет);
procedure ЗелёныйТр1 := Тр1(ЗеленыйЦвет);
procedure ЗелёныйТр2 := Тр2(ЗеленыйЦвет);
procedure ЗелёныйТр3 := Тр3(ЗеленыйЦвет);
procedure ЗелёныйТр4 := Тр4(ЗеленыйЦвет);
procedure Голубой := D(ГолубойЦвет);
procedure ГолубойЦКруг1 := Ц1(ГолубойЦвет);
procedure ГолубойЦКруг2 := Ц2(ГолубойЦвет);
procedure ГолубойЦКруг3 := Ц3(ГолубойЦвет);
procedure ГолубойЦКруг4 := Ц4(ГолубойЦвет);
procedure ГолубойТр1 := Тр1(ГолубойЦвет);
procedure ГолубойТр2 := Тр2(ГолубойЦвет);
procedure ГолубойТр3 := Тр3(ГолубойЦвет);
procedure ГолубойТр4 := Тр4(ГолубойЦвет);
procedure Розовый := D(РозовыйЦвет);
procedure РозовыйЦКруг1 := Ц1(РозовыйЦвет);
procedure РозовыйЦКруг2 := Ц2(РозовыйЦвет);
procedure РозовыйЦКруг3 := Ц3(РозовыйЦвет);
procedure РозовыйЦКруг4 := Ц4(РозовыйЦвет);
procedure РозовыйТр1 := Тр1(РозовыйЦвет);
procedure РозовыйТр2 := Тр2(РозовыйЦвет);
procedure РозовыйТр3 := Тр3(РозовыйЦвет);
procedure РозовыйТр4 := Тр4(РозовыйЦвет);
procedure Желтый := D(ЖелтыйЦвет);
procedure Жёлтый := D(ЖелтыйЦвет);
procedure ЖелтыйЦКруг1 := Ц1(ЖелтыйЦвет);
procedure ЖелтыйЦКруг2 := Ц2(ЖелтыйЦвет);
procedure ЖелтыйЦКруг3 := Ц3(ЖелтыйЦвет);
procedure ЖелтыйЦКруг4 := Ц4(ЖелтыйЦвет);
procedure ЖелтыйТр1 := Тр1(ЖелтыйЦвет);
procedure ЖелтыйТр2 := Тр2(ЖелтыйЦвет);
procedure ЖелтыйТр3 := Тр3(ЖелтыйЦвет);
procedure ЖелтыйТр4 := Тр4(ЖелтыйЦвет);
procedure п := пусто;
procedure к := красный;
procedure кк1 := красныйцкруг1;
procedure кк2 := красныйцкруг2;
procedure кк3 := красныйцкруг3;
procedure кк4 := красныйцкруг4;
procedure кт1 := красныйТр1;
procedure кт2 := красныйТр2;
procedure кт3 := красныйТр3;
procedure кт4 := красныйТр4;
procedure ко := коричневый;
procedure кок1 := коричневыйцкруг1;
procedure кок2 := коричневыйцкруг2;
procedure кок3 := коричневыйцкруг3;
procedure кок4 := коричневыйцкруг4;
procedure кот1 := коричневыйТр1;
procedure кот2 := коричневыйТр2;
procedure кот3 := коричневыйТр3;
procedure кот4 := коричневыйТр4;
procedure ж := желтый;
procedure жк1 := желтыйцкруг1;
procedure жк2 := желтыйцкруг2;
procedure жк3 := желтыйцкруг3;
procedure жк4 := желтыйцкруг4;
procedure жт1 := желтыйТр1;
procedure жт2 := желтыйТр2;
procedure жт3 := желтыйТр3;
procedure жт4 := желтыйТр4;
procedure г := голубой;
procedure гк1 := Голубойцкруг1;
procedure гк2 := Голубойцкруг2;
procedure гк3 := Голубойцкруг3;
procedure гк4 := Голубойцкруг4;
procedure гт1 := ГолубойТр1;
procedure гт2 := ГолубойТр2;
procedure гт3 := ГолубойТр3;
procedure гт4 := ГолубойТр4;
procedure ч := черный;
procedure Чк1 := ЧЕРНыйцкруг1;
procedure Чк2 := ЧЕРНыйцкруг2;
procedure Чк3 := ЧЕРНыйцкруг3;
procedure Чк4 := ЧЕРНыйцкруг4;
procedure Чт1 := ЧЕРНыйТр1;
procedure Чт2 := ЧЕРНыйТр2;
procedure Чт3 := ЧЕРНыйТр3;
procedure Чт4 := ЧЕРНыйТр4;
procedure б := белый;
procedure бт1 := белыйТр1;
procedure бт2 := белыйТр2;
procedure бт3 := белыйТр3;
procedure бт4 := белыйТр4;
procedure Бк1 := белыйцкруг1;
procedure Бк2 := белыйцкруг2;
procedure Бк3 := белыйцкруг3;
procedure Бк4 := белыйцкруг4;
procedure з := зелёный;
procedure зт1 := зелёныйТр1;
procedure зт2 := зелёныйТр2;
procedure зт3 := зелёныйТр3;
procedure зт4 := зелёныйТр4;
procedure зк1 := зелёныйцкруг1;
procedure зк2 := зелёныйцкруг2;
procedure зк3 := зелёныйцкруг3;
procedure зк4 := зелёныйцкруг4;
procedure с := синий;
procedure ст1 := синийТр1;
procedure ст2 := синийТр2;
procedure ст3 := синийТр3;
procedure ст4 := синийТр4;
procedure ск1 := синийцкруг1;
procedure ск2 := синийцкруг2;
procedure ск3 := синийцкруг3;
procedure ск4 := синийцкруг4;
procedure се := серый;
procedure сет1 := серыйТр1;
procedure сет2 := серыйТр2;
procedure сет3 := серыйТр3;
procedure сет4 := серыйТр4;
procedure сек1 := серыйцкруг1;
procedure сек2 := серыйцкруг2;
procedure сек3 := серыйцкруг3;
procedure сек4 := серыйцкруг4;
procedure о := оранжевый;
procedure от1 := оранжевыйТр1;
procedure от2 := оранжевыйТр2;
procedure от3 := оранжевыйТр3;
procedure от4 := оранжевыйТр4;
procedure ок1 := оранжевыйцкруг1;
procedure ок2 := оранжевыйцкруг2;
procedure ок3 := оранжевыйцкруг3;
procedure ок4 := оранжевыйцкруг4;
procedure Р := розовый;
procedure Рт1 := розовыйТр1;
procedure Рт2 := розовыйТр2;
procedure Рт3 := розовыйТр3;
procedure Рт4 := розовыйТр4;
procedure Рк1 := розовыйцкруг1;
procedure Рк2 := розовыйцкруг2;
procedure Рк3 := розовыйцкруг3;
procedure Рк4 := розовыйцкруг4;
procedure ф := фиолетовый;
procedure фт1 := фиолетовыйТр1;
procedure фт2 := фиолетовыйТр2;
procedure фт3 := фиолетовыйТр3;
procedure фт4 := фиолетовыйТр4;
procedure фк1 := фиолетовыйцкруг1;
procedure фк2 := фиолетовыйцкруг2;
procedure фк3 := фиолетовыйцкруг3;
procedure фк4 := фиолетовыйцкруг4;
procedure Run(p: procedure) := p;
procedure НарисоватьРяд(p: procedure) := Run(p + НовыйРяд);
procedure Ряд(p: procedure) := (p + НовыйРяд);
begin
Window.SetSize(1024,768);
//SetStandardCoords(1 / 1.25, 0.5, 0.5);
//pen.Width := 1 / 1.25;
end.