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

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

Упражнение 1:
Номер 1
 Значение из поля целых чисел (Integer Control) можно найти с помощью подцели:

Ответ:

 (1) X = integerControl_ctl:getText() 

 (2) X = integerControl_ctl:getInteger() 

 (3) integerControl_ctl:setInteger(X) 

 (4) X = integerControl_ctl:getValue() 


Номер 2
 Поместить значение 10 в поле целых чисел (Integer Control) можно с помощью подцели:

Ответ:

 (1) integerControl_ctl:setText(10) 

 (2) integerControl_ctl:getInteger(10) 

 (3) integerControl_ctl:setInteger(10) 

 (4) integerControl_ctl:setText(toString(10)) 


Номер 3
 Увеличить на 10 значение, которое записано в поле целых чисел (Integer Control), можно с помощью подцели:

Ответ:

 (1) integerControl_ctl:setText(getText() + 10) 

 (2) integerControl_ctl:setInteger(10) 

 (3) integerControl_ctl:setInteger(+10) 

 (4) integerControl_ctl:setInteger(integerControl_ctl:getInteger() + 10) 


Упражнение 2:
Номер 1
 Укажите решение для цели B = toBoolean(1 = 2)

Ответ:

 (1) B = 0 

 (2) B = 1 

 (3) B = true 

 (4) B = false 


Номер 2
 Укажите решение для цели B = toBoolean(1 + 1 = 2)

Ответ:

 (1) B = 0 

 (2) B = 1 

 (3) B = true 

 (4) B = false 


Номер 3
 Укажите решение для цели B = toBoolean(1 = 1)

Ответ:

 (1) B = 0 

 (2) B = 1 

 (3) B = true 

 (4) B = false 


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

move() = tuple(I, J):-
   	       L = [tuple(0, 0), tuple(0, 1), tuple(0, 2), tuple(1, 0), tuple(1, 1)],
                   tuple(I, J) in L,
                   list::all(L, {(tuple(I1, J1)):- math::abs(I - I1) + math::abs(J - J1) <= 2}).

 Сколько решений имеет цель X = move()?

Ответ:

 (1)

 (2)

 (3)

 (4)


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

move() = tuple(I, J):-
   	       L = [tuple(0, 0), tuple(0, 1), tuple(0, 2), tuple(1, 0), tuple(1, 1), tuple(1, 2)],
                   tuple(I, J) in L,
                   list::all(L, {(tuple(I1, J1)):- math::max(math::abs(I - I1), math::abs(J - J1)) <= 1}).

 Сколько решений имеет цель X = move()?

Ответ:

 (1)

 (2)

 (3)

 (4)


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

move() = tuple(I, J):-
   	       L = [tuple(0, 0), tuple(0, 1), tuple(0, 2), tuple(1, 0), tuple(1, 1), tuple(1, 2)],
                   tuple(I, J) in L,
                   list::all(L, {(tuple(_, J1)):- math::abs(J - J1)) <= 1}).

 Укажите все решения, которые имеет цель X = move()?

Ответ:

 (1) X = tuple(0, 1); X = tuple(1, 1) 

 (2) X = tuple(0, 0); X = tuple(0, 1); X = tuple(1, 0); X = tuple(1, 1) 

 (3) X = tuple(0, 1); X = tuple(1, 0) 

 (4) X = tuple(0, 1); X = tuple(1, 0); X = tuple(1, 2) 


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

        move() = tuple(I, J):-
           I = std::fromTo(0, 2), J = std::fromTo(0, 2), math::abs(I - J) < 2.

 Сколько решений имеет цель X = move()?

Ответ:

 (1)

 (2)

 (3)

 (4)


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

        move() = tuple(I, J):-
           I = std::fromTo(0, 2), J = std::fromTo(0, 2), math::abs(I - J) = 2.

 Сколько решений имеет цель X = move()?

