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

Основы программирования на языке Visual Prolog - тест 16

Упражнение 1:
Номер 1
В чем заключается метод ван Эмдена по выбору хода в игре?

Ответ:

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

 (2) сделать первый допустимый ход, не приводящий к немедленному проигрышу 

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

 (4) сделать любой допустимый ход, не приводящий к немедленному проигрышу 


Номер 2
Выигрышная позиция в игре – это позиция,

Ответ:

 (1) в которой игрок выиграет, как бы он ни ходил 

 (2) в которой игрок выиграет, если знает, как ходить 

 (3) которая является последней 

 (4) в которой невозможно проиграть 


Номер 3
Проигрышная позиция в игре – это позиция,

Ответ:

 (1) в которой игрок проиграет, как бы ни ходил его противник 

 (2) в которой игрок проиграет, если не знает, как ходить 

 (3) которая является последней в игре 

 (4) в которой игрок проиграет, если его противник знает, как ходить 


Упражнение 2:
Номер 1
Напишите значение, которое примет переменная S в результате вызова цели  S = string::replaceAll("misteri", "i", "Y") :

Ответ:

 (1) sterymY 

 (2) mYsterY 

 (3) stermY 

 (4) Ysterm 


Номер 2
Напишите значение, которое примет переменная S в результате вызова цели  S = string::replacePart("prolog", 5, 0, "n") :

Ответ:

 (1) prolong 

 (2) long 

 (3) longpro 

 (4) prol 


Номер 3
Напишите значение, которое примет переменная N в результате вызова цели  N = string::search("prolog", "o") :

Ответ:

 (1) 5 

 (2) 4 

 (3) 3 

 (4) 2 


Упражнение 3:
Номер 1
Определение предиката count имеет вид:count(L1, L2) = length(filter(L1, {(X):- isMember(X, L2)})). Какое значение примет переменная L в результате вызова цели L = count([1, 2, 3], [3, 2, 5])?

Ответ:

 (1)

 (2)

 (3)

 (4)


Номер 2
Определение предиката subset имеет вид:subset(0, _) = []:- !.
subset(N, [X | L]) = [X | subset(N - 1, L)].
subset(N, [_ | L]) = subset(N, L).
 	Сколько решений имеет цель L = subset(2, [1, 2, 3])?

Ответ:

 (1)

 (2)

 (3)

 (4)


Номер 3
В игре «Отгадай числа» первым ходит компьютер. Кто выиграет, если требуется угадать три числа и пользователь загадает числа 4, 1 и 2?

Ответ:

 (1) пользователь 

 (2) это зависит от того, что загадал компьютер 

 (3) компьютер 

 (4) заранее нельзя определить 


Упражнение 4:
Номер 1
В результате вызова цели S = frontChar(toLowerCase(trim("  ДА  "))) переменная S примет значение 

Ответ:

 (1) 'д' 

 (2) 'Д' 

 (3) не примет никакого значения 

 (4) ' ' 


Номер 2
Признак N присутствует, если в базе данных имеется факт answer(N, 1), и отсутствует, если в ней имеется факт answer(N, 0). Определение предиката correct имеет вид:correct(L):- answer(N, 1), not(isMember(N, L)), !, fail; succeed(). Предикат истинен, если 

Ответ:

 (1) имеются все необходимые признаки 

 (2) имеется признак, которого нет в списке L 

 (3) нет признаков, которых не было бы в списке L 

 (4) никаких признаков не обнаружено 


Номер 3
Одно из правил, определяющих предикат aks/3, имеет вид:ask(A, _, [N | _]):- assert(answer(N, A)), fail. Оно соответствует следующему действию:

Ответ:

 (1) отменяется запись в базу данных нового факта 

 (2) в базу данных записывается новый факт и выполняется переход к следующему правилу 

 (3) в базу данных записывается новый факт, если его там не было 

 (4) если вычисления дойдут до этого правила, то вызов предиката ask будет неуспешным.  


Упражнение 5:
Номер 1
Определение предикатов pet и unif имеет вид:pet(h(C, N, Pt, D, S), P) = h(C, N, P, D, S):- unif(Pt, P).
				unif(X, Y):- X = empty, !; Y = X.
 	Вызов <…>, House = pet(h(empty, empty, Pt, empty, empty), P) успешен 

