- •«Основы пРограммирования на языке pAscal»
- •Лабораторная работа №1
- •1. Общие сведения
- •1.1. Введение
- •1.2 Алфавит языка Паскаль
- •1.3. Константы
- •1.3.1. Символьные константы
- •1.4. Переменные
- •1.5. Перечисляемые типы данных
- •1.6. Оператор присваивания
- •1.7. Выражения
- •1.8. Организация программы
- •1.9. Комментарии
- •1.10. Операторы ввода-вывода
- •1.10.1. Операторы ввода
- •1.10.2. Операторы вывода
- •1.10.3. Управление формой вывода данных
- •1.10.4 Вывод значений переменных
- •Лабораторная работа №2
- •1.Общие сведения.
- •1.1. Понятие циклического процесса.
- •1.2. Операторы цикла с параметром.
- •1.3. Оператор цикла с предусловием.
- •1.4. Оператор цикла с постусловием.
- •1.5. Вложенные циклы.
- •2. Задание
- •3. Содержание отчёта
- •4. Контрольные вопросы.
- •Лабораторная работа №3
- •1. Общие сведения.
- •2. Задание.
- •3. Содержание отчета.
- •4. Контрольные вопросы.
- •Лабораторная работа №4
- •1. Общие сведения.
- •1.1. Описание процедуры.
- •1.2. Функция.
- •1.3 Обращение к подпрограммам.
- •2. Задание
- •3. Содержание отчета.
- •4. Контрольные вопросы:
- •Лабораторная № 5
- •1.Общие сведения.
- •1.1. Установка графического режима.
- •1.2. Процедура
- •1.3. Координаты.
- •1.4. Цвета.
- •1.5. Линии и точки.
- •1.6. Многоугольники.
- •1.7. Дуги, окружности, эллипсы.
- •1.8. Заполнения.
- •1.9. Вывод текста.
Лабораторная № 5
Тема: Графические возможности среды Pascal.
Цель работы: Научиться работать с монитором в графическом режиме, изучить графические возможности среды Pascal.
1.Общие сведения.
1.1. Установка графического режима.
Для использования графических возможностей необходимо подключить к программе модуль Graph.
Прежде чем использовать графические возможности, необходимо перевести монитор из текстового режима в графический. Это осуществляется процедурой:
Procedure InitGraph (Var gd, gm:Integer; Path:String),
в которой переменная gd определяет тип графического драйвера, переменная gm – режим работы графического адаптера, константа Path – маршрут поиска файла драйвера. Для автоматического определения типа драйвера можно использовать процедуру Detect:
gd: = detect;
InitGraph (gd, gm, C:\Bp\Bgi);
После такого обращения устанавливается графический режим работы экрана, а при выходе из процедуры переменные gd и gm содержат целочисленные значения, определяющие тип драйвера и режим его работы.
1.2. Процедура
Procedure CloseGraph; завершает работу адаптера в графическом режиме и восстанавливает текстовый режим работы экрана.
В ходе работы в графическом режиме можно использовать функцию:
Function GraphResult : Integer;
возвращающую значение, в котором закодирован результат последнего обращения к графическим процедурам. Для каждого значения в модуле Graph определена константа:
Const
grOk = 0; {Нет ошибок}
grInitGraph = -1; {Не инициализировался графический режим}
grNotDetect = -2; {Не определен тип драйвера}
grFileNotFind = -3; {Не найден графический драйвер}
grInvalidDriver = -4; {Неправильный тип драйвера
grNoLoadMem = -5; {Нет памяти для размещения драйвера}
grNoScanMem = -6; {Нет памяти для просмотра областей}
grNoFloodMem = -7; {Нет памяти для закраски областей}
grFontNotFound = -8; {Не найден файл со шрифтом}
grNoFontMem = -9; {Нет памяти для размещения шрифта}
grInvalidMode = -10 {Неправильный графический режим}
grError = -11; {Общая ошибка}
grError = -12; {Ошибка ввода-вывода}
grInvalidFont = -13; {Неправильный формат шрифта}
grInvalidFontNum = -14;{Неправильный номер шрифта}
После обращения к функции GraphResult признак ошибки сбрасывается, поэтому повторное обращение к ней вернет ноль.
С помощью функции:
Function GraphErrorMzg(Code:Integer):String;
можно по коду ошибки Code получить текстовое сообщение.
Ниже приведена типичная последовательность операторов для инициации графического режима с автоматическим определением типа драйвера:
VAR
GD, GM, ERROR: INTEGER;
BEGIN
GD: = DETECT; {АВТООПРЕДЕЛЕНИЕ ДРАЙВЕРА}
INITGRAPH (GD,GM,'C:\BP\BGI'); {ИНИЦИИРУЕМ ГРАФИКУ}
ERROR: = GRAPHRESULT; {ПОЛУЧАЕМ РЕЗУЛЬТАТ}
IF NOT (ERROR = GROK) THEN {ПРОВЕРЯЕМ ОШИБКУ}
BEGIN
{ВЫВОДИМ СООБЩЕНИЕ ОБ ОШИБКЕ}
WRITELN (GRAPHERRORMSG(ERROR));
END
ELSE{НЕТ ОШИБКИ}
BEGIN
{КОМАНДА РАБОТЫ С ГРАФИКОЙ}
CLOSEGRAPH {ЗАКРЫВАЕТСЯ ГРАФИЧЕСКИЙ РЕЖИМ}
END
END.
1.3. Координаты.
Э
кран
монитора в графическом режиме представляет
собой множество точек, изменяя цвет
которых можно получить графическое
изображение. Каждая точка имеет свои
координаты. Т.о., экран в графическом
режиме можно рассматривать как
координатную плоскость (рисунок 5.1).
Стандартный размер экрана монитора
SVGA составляет 640*480 пиксел (точек). Левый
верхний угол экрана имеет координаты
(0,0). Размерность экрана можно получить
с помощью функции типа Integer
GetMaxX
и GetMaxY,
которые возвращают максимальные
координаты экрана в текущем режиме
работы соответственно по горизонтали
(по X)
и вертикали (по Y).
В графическом режиме, аналогично курсору в текстовом режиме, имеется графический указатель. Его координаты можно получить с помощью функции типа Integer GetX и GetY.
Процедура
Procedure MoveRel (dX, dY: Integer).
Здесь dX, dY – приращение новых координат указателя (соответственно по горизонтали и вертикали) относительно того положения, которое занимал указатель к моменту обращения к процедуре.
