игра брюс 2048
Главная / Программирование / Разработка приложений на языке Visual Prolog / Тест 3

Разработка приложений на языке Visual Prolog - тест 3

Упражнение 1:
Номер 1
        Определение предикатов обработки событий onPaint и onSize имеет вид:

    onPaint(_Source, rct(0, 0, 10, 10), GDI):- !,
        GDI:clear(color_Red).
    onPaint(_Source, _Rectangle, GDI):- 
        	        GDI:clear(color_Blue).

    onSize(_Source):-
        invalidate().

 Что произойдет при небольшом изменении размеров окна стандартного размера?
      

Ответ:

 (1) Клиентская область окна будет закрашена синим цветом 

 (2) На синем фоне в левом верхнем углу будет изображен красный квадрат 

 (3) На красном фоне появится маленький синий квадрат 

 (4) Клиентская область окна будет закрашена красным цветом 


Номер 2
        Определение предикатов обработки событий onPaint и onMouseDown имеет вид:

    onPaint(_Source, rct(10, 10, 20, 20), GDI):- !,
        GDI:clear(color_Red).
    onPaint(_Source, _Rectangle, GDI):- 
        	        GDI:clear(color_Green).

    onMouseDown(_Source, _Point, _ShiftControlAlt, _Button):-
        invalidate(rct(10, 10, 20, 20)).

 Что произойдет после щелчка мыши?
      

Ответ:

 (1) Клиентская область окна будет закрашена красным цветом 

 (2) На зеленом фоне появится маленький красный квадрат 

 (3) На красном фоне появится маленький зеленый квадрат 

 (4) Клиентская область окна будет закрашена зеленым цветом 


Номер 3
        Определение предикатов обработки событий onPaint и onMouseDbl имеет вид:

    onPaint(_Source, rct(10, 10, 20, 20), GDI):- !,
        GDI:clear(color_Yellow).
    onPaint(_Source, _Rectangle, GDI):- 
        	        GDI:clear(color_Gray).

    onMouseDbl(_Source, _Point, _ShiftControlAlt, _Button):-
        invalidate(rct(0, 0, 20, 20)).

 Что произойдет после двойного щелчка мыши?
      

Ответ:

 (1) Клиентская область окна будет закрашена желтым цветом 

 (2) На сером фоне появится желтый квадрат 

 (3) На желтом фоне появится серый квадрат 

 (4) Клиентская область окна будет закрашена серым цветом 


Упражнение 2:
Номер 1
Укажите все значения переменных Rect и Point, при которых вызов подцели vpi::rectPntInside(Rect, Point) завершится успехом:

Ответ:

 (1) Rect = rct(0, 0, 200, 200), Point = pnt(100, 100) 

 (2) Rect = rct(0, 0, 100, 100), Point = pnt(200, 200) 

 (3) Rect = rct(0, 100, 200, 200), Point = pnt(50, 50) 

 (4) Rect = rct(100, 0, 200, 200), Point = pnt(150, 100) 


Номер 2
        Укажите все значения переменной Point, при которых вызов подцели

vpi::rectPntInside(rct(10, 20, 200, 100), Point) завершится успехом:

      

Ответ:

 (1) Point = pnt(100, 50) 

 (2) Point = pnt(100, 200) 

 (3) Point = pnt(50, 50) 

 (4) Point = pnt(150, 150) 


Номер 3
        Укажите все значения переменной Rect, при которых вызов подцели

vpi::rectPntInside(Rect, pnt(50, 100)) завершится успехом:

      

Ответ:

 (1) Rect = rct(100, 0, 200, 150) 

 (2) Rect = rct(0, 0, 150, 150) 

 (3) Rect = rct(0, 50, 150, 200) 

 (4) Rect = rct(20, 0, 200, 50) 


Упражнение 3:
Номер 1
Цель L = list::removeConsecutiveDuplicates([3, 3, 3, 2, 1, 1, 2, 2, 3]) имеет решение

Ответ:

 (1) L = [3, 2, 1] 

 (2) L = [3, 2, 1, 2, 3] 

 (3) L = [1, 2, 3] 

 (4) L = [1, 1, 2, 2, 2, 3, 3, 3, 3] 


Номер 2
Цель L = list::removeConsecutiveDuplicates([2, 1, 1, 2, 2]) имеет решение

Ответ:

 (1) L = [2, 1] 

 (2) L = [1, 2] 

 (3) L = [2, 1, 2] 

 (4) L = [2] 


Номер 3
Цель L = list::removeConsecutiveDuplicates([1, 0, 1, 1, 0, 0, 1, 0]) имеет решение

Ответ:

 (1) L = [1, 0] 

 (2) L = [1, 0, 1, 0] 

 (3) L = [0, 1] 

 (4) L = [1, 0, 1, 0, 1, 0] 


Упражнение 4:
Номер 1
Манхэттенское расстояние между точками pnt(10, 60) и pnt(40, 20) равно

Ответ:

 (1) 10 

 (2) 40 

 (3) 50 

 (4) 70 


Номер 2
Манхэттенское расстояние между точками pnt(45, 50) и pnt(40, 62) равно

Ответ:

 (1) 13 

 (2) 17 

 (3)

 (4) 12 


