Некоторые константы являются комбинациями битовых флагов (т. е. битовыми масками ) и позволяют определить, к какой категории относится текущий язык:
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.
functionCurrentLanguage: integer;
Функция возвращает значение, соответствующее языку программирования, на который в данный момент настроен задачник. Помимо сравнения возвращаемого значения функции с константами, соответствующими конкретному языку, можно также использовать данную функцию для определения категории , к которой относится текущий язык программирования; в этом случае необходимо применять побитовые операции. Например, для проверки того, что текущий язык программирования относится к категории языков платформы .NET, достаточно проверить истинность следующего условия:
CurrentLanguage andlgNET <> 0
При использовании задачника совместно с системой PascalABC.NET функция CurrentLanguage возвращает значение lgPascalABCNET.
functionCurrentLocale: string;
Функция возвращает строку, соответствующую текущей локали , т. е. текущему языку интерфейса, используемому в задачнике. В версии 4.11 конструктора учебных заданий возможными возвращаемыми значениями функции CurrentLocale являются 'ru' (русский вариант задачника) и 'en' (английский вариант).
functionCurrentVersion: string;
Данная функция добавлена в версию 4.10 конструктора учебных заданий. Она возвращает номер текущей версии задачника в виде строки числа формата 'd.dd'. Например, в случае версии 4.11 возвращается строка '4.11'. Для версий, предшествующих версии 4.10, функция возвращает строку '4.00'.
Образцы слов и предложений
Приведенные ниже элементы конструктора PT4TaskMaker позволяют получить доступ к встроенным в него образцам текстовых исходных данных: словам (Word), предложениям (Sentence) и многострочным текстам (Text).
const
SampleError = '#ERROR?';
MaxLineCount = 50;
functionWordCount: integer;
functionSentenceCount: integer;
functionTextCount: integer;
functionWordSample(N: integer): string;
functionSentenceSample(N: integer): string;
functionTextSample(N: integer): string;
functionEnWordCount: integer;
functionEnSentenceCount: integer;
functionEnTextCount: integer;
functionEnWordSample(N: integer): string;
functionEnSentenceSample(N: integer): string;
functionEnTextSample(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. Любой текст состоит из нескольких абзацев; между абзацами текста помещается одна пустая строка, отступы в начале абзацев ( красная строка") не используются. В тексте не используются также переносы слов.
Читать дальше