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

<p>Модуль RobotTaskMaker</p>

Типы модуля RobotTaskMaker

type TaskProcType = procedure;

Тип процедуры, генерирующей конкретное задание. Каждое задание реализуется в виде отдельной процедуры; для связывания этой процедуры с именем задания необходимо использовать процедуру RegisterTask, описываемую ниже.

Процедуры модуля RobotTaskMaker

procedure Field(szx,szy: integer);

Задает поле Робота размера szx на szy клеток.

procedure HorizontalWall(x,y,len: integer);

Создает горизонтальную стену длины len и координатами левого верхнего угла (x, y).

procedure VerticalWall(x,y,len: integer);

Создает вертикальную стену длины len и координатами левого верхнего угла (x, y).

procedure RobotBegin(x,y: integer);

Задает начальное положение Робота в клетке с координатами (x, y).

procedure RobotEnd(x,y: integer);

Задает конечное положение Робота в клетке с координатами (x, y).

procedure RobotBeginEnd(x,y,x1,y1: integer);

Задает начальное положение Робота в клетке с координатами (x, y) и конечное в клетке с координатами (x1, y1).

procedure Tag(x,y: integer);

Помечает клетку (x, y) для закрашивания.

procedure TagRect(x,y,x1,y1: integer);

Помечает прямоугольник из клеток, задаваемый координатами противоположных вершин прямоугольника (x, y) и (x1, y1), для закрашивания.

procedure MarkPainted(x,y: integer);

Закрашивает клетку (x, y) (в задании некоторые клетки могут быть уже закрашены).

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 должна вызываться в секции инициализации модуля, содержащего реализацию новой группы заданий для Робота. Порядок вызова этих процедур может быть произвольным.

<p>Создание заданий для исполнителя Робот</p>

Опишем последовательность создания группы заданий для исполнителя Робот. Создадим модуль RobTasks.pas со следующим текстом:

unit RobTasks;

interface

uses RobotTaskMaker;

implementation

procedure FirstRob;

begin

TaskText('Задание myrob1. Закрасить помеченные клетки');

Field(10,6);

HorizontalWall(0,3,4);

VerticalWall(4,3,2);

RobotBegin(1,4);

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;

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

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

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

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