- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Описание языка PascalABC.NET - W Cat
Шрифт:
Интервал:
Закладка:
Определять преамбулу к подгруппе имеет смысл только в случае, если с этой подгруппой связаны некоторые задания, входящие в определяемую группу. Если группа не содержит заданий, связанных с некоторой подгруппой, то преамбула этой подгруппы в html-описании не выводится.
Для определения преамбул предназначены следующие процедуры.
procedure CommentText(S: string);
Данная процедура добавляет содержимое строки S к текущей преамбуле, отделяя это содержимое от предыдущего текста преамбулы пробелом. В строке S можно использовать управляющие последовательности, обеспечивающие ее форматирование. Например, для перехода к новому абзацу преамбулы следует использовать последовательность P (управляющие последовательности чувствительны к регистру букв).
procedure UseComment(GroupName: string[; SubgroupName: string]);
Процедура UseComment добавляет к текущей преамбуле текст преамбулы подгруппы SubgroupName группы GroupName или, если параметр SubgroupName является пустой строкой или отсутствует, текст преамбулы самой группы GroupName. Этот текст отделяется от предыдущего текста преамбулы пробелом. Регистр символов в параметрах GroupName и SubgroupName может быть произвольным.
Если группа с именем GroupName не найдена или в ней отсутствует подгруппа SubgroupName, то процедура не выполняет никаких действий; сообщение об ошибке в этом случае не выводится.
Процедуры CommentText и UseComment должны вызваться после функции CreateGroup; при этом они определяют преамбулу данной группы. Для того чтобы они определяли преамбулу какой-либо подгруппы данной группы, перед их вызовом необходимо вызвать процедуру Subgroup, описываемую далее.
procedure Subgroup(SubgroupName: string);
Данная процедура устанавливает режим добавления текста к преамбуле подгруппы SubgroupName текущей группы. Этот режим сохраняется до следующего вызова данной процедуры или до завершения определения текущей группы заданий (определение группы, создаваемой в виде dll-файла, завершается при выходе из процедуры inittaskgroup).
Процедуру Subgroup можно вызывать несколько раз для одной и той же подгруппы, при этом ранее определенный текст преамбулы будет дополняться новыми данными. При вызове процедуры Subgroup с параметром -- пустой строкой устанавливается режим дополнения преамбулы группы (напомним, что этот режим устанавливается также сразу после вызова процедуры CreateGroup).
Константы и функции для определения текущего состояния задачникаconst
lgPascal = $0001;
lgVB = $0002;
lgCPP = $0004;
lg1C = $0040;
lgPython = $0080;
lgCS = $0100;
lgVBNET = $0200;
lgPascalNET = $0400;
lgJava = $10000;
lgWithPointers = $003D;
lgWithObjects = $FFF80;
lgNET = $FF00;
lgPascalABCNET = $0401;
lgAll = $FFFFFF;
Данные константы, совместно с описываемой далее функцией CurrentLanguage, позволяют определить язык программирования, на который в данный момент (т. е. в момент инициализации текущей группы заданий) настроен задачник. Константы lgPascal, lgVB, lgCPP, lgCS, lgVBNET, lgPascalABCNET, lg1C, lgPython, lgJava соответствуют конкретному языку из числа тех, которые доступны в текущей версии задачника (Pascal, Visual Basic, C++, C#, Visual Basic .NET, PascalABC.NET, 1С:Предприятие, Python, Java). Эти константы являются битовыми флагами. Константа lg1C появилась в версии 4.9 конструктора учебных заданий (в связи с реализацией комплекса PT for 1C -- варианта задачника для системы 1С:Предприятие), константа lgPython -- в версии 4.10 (в связи с реализацией варианта задачника для языка Python), константа lgJava -- в версии 4.11 (в связи с реализацией варианта задачника для языка Java).
Некоторые константы являются комбинациями битовых флагов (т. е. битовыми масками) и позволяют определить, к какой категории относится текущий язык:
lgAll -- любой язык, lgNET -- язык платформы .NET (языки C# и Visual Basic .NET), lgWithPointers -- язык, для которого можно разрабатывать группы заданий на обработку динамических структур с применением указателей (языки Pascal и C++), lgWithObjects -- язык, для которого можно разрабатывать группы заданий на обработку динамических структур с применением объектов (все языки платформы .NET, а также Python и Java). Особое место занимает язык, реализованный в системе PascalABC.NET, поскольку в нем объединяются свойства обычного языка Pascal и языка платформы .NET. Данному языку соответствует комбинация флагов lgPascal и lgPascalNET; это, в частности, означает, что он принадлежит одновременно к категориям lgWithPointers, lgWithObjects и lgNET. Для языка PascalABC.NET предусмотрена также именованная константа lgPascalABCNET.
function CurrentLanguage: integer;
Функция возвращает значение, соответствующее языку программирования, на который в данный момент настроен задачник. Помимо сравнения возвращаемого значения функции с константами, соответствующими конкретному языку, можно также использовать данную функцию для определения категории, к которой относится текущий язык программирования; в этом случае необходимо применять побитовые операции. Например, для проверки того, что текущий язык программирования относится к категории языков платформы .NET, достаточно проверить истинность следующего условия:
CurrentLanguage and lgNET <> 0
При использовании задачника совместно с системой PascalABC.NET функция CurrentLanguage возвращает значение lgPascalABCNET.
function CurrentLocale: string;
Функция возвращает строку, соответствующую текущей локали, т. е. текущему языку интерфейса, используемому в задачнике. В версии 4.11 конструктора учебных заданий возможными возвращаемыми значениями функции CurrentLocale являются 'ru' (русский вариант задачника) и 'en' (английский вариант).
function CurrentVersion: string;
Данная функция добавлена в версию 4.10 конструктора учебных заданий. Она возвращает номер текущей версии задачника в виде строки числа формата 'd.dd'. Например, в случае версии 4.11 возвращается строка '4.11'. Для версий, предшествующих версии 4.10, функция возвращает строку '4.00'.
Образцы слов и предложенийПриведенные ниже элементы конструктора PT4TaskMaker позволяют получить доступ к встроенным в него образцам текстовых исходных данных: словам (Word), предложениям (Sentence) и многострочным текстам (Text).
const
SampleError = '#ERROR?';
MaxLineCount = 50;
function WordCount: integer;
function SentenceCount: integer;
function TextCount: integer;
function WordSample(N: integer): string;
function SentenceSample(N: integer): string;
function TextSample(N: integer): string;
function EnWordCount: integer;
function EnSentenceCount: integer;
function EnTextCount: integer;
function EnWordSample(N: integer): string;
function EnSentenceSample(N: integer): string;
function EnTextSample(N: integer): string;
Функции WordSample, SentenceSample и TextSample возвращают текстовые данные, соответствующие текущей локали, т. е. текущему языку интерфейса, используемому в задачнике (см. функцию CurrentLocale): для русского варианта задачника возвращаются русские данные, для английского -- английские. Варианты этих функций, снабженные префиксом En, возвращают английские текстовые данные в любом варианте задачника.
Функции, оканчивающиеся словом Count, возвращают количество соответствующих элементов данных. В версии 4.11, конструктора учебных заданий, как и в его предыдущих версиях, доступно 116 слов, 61 предложение и 85 текстов как на русском, так и на английском языке.
Функции WordSample/EnWordSample и SentenceSample/EnSentenceSample возвращают соответственно слово или предложение с индексом N (индексирование проводится от 0).
Функция TextSample/EnTextSample возвращает строку, связанную с многострочным текстом, имеющим индекс N (индексирование также проводится от 0). При этом между соседними строками этого текста располагаются символы #13#10 (маркеры конца строки). В конце текста маркер конца строки отсутствует, число строк в тексте не превышает значения константы MaxLineCount. Любой текст состоит из нескольких абзацев; между абзацами текста помещается одна пустая строка, отступы в начале абзацев ( красная строка") не используются. В тексте не используются также переносы слов.
Если параметр N является недопустимым, то все функции возвращают особую строку, равную константе SampleError.
Буква ё" в русских текстовых данных не используется.
Все слова-образцы состоят из заглавных (прописных) букв. Помимо слов общего вида" в набор слов включены слова, обладающие следующими особенностями (наличие подобных особых слов может оказаться полезным при составлении заданий):
слова, начинающиеся и оканчивающиеся одной и той же буквой; слова, содержащие три одинаковые буквы (в русском наборе -- три буквы А", в английском наборе -- три буквы "E"). Длина предложений-образцов не превосходит 76 символов; таким образом, любое предложение умещается на одной экранной строке (напомним, что строки при выводе в окне задачника обрамляются апострофами).