Ответ:

 (1)

 (2)

 (3)

 (4)


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

        move() = tuple(I, J):-
           I = std::fromTo(0, 2), J = std::fromTo(0, 2), math::abs(I - J) >= 1.

 Сколько решений имеет цель X = move()?

Ответ:

 (1)

 (2)

 (3)

 (4)


Упражнение 5:
Номер 1
 Укажите все точки, которые принадлежат правильному шестиугольнику с центром в точке (30, 30) и стороной 20:

Ответ:

 (1) (40; 40) 

 (2) (50; 20) 

 (3) (20; 30) 

 (4) (10; 0) 


Номер 2
 Укажите набор точек, которые могут являться вершинами правильного шестиугольника с центром в точке (20, 20) и стороной 20:

Ответ:

 (1) (40; 20), (0; 20) 

 (2) (0; 0), (40; 40) 

 (3) (10; 20), (20; 10) 

 (4) (0; 40), (40; 0) 


Номер 3
 Укажите точку, которая принадлежат правильному шестиугольнику с центром в точке (40, 40) и стороной 20:

Ответ:

 (1) (20; 15) 

 (2) (30; 50) 

 (3) (35; 65) 

 (4) (15; 60) 


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

           neighbor2(tuple(I, J)) = tuple(I, J + std::fromToInStep(-2, 2, 4)).

 Укажите решение для цели L = [X || X = neighbor2(tuple(2, 2))]:

Ответ:

 (1) L = [tuple(-2, 2), tuple(-2, 4), tuple(2, 2), tuple(2, 4)] 

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

 (3) L = [tuple(2, -2), tuple(2, 0), tuple(2, 2)] 

 (4) L = [tuple(2, 0), tuple(2, 4)] 


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

           neighbor2(tuple(I, J)) = tuple(I + std::fromToInStep(-2, 2, 4), J).
           neighbor2(tuple(I, J)) = tuple(I, J + std::fromToInStep(-2, 2, 4)).

 Сколько решений имеет цель X = neighbor2(tuple(4, 4))?

Ответ:

 (1) 16 

 (2)

 (3)

 (4)


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

           neighbor2(tuple(I, J)) = tuple(I + std::fromToInStep(-2, 2, 4), J).

 Сколько решений имеет цель X = neighbor2(tuple(3, 3))?

Ответ:

 (1)

 (2)

 (3)

 (4)


Упражнение 7:
Номер 1
 Укажите значение переменной X, которое она примет после вызова подцели

L = [tuple(2, 3, 10), tuple(3, 2, 1), tuple(1, 4, 6), tuple(2, 3, 5)], 
tuple(_, _, X) = list::maximum(L).

Ответ:

 (1) 10 

 (2)

 (3)

 (4)


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

L = [tuple(5, 2, 1), tuple(4, 5, 10), tuple(2, 6, 9), tuple(3, 8, 5)], 
X = list::maximum(L).

Ответ:

 (1) tuple(5, 2, 1) 

 (2) tuple(4, 5, 10) 

 (3) tuple(2, 6, 9) 

 (4) tuple(3, 8, 5) 


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

L = [tuple(2, 3, 8), tuple(3, 2, 1), tuple(1, 4, 9), tuple(4, 5, 5)], 
tuple(_, X, _) = list::minimum(L).

Ответ:

 (1)

 (2)

 (3)

 (4)


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

coord() = tuple(I, J):-
           I = std::fromTo(-1, 1), J = std::between(I, -2*I).

 Сколько решений имеет цель X = coord()?

Ответ:

 (1)

 (2)

 (3)

 (4)


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

coord() = tuple(I, J):-
           I = std::fromToInStep(-1, 1, 2), J = std::betweenInStep(I, -I, 2).

 Сколько решений имеет цель X = coord()?

Ответ:

 (1)

 (2)

 (3)

 (4)


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

coord() = tuple(I, J):-
           I = std::fromToInStep(-1, 1, 2), J = std::between(2*I, -I).

 Сколько решений имеет цель X = coord()?

Ответ:

 (1)

 (2)

 (3)

 (4)




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