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

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

Упражнение 1:
Номер 1
Отсечение в запросе используется для того, чтобы запретить поиск альтернативных решений для подцелей, расположенных

Ответ:

 (1) после отсечения 

 (2) до отсечения 

 (3) до и после отсечения 

 (4) иногда до, иногда после отсечения 


Номер 2
Динамическое отсечение используется 

Ответ:

 (1) для предотвращения отката при вычислении отдельных подцелей 

 (2) так же, как и статическое 

 (3) вместо статического 

 (4) для предотвращения отката при вычислении каждой подцели 


Номер 3
Отсечение используется:

Ответ:

 (1) для поиска всех альтернативных решений 

 (2) для предотвращения поиска всех решений 

 (3) для запрета процедуры унификации 

 (4) для предотвращения отката после достижения цели 


Упражнение 2:
Номер 1
Отсечение в программе min(X, Y, X):- X < Y, !.
min(X, Y, Y):- X >= Y.

Ответ:

 (1) является зеленым 

 (2) является красным 

 (3) является динамическим 

 (4) не используется при вычислениях 


Номер 2
Отсечение в программе
min(X, Y, X):- Y > X, !.
min(_, Y, Y).
  

Ответ:

 (1) является зеленым 

 (2) является красным 

 (3) является динамическим 

 (4) не используется при вычислениях 


Номер 3
Программа имеет вид:
male(tom).
male(bob).
		Отсечение в запросе male(X), !, male (Y) 

Ответ:

 (1) является динамическим  

 (2) является зеленым 

 (3) является красным  

 (4) не используется при вычислении этого запроса 


Упражнение 3:
Номер 1
Предикат likes определяется следующим образом:
likes(mary, books).
likes(peter, mary).
likes(mary, peter).Цель likes(X, Y), !, likes(Y, Z) имеет следующее количество решений:

Ответ:

 (1)

 (2)

 (3)

 (4)


Номер 2
Предикат parent определяется следующим образом:parent(peter, mary).
parent(mary, ann).
parent(mary, bob).Цель !, parent(X, Y), parent(Y, Z) имеет следующее количество решений:

Ответ:

 (1)

 (2)

 (3)

 (4)


Номер 3
Предикат parent определяется следующим образом:parent(peter, mary).
parent(mary, ann).
parent(mary, bob).
 Цель parent(X, Y), !, parent(Y, Z) имеет следующее количество решений:

Ответ:

 (1)

 (2)

 (3)

 (4)


Упражнение 4:
Номер 1
Определение предикатa digit имеет вид:digit(0).
digit(1):- !.
digit(2).
 Сколько решений имеет цель digit(X), digit(Y), !, digit(Z)?

Ответ:

 (1)

 (2)

 (3)

 (4)


Номер 2
Определение предиката color имеет вид:color(red).
color(yellow) :- !.
color(green).
Сколько решений имеет цель color(X), color(Y)?

Ответ:

 (1)

 (2)

 (3)

 (4)


Номер 3
Определение предиката color имеет вид:color(red):- !.
color(yellow).
color(green).
 Сколько решений имеет цель color(X), !, color(Y)?

Ответ:

 (1)

 (2)

 (3)

 (4)


Упражнение 5:
Номер 1
Определение предикатa color имеет вид:color(red).
color(yellow).
color(yellow) :- !.
color(green).
 Цель findall(X, color(X), L) имеет решение:

Ответ:

 (1) L = [red] 

 (2) L = [red, yellow] 

 (3) L = [red, yellow, yellow] 

 (4) L = [red, yellow, green] 


Номер 2
Определение предикатa color имеет вид:color(red):- !.
color(yellow).
color(green).
 Цель findall(X, color(X), L) имеет решение:

Ответ:

 (1) L = [] 

 (2) L = [red] 

 (3) L = [red, yellow] 

 (4) L = [red, yellow, green] 


Номер 3
Определение предикатa color имеет вид:color(red).
color(yellow).
color(green):- !.Цель findall(X, color(X), L) имеет решение:

Ответ:

 (1) L = [red] 

 (2) L = [red, yellow] 

 (3) L = [red, yellow, green] 

 (4) L = [green] 


Упражнение 6:
Номер 1
Предикаты digit и triple определяются следующим образом:digit(0).
digit(1).

triple(t(X, Y, Z)) :- digit(X), digit(Y), digit(Z).
 Цель имеет вид: findall(T, triple(T), L). Сколько элементов содержит список L?

