Главная / Программирование /
Разработка приложений на языке Visual Prolog / Тест 8
Разработка приложений на языке Visual Prolog - тест 8
Упражнение 1:
Номер 1
Поместить надпись на кнопку (Push Button
) можно с помощью подцели:
Ответ:
 (1) button_ctl:setLabel(Text)
 
 (2) button_ctl:setText(Text)
 
 (3) button_ctl:setState(Text)
 
 (4) Text
= button_ctl:getText()
 
Номер 2
Найти надпись на кнопке (Push Button)
можно с помощью подцели:
Ответ:
 (1) Text
= button_ctl:getString()
 
 (2) button_ctl:setText(Text)
 
 (3) Text
= button_ctl:getState()
 
 (4) Text
= button_ctl:getText()
 
Номер 3
Добавить восклицательный знак к надписи на кнопке (Push Button
) можно с помощью подцели:
Ответ:
 (1)
button_ctl:setLabel("!")
 
 (2) button_ctl:setText("!")
 
 (3) button_ctl:setText(string::concat(button_ctl:getText(),"!"))
 
 (4) button_ctl:setText(Text, "!")
 
Упражнение 2:
Номер 1
Узнать, стоит ли флажок (Check Box
), можно с помощью подцели:
Ответ:
 (1) Boolean
= checkButton_ctl:getChecked()
 
 (2) State
= checkButton_ctl:getState()
 
 (3) State
= checkButton_ctl:getRadioState()
 
 (4) Boolean
= checkButton_ctl:getCheckedState()
 
Номер 2
Поставить флажок (Check Box
) можно с помощью подцели:
Ответ:
 (1) Boolean
= checkButton_ctl:getChecked()
 
 (2) checkButton_ctl:setChecked(true)
 
 (3) checkButton_ctl:setRadioState(radioButton::checked)
 
 (4) checkButton_ctl:setCheckedState()
 
Номер 3
Убрать флажок (Check Box
) можно с помощью подцели:
Ответ:
 (1) Boolean
= checkButton_ctl:getChecked()
 
 (2) checkButton_ctl:setRadioState(radioButton::unchecked)
 
 (3) checkButton_ctl:setChecked(false)
 
 (4) checkButton_ctl:setUncheckedState()
 
Упражнение 3:
Номер 1
Найдите решение для цели L = [X || X = std::cIterate(5)]:
Ответ:
 (1) L
= [0, 1, 2, 3, 4, 5] 
 (2) L
= [1, 2, 3, 4, 5] 
 (3) L
= [0, 1, 2, 3, 4] 
 (4) L
= [2, 3, 4, 5, 6] 
Номер 2
Найдите решение для цели L = [X+1 || X = std::cIterate(3)]:
Ответ:
 (1) L
= [1, 2, 3] 
 (2) L
= [2, 3, 4] 
 (3) L
= [0, 1, 2] 
 (4) L
= [0, 1, 2, 3] 
Номер 2
Сколько элементов содержит список L
= [X-1 || X
= std::cIterate(10)]?
Ответ:
 (1) 9 
 (2) 10 
 (3) 11 
 (4) 8 
Упражнение 4:
Номер 1
Определение факта-переменной rbtree
и предиката create
имеют вид:
facts
rbtree : tree{integer, integer} := emptyUnique().
clauses
create():-
X = std::fromTo(1, 10),
rbtree := insert(rbtree, X mod 2, X).
Сколько вершин будет содержать дерево rbtree
в результате вызова create()
?
Ответ:
 (1) 2 
 (2) 5 
 (3) 6 
 (4) 10 
Номер 2
Определение факта-переменной rbtree
и предиката create
имеют вид:
facts
rbtree : tree{integer, integer} := emptyUnique().
clauses
create():-
X = std::fromTo(1, 5),
rbtree := insert(rbtree, X mod 2, X).
Какие пары "ключ – значение" будут содержаться в вершинах дерева rbtree
в результате вызова create()
?
Ответ:
 (1) "1 – 1", "2 – 0", "3 – 1", "4 – 0", "5 – 1" 
 (2) "0 – 2", "1 – 1" 
 (3) "1 – 1", "2 – 0" 
 (4) "0 – 4", "1 – 5" 
Номер 3
Определение факта-переменной rbtree
и предиката create
имеют вид:
facts
rbtree : tree{integer, integer} := emptyUnique().
clauses
create():-
X = std::fromTo(1, 10),
rbtree := insert(rbtree, X, X mod 2).
Сколько вершин будет содержать дерево rbtree
в результате вызова create()
?
Ответ:
 (1) 2 
 (2) 4 
 (3) 5 
 (4) 10 
Упражнение 5:
Номер 1
Определение факта-переменной rbtree
и предиката create
имеют вид:
facts
rbtree : tree{integer, integer} := emptyUnique().
clauses
create():-
X = std::fromTo(1, 10),
rbtree := insert(rbtree, X mod 3, X).
Укажите значение, которое примет переменная X
после вызова цели create(), X = tryLookUp(rbtree, 2)
:
Ответ:
 (1) 9 
 (2) 8 
 (3) 2 
 (4) 10 
Номер 2
Определение факта-переменной rbtree
и предиката create
имеют вид:
facts
rbtree : tree{integer, integer} := emptyUnique().
clauses
create():-
X = std::fromTo(1, 10),
rbtree := insert(rbtree, X, X mod 3).
Укажите значение, которое примет переменная X
после вызова цели create(), X = tryLookUp(rbtree, 2)
:
Ответ:
 (1) 0 
 (2) 1 
 (3) 2 
 (4) 8 
Номер 3
Определение факта-переменной rbtree
и предиката create
имеют вид:
facts
rbtree : tree{integer, integer} := emptyUnique().
clauses
create():-
X = std::fromTo(1, 10),
rbtree := insert(rbtree, X mod 3, X div 3).
Укажите значение, которое примет переменная X
после вызова цели create()
, X = tryLookUp(rbtree, 0)
:
Ответ:
 (1) 3 
 (2) 1 
 (3) 2 
 (4) 4 
Упражнение 6:
Номер 1
Определение предикатов neighbor
и f
имеет вид:
neighbor(I, J, I, f(J, 3)).
neighbor(I, J, f(I, 3), J).
neighbor(I, J, f(I, 3), f(J, 3)).
f(X, _) = X - 1:- X > 0.
f(X, N) = X + 1:- X < N - 1.
Сколько решений имеет цель neighbor(0, 1, I, J)
?
Ответ:
 (1) 3 
 (2) 4 
 (3) 5 
 (4) 8 
Номер 2
Определение предикатов neighbor
и f
имеет вид:
neighbor(I, J, I, f(J, 3)).
neighbor(I, J, f(I, 3), J).
f(X, _) = X - 1:- X > 0.
f(X, N) = X + 1:- X < N - 1.
Укажите все решения для цели neighbor(0, 2, I, J)
:
Ответ:
 (1) I
= 0, J
= 1; I
= 1, J
= 2 
 (2) I
= 0, J
= 1; I
= 1, J
= 2; I
= 1, J
= 1 
 (3) I
= 0, J
= 1; I
= 1, J
= 2; I
= 0, J
= 3 
 (4) I
= 0, J
= 1; I
= 0, J
= 2; I
= 1, J
= 2 
Номер 3
Определение предикатов neighbor
и f
имеет вид:
neighbor(I, J, f(I, 3), f(J, 3)).
f(X, _) = X - 1:- X > 0.
f(X, N) = X + 1:- X < N - 1.
Сколько решений имеет цель neighbor(1, 0, I, J)
?
Ответ:
 (1) 3 
 (2) 2 
 (3) 5 
 (4) 4 
Упражнение 7:
Номер 1
Пусть L = list::decompose([0, 1, 1, 2, -2], {(X) = X})
.
Сколько элементов содержит список L
?
Ответ:
 (1) 2 
 (2) 3 
 (3) 4 
 (4) 5 
Номер 2
Пусть L = list::decompose([0, 0, 0, 1, 1, 2, 2, 3], {(X) = X})
.
Укажите элемент, принадлежащий списку L
:
Ответ:
 (1) tuple
(2, 2) 
 (2) tuple
(0, [0, 0, 0]) 
 (3) tuple
(3, [0, 0, 0]) 
 (4) tuple
(1, [1]) 
Номер 3
Пусть L = list::decompose([1, 0, 1, 0, 1, 0, 1], {(X) = X})
.
Укажите элементы, составляющие список L
:
Ответ:
 (1) tuple
(4, 1), tuple
(3, 0) 
 (2) tuple
(4, [1]), tuple
(3, [0]) 
 (3) tuple
(4, [1, 1, 1, 1]), tuple
(3, [0, 0, 0]) 
 (4) tuple
(1, [1, 1, 1, 1]), tuple
(0, [0, 0, 0]) 
Упражнение 8:
Номер 1
Пусть L = list::decompose([-2, -1, 0, 1, 2], {(X) = X^2})
.
Сколько элементов содержит список L
?
Ответ:
 (1) 1 
 (2) 2 
 (3) 3 
 (4) 5 
Номер 2
Пусть L = list::decompose([-2, -2, -1, -1, 0, 1, 2, 3, 3], {(X) = math::abs(X)})
.
Сколько элементов содержит список L
?
Ответ:
 (1) 5 
 (2) 2 
 (3) 6 
 (4) 4 
Номер 3
Пусть L1 = list::decompose([0, 1, -1, 0, 1, -1, 0], {(X) = math::abs(X)})
, L2 = list::map(L1, {(tuple(I, L)) = tuple(I, list::length(L))})
.
Укажите элементы, которые составляют список L2
Ответ:
 (1) tuple
(0, 3), tuple
(1, 2) , tuple
(-1, 2) 
 (2) tuple
(0, 3), tuple
(1, 4) 
 (3) tuple
(0, 3), tuple
(1, 2) 
 (4) tuple
(1, 2) , tuple
(-1, 2)