Читаем Описание языка PascalABC.NET полностью

Добавим вызов процедуры регистрации для данного задания; в результате секция инициализации примет следующий вид:

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.

Будет выведено следующее задание для Чертежника:

Перейти на страницу:

Похожие книги

Разработка приложений в среде Linux. Второе издание
Разработка приложений в среде Linux. Второе издание

Книга известных профессионалов в области разработки коммерческих приложений в Linux представляет СЃРѕР±РѕР№ отличный справочник для широкого круга программистов в Linux, а также тех разработчиков на языке С, которые перешли в среду Linux из РґСЂСѓРіРёС… операционных систем. РџРѕРґСЂРѕР±но рассматриваются концепции, лежащие в основе процесса создания системных приложений, а также разнообразные доступные инструменты и библиотеки. Среди рассматриваемых в книге вопросов можно выделить анализ особенностей применения лицензий GNU, использование СЃРІРѕР±одно распространяемых компиляторов и библиотек, системное программирование для Linux, а также написание и отладка собственных переносимых библиотек. Р

Майкл К. Джонсон , Эрик В. Троан

Программирование, программы, базы данных