Ответ:

 (1)

 (2)

 (3)

 (4)


Номер 2
Предикаты digit и tuple определяются следующим образом:digit(0).
digit(1).
digit(2).

tuple(t(X, Y)) :- digit(X), digit(Y).
 Цель имеет вид: findall(T, tuple(T), L). Сколько элементов содержит список L?

Ответ:

 (1)

 (2)

 (3)

 (4)


Номер 3
Предикаты digit и tuple определяются следующим образом:digit(0).
digit(1).
digit(2).

tuple(t(X, Y)) :- digit(X), Y = -X.
 Цель имеет вид: findall(T, tuple(T), L). Сколько элементов содержит список L?

Ответ:

 (1)

 (2)

 (3)

 (4)


Упражнение 7:
Номер 1
Определение предиката digit имеет вид:digit(0).
digit(1).В каком порядке будут найдены решения для цели digit(X), digit(Y)?
  • X = 0, Y = 0
  • X = 1, Y = 1
  • X = 0, Y = 1
  • X = 1, Y = 0

  • Ответ:

     (1) 1, 2, 3, 4 

     (2) 1, 3, 4, 2 

     (3) 1, 2, 4, 3 

     (4) 1, 3, 2, 4 


    Номер 2
    Определение предиката digit имеет вид:digit(1).
    digit(0).
     В каком порядке будут найдены решения для цели digit(X), digit(Y)?
     
  • X = 0, Y = 0
  • X = 1, Y = 1
  • X = 0, Y = 1
  • X = 1, Y = 0

  • Ответ:

     (1) 1, 2, 3, 4 

     (2) 1, 2, 4, 3 

     (3) 2, 4, 1, 3 

     (4) 2, 4, 3, 1 


    Номер 3
    Определение предикатов digit и fruit имеют вид:digit(0).
    digit(1).
    
    fruit(apple).
    fruit(pear).
     В каком порядке будут найдены решения для цели digit(X), fruit(Y)?
  • X = 0, Y = apple
  • X = 1, Y = pear
  • X = 0, Y = pear
  • X = 1, Y = apple

  • Ответ:

     (1) 1, 3, 4, 2 

     (2) 1, 2, 4, 3 

     (3) 1, 2, 3, 4 

     (4) 1, 3, 2, 4 


    Упражнение 8:
    Номер 1
    Определение предикатов parent, grandparent и run имеет вид:parent("Mary", "Bob").
    parent("Mary", "Tom").
    parent("Ann", "Mary").
    
    grandparent(X, Y):- parent(X, Z), parent(Z, Y).
    		
    run():- grandparent(X, Y), write(X, " - ", Y), nl, fail; _ = readLine().
     Предикат parent объявлен в разделе class predicates. Укажите правильное объявление:

    Ответ:

     (1) parent: (string, string) nondeterm (o,o) (i,o) (o,i) (i,i). 

     (2) parent: (string, string) determ. 

     (3) parent: (string, string) multi (o,o) nondeterm (i,o). 

     (4) parent: (string, string) nondeterm (o,o). 


    Номер 2
    Определение предикатов parent, grandparent и run имеет вид:parent("Mary", "Bob").
    parent("Mary", "Tom").
    parent("Ann", "Mary").
    
    grandparent(X, Y):- parent(X, Z), parent(Z, Y).
    run():- grandparent(X, Y), write(X, " - ", Y), nl, fail; _ = readLine().
     Укажите правильное объявление предиката grandparent:

    Ответ:

     (1) grandparent: (string, string) nondeterm (o,o) (i,o) (o,i) (i,i). 

     (2) grandparent: (string, string) determ. 

     (3) grandparent: (string, string) multi (o,o) nondeterm (i,o). 

     (4) grandparent: (string, string) nondeterm (o,o). 


    Номер 3
    Определение предикатов min и run имеет вид:min(X, Y, X):- X < Y, !.min(X, Y, Y):- X >= Y.
    
    run():- min(1, 3, X), write(X), nl, fail; _ = readLine().
     Укажите правильное объявление предиката min:	

    Ответ:

     (1) min: (integer, integer, integer) nondeterm (i,i,o). 

     (2) min: (integer, integer, integer [out]) determ. 

     (3) min: (integer, integer, integer) determ. 

     (4) min: (integer, integer, integer) determ anyflow. 




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