Главная / Программирование /
Разработка приложений на языке 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)