- Любовные романы
- Фантастика и фэнтези
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Описание языка PascalABC.NET - W Cat
Шрифт:
Интервал:
Закладка:
Кроме пяти строк с основным текстом формулировки, который отображается на экране при выводе задания, можно указывать дополнительные строки, отображаемые на экране при прокрутке текста задания (связанные с прокруткой кнопки отображаются в окне задачника справа от раздела формулировок, если в формулировке текущего задания имеются дополнительные строки). Все дополнительные строки, как и основные, должны добавляться к формулировке последовательно, причем параметр Y для таких строк надо положить равным 0. Максимальное количество дополнительных строк равно 200.
В строке S можно использовать управляющие последовательности.
Если при выводе строки S часть ее не умещается на экранной строке, то выводится сообщение об ошибке Ошибочное позиционирование по горизонтали". Если ошибка произошла при выводе основной строки, то лишняя часть строки S отображается на следующей строке (или на первой строке, если ошибочной является пятая строка в разделе формулировок).
Определенный с помощью процедур TaskText текст формулировки задания используется также при формировании html-описания группы. В этом случае деление на строки, указанное для экранного вывода, игнорируется, однако учитываются дополнительные управляющие последовательности, позволяющие разбивать текст на абзацы с различным способом выравнивания (на отображение текста в окне задачника эти дополнительные последовательности не влияют).
Если при определении задания не указана его формулировка, то выводится сообщение об ошибке.
Вариант процедуры TaskText с единственным параметром S добавлен в версию 4.11 конструктора. В этом варианте строка S должна содержать весь текст формулировки, причем строки формулировки должны разделяться символами #13, #10 или их комбинациями #13#10. Начальные и конечные пробелы в каждой строке формулировки удаляются; если в результате какая-либо строка окажется пустой, то она не учитывается. Все строки формулировки автоматически центрируются по горизонтали; их вертикальное расположение определяется количеством строк и соответствует правилам, приведенным выше (если формулировка содержит одну строку, то она располагается на экранной строке 3, и т. д.). Если требуется специальное выравнивание какой-либо строки текста, то его можно добиться за счет добавления дополнительных пробелов в начало или конец строки; чтобы эти пробелы не были удалены, первый начальный (или последний конечный) пробел должен быть экранирован символом " (обратная косая черта).
procedure DataB ([Cmt: string;] B: boolean; X, Y: integer);
procedure DataN([Cmt: string;] N: integer; X, Y, W: integer);
procedure DataN2([Cmt: string;] N1, N2: integer; X, Y, W: integer);
procedure DataN3([Cmt: string;] N1, N2, N3: integer; X, Y, W: integer);
procedure DataR([Cmt: string;] R: real; X, Y, W: integer);
procedure DataR2([Cmt: string;] R1, R2: real; X, Y, W: integer);
procedure DataR3([Cmt: string;] R1, R2, R3: real; X, Y, W: integer);
procedure DataC([Cmt: string;] C: char; X, Y: integer);
procedure DataS([Cmt: string;] S: string; X, Y: integer);
Процедуры группы Data добавляют к заданию элементы исходных данных. Добавленные элементы, вместе с необязательной строкой-комментарием Cmt, отображаются в разделе исходных данных, начиная с позиции X строки Y (позиции и строки нумеруются от 1; ширина экранной строки равна 78 позициям). Если используются значения параметра Y, большие 5, то разделе исходных данных будет доступна прокрутка. Как и для процедуры TaskText, параметр X может принимать три особых значения: 0 (центрирование по горизонтали относительно всей экранной строки), 100 (центрирование по горизонтали относительно левой половины экранной строки), 200 (центрирование по горизонтали относительно правой половины экранной строки). Эти значения можно также задавать с помощью констант xCenter, xLeft и xRight.
Параметр W определяет ширину поля вывода для числовых данных (выравнивание всегда производится по правому краю поля вывода). Если ширины поля вывода недостаточно, то значение параметра W игнорируется, и для вывода элемента используется минимально необходимое число экранных позиций. При определении ширины поля вывода для вещественного числа следует учитывать размер отображаемой дробной части (который определяется процедурой SetPrecision, описываемой далее).
Для нечисловых данных ширина поля вывода полагается равной фактической ширине данных; в частности, для данных символьного типа отводятся 3 позиции, содержащие начальный апостроф, собственно символ и конечный апостроф, а для логического типа отводятся 5 позиций, достаточных для вывода названий обеих логических констант в любом используемом языке программирования. Для строки отводятся L + 2 позиции, где L -- длина строки (начальная и конечная позиции используются для вывода апострофов). В зависимости от текущего языка программирования используются либо одинарные, либо двойные апострофы.
Используя процедуры группы Data, в задание можно включить до 200 различных скалярных исходных данных (при этом следует учитывать, что некоторые процедуры, например, DataN2 и DataN3, добавляют в набор исходных данных несколько элементов). Наложение различных элементов в разделе исходных данных задачником не контролируется, поэтому при размещении данных следует обращать особое внимание на то, чтобы последующие элементы не скрывали предыдущие. Кроме того, важен порядок определения исходных данных, так как именно в этом порядке данные будут передаваться программе учащегося, выполняющей это задание. Следует придерживаться стандартных правил, принятых в базовых группах задачника: данные должны перебираться по строкам (в направлении сверху вниз), а в пределах каждой строки -- слева направо.
В параметре Cmt, содержащем текст комментария к определяемому элементу исходных данных, можно использовать управляющие последовательности (например, для отображения индексов).
В любом задании должен быть задан хотя бы один элемент исходных данных; в противном случае выводится сообщение об ошибке.
Варианты данных процедур, в которых параметр Cmt отсутствует, добавлены в версию 4.11 конструктора.
procedure DataComment(Cmt: string; X, Y: integer);
Процедура позволяет добавлять в раздел исходных данных отдельный комментарий Cmt, не связанный с каким-либо элементом исходных данных. Общее число отдельных комментариев, включаемых в разделы исходных и результирующих данных, не должно превосходить 200. Смысл параметров X и Y -- тот же, что и для процедур группы Data.
procedure ResultB ([Cmt: string;] B: boolean; X, Y: integer);
procedure ResultN([Cmt: string;] N: integer; X, Y, W: integer);
procedure ResultN2([Cmt: string;] N1, N2: integer; X, Y, W: integer);
procedure ResultN3([Cmt: string;] N1, N2, N3: integer; X, Y, W: integer);
procedure ResultR([Cmt: string;] R: real; X, Y, W: integer);
procedure ResultR2([Cmt: string;] R1, R2: real; X, Y, W: integer);
procedure ResultR3([Cmt: string;] R1, R2, R3: real; X, Y, W: integer);
procedure ResultC([Cmt: string;] C: char; X, Y: integer);
procedure ResultS([Cmt: string;] S: string; X, Y: integer);
Процедуры данной группы добавляют к заданию элементы результирующих данных вместе с их контрольными значениями. Комментарии Cmt к результирующим данным сразу отображаются в разделе результатов. Контрольные значения отображаются в разделе Пример верного решения". Смысл параметров X, Y и W -- тот же, что и для процедур группы Data. Задание может содержать до 200 скалярных элементов результирующих данных.
Как и в случае исходных данных, если элемент контрольных данных не умещается в поле, выделенном для его отображения (шириной W позиций), то параметр W игнорируется, и для вывода используется минимально необходимое число экранных позиций. Однако если элемент результирующих данных, переданный в задачник программой, решающей задание, не уложится" в размер, выделенный для соответствующего элемента контрольных данных, то в правой позиции поля вывода для этого элемента отобразится символ "*" (звездочка) красного цвета. Подобная ситуация возможна как для чисел, так и для строк (если программа учащегося выведет число или строку, размер которых больше требуемого). Для того чтобы в этой ситуации увидеть полный текст всех подобных элементов результирующих данных, следует переместить курсор мыши в раздел результатов в окне задачника; через 1-2 секунды полный текст всех данных, размер которых превышает допустимый, появится во всплывающей подсказке.
Порядок вызова процедур группы Result важен, так как он соответствует порядку, в котором результирующие данные, полученные программой учащегося, должны передаваться задачнику для проверки их правильности. Поэтому, как и для исходных данных, для набора результирующих данных должен соблюдаться стандартный порядок их размещения: сверху вниз по строкам и слева направо в каждой строке.