ЛАБОРАТОРНАЯ РАБОТА №14 Тема: Разработка алгоритмов и программ с использованием процедур и функций модулей Graph
Цель:Сформировать умения разрабатывать алгоритмы и программы с использованием процедур и функций модулей Graph
Программное обеспечение: TURBO PASCAL 7.1
Оснащение:персональный компьютер, практикум
Время проведения: 2 уч. часа
Литература:
1. Немнюгин С.А. Turbo Pascal. Практикум. 2-е изд. СПб.: Питер, 2007. С. 173-216.
2. Немнюгин С. , Перколаб Л. Изучаем Turbo Pascal. СПб.: Питер, 2008. С. 237-271.
3. Павловская Т.А. Паскаль. Программирование на языке высокого уровня. Учебник для вузов. СПб.: Питер, 2008. С. 116-120, 291-313.
ВОПРОСЫ ВХОДНОГО КОНТРОЛЯ:
1. Опишите константы модуля Crt.
2. Перечислите переменные модуля Crt.
3. Перечислите подпрограммы модуля Crt.
4. Опишите типы, константы и переменные модуля Dos.
5. Перечислите подпрограммы модуля Dos.
КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
Модуль Graph обеспечивает работу с экраном в графическом режиме. Экран в графическом режиме представляется в виде совокупности точек ― пикселов. Цвет каждого пиксела можно задать отдельно. Начало координат находится в левом верхнем углу экрана и имеет координаты (0, 0). Количество точек по горизонтали и вертикали (разрешение экрана) и количество доступных цветов зависят от графического режима. Графический режим устанавливается с помощью служебной программы ― графического драйвера.
Модуль Graph обеспечивает:
· вывод линии и геометрических фигур заданным цветом и стилем;
· закрашивание областей заданным цветом и шаблоном;
· вывод текста различным шрифтом, заданного размера и направления;
· определение окон и отсечение по их границе;
· использование графических спрайтов и работу с графическими страницами.
В отличие от текстового режима в графическом курсор невидим, однако его можно переместить в любую точку экрана.
Структура графической программы
Программа, использующая графический режим, должна содержать следующие действия:
· подключение модуля Graph;
· перевод экрана в графический режим;
· установка параметров изображения;
· вывод изображения;
· возврат в текстовый режим.
Модуль Graph обеспечивает работу с экраном в графическом режиме.
Константы цветов ― используются в Set AllPalette, SetPalette и другими процедурами.
| Константа | Значение | Цвет |
| Black | Черный | |
| Blue | Синий | |
| Green | Зеленый | |
| Cyan | Бирюзовый | |
| Red | Красный | |
| Magenta | Малиновый | |
| Brow | Коричневый | |
| LightGray | Светло-серый | |
| DarkGray | Темно-серый | |
| LightBlue | Светло-голубой | |
| LightGreen | Светло-зеленый | |
| LightCyan | Светло-бирюзовый | |
| LightRed | Светло-красный | |
| LightMagenta | Светло-салиновый | |
| Yellow | Желтый | |
| White | Белый |
Константы драйверов графических устройств ― используются с подпрограммами, которые вызывают графические драйвера и палитры цветов.
| Константа | Значение | Примечание |
| Detect | Автоматическое распознавание драйверов | |
| CGA | ||
| MCGA | ||
| EGA | ||
| EGA64 | ||
| EGAMono | ||
| IBM8514 | ||
| HercMono | ||
| ATT400 | ||
| VGA | ||
| PC3270 | ||
| CurrentDriver | -128 | Передается процедуре GetModeRange |
Константы образцов закрашивания.
| Константа | Значение | Примечание |
| EmtyFill | Закрашивание области фоновым цветом | |
| SolidFill | Непрерывное закрашивание области | |
| LineFill | Закрашивание - - - - - - - - - | |
| LtSlashFill | Закрашивание ////////////////// | |
| SlashFill | Закрашивание жирными линиями /////////// | |
| BkSlashFill | Закрашивание жирными линиями \\\\\\\\\\\\\ | |
| LtBkSlashFill | Закрашивание \\\\\\\\\\\\\\\\\\\\\\ | |
| HatchFill | Закрашивание редкой штриховкой | |
| XHatchFill | Закрашивание частой штриховкой (в обоих направлениях) | |
| Interleava | Закрашивание прерывестой линией | |
| WideDotFill | Закрашивание линией из редких точек | |
| CloseDotFill | Закрашивание линией из частых точек | |
| UserFill | Закрашивание, определенное пользователем |
Константы шрифтов.
| Константа | Значение | Примечание |
| DefaultFont | Растровый шрифт 8х8 | |
| TriplexFont | Векторный шрифт | |
| SmallFont | ||
| SansSerifFont | ||
| GothicFont | ||
| HorizDir | Слева направо | |
| VertDir | Сверху вниз | |
| UserCharSize | Определенный пользователем размер символов |
Константы grXXXX ― возвращают для последней графической операции код ошибки.
| Константа | Значение | Примечание |
| grOk | Нет ошибки | |
| grNoInitGraph | -1 | Графика не инициализирована |
| grNotDetected | -2 | Графические средства не найдены |
| grFileNotFound | -3 | Файл не найден |
| grInvalidDriver | -4 | Недопустимый драйвер |
| grNoLoadMem | -5 | Память не загружена |
| grNoScanMem | -6 | Ошибка при просмотре памяти |
| grNoFloodMem | -7 | Ошибка при закрашивании |
| grFontNotFound | -8 | Шрифт не найден |
| grNoFontMem | -9 | Шрифт не загружен в память |
| grInvalidMode | -10 | Недопустимый режим |
| grError | -11 | Ошибка графики |
| grIOError | -12 | Ошибка ввода-вывода графики |
| grInvalidFont | -13 | Недопустимый файл шрифта |
| grInvalidFontNum | -14 | Недопустимый номер шрифта |
Константы выравнивания ― это константы, управляющие горизонтальным и вертикальным выравниванием текста.
| Константа | Значение | Примечание |
| LeftText | По левому краю | |
| CenterText | По центру | |
| RightText | По правому краю | |
| BottomText | По нижнему краю | |
| CenterText | По центру | |
| TopText | По верхнему краю |
Константы стиля линии ― определяют стиль и толщину линии. Используются в процедурах GetLineSettings и GetLineStyle.
| Константа | Значение | Примечание |
| SolidLn | Непрерывная | |
| DottedLn | Линия из точек | |
| CenterLn | Точки и тире | |
| DashedLn | Пунктирная | |
| UserBitLn | Стиль, заданный пользователем | |
| NormWidth | Обычная толщина | |
| ThickWidth | Жирная линия |
Переменные модуля Graph.
Var GraphFreeMemPtr: Pointer;
Содержит адрес подпрограммы освобождения динамической памяти.
Var GraphGetMemPtr: Pointer;
Содержит адрес подпрограммы динамического распределения памяти.