Номер 3
Укажите точку, которая находится ближе всего относительно манхэттенского расстояния к точке pnt(20, 30):

Ответ:

 (1) pnt(10, 10) 

 (2) pnt(20, 50) 

 (3) pnt(15, 35) 

 (4) pnt(25, 20) 


Упражнение 5:
Номер 1
Редактор меню окна paintMenu открывается с помощью элемента дерева проекта:

Ответ:

 (1) paintMenu.mnu 

 (2) paintToolbar.tb 

 (3) taskMenu.mnu 

 (4) projectToolbar.tb 


Номер 2
Редактор панели инструментов окна paintMenu открывается с помощью элемента дерева проекта:

Ответ:

 (1) paintMenu.mnu 

 (2) paintToolbar.tb 

 (3) taskMenu.mnu 

 (4) projectToolbar.tb 


Номер 3
Редактор строки состояния окна paintMenu открывается с помощью элемента дерева проекта:

Ответ:

 (1) paintMenu.mnu 

 (2) paintToolbar.tb 

 (3) paintStatusLine.mnu 

 (4) paintStatusLine.tb 


Упражнение 6:
Номер 1
        Определение предиката onPaint имеет вид:

	    onPaint(_Source, _Rectangle, GDI):-
                    GDI:pictDraw(bgpict, pnt(0, 0), rop_SrcCopy).

 Как отобразится изображение bgpict?
      

Ответ:

 (1) Изображение будет уменьшено до точки размером в пиксель и помещено в левый верхний угол, его не будет видно 

 (2) Будет видна часть изображения, которая попадет в клиентскую область, без изменения размеров изображения 

 (3) Изображение будет натянуто на клиентскую область окна, при этом оно может исказиться 

 (4) Изображение появится, только если оно поместится в окне целиком 


Номер 2
        Определение предиката onPaint имеет вид:

    onPaint(_Source, _Rectangle, GDI):-
        getClientSize(W, H),
        vpi::pictGetSize(bgpict, PW, PH, _),
        GDI:pictDraw(bgpict, rct(0, 0, W, H), rct(0, 0, PW div 2, PH), rop_SrcCopy).

 Как отобразится изображение bgpict?
      

Ответ:

 (1) Произойдет ошибка 

 (2) Все изображение будет натянуто на клиентскую область окна 

 (3) Левая половина изображения будет натянута на всю клиентскую область окна 

 (4) Левая половина изображения будет натянута на левую половину клиентской области окна 


Номер 3
        Определение предиката onPaint имеет вид:

    onPaint(_Source, _Rectangle, GDI):-
        getClientSize(W, H),
        vpi::pictGetSize(bgpict, PW, PH, _),
        GDI:pictDraw(bgpict, rct(0, 0, W div 2, H), rct(PW div 2, 0, PW, PH), rop_SrcCopy).

 Как отобразится изображение bgpict?
      

Ответ:

 (1) Левая половина изображения будет натянута на правую половину клиентской области окна 

 (2) Все изображение будет натянуто на клиентскую область окна 

 (3) Левая половина изображения будет натянута на всю клиентскую область окна 

 (4) Правая половина изображения будет натянута на левую половину клиентской области окна 


Упражнение 7:
Номер 1
В результате вызова _ = timerSet(500) таймер будет тикать:

Ответ:

 (1) раз в секунду 

 (2) раз в полсекунды 

 (3) раз в пять секунд 

 (4) пять раз в секунду 


Номер 2
Сколько тиков в секунду будет делать таймер после вызова _ = timerSet(200)?

Ответ:

 (1)

 (2) 200 

 (3)

 (4)


Номер 3
Как часто будет тикать таймер после вызова _ = timerSet(600)?

Ответ:

 (1) Раз в шесть секунд 

 (2) Шесть раз в секунду 

 (3) Шесть раз в течение каждых десяти секунд 

 (4) Пять раз в течение каждых трех секунд 


Упражнение 8:
Номер 1
 В результате вызова Graphics:translateTransform(10, 10)
  

Ответ:

 (1) будет выполнено преобразование параллельного переноса на вектор (10; 10) 

 (2) выполнится преобразование растяжения в 10 раз вдоль обеих осей координат 

 (3) изображение сожмется в 10 раз вдоль обеих осей координат 

 (4) изображение будет повернуто на 10 градусов и сдвинуто на 10 пикселей вправо 


Номер 2
        В результате вызова последовательности подцелей

            Graphics:translateTransform(200, 200),
            	Graphics:rotateTransform(90),
            Graphics:drawRectangleI(Pen, 0, 0, 40, 20)

 отобразится прямоугольник, левый верхний угол которого будет находиться в точке с координатами
      

Ответ:

 (1) (200; 200) 

 (2) (180; 200) 

 (3) (200; 160) 

 (4) (180; 180) 


Номер 3
        В результате вызова последовательности подцелей

            	Graphics:translateTransform (20, 10),
            Graphics:drawRectangleI(Pen, 100, 100, 20, 40)

 отобразится прямоугольник, левый верхний угол которого будет находиться в точке с координатами
      

Ответ:

 (1) (40; 50) 

 (2) (100; 110) 

 (3) (120; 110) 

 (4) (20; 10) 




Главная / Программирование / Разработка приложений на языке Visual Prolog / Тест 3