в отсчете от левого верхнего угла экрана.
* 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 от левого верхнего угла окна.
*
3Ответ правильный. 005
*
4Ответ не точный.На экране появятся затененные контуры нижнего парал-003
лелепипеда.
*
*
031Ответ не точный.Процедуры SetViewPort и ClearViewPort в данном слу- 003
чае излишние,т.к.уже процедура Bar рисует прямоугольную область,
которую закрашивает первым цветом палитры, если цвет не задан ранее
*
2Ответ правильный 005
*
3Процедура Bar3D рисует аксонометрию прямоугольного параллелепипеда,а002
не прямоугольную область.
*
4Процедура Bar3D рисует аксонометрию прямоугольного параллелепипеда,а002
не прямоугольную область.
*
*
041Ответ неверный. Процедура Bar3D рисует контуры аксонометрии закра- 002
шенного по фасаду параллелепипеда. Боковая и верхняя грани не закра-
шиваются, т.о. затемненная часть верхней грани нижнего параллелепи-
педа не исчезнет.
*
2Ответ правильный. 005
*
3Ответ неверный. Параметр Top процедуры Bar3D регулирует наличие или 002
отсутствие верхней (а не нижней) левой грани аксонометрии.
*
4Ответ неверный. Достаточно установить параметр Top=False процедуры 002
Bar3D. Дополниетльные меры излишне.
*
*
051Ответ неверный. Процедура DrawPoly построит звезду с одной невидимой002
гранью. Цвет фигуры будет соответствовать цвету фона.
*
2Ответ неверный. Цвет фигуры будет соответствовать цвету фона и будет002
белым только в случае, когда фон экрана белый.
*
3Ответ правильный. 005
*
4Ответ правильный. Однако, закраска белым цветом возможна и 004
по умолчанию.
*
*
061Ответ правильный. 005
*
2Ответ неверный. Функция GetModeName возвращает строковое название 002
требуемого графического режима для текущего адаптера.
*
3Ответ неверный.Функция GetMaxMode возвращает максимальный номер 002
графического режима для текущего адаптера.
*
4Ответ неверный. Процедура GetModeRange выдает справку о диапазоне 002
номеров графических режимов заданного графического адаптера.
*
*
071Ответ неверный. Такая возможность существует. 002
*
2Ответ правильный. 005
*
3Ответ неверный. Данные процедуры возвращают максимально возможные 002
для текущего драйвера и режима графические позиции курсора.