Страница 10 из 56
рабатывающих ошибки). Некоторые из них безаргументные и возвраща-
ют единственное число, представляющее собой запрашиваемую инфор-
мацию; другие принимают указатель на структуру, определенную в
graphics.h и заполняют эту структуру соответствующей информацией,
ничего при этом не возвращая.
Функции запроса состояния, попадающие в категорию управления
графической системой - это getgraphmode, getmaxmode и
getmoderange. Первая возвращает целое число, представляющее собой
информацию о текущем графическои драйвере и режиме, вторая - пре-
дельный режим для данного драйвера, а третья - диапазон режимов,
поддерживаемых данным графическим драйвером. Функции getmaxx и
getmaxy возвращают максимальные координаты экрана для текущего
графического режима.
Функции запроса состояния при рисовании и закрашивании - это
getarccoords, getaspectratio, getfillpattern, getfillsettings и
getlinesettings. getarccoords заполняет структуру координатами
последнего обращения к arc или ellipse; getaspectratio сообщает о
коэффициенте сжатия для текущего режима, который позволяет графи-
ческой системе вычерчивать правильные окружности. getfillpattern
- 77,78 -
возвращает текущий пользовательский шаблон. getfillsettings за-
полняет структуру информацией о текущем шаблоне и цвете.
getlinesettings заполняет структуру информацией о текущих сти-
ле(сплошная, пунктирная и т.д.), толщине (нормальная или тонкая),
и шаблоне линии.
В категорию функций управления экраном и графическими окнами
попадают getviewsettings, getx, gety и getpixel. Задав графичес-
кое окно, вы можете узнать его абсолютные координаты и состояние
буферизации при помощи вызова getviewsettings; функция заполнит
структуру необходимой информацией. getx и gety возвращают коорди-
наты текущей позиции относительно окна. getpixel возвращает цвет
заданной точки растра.
Категория функций вывода текста в графическом режиме содер-
жит одну всеобъемлющую функцию запроса состояния:
gettextsettings. Эта функция заполняет структуру информацией о
текущем символьном шрифте, направлении вывода текста(горизонталь-
ное или вертикальное снизу вверх), коэффициенте сжатия символов и
выравнивании строк текста(как горизонтальном, так и вертикаль-
ном).
Категория функций управления цветом включает три функции
запроса состояния. Функция getbkcolor возвращает текущий цвет фо-
на, getcolor - текущий цвет рисования. Функция getpalette записы-
вает в структуру размер текущей палитры рисования и содержимое
палитры. getmaxcolor возвращает максимальное допустимое значение
точки растра для текущего графического драйвера и режима (т.е.
размер палитры минус единица).
И наконец, функции getmodename и getdrivename возвращают со-
ответственно имена данного режима драйвера и текущего графическо-
го драйвера.
- 79,80 -
Г Л А В А 9
------------
ЗАМЕЧАНИЯ ДЛЯ ПРОГРАММИСТОВ, РАБОТАЮЩИХ НА ТУРБО ПАСКАЛЕ.
-----------------------------------------------------------------
Перед тем, как продолжить свое знакомство с Турбо Си, восс-
тановите в памяти главы 6 и 7. Вспомните, как Си определяет базо-
вые элементы программирования. В этой главе мы рассмотрим некото-
рые из основных понятий Си, однако в главах 6 и 7 есть много
деталей, которых вы здесь не найдете.
Паскаль является достаточно последовательным и структурным
языком, в то время как Си - довольно свободный и гибкий. Паскаль
заботится о вас лучше, чем Си и таким образом больше подходит в
качестве языка, используемого для обучения основам программирова-
ния.
Турбо Си и Турбо Паскаль - находятся где-то в середине
спектра языков Си - Паскаль. Турбо Си добавляет некоторые струк-
туры к Си, а Турбо Паскаль - некоторую гибкость Паскалю.
Эта глава не предназначена быть исчерпывающим обсуждением Си
}
Из всех функций, которые вы объявляете, только одна должна
иметь имя main. Это и есть главный модуль вашей программы. Други-
ми словами, когда ваша программа начинает выполняться, вызывается
функция main, а она может включать в свою очередь вызов других
функций. Любая Си программа состоит только из функций. Однако,
некоторые функции имеют тип void и не возвращают значений; так,
- 83,84 -
что они аналогичны процедурам Паскаля. Также (в отличие от Паска-
ля) вы можете просто игнорировать любые значения, возвращаемые
функциями.
Пример
----------------------------------------------------------------
Представлены две программы (одна написана на Турбо Паскале,
другая на Турбо Си), иллюстрирующие сходство и различие между их
структурами программ:
Турбо Паскаль Турбо Си
________________________________________________________________