Главная / Программирование /
Разработка приложений на языке Visual Prolog / Тест 1
Разработка приложений на языке Visual Prolog - тест 1
Упражнение 1:
Номер 1
В редактор окна drawFrom
можно войти с помощью элемента дерева проекта
Ответ:
 (1) drawForm.cl
 
 (2) drawForm.frm
 
 (3) drawForm.pro
 
 (4) drawForm.i
 
Номер 2
Окно атрибутов главного окна приложения открывается с помощью элемента дерева проекта
Ответ:
 (1) taskWindow.pro
 
 (2) taskMenu.mnu
 
 (3) taskWindow.win
 
 (4) taskWindow.pack
 
Номер 3
Эксперт окон (Dialog and Window Expert
) открывается с помощью элемента дерева проекта
Ответ:
 (1) taskWindow.win
 
 (2) taskMenu.mnu
 
 (3) taskWindow.pro
 
 (4) taskWindow.pack
 
Упражнение 2:
Номер 1
Предикат обработки события выбора команды меню принадлежит предикатному домену
Ответ:
 (1) window::showListener
 
 (2) window::menuItemListener
 
 (3) window::moveListener
 
 (4) window::contextMenuResponder
 
Номер 2
Предикат обработки события изменения размеров окна принадлежит предикатному домену
Ответ:
 (1) window::sizeListener
 
 (2) window::stateListener
 
 (3) window::moveListener
 
 (4) window::userListener
 
Номер 3
Предикат обработки события, объявляющего клиентскую область окна недействительной и требующей перерисовки, принадлежит предикатному домену
Ответ:
 (1) window::stateListener
 
 (2) window::validateResponder
 
 (3) window::eraseBackgroundResponder
 
 (4) window::paintResponder
 
Упражнение 3:
Номер 1
Предикат invalidate/0
:
Ответ:
 (1) помечает клиентскую область окна как недействительную 
 (2) вызывает предикат onPaint
 
 (3) добавляет событие Paint
в очередь событий 
 (4) стирает изображение в окне 
Номер 2
Определение предиката onPaint
имеет вид:
onPaint(_, _, GDI):-
GDI:clear(color_Green).
В результате вызова подцели invalidate()
Ответ:
 (1) будет удалено изображение из клиентской области окна 
 (2) клиентская область окна будет закрашена зеленым цветом 
 (3) фон изображения станет зеленого цвета 
 (4) изображение потеряет зеленый цвет 
Номер 3
Определение предиката onPaint
имеет вид:
onPaint(_, _, GDI):-
GDI:clear(color_Green),
GDI:clear(color_Red) .
В результате вызова подцели invalidate() клиентская область окна будет закрашена
Ответ:
 (1) серым цветом 
 (2) зеленым цветом 
 (3) красным цветом 
 (4) цветом, полученным в результате смешивания зеленого и красного цветов 
Упражнение 4:
Номер 1
Точка pnt(100, 200) в клиентской области окна находится
Ответ:
 (1) ближе к левой границе окна, чем к его верхней границе 
 (2) ближе к верхней границе окна, чем к его левой границе 
 (3) в точности в центре окна 
 (4) на одинаковом расстоянии от левой границы и от верхней границы 
Номер 2
Укажите точку, которая находится ближе всего к верхней границе клиентской области окна:
Ответ:
 (1) pnt(20, 30) 
 (2) pnt(10, 20) 
 (3) pnt(40, 10) 
 (4) pnt(30, 40) 
Номер 3
Укажите точку, которая отстоит дальше всего от левой границы клиентской области окна:
Ответ:
 (1) pnt(200, 300) 
 (2) pnt(400, 100) 
 (3) pnt(100, 200) 
 (4) pnt(300, 400) 
Упражнение 5:
Номер 1
Определение предиката onPaint
имеет вид:
onPaint(_, _, GDI):-
GDI:setPen(pen(1, ps_Solid, color_Red)),
GDI:drawLine(pnt(0, 100), pnt(200, 100)),
GDI:setPen(pen(1, ps_Solid, color_Blue)),
GDI:drawLine(pnt(100, 0), pnt(100, 200)).
Определите цвета отрезков:
Ответ:
 (1) Горизонтальный отрезок будет синего цвета, а вертикальный красного 
 (2) Вертикальный отрезок будет синего цвета, а горизонтальный красного 
 (3) Оба отрезка будут синего цвета 
 (4) Оба отрезка будут красного цвета 
Номер 2
Определение предиката onPaint
имеет вид:
onPaint(_, _, GDI):-
GDI:setPen(pen(1, ps_Solid, color_Yellow)),
GDI:drawLine(pnt(100, 100), pnt(200, 200)),
GDI:setPen(pen(5, ps_Solid, color_Green)),
GDI:drawLine(pnt(100, 200), pnt(200, 100)).
Определите цвета отрезков:
Ответ:
 (1) Более тонкий отрезок будет желтого цвета, другой отрезок – зеленого 
 (2) Более тонкий отрезок будет зеленого цвета, другой отрезок – желтого 
 (3) Оба отрезка будут зеленого цвета 
 (4) Оба отрезка будут желтого цвета 
Номер 3
Определение предиката onPaint
имеет вид:
onPaint(_, _, GDI):-
Pnt = pnt(100, 100),
L = [pnt(0, 0), pnt(100, 100), pnt(100, 200), pnt(200, 100)],
list::forAll(L, {(Pnt1):- GDI:drawLine(Pnt, Pnt1)}).
Сколько отрезков будет содержать изображение?
Ответ:
 (1) 1 
 (2) 2 
 (3) 3 
 (4) 4 
Упражнение 6:
Номер 1
Ширина прямоугольника – это
Ответ:
 (1) длина большей стороны 
 (2) длина меньшей стороны 
 (3) длина вертикальной стороны 
 (4) длина горизонтальной стороны 
Номер 2
Пусть Rect = rct(10, 20, 40, 80)
. Высота прямоугольника Rect
равна
Ответ:
 (1) 60 
 (2) 40 
 (3) 30 
 (4) 80 
Номер 3
Определение предиката outerRectangle
имеет вид:
outerRectangle(rct(X1, Y1, X2, Y2)) = rct(X1 - 10, Y1 - 10, X2 + 10, Y2 + 10).
Пусть Rect1
= rct(10, 10, 90, 90), Rect2 = outerRectangle(Rect1)
. Площадь квадрата Rect1
составляет от площади квадрата Rect2
Ответ:
 (1) 64% 
 (2) 90% 
 (3) 100% 
 (4) 81% 
Упражнение 7:
Номер 1
Определение предиката onPaint
имеет вид:
onPaint(_, _, GDI):-
getClientSize(W, H),
GDI:drawArc(rct(0, 0, W, H), pnt(W div 2, 0), pnt(W div 2, H)).
Дуга отображается
Ответ:
 (1) в верхней половине клиентской области окна 
 (2) в нижней половине клиентской области окна 
 (3) в левой половине клиентской области окна 
 (4) в правой половине клиентской области окна 
Номер 2
Определение предиката onPaint
имеет вид:
onPaint(_, _, GDI):-
getClientSize(W, H),
GDI:drawArc(rct(0, 0, W, H), pnt(W, H div 2), pnt(0, H div 2)).
Дуга отображается
Ответ:
 (1) в верхней половине клиентской области окна 
 (2) в нижней половине клиентской области окна 
 (3) в левой половине клиентской области окна 
 (4) в правой половине клиентской области окна 
Номер 3
Определение предиката onPaint
имеет вид:
onPaint(_, _, GDI):-
getClientSize(W, H),
GDI:drawArc(rct(0, 0, W, H), pnt(0, H div 2), pnt(W div 2, H)).
Дуга отображается
Ответ:
 (1) в левой верхней четверти клиентской области окна 
 (2) в правой верхней четверти клиентской области окна 
 (3) в правой нижней четверти клиентской области окна 
 (4) в левой нижней четверти клиентской области окна 
Упражнение 8:
Номер 1
Верхняя половина дуги эллипса, вписанного в клиентскую область окна со сторонами W
и H
, отобразится в результате вызова подцели
Ответ:
 (1) Graphics:drawArcI(Pen, 0, 0, W, H
, 0, 180) 
 (2) Graphics:drawArcI(Pen, 0, 0, W, H
, 180, 90) 
 (3) Graphics:drawArcI(Pen, 0, 0, W, H
, 180, 180) 
 (4) Graphics:drawArcI(Pen, 0, 0, W, H
, 90, 180) 
Номер 2
Правая верхняя четверть дуги эллипса, вписанного в клиентскую область окна со сторонами W
и H
, отобразится в результате вызова подцели
Ответ:
 (1) Graphics:drawArcI(Pen, 0, 0, W, H
, 180, 90) 
 (2) Graphics:drawArcI(Pen, 0, 0, W, H
, 270, 90) 
 (3) Graphics:drawArcI(Pen, 0, 0, W, H
, 0, 90) 
 (4) Graphics:drawArcI(Pen, 0, 0, W, H
, 90, 180) 
Номер 3
Левая половина дуги эллипса, вписанного в клиентскую область окна со сторонами W
и H
, отобразится в результате вызова подцели
Ответ:
 (1) Graphics:drawArcI(Pen, 0, 0, W, H
, 0, 180) 
 (2) Graphics:drawArcI(Pen, 0, 0, W, H
, 180, 180) 
 (3) Graphics:drawArcI(Pen, 0, 0, W, H
, 270, 180) 
 (4) Graphics:drawArcI(Pen, 0, 0, W, H
, 90, 180)