Ответ:

 (1) только если P = Pt  

 (2) если Pt = empty или P = Pt 

 (3) только если Pt = empty 

 (4) всегда 


Номер 2
В результате вызова memberIndex_nd(X, I, [1, 2, 3]) переменные X и I последовательно примут следующие значения:

Ответ:

 (1) X = 1, I = 2 

 (2) X = 1, I = 1; X = 2, I = 2; X = 3, I = 3 

 (3) X = 1, I = 0; X = 2, I = 1; X = 3, I = 2 

 (4) X = 1, I = 0 


Номер 3
Определение предиката middle имеет вид:middle(nth(I, L), I, L):- I = length(L) div 2. Напишите значение, которое примет переменная X в результате вызова цели middle(X, _, ["bob", "ann", "tom", "bill"]):

Ответ:

 (1) mot 

 (2) lom 

 (3) tom 

 (4) tmo 


Упражнение 6:
Номер 1
Определение предиката member в PIE имеет вид:member(H, [H | _]).
		member(H, [_ | T]):- member(H, T).
Цель L = [_, _], member(1, L) имеет в PIE следующий набор решений:

Ответ:

 (1) L = [1, _]; L = [_, 1] 

 (2) L = [1] 

 (3) Эта цель не имеет решений 

 (4) L = [1, 1] 


Номер 2
В результате вызова в PIE цели L = [[1] | _], L = [_, [], 2] переменная L примет значение

Ответ:

 (1) [[1], 2 | []] 

 (2) [[1], _, [], 2] 

 (3) не примет никакого значения 

 (4) [[1], [], 2] 


Номер 3
Определение предиката p в PIE имеет вид:p(X, X). В результате вызова p(Y, Z), p(Z, tom) переменная Y примет значение	

Ответ:

 (1) не примет никакого значения 

 (2) X 

 (3) tom 

 (4) Z 


Упражнение 7:
Номер 1
Определение предиката conc в PIE имеет вид:conc(d(A, B), d(B, C), d(A, C)). 	В результате вызова conc(d([1, 2 | X], X), d([2, 3], []), d(L, _)) переменная L примет значение	

Ответ:

 (1) [1] 

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

 (3) [1, 2, _] 

 (4) [1, 3] 


Номер 2
Определение предиката conc в PIE имеет вид:conc(d(A, B), d(B, C), d(A, C)). В результате вызова conc(d([1, 2 | X], X), d([2, 3], []), d(L, _)) переменная X примет значение

Ответ:

 (1) [3] 

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

 (3) [] 

 (4) [2, 3] 


Номер 3
Определение предиката conc в PIE имеет вид:conc(d(A, B), d(B, C), d(A, C)). В результате вызова conc(d([1, 2 | X], X), d([2, 3], [4]), d(L, _)) переменная L примет значение	

Ответ:

 (1) [1] 

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

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

 (4) [1, 4] 


Упражнение 8:
Номер 1
В результате вызова в PIE цели functor(Term, person, 2), arg(1, Term, bob) переменная Term примет значение

Ответ:

 (1) person(bob, _) 

 (2) person(bob) 

 (3) person(_, bob) 

 (4) person(bob, bob) 


Номер 2
В результате вызова в PIE цели functor(X, book, 2), arg(1, X, melville), arg(2, X, "Moby-Dick") переменная X примет значение

Ответ:

 (1) melville("Moby-Dick") 

 (2) book(melville("Moby-Dick")) 

 (3) book(melville("Moby-Dick")) 

 (4) book(_, melville, "Moby-Dick") 


Номер 3
В результате вызова в PIE цели functor(F, animal, 1), functor(B, bird, 1), arg(1, F, B), arg(1, B, swan) переменная F примет значение

Ответ:

 (1) bird(swan) 

 (2) animal(bird(swan)) 

 (3) animal(bird(_, swan)) 

 (4) animal(bird, swan) 




Главная / Программирование / Основы программирования на языке Visual Prolog / Тест 16