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

Номер NP должен лежать в диапазоне от 0 до 35; он указывается в обязательном комментарии к данному указателю (см. выше). Если процедура SetPointer для указателя с номером NP не вызвана, то указатель с этим номером будет иметь нулевое значение.

procedure DataP([Cmt: string;] NP: integer; X, Y: integer);

procedure ResultP([Cmt: string;] NP: integer; X, Y: integer);

Процедуры DataP и ResultP помещают указатель с номером NP в список исходных или, соответственно, результирующих данных учебного задания и отображают его на экране. При отображении на экране указатель снабжается обязательным комментарием вида P# =, где в качестве символа # указывается символ, связываемый с указателем (для NP от 0 до 9 -- соответствующая цифра, для NP от 10 до 35 -- заглавная латинская буква от A до Z). Само значение указателя на экран не выводится; вместо него указывается одно из двух условных обозначений: ptr для ненулевого указателя и nil для нулевого указателя. Как и прочие элементы данных, указатель может снабжаться дополнительным комментарием Cmt, который приписывается слева к обязательному (например, вызов процедуры с параметрами Cmt = 'Адрес начала стека: ' и NP = 6 приведет к выводу на экран следующей строки: Адрес начала стека: P6 = ptr). В дополнительном комментарии Cmt можно использовать управляющие последовательности. В процедурах DataP и ResultP задается также экранная позиция, начиная с которой элемент данных выводится в соответствующую экранную область. Параметр Y определяет номер строки (от 1 до 5), параметр X -- позицию в строке (от 1 до 78; как обычно, требуется, чтобы элемент данных вместе с комментарием полностью умещался на строке).

Варианты данных процедур, в которых параметр Cmt отсутствует, добавлены в версию 4.11 конструктора.

procedure DataList(NP: integer; X, Y: integer);

procedure ResultList(NP: integer; X, Y: integer);

Процедуры DataList и ResultList предназначены для помещения структуры типа одно- или двусвязный линейный динамический список" в набор исходных или, соответственно, результирующих данных, а также для вывода этой структуры на экран. Параметр NP задает номер указателя (предварительно определенный процедурой SetPointer), который указывает на начало данного списка, т. е. на его первый элемент. Если соответствующий указатель является нулевым, то список считается пустым. Пустой список на экране не отображается.

Непустой динамический список отображается на двух экранных строках; первая строка содержит имена указателей, входящих в задание и связанных с данным списком (они задаются процедурой ShowPointer), во второй строке -- значения элементов списка (точнее, их полей Data целого типа) и виды связи между элементами.

Если память для элемента результирующего списка должна быть выделена программой учащегося, то значение его поля Data на экране обрамляется точками (например, .23.). Если в исходной динамической структуре требуется разрушить один или несколько элементов, то эти элементы выделяются более бледным цветом, а в случае, если программа учащегося не освободит память, занимаемую этими элементами, они будут выделены красным цветом. Наконец, если в списке, преобразованном программой учащегося, элементы располагаются не на требуемых местах, то они заключаются в скобки (например, (23)), а если элемент списка содержит ошибочную ссылку Next, то она помечается двумя красными звездочками (например 46 - **). Красные звездочки указываются в конце списка также в случае, если его длина превышает максимально допустимую. Специальные обозначения используются также для циклических списков (см. пример 3).

Элемент данных типа линейный список" должен содержать не более 14 элементов типа TNode, причем значения их полей Data должны лежать в диапазоне от -9 до 99, поскольку для каждого поля Data отводится по две экранные позиции. Для большей наглядности рекомендуется использовать числа из диапазона 10-99, резервируя однозначные и отрицательные числа для особых элементов (например, барьерного элемента циклического списка -- см. задание Dynamic70). Если значение элемента списка не умещается в поле вывода, то в его последней экранной позиции выводится красная звездочка -- признак ошибки.

Для отображения списка как двусвязного необходимо, чтобы в его элементах были определены поля связи Next и Prev; в этом случае связи между соседними элементами списка обозначаются двойными линиями: =". Если в задании требуется использовать односвязный список, то для его элементов надо определить поле связи Next, а для полей Prev следует указать значение, не связанное с элементами этого списка (например, адрес какой-либо глобальной переменной типа TNode). Связи между элементами односвязных списков обозначаются одинарными линиями: "-".

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

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

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

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

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

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

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

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

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