Скачать 2.01 Mb.
|
База данныхДля работы с настоящей программой Вам необходимо знание языка TURBO-PASCAL 7.0, интегрированной среды, персонального компьютера IBM PC. Расширенный алгоритмический язык TURBO-PASCAL7.0 в качестве гра- фических средств соддержит в арсенале два стандартных модуля: Grt и Graph. Модуль Grt содержит процедуры и функции следующего назначения: 1.Процедуры задания режимов работы. 2.Полцедуры управления цветом. 3.Процедуры и функции работы с экраном. 4.Функции работы с клавиатурой. 5.Процедуры управления звуком и др. Процедуры и функции модуля Graph имеют назначение: 1.Управление графическим режимом. 2.Управление экраном, окном, страницей. 3.Управление цветом и палитрой. 4.Работа с точками и линиями. 5.Построение различных фигур. 6.Работа с текстом. 7.Обмен с памятью. В настоящей программе они скомпанованы для изучения в следующие разделы: 1.Программирование графических режимов. 2.Управление курсором и полем рисования. 3.Формирование прямолинейных монохромных изображений 4.Управление цветом и стилем изображений. 5.Программирование цветных криволинейных изображений 6.Формирование графических текстов. 7.Программирование озвученных динамических сцен. Первые два раздела являются справочными, а остальные разделы содержат теоретическую часть и контрольные вопросы. 0 ПРОГРАММИРОВАНИЕ ГРАФИЧЕСКИХ РЕЖИМОВ Состав, назначение и взаимное положение операторов управления графическими режимами в языке TURBO-PASCAL удобно рассматривать в контексте структуры характерной графической программы: ---------- program <идентификатор> - заголовок программы. I uses Graph - используемые модули. I {Действия в текстовом режиме}. I ------ InitGraph - инициализация графических средств I I {Действия в графическом режиме " по умолчанию". I I SetGraphMode - изменение графического режима. I I {Действия в новом графическом режиме}. I I I-- RestoreCrtMode - временный переход в текстовому режиму. I I I {Действия в текстовом режиме}. I I I-> SetGraphMode - возврат в графический режим. I I {Действия в графическом режиме}. I I-----> CloseGraph I {Действия в текстовом режиме}. I--------> end. - завершение программы. * proсedure InitGraph(var GraphDriver:integer; * var GraphMode:integer; * DriverPath:string); Инициализирует графическую систему, устанавливает графический режим, устанавливает исходные значения текущего указателя, палитры, цвета и т.д.. ПРОГРАММИРОВАНИЕ ГРАФИЧЕСКИХ РЕЖИМОВ GraphDriver - переменная, в которую необходимо записать код требуемого графического драйвера или нуль, если требуется автоматическое определение драйвера. GraphMode - переменная, в которую процедура помещает код графического режима. DriverPath - строка, содержащая путь к драйверу (если строка пустая, считается, что драйвер находится в текущем каталоге). В случае аварийной ситуации процедура устанавливает код ошибки: -2 - нет графического адаптера; -3 - нет драйвера устройства; -4 - ошибка в драйвере; -5 - нет памяти для загрузки драйвера; -10 - недопустимый режим для выбранного драйвера. * procedure CloseGraph(без параметров); Восстанавливает текстовый режим работы дисплея,бывший до вызова графической системы, и освобождает динамическую память компьютера, отведенную под графический драйвер. * procedure SetGraphMode(Mode:integer); Mode - графический режим.Изменяет ранее используемый графи- ческий режим либо возвращает систему в прежний графический режим после временного перехода к текстовому режиму. Условием использо- вания оператора является сохранение в динамической области ОЗУ ранее загруженного графического драйвера. ПРОГРАММИРОВАНИЕ ГРАФИЧЕСКИХ РЕЖИМОВ * procedure RestoreCrtMode(без параметров); Восстанавливает исходный текстовый режим дисплея без потери в динамической области ОЗУ програмы графического драйвера. Имеется ряд операторов для получения справок о текущем графическом режиме: * function GetDriverName:string; - Возвращает строковое название текущего графического адаптера. * function GetModeName(ModeNumber:integer):string - Возвращает строковое название требуемого графического режима. * function GetMaxMode:integer - Возвращает максимальный номер графического режима для текущего адаптера. * procedure GetModeRange(GraphDriver:integer; * var LowMode,HighMode:integer); - Выдает справку о диапазоне номеров графических режимов задан- ного графического адаптера. Возвращаемые параметры LowMode и HighMode означают минимальный и максимальный номера графических режимов, соответственно. * function GetGraphMode:integer; - Возвращает номер текущего графического режима. ПРОГРАММИРОВАНИЕ ГРАФИЧЕСКИХ РЕЖИМОВ * procedure GetAspectRatio(var Xasp, Yasp:word); - Возвращает в своих параметрах ввеличины дискретов экрана по осям X и Y ,сооответственно. 0 УПРАВЛЕНИЕ КУРСОРОМ И ПОЛЕМ РИСОВАНИЯ В графическом режиме также как и в текстовом положение выво- димых на экран данных в каждый момент времени определяется курcо- ром. Однако, в этом случае курсор невидим. При вхождении в гра- фический режим с помощью процедуры InitGraph курсор автоматически помещается в левый верхний угол экрана, фон экрана принимает первый (черный) цвет палитры. Для определения и изменения положения курсора без рисования в TURBO-PASCAL предусмотрены операторы MoveTo,MoveRel, GetX,GetY. * procedure MoveTo(x,y:integer); где x,y - координаты по горизонтали и вертикали соответственно в отсчете от левого верхнего угла экрана. * procedure MoveRel(Dx,Dy:integer); Смещает курсор без рисования относительно его текущего поло- жения. Dx, Dy - смещения курсора по координатам x и y. * function GetX: word; Определяет для курсора значение координаты X. * function GetY: word; Определяет для курсора значение координаты Y. УПРАВЛЕНИЕ КУРСОРОМ И ПОЛЕМ РИСОВАНИЯ При управлении положением курсора полезными оказываются также справочные функции GetMaxX и GetMaxY, которые возвращают координаты самой правой и самой нижней возможных графических позиций курсора, соответственно, для текущего графического драйвера и режима. * procedure ClearDevice; Очищает экран от следов предшествовавшего рисования и восста- навливает исходные параметры графики. * procedure SetViewPort(X1,Y1,X2,Y2:word;Clip:boolean); Устанавливает прямоугольное окно рисования с перемещением курсора в левый верхний угол окна. Параметры процедуры имеют следу- ющий смысл:(X1,Y1) и (X2,Y2) определяют соответствввенно координаты левого верхнего и правого нижнего углов окна, а Clip принимает значение true при необходимости отсечения изображения за границами окна и false, когда этого делать не надо . * procedure ClearViewPort; Очищает текущее окно, заполняя его первым цветом текущей цветовой палитры, и переводит курсор в левый верхний угол окна. * procedure GetViewSettings(var ViewPortType); Возвращает параметры активного окна просмотра в переменной ViewPort. Тип ViewPortType описан в модуле Graph. 0 ФОРМИРОВАНИЕ ПРЯМОЛИНЕЙНЫХ МОНОХРОМНЫХ ИЗОБРАЖЕНИЙ В данном разделе не рассматривается управление цветом и стилем рисования и закрепляется за фоном светло-серый, а за курсором синий цвет. * procedure LineTo(X,Y:integer); щ Проводит отрезок прямой от текущего положения курсора к заданной точке (X,Y). * procedure LineRel(Dx,Dy:integer); 2 Рисует отрезок прямой по направлению к точке, смещенной от текущего положения курсора на рас- стояние Dx и Dy по осям OX и OY . * procedure Line(X1,Y1,X2,Y2:integer); 3 Проводит прямую между точками (X1,Y1) и (X2,Y2). После выполнения этой и последующих процедур курсор возвращается в предшествующее положение. ФОРМИРОВАНИЕ ПРЯМОЛИНЕЙНЫХ МОНОХРОМНЫХ ИЗОБРАЖЕНИЙ * procedure Rectangle(X1,Y1,X2,Y2:integer); 4 Строит контуры прямоугольника с координатами левого верхнего (X1,Y1) и нижнего правого (X2,Y2) углов. * procedure Bar(X1,Y1,X2,Y2:integer); 5 Строит прямоугольник, закрашенный текущим цветом и орнаментом заполнения. (X1,Y1), (X2,Y2) - координаты левого верхнего и правого нижнего углов соответственно. * procedure Bar3D(X1,Y1,X2,Y2:integer; * Depth:word;Top:boolean) 6 Рисует аксонометрию закрашенного по фасаду прямоугольного параллелепипеда. (X1,Y1),(X2,Y2) - координаты левого верхнего и правого нижнего углов прямоугольного фасада. Depth - ширина боковой грани (отсчитывается по годизонтали. Top - признак включения верхней грани. ФОРМИРОВАНИЕ ПРЯМОЛИНЕЙНЫХ МОНОХРОМНЫХ ИЗОБРАЖЕНИЙ * procedure DrawPoly(NumPoints:word; * var PolyPoints); 7Строит ломаную линию. NumPoints - число вершин многоугольника PolyPoints - переменная без типа, содержащая NumPoints+1 пар координат вершин многоугольника (первая и последняя вершины должны совпадать). * procedure FillPoly(NumPoints:word;var PolyPoints); 8 Закрашивает многоугольник текущим цветом и орнаментом. Параметры NumPoints и PolyPoints именют тот же смысл и тип, что и одноимеынные параметры процедуры DrawPoly. 0 01С ПОМОЩЬЮ КАКИХ ПРОЦЕДУР МОЖНО НАИБОЛЕЕ РАЦИОНАЛЬНО ПОСТРОИТЬ ОТРЕЗОК , ЕСЛИ ИЗВЕСТНЫ КООРДИНАТЫ КОНЦОВ? 1 LineTo(X,Y); Line(X1,Y1,X2,Y2); 2 Line(X1,Y1,X2,Y2); DrawPoly(NumPoint,PolyPoints); 3 LineTo(X,Y); Line(X1,Y1,X2,Y2); DrawPoly(NumPoint,Poly Points); 4 Line(X1,Y1,X2,Y2); * 02КАК ПОСТРОИТЬ СТОЛБЧАТУЮ ДИАГРАММУ В ЗАРАНЕЕ СФОРМИРОВАННОЙ РАМКЕ? 1 1 Bar3D(X1,Y1,X2,Y2,Depth,true); SetViewPort(X1,Y1,X2,Y2,false); ClearViewPort; Bar3D(X1,Y2,X2,Y3,Depth,false); 2 Bar3D(X1,Y1,X2,Y2,Depth,true); SetViewPort(X1,Y1,X2,Y2,Depth,true); ClearViewPort; Bar3D(X1,Y1,X2,Y3,Depth,false); 3 Bar3D(X1,Y1,X2,Y2,Depth,true); Bar3D(X1,Y2,X2,Y3,Depth,false); 4 Bar3D(X1,Y1,X2,Y2,Depth,true); Bar3D(X1,Y2,X2,Y3,Depth,true); * 03КАК НА ПОЛНОСТЬЮ ЗАКРАШЕННОМ ЭКРАНЕ ПОЛУЧИТЬ НЕЗАКРАШЕННУЮ ПРЯМОУ- ГОЛЬНУЮ ОБЛАСТЬ? 1 Bar(X1,Y1,X2,Y2); SetViewPort(X1,Y1,X2,Y2,true); ClearViewPort; 2 Bar(X1,Y1,X2,Y2); 3 Bar3D(X1,Y1,X2,Y2,Depth,true); 4 Bar3D(X1,Y1,X2,Y2,false); * 04КАК ИСКЛЮЧИТЬ ПОЯВЛЕНИЕ НА ЭКРАНЕ ЗАТЕНЯЕМЫХ КОНТУРОВ НИЖНЕГО 2 ПАРАЛЛЕЛЕПИПЕДА В ОБЬЕМНОЙ СТОЛБЧАТОЙ ДИАГРАММЕ? 1 Использовать процедуру Bar3D дважды. построенный верхний парал- лелепипед "закроет" автоматически верхнюю грань нижнего парал- лелепипеда. 2 Установить параметр Top=false в процедуре Bar3D при построении нижнего параллелепипеда. 3 Установить параметр Top=false в процедуре Bar3D при построении верхнего параллелепипеда. 4 Построить ломаную линию соответствующую контурам верхней грани нижжнего параллелепипеда с помощью процедуры DrawPole и закра- сить его в белый цвет с помощью процедуры FillPole. * 05КАК НА ЭКРАНЕ ЗАКРАСИТЬ БЕЛЫМ ЦВЕТОМ ОБЛАСТЬ, ОГРАНИЧЕННУЮ ЗВЕЗДОЙ? 1 Построить звезду с помощью процедуры DrawPole(10,zve),где zve - константа типа PointType, является массивом координат вершин фигуры и содержит 10 элементов. 2 Использовать процедуру DrawPole(10,zvez) , где константа zvez содержит 11 элементов. 3 Применить процедуру FillPole(10,zves), где константа zves содер- жит 11 элементов. 4 Установить цвет рисования белый и с помощью процедуры FillPole(10,zves) построить звезду, закрашенную белым цветом. * 06С ПОМОЩЬЮ КАКОЙ ПРОЦЕДУРЫ ИЛИ ФУНКЦИИ ВОЗМОЖНО УСТАНОВИТЬ СТРОКОВОЕ НАЗВАНИЕ ТЕКУЩЕГО ГРАФИЧЕСКОГО АДАПТЕРА? 1 Функция GetDriverName; 2 Функция GetModeName(ModeNumber); 3 Функция GetMaxMode; 4 Процедура GetModeRange(GraphDriver;LowMode,HighMode); * 07СУЩЕСТВУЕТ ЛИ ВОЗМОЖНОСТЬ ОПРЕДЕЛЕНИЯ ЗНАЧЕНИЯ КООРДИНАТ КУРСОРА. 1 Нет 2 Да, с помощью функций GetX, GetY. 3 Да, с помощью функций GetMaxX, GetMaxY. 4 Да, с помощью функции MoveRel. * 08С ПОМОЩЬЮ КАКОГО ФРАГМЕНТА ПРОГРАММЫ МОЖНО ВЫВЕСТИ НА ЭКРАН 3 СЛЕДУЮЩУЮ КАРТИНКУ? КУРСОР НАХОДИТСЯ В ТОЧКЕ (X1,Y1). 1 Line(X,Y,X1,Y1); MoveRel(X,Y+dY); Line(X,Y+dY,X1,Y1); MoveRel(0,dY); LineTo(X1,Y1); 2 LineTo(X1,Y1); LineRel(0,dY); LineRel(0,2dY); 3 LineTo(X,Y); MoveRel(0,dY); Line(X,Y+dY,X1,Y1); MoveRel(0,dY); Line(X,Y+2dY,X1,Y1); 4 LineTo(X,Y); LineRel(0,dY); LineRel(0,2dY); * 09ГДЕ ПОМЕЩАЕТСЯ КУРСОР И КАКОЙ ФОН ЭКРАНА УСТАНАВЛИВАЕТСЯ ПРИ ВХОЖДЕНИИ В ГРАФИЧЕСКИЙ РЕЖИМ С ПОМОЩЬЮ ПРОЦЕДУРЫ InitGraph? 1 Курсор помещается в центр экрана и устанавливается черный цвет фона экрана. 2 Курсор помещается в правый верхний угол экрана и устанав- ливается черный цвет фона экрана. 3 Курсор помещается в левый верхний угол экрана и устанавлива- ется черный цвет фона экрана. 4 Курсор помещается в левый верхний угол экрана и устанавлива- ется белый цвет фона экрана. * 10С КАКОЙ ЧАСТОТОЙ ОБНОВЛЯЕТ ЭКРАН КОНТРОЛЛЕР ДИСПЛЕЯ ПЭВМ IBM? 1 50-60 раз/сек 2 20-40 раз/сек 3 100-120 раз/сек 4 200 раз/сек * 0 011Процедуру LineTo(X,Y) можно использовать только в случае, когда 002 один из концов отрезка совпадает с положением курсора. * 2Ответ правильный. Однако, применение процедуры DrawPoly в данном 004 случае не является рациональным. * 3Процедуру LineTo(X,Y) можно использовать только в случае, когда один002 из концов отрезка совпадает с положением курсора. Процедура DrowPoly не является в данном случае рациональной. * 4Ответ правильный. 005 * * 021Отввет неверный. Верхний параллелепипед будет иметь очищенную перед-002 нюю грань. Это не требуется по условию задачи. При этом неверно указаны параметры процедуры Bar3D при построении второго параллеле- пипеда. * 2Неправильно указаны параметры процедуры SetViewPort. Координаты окна002 отсчитываются от левого верхнего угла экрана в то время как для про- цедуры Bar3D от левого верхнего угла окна. * |
Руководство: Общее руководство праздника осуществляется учителем... Использование средств физического воспитания в организации активного отдыха укрепление здоровья учащихся | Московский государственный университет приборостроения и информатики... Личность инженера (менеджера, программиста и т п.) и особенности технического мышления | ||
Тема: «Разработать оптимальное рабочее место инженера-программиста,... | 1. Руководство племенной работой. 1 Руководство племенной работой... Коучинг с помощью нлп: Практическое руководство по достижению поставленных целей / Джозеф О'Коннор, Андреа Лейджес. — Пер с англ.... | ||
Программа по формированию навыков безопасного поведения на дорогах... Тем не менее, у каждого программиста есть свои предпочтения, свой любимый язык и среда разработки | Руководство по изучению дисциплины «Операционные системы, среды и оболочки» Руководство необходимо для общего ознакомления с дисциплиной и содержит сведения | ||
7. Руководство практикой, обязанности руководителей практики Настоящее «Руководство по качеству» не может быть полностью или частично воспроизведено, тиражировано и распространено без разрешения... | Руководство к выполнению курсовой работы по дисциплине «Управление качеством» Руководство предназначено для студентов специальности 080401. 65 «Товароведение и экспертиза товаров (по областям применения)» всех... | ||
Руководство по изучению дисциплины «Экономика» для студентов специальности 080801(351400) Руководство необходимо для общего ознакомления с дисциплиной и содержит сведения | Методическое руководство Руководство предназначено для разработчиков электронных обучающих материалов и электронных учебных курсов, отвечающих требованиям... | ||
Руководство к выполнению курсовой работы по дисциплине «Рынок товаров и услуг» Руководство предназначено для студентов специальности 080401. 65 «Товароведение и экспертиза товаров (по областям применения)» всех... | Руководство Руководство выпускниками, выбравшими форму экзамена «защита реферата» Положением о государственной (итоговой) аттестации выпускников 9 классов общеобразовательных учреждений Российской Федерации, Уставом... | ||
Руководство проведением Акции Общее руководство подготовкой и проведением областного этапа осуществляет региональный оргкомитет, созданный при Г(О)боу дод детском... | Руководство для подачи заявок в фонд по решению гражданских вопросов (cfcs) – раунд 4 ... | ||
Системной Энциклопедии" Руководство пользователя " Руководство пользователя "СЭ" по поиску статей в Энциклопедии, их просмотру, частичному выводу на печать и т д | Сценическое электрофортепиано Комбинация электрофортепиано и синтезатора создаёт исполнителю все условия для творчества. Перед использованием пианино рекомендуем... |