Краткий обзор графических возможностей систем программирования
В каждой из трех рассматриваемых систем программирования предусмотрены базовые графические средства, с помощью которых можно устанавливать нужный режим работы видеосистемы, управлять цветовой палитрой, рисовать Простейшие геометрические фигуры и раскрашивать их, снабжать рисунки пояснительными подписями.
В системе QBasic эти средства встроены в язык — наряду с обычными операторами в программе можно использовать графические: LINE, CIRCLE, DRAW и др. С одной стороны, набор базовых графических операций QBasic, несколько беднее, чем состав аналогичных процедур и функций в системах фирмы Borland. В частности, QBasic значительно уступает своим конкурентам по возможностям отображения текстовых сообщений и управления шрифтами в графическом режиме.
С другой стороны, QBasic имеет в составе своих изобразительных средств элементы "черепашьей" графики, позволяющей строить графические процедуры любой сложности и использовать сформированные таким образом графические объекты как строительные кирпичики, включая их в состав более сложных объектов. "Черепашья" графика появилась как обобщение системы команд управления пишущим узлом перьевого плоттера. Такие процедуры, как смена, подъем и опускание пера, перемещение пишущего узла на заданное число шагов по одному из восьми направлений и некоторые другие непосредственно заимствованы из этой системы команд. 0днако возможность создания графических подпрограмм и построение фигур с учетом различных преобразований (смещение, поворот, масштабирование, непропорциональное изменение размеров фигур вдоль осей координат) придают "черепашьей" графике необычайную гибкость. В нашем пособии оператор DRAW не затрагивается, однако для любителей экзотики мы рекомендуем увлекательную книгу [7], переводчик которой, на наш взгляд, вложил в нее гораздо больше, чем ее предполагаемый автор. Программирование в терминах микроскопических команд плоттера — занятие довольно утомительное, да и отладка таких программ доставляет немало забот. Не менее сложно запоминать односимвольные команды управления "черепашкой". До версии ТР 3.0 фирма Borland использовала "черепашью" графику, но в последующих реализациях системы отказалась от нее.
Графические средства систем Turbo С и Turbo Pascal построены на базе общего подхода, сокращенно именуемого BGI — Borland Graphics Interface (графический интерфейс фирмы Borland). 0ни вынесены в системные библиотеки, содержащие почти одинаковый набор процедур и функций с полностью совпадающими именами и аналогичным набором аргументов. Состав этих библиотек довольно внушителен — 83 графические программы и более 60 системных констант. Наиболее содержательное описание BGI-пакета можно найти в [16].
Небольшая разница между Си и Паскалем наблюдается в записи имен процедур и системных констант, составленных из нескольких ключевых слов. В обозначениях процедур Паскаль предпочитает выделять начало каждого ключевого слова прописной буквой, например — SetUserCharSize. В системе Turbo С, в отличие от Паскаля, возможен режим работы, при котором прописные и строчные буквы считаются разными. Поэтому в Си составные имена графических функций записываются только строчными буквами — setusercharsize, хотя это и менее наглядно. Паскаль распространяет свою технику выделения ключевых слов и на составные обозначения системных констант (например — wideDotFiii), тогда как в Си для этой цели обычно используют символ " ." (подчеркивание) и обозначают системные константы только большими буквами (например — WIDE_D0T_FILL). Еще одно небольшое отличие связано с записью функций без параметров — в программах на Си их имена всегда сопровождаются пустыми скобками:
ТС: x=getmaxx();
ТР: x:=GetMaxX;
Различия эти не носят принципиального характера, но в программах необходимо придерживаться правил, принятых в той или иной системе. В связи с этим графические программы на Си и Паскале мы постараемся не дублировать и будем отдавать предпочтение текстам программ на Си, т. к. существует достаточно много книг с примерами графических программ на Паскале.