База ответов ИНТУИТ

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

Количество вопросов - 246

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

Программа имеет вид:
male(tom).male(bob).parent(ann, tom).		
Укажите порядок нахождения решений для цели
parent(X, Y); male(Y)	1) Y = tom	2) Y = bob	3) X = ann,Y = tom		

Определение предиката reverse имеет вид:
reverse([], L, L).reverse([A | L1], L2, L) :- reverse(L1, [A | L2], L). 
В результате вызова reverse([1, 2], [3, 4], L) переменная L примет значение

Определение предиката print имеет вид:
print() :- fail, repeat(), write('a'), !.print(). 
Сколько раз будет напечатан символ 'a' при вызове цели print()?

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

Определение предиката member1 имеет вид:
member1(H, [H, _ | _]).member1(H, [_, _ | T]) :- !, member1(H, T). 
Сколько решений имеет цель member1(X, [1, 2, 3, 4, 5])?

Определение предиката 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
  • Какое значение примет переменная X в результате вызова цели X = math::restrict(-1, 0, 3)?

    В результате вызова S = string::concat("aa", "bb", "cc") переменная S примет значение:

    Определение предикатов arc и conn имеет вид:
    arc(1, 2).arc(1, 3).arc(3, 4).conn(X, X).conn(X, Z):- arc(X, Y), conn(Y, Z). 
    Сколько решений имеет цель conn(1, X) ?

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

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

    Определение предикатов tmember и member имеет вид:
    tmember(t(X, []), X).tmember(t(_, TL), X):- member(T, TL), tmember(T, X).member(T, [T | _]).member(T, [_ | L]):- member(T, L). 
    Сколько решений имеет цель tmember(t(1, [t(2, [t(2, [])]), t(1, [])]), X) ?

    Определение предиката member1 имеет вид:
     member1(H, [H | _]).member1(H, [_, _ | T]) :- member1(H, T).
    Сколько решений имеет цель member1(X, [1, 2, 3, 4, 5])?

    В результате вызова string::splitStringBySeparators(" 12-30+15", "+-", X, Y, Z) переменные X, Y и Z примут значения:

    Отношение married определяется в виде:
    married(tom, mary).married(bob, ann). 
    Симметричное замыкание отношения married можно определить следующим образом:

    Определение предикатов count и count1 имеет вид:
    count(t(X, L), Z):- count1(L, Y), Z = Y + X.count1([], 0).count1([T | L], Z):- count(T, X), count1(L, Y), Z = X + Y. 
    Какое значение примет переменная S в результате вызова цели count(t(1, [t(2, [t(2, [])]), t(1, [])]), S) ?

    Отсечение используется:

    В результате унификации списков [1, 2, 3] и [X, Y | Z] переменные получат значения

    Определение предиката count имеет вид:
    count([H | T], C, N) :- C1 = C + H, count(T, C1, N).count([], N, N). 
    Какое значение примет переменная R в результате вызова цели count([2, 3, 4], 0, R)?

    Отношение likes определяется в виде:
    likes(bob, X) :- likes(ann, X).likes(ann, books).likes(tom, ann). 
    Вариантом правила likes(bob, X) :- likes(ann, X) является правило

    Определение предикатов fruit и print имеет вид:
    fruit(1, apple).fruit(2, pear).print() :- repeat(), fruit(N, X), write(X), nl, fruit(K, Y), write(Y), nl, N > K, !.print(). 
    Сколько названий фруктов будет напечатано при вызове цели print()?

    Начальное значение факта-переменной n равно 0. Определение предикатов fruit и print имеет вид:
    fruit(1, "apple").fruit(2, "pear").		print() :- repeat(), n := n + 1, fruit(_, X), write(X), nl, n = 2, !.print(). 
    Напишите название фрукта, которое будет напечатано последним при вызове цели print():

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

    Сколько элементов содержит список [[], [], [1], [1, 2], [1, 2, 3, 4]]?

    Определение функции f имеет вид:
    f(0, R) = R:- !.f(X, C) = f(X - 1, C * C - 2). 
    Какое значение примет переменная Y в результате вызова цели Y = f(2, 2)?

    Наибольший общий унификатор термов t(X, r(a, b), X) и t(X, r(Y, b), b) равен:

    Программа имеет вид:
    parent(bob, peter).parent(ann, peter).parent(peter, mary). 
    Напишите значение, которое примет переменная X при вызове parent(X, mary)?

    Определение предиката count имеет вид:
    count([_, _ | T], N) :- !, count(T, N1), N = N1 + 1.count(_, 1). 
    Какое значение примет переменная R в результате вызова цели count([1, 2, 3], R)?

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

    В основу стандарта языка Пролог положен синтаксис

    Программа на языке Пролог – это последовательность

    Программа имеет вид:
    parent(bob, X):- parent(ann, X).parent(ann, peter).parent(peter, mary). 
    Сколько решений имеет цель parent(X, peter)?

    Отношение likes определяется следующим образом:
    likes(bob, X) :- likes(ann, X).likes(ann, books).likes(tom, ann). 
    Укажите весь набор значений, которые примет переменная X в результате вычисления запроса likes(_, X)?

    Определение отношения father (отец) имеет вид:
    		father(peter, tom).		father(tom, bob). 
    Отношение grandfather (дедушка) можно определить следующим образом:

    Результат применения подстановки {X = bob} к формуле f(X, ann, X) равен

    Декларативное значение логической программы
    animal(X) :- bird(X).animal(zebra).bird(swan). 
    Имеет вид:

    Анонимная переменная

    Являются унифицируемыми термы

    Программа имеет вид:
    likes(ann, books).likes(tom, baseball).male(tom).male(bob).		
    Укажите порядок нахождения решений для цели
    male(Y); likes(X, Y)		1) Y = bob		2) Y = tom		3) X = tom,Y = baseball		4) X = ann,Y = books 

    Определение предикатов friend и h имеет вид:
    friend(person(ann, 19), phone(1112233)).friend(person(bob, 18), phone(1112233)).friend(person(kate, 19), phone(4445566)).h(X) :- friend(person(X, 19), _), friend(person(Y, 18), _), X > Y.		
    Напишите ответ на запрос h(X):

    Определение предиката p имеет вид:
    	p([parent(robert, black)]).p([parent(ann, smith), parent(thomas, smith)]). 
    Напишите ответ на запрос p([parent(X, smith), _]).

    Определение предикатов married и female выглядит следующим образом:
    married(tom, mary).female(mary).female(ann).		
    Напишите решение для цели female(X), not(married(_, X)):

    Определение предикатов male и parent имеет вид:
    male(tom).male(bob).parent(tom, mary).parent(ann, tom).		
    Рассмотрим цели parent(X, _), not(not(male(X))) и not(not(male(X))), parent(X, _). Отметьте правильное утверждение:

    Сколько элементов содержит список [[1, 2, 3, 4]]?

    Список [_] унифицируется:

    Укажите все списки, с которыми унифицируется список [_, _ | _]?

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

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

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

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

    Предикаты digit и tuple определяются следующим образом:
    digit(0).digit(1).digit(2).tuple(t(X, Y)) :- digit(X), digit(Y). 
    Цель имеет вид: findall(T, tuple(T), L). Сколько элементов содержит список L?

    Определение предиката 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
  • Определение предикатов 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:

    Знак := используется в языке Visual Prolog для присваивания значений

    Определение предикатов lang и print имеет вид:
    lang(1, prolog).lang(2, python).lang(3, pascal).print() :- lang(N, L), write(L), nl, N = 2, !.print(). 
    Сколько названий языков будет напечатано при вызове цели print()?

    Определение предикатов fruit и print имеет вид:
    fruit(1, apple).fruit(2, pear).print() :- fruit(_, X), fruit(_, Y), write(X), nl, write(Y), nl, fail.print(). 
    Напишите название фрукта, которое будет напечатано третьим в результате вызова цели print():

    Определение предиката print имеет вид:
    print() :- repeat(), write('a'), !.print(). 
    Сколько раз будет напечатан символ 'a' при вызове цели print()?

    Определение предикатов fruit и print имеет вид:
    fruit(1, apple).fruit(2, pear).print() :- repeat(), fruit(N, X), write(X), nl, fruit(K, Y), write(Y), nl, N = K, !.print(). 
    Сколько названий фруктов будет напечатано при вызове цели print()?

    Начальное значение факта-переменной n равно 0. Определение предикатов fruit и print имеет вид:
    fruit(1, "apple").fruit(2, "pear").		print() :- repeat(), fruit(_, X), n := n + 1, write(X), nl, n = 4, !.print(). 
    Напишите название фрукта, которое будет напечатано последним при вызове цели print():

    Укажите все предикаты, которые используются для добавления фактов во внутреннюю базу данных:

    Укажите предикат, который может возвращать сведения из фактов, удаляемых из внутренней базы данных:

    Определение предиката go имеет вид:
    go(N):- write('a'), N > 3, !, N1 = N - 1, go(N1).go(_).
    Сколько раз будет напечатан символ 'a' в результате вызова цели go(5)?

    Определение предиката go имеет вид:
    go(2):- fail.go(N):- N > 1, write('a'), N1 = N - 1, go(N1).go(_).
    Сколько раз будет напечатан символ 'a' в результате вызова цели go(4)?

    Определение предикатов parent и anc имеет вид:
    parent(tom, ann).parent(ann, bob).anc(X, Y):- parent(X, Y).anc(X, Z):- parent(X, Z), anc(Z, Y). 
    Сколько решений имеет цель anc(X, Y)?

    Определение предиката f имеет вид:
    f(0, 2):- !.f(X, R):- X1 = X - 1, f(X1, R1), R = R1 * 3. 
    Какое значение примет переменная Y в результате вызова цели f(2, Y)?

    Определение предиката g имеет вид:
    g(0, R, R):- !.g(X, C, R):- X1 = X - 1, C1 = C * 2, g(X1, C1, R). 
    Какое значение примет переменная Y в результате вызова цели g(2, 3, Y)?

    Определение функции f имеет вид:
    f(0, R) = R:- !.f(X, C) = f(X - 2, C * C). 
    Какое значение примет переменная Y в результате вызова цели Y = f(4, 2)?

    Определение предиката num имеет вид:
    num(X, X).num(X, Y) :- X > 0, X1 = X - 1, num(X1, Y). 
    Сколько решений имеет цель num(4, X)?

    Определение предиката num имеет вид:
    num(X, _, _, X).num(X, Z, S, Y) :- X > Z, X1 = X - S, num(X1, Z, S, Y).
    Сколько решений имеет цель num(5, 3, 1, X)?

    Определение предиката count имеет вид:
    count([H, K | T], C, N) :- C1 = C + H + K, count(T, C1, N).count([H], C, N) :- C1 = C + H, count(T, C1, N).count([], N, N). 
    Какое значение примет переменная R в результате вызова цели count([1, 2, 3], 0, R)?

    Определение предиката member2 имеет вид:
    member2(H, [_, H | _]).member2(H, [_, _ | T]) :- member2(H, T). 
    Сколько решений имеет цель member2(X, [1, 2, 3, 4, 5])?

    Определение предиката member имеет вид:
    member(H, [H | _]):- !.member(H, [ _ | T]) :-  member(H, T). 
    Сколько решений имеет цель member(X, [1, 2, 3, 4])?

    Определение предиката append имеет вид:
    append([], L, L).append([A | L1], L2, [A | L]) :- append(L1, L2, L). 
    Сколько решений имеет цель append(L1, L2, [1, 2])?

    Определение предиката append имеет вид:
     append([], L, L).append([A | L1], L2, [A | L]) :- append(L1, L2, L).
    Сколько решений имеет цель append(L, [_], [1, 2, 3])?

    Определение предиката reverse имеет вид:
    reverse([], L, L).reverse([A | L1], L2, L) :- reverse(L1, [A | L2], L). 
    В результате вызова reverse([1, 2], [3], L) переменная L примет значение

    Определение предиката suffix имеет вид:
    suffix(L, L).suffix([_ | L1], L2]) :- suffix(L1, L2). 
    Сколько решений имеется для цели suffix([], L)?

    Определение предиката select имеет вид:
    select(A, [A | L], L).select(A, [B | L], [B | L1]):- select(A, L, L1), A <> B. 
    Сколько решений имеет цель select(X, [2, 1, 2], L) ?

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

    Определение предикатов union и member имеет вид:
    union([], L, L).union([A | L1], L2, L) :- member(A, L2), !, union(L1, L2, L).union([A | L1], L2, [A | L]) :- union(L1, L2, L).member(X, [X | _]):- !.member(X, [_ | L]):- member(X, L). 
    Какое решение имеет цель union([4, 3, 2, 1], [1, 3, 5], L) ?

    Предикат сортировки списка по заданному критерию list::sortBy в языке Visual Prolog определяется с помощью алгоритма сортировки

    Цель L = list::filter([-1, 2, -3], {(X):- X < 0}) имеет решение:

    Определение предикатов arc и conn имеет вид:
    arc(1, 2).arc(1, 3).arc(3, 4).conn(X, X).conn(X, Z):- arc(X, Y), conn(Y, Z). 
    Сколько решений имеет цель conn(1, X), conn(X, 4) ?

    Определение предикатов arc и path имеет вид:
    arc(1, 2). arc(1, 3).arc(3, 4).path([X | L], X, [X | L]).path([X | L], Y, P):- arc(X, Z), not(isMember(Z, L)), path([Z, X | L], Y, P). 
    В результате вызова цели path([1], 4, P) переменная P примет значение:

    Определение предикатов arc, cont и path имеет вид:
    arc(1, 3).arc(3, 4).  cont([X | L], [Z, X | L]):- arc(X, Z), not(isMember(Z, L)).  path([[Y | L] | _], Y, [Y | L]).path([P | PL], Y, R):- findall(P1, cont(P, P1), L1), append(PL, L1, PL1),path(PL1, Y, R). 
    Предикат path реализует алгоритм

    Определение предиката member имеет вид:
    member(bt(leaf, X, leaf), X).member(bt(L, _, R), X):- member(L, X); member(R, X). 
    Сколько решений имеет цель member(bt(bt(leaf, 1, leaf), 2, bt(leaf, 3, leaf)), X) ?

    Определение предиката count имеет вид:
    count(leaf, 0).count(bt(leaf, _, leaf), 1):- !.count(bt(L, _, R), X):- count(L, Y), count(R, Z), X = Y + Z. 
    Какое значение примет переменная X в результате вызова цели count(bt(bt(leaf, 1, leaf), 2, bt(leaf, 1, leaf)), X) ?

    Определение предикатов count и count1 имеет вид:
    count(t(X, L), Z):- count1(L, Y), Z = Y + X.count1([], 0).count1([T | _], Z):- count(T, Z). 
    Какое значение примет переменная S в результате вызова цели count(t(1, [t(2, [t(2, [])]), t(1, [])]), S) ?

    Выберите из списка терм и соответствующий ему домен:
  • t(1, t(2, empty, empty), empty)
  • t(nil, 1, t(nil, 2, nil))
  • tree = t(integer, tree*).
  • bintree{Elem} = t(bintree{Elem}, Elem, bintree{Elem}); nil.
  • Какое значение примет переменная X в результате вызова цели X = math::restrict(2, 0, 3)?

    В результате вызова string::frontToken(" aa-bbcc", X, _) переменная X примет значение:

    Пусть грамматика имеет вид: d ::= dd | [(]d[)] | empty, где empty – пустое слово, в квадратных скобках написаны терминальные символы. Укажите те из перечисленных ниже слов, которые из нее выводятся:

    В результате вызова string::frontToken(" Karl meets Carla.", X, Y)переменные X и Y примут значения:

    Определение предиката scan имеет вид:
    scan(S) = [Tok | scan(Rest)]:- string::frontToken(S, Tok, Rest), !.		scan(_) = []. 
    Какое значение примет переменная S в результате вызова S = scan("f(g(1)).")?

    Определение предиката пишется:

    В языке Visual Prolog предикаты, объявленные в декларации класса

    Определение класса b с интерфейсом b имеет вид:
    interface b			properties  a : integer.		end interface b		class b : b			predicates  counter : () -> integer.		end class b		implement b			facts  a : integer := 0.			class facts  n : integer := 0.			clauses  new():- n := n + 1, a := 1 - a.				counter() = n.end implement b 
    Какое число будет напечатано в результате вызова цели X = b::new(),Y = b::new(), stdio::write(X:a + Y:a + b::counter())?

    Если пространство состояний моделируется в виде графа, то обычно:

    Отметьте верное утверждение. Состояние в задаче о перевозке через реку полностью описывается парой, содержащей

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

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

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

    Определение предикатов 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) успешен

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

    Определение предиката 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 примет значение

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

    В результате вызова S = string::concat("ab", "bc") переменная S примет значение:

    Определение предикатов friend и h имеет вид:
    friend(person(ann, 19), phone(1112233)).friend(person(bob, 18), phone(1112233)).friend(person(kate, 19), phone(4445566)).h(X) :- friend(person(X, Y), _), friend(person(Z, Y), _), X < Z.
    Напишите ответ на запрос h(X):

    С каким списком не унифицируется список [1, 2]?

    Определение предикатов difference и member имеет вид:
    difference([], _, []).difference([A | L1], L2, L) :- member(A, L2), !, difference(L1, L2, L).difference([A | L1], L2, [A | L]) :- difference(L1, L2, L).member(X, [X | _]):- !.member(X, [_ | L]):- member(X, L). 
    Какое решение имеет цель difference([4, 3, 2, 1], [1, 3, 5], L) ?

    В языке Visual Prolog классы могут порождать объекты

    Определение предиката g имеет вид:
    g(0, R, R):- !.g(X, C, R):- X1 = X - 1, C1 = 3 * C, g(X1, C1, R). 
    Какое значение примет переменная Y в результате вызова цели g(2, 1, Y)?

    Определение предиката parent имеет вид:
    		parent(tom, mary).		parent(ann, tom). 
    Отметьте все решения для цели parent(X, _), parent(_, Y):

    Определение предиката select имеет вид:
    select(A, [A | L], L).select(A, [B | L], [B | L1]):- select(A, L, L1). 
    Сколько решений имеет цель select(X, [1, 2, 2], L) ?

    Определение предиката append имеет вид:
    append([], L, L).append([A | L1], L2, [A | L]) :- append(L1, L2, L). 
    Какое значение примет переменная L в результате вызова append([1, 2, 3], [], L)?

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

    Определение отношения parent имеет вид
    		parent(ann, tom).		parent(bob, ann). 
    Обратное отношение к отношению parent можно определить следующим образом:

    Сколько элементов содержит список [[1, 2], [2, 3]]?

    Определение предиката f имеет вид:
    f(0, 1):- !.f(X, R):- X1 = X - 1, f(X1, R1), R = 2 * R1 + 1. 
    Какое значение примет переменная Y в результате вызова цели f(2, Y)?

    Определение предикатов arc, cont и path имеет вид:
    arc(1, 2).arc(1, 3).arc(3, 4).arc(2, 4).  cont([X | L], [Z, X | L]):- arc(X, Z), not(isMember(Z, L)).  path([[Y | L] | _], Y, [Y | L]):- !.path([P | PL], Y, R):- findall(P1, cont(P, P1), L1), append(PL, L1, PL1),path(PL1, Y, R). 
    Укажите решение для цели path([[1]], 4, P) .

    Определение класса b с интерфейсом b имеет вид:
    interface b			properties  a : integer.		end interface b		class b : b		end class b		implement b			facts a : integer := 0.		end implement b 
    Какое число будет напечатано в результате вызова цели X = b::new(), X:a := 2, Y = b::new(), Y:a := X:a + 1, stdio::write(X:a+Y:a+5) ?

    Программа имеет вид:
     parent(bob, peter).parent(bob, X):- parent(ann, X).parent(bob, mary).
    Сколько решений имеет цель parent(bob, X)?

    Определение предикатов friend и h имеет вид:
    friend(person(ann, 19), phone(1112233)).friend(person(bob, 18), phone(1112233)).friend(person(kate, 19), phone(4445566)).h(X) :- friend(person(X, _), Z), friend(person(Y, _), Z), X > Y.		
    Напишите ответ на запрос h(X):

    Цель L = list::map([-1, 2, -3], {(X) = -X}) имеет решение:

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

    Определение предикатов fruit и print имеет вид:
    fruit(1, apple).fruit(2, pear).print() :- repeat(), fruit(N, X), write(X), nl, fruit(K, Y), write(Y), nl, N < K, !.print(). 
    Сколько названий фруктов будет напечатано при вызове цели print()?

    Определение предикатов arc и path имеет вид:
    arc(1, 3).arc(3, 4).path([X | L], X, [X | L]).path([X | L], Y, P):- arc(X, Z), not(isMember(Z, L)), path([Z, X | L], Y, P). 
    Предикат path реализует алгоритм

    Отметьте верное утверждение. Поиск в ширину на графе пространства состояний обычно используется:

    Определение предиката member имеет вид:
    member(bt(_, X, _), X).member(bt(L, _, R), X):- member(L, X); member(R, X). 
    Сколько решений имеет цель member(bt(bt(leaf, 1, leaf), 2, bt(leaf, 1, leaf)), X)?

    Предикат сортировки списка list::sort в языке Visual Prolog определяется с помощью алгоритма сортировки

    Определение предикатов tmember и member имеет вид:
    tmember(t(X, _), X).tmember(t(_, TL), X):- member(T, TL), tmember(T, X).member(T, [T | _]).member(T, [_ | L]):- member(T, L). 
    Сколько решений имеет цель tmember(t(1, [t(2, [t(2, [])]), t(1, [])]), X) ?

    Определение предикатов 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. Укажите правильное объявление:

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

    Укажите предикат, который удаляет все записи из внутренней базы данных:

    Определение предиката scan имеет вид:
    scan(S) = [Tok | scan(Rest)]:- string::frontToken(S, Tok, Rest), !.		scan(_) = []. 
    Какое значение примет переменная S в результате вызова S = scan(" 20 + 2! ")?

    Запрос – это

    Определение предиката count имеет вид:
    count([_, H | T], C, N) :- !, C1 = C + H, count(T, C1, N).count(_, N, N). 
    Какое значение примет переменная R в результате вызова цели count([1, 2, 3], 0, R)?

    Определение предиката count имеет вид:
    count(leaf, 0).count(bt(L, _, _), X):- count(L, Y), X = Y + 1. 
    Какое значение примет переменная X в результате вызова цели count(bt(bt(leaf, 1, leaf), 2, bt(leaf, 1, leaf)), X) ?

    Факт – это

    Программа имеет вид:
    parent(bob, peter).parent(ann, bob).parent(peter, mary). 
    Напишите значение, примет переменная X при вызове parent(ann, X)?

    Отношение likes определяется в виде:
    likes(bob, X) :- likes(ann, X).likes(ann, books).likes(tom, ann). 
    Основным примером правила likes(bob, X) :- likes(ann, X) является правило

    Не унифицируется пара термов

    Определение предиката p имеет вид:
    p([father(robert, jackson)]).p([mother(ann, smith), father(thomas, smith)]).
    Напишите ответ на запрос p([father(_, X) | _]):

    Определение предикатов male и parent имеет вид:
    male(tom).male(bob).parent(tom, mary).parent(tom, ann).		
    Одинаковое ли количество решений имеют цели male(X), parent(X, _) и male(X), not(not(parent(X, _))):

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

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

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

    Вызов предиката repeat

    Определение предикатов lang и print имеет вид:
    lang(1, prolog).lang(2, python).lang(3, pascal).print() :- lang(N, L), write(L), nl, fail.print(). 
    Сколько названий языков будет напечатано при вызове цели print()?

    Определение предиката print имеет вид:
    print() :- write('a'), repeat(), !.print(). 
    Сколько раз будет напечатан символ 'a' при вызове цели print()?

    Начальное значение факта-переменной n равно 0. Определение предикатов fruit и print имеет вид:
    fruit(1, "apple").fruit(2, "pear").		print() :- repeat(), fruit(_, X), write(X), nl, n := n + 1, n = 3, !.print(). 
    Напишите название фрукта, которое будет напечатано последним при вызове цели print():

    Добавляет факт в начало внутренней базы данных предикат:

    Определение предиката go имеет вид:
    go(2):- !.go(N):- write('a'), N1 = N - 1, go(N1). 
    Сколько раз будет напечатан символ 'a' в результате вызова цели go(5)?

    Определение предиката go имеет вид:
    go(0).go(N):- N > 0, N1 = N - 1, go(N1), write('a'). 
    Сколько раз будет напечатан символ 'a' в результате вызова цели go(2)?

    Определение предикатов parent и anc имеет вид:
    parent(tom, ann).parent(ann, bob).anc(X, Y):- parent(X, Y).anc(X, Z):- parent(X, Z), anc(Z, Y). 
    Сколько решений имеет цель anc(tom, X)?

    Определение предиката f имеет вид:
    f(0, 3):- !.f(X, R):- X1 = X - 1, f(X1, R1), R = R1 + 2. 
    Какое значение примет переменная Y в результате вызова цели f(2, Y)?

    Определение предиката num имеет вид:
    num(X, X).num(X, Y) :- X > 0, X1 = X - 2, num(X1, Y). 
    Сколько решений имеет цель num(5, X)?

    Определение предиката num имеет вид:
    num(X, _, X).num(X, C, Y) :- X > 0, X1 = X - C, num(X1, C, Y). 
    Сколько решений имеет цель num(3, 2, X)?

    Определение предиката count имеет вид:
    count([], 0).count([_ | T], N) :- count(T, N1), N = N1 + 1. 
    Какое значение примет переменная R в результате вызова цели count([1, 2, 3], R)?

    Определение предиката member имеет вид:
    member(H, [H | _]).member(H, [_ | T]) :- member(H, T). 
    Сколько решений имеет цель member(X, [2, 3, 4, 5])?

    Определение предиката prefix имеет вид:
    prefix(_, []).prefix([A | L1], [A | L2]) :- prefix(L1, L2).
    Сколько решений имеется для цели refix([1, 2], L)?

    Определение предиката select имеет вид:
    select(A, [A | L], L).select(A, [B | L], [B | L1]):- select(A, L, L1). 
    Сколько решений имеет цель select(0, L, [1, 2, 3]) ?

    Определение предикатов intersection и member имеет вид:
    intersection([], _, []).intersection([A | L1], L2, [A | L]) :- member(A, L2), !, intersection(L1, L2, L).intersection([_ | L1], L2, L) :- intersection(L1, L2, L).member(X, [X | _]):- !.member(X, [_ | L]):- member(X, L). 
    Какое решение имеет цель intersection([3, 2, 1], [1, 3, 5], L) ?

    Цель L = list::fold([-1, 2, -3], {(X, S) = S + X}, 0) имеет решение:

    Определение предикатов tmember и member имеет вид:
    tmember(t(X, _), X).tmember(t(_, TL), X):- member(T, TL), tmember(T, X).member(T, [T | _]):- !.member(T, [_ | L]):- member(T, L). 
    Сколько решений имеет цель tmember(t(1, [t(2, [t(2, [])]), t(1, [])]), X) ?

    В результате вызова string::splitStringBySeparators("Ау уу!", "!у", X, Y, Z) переменные X, Y и Z примут значения:

    Пусть грамматика имеет вид: d ::= dd | d[a] | [b], где в квадратных скобках написаны терминальные символы. Укажите те из перечисленных ниже слов, которые из нее выводятся:

    В результате вызова string::frontToken(" 23 + 5", X, Y) переменные X и Y примут значения:

    Состояниям на графе пространства состояний обычно соответствуют:

    Отметьте верное утверждение. Поиск в глубину на графе пространства состояний обычно используется:

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

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

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

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

    Вызов цели not(parent(X, _)) завершается успехом, если цель parent(X, _)

    Определение предиката count имеет вид:
    count(leaf, 0).count(bt(L, _, R), X):- count(L, Y), count(R, Z), X = Y + Z + 1. 
    Какое значение примет переменная X в результате вызова цели count(bt(bt(leaf, 1, leaf), 2, bt(leaf, 1, leaf)), X) ?

    Программа имеет вид:
    likes(mary, books).likes(bob, mary).likes(bob, books). 
    Напишите решение, которое имеет цель likes(X, mary):

    Определение предиката prefix имеет вид:
    prefix(_, []).prefix([A | L1], [A | L2]) :- prefix(L1, L2). 
    Сколько решений имеется для цели prefix([1], L)?

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

    Определение предиката num имеет вид:
    num(X, _, _, X).num(X, Z, S, Y) :- X < Z, X1 = X + S, num(X1, Z, S, Y). 
    Сколько решений имеет цель num(2, 3, 2, X)?

    Определение предикатов arc и path имеет вид:
    arc(1, 2). arc(1, 3).arc(2, 4).arc(3, 4).path([X | L], X, [X | L]).path([X | L], Y, P):- arc(X, Z), not(isMember(Z, L)), path([Z, X | L], Y, P). 
    Сколько решений имеет цель path([1], 4, P) ?

    Свободная переменная унифицируется

    Определение предиката count имеет вид:
    count([], 0).count([_], 1).count([_, _ | T], N) :- count(T, N1), N = N1 + 2. 
    Какое значение примет переменная R в результате вызова цели count([1, 2, 3], R)?

    Определение предиката member имеет вид:
    member(bt(_, X, _), X):- !.member(bt(L, _, R), X):- member(L, X); member(R, X). 
    Сколько решений имеет цель member(bt(bt(leaf, 1, leaf), 2, bt(leaf, 3, leaf)), X) ?

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

    Укажите все предикаты, которые добавляют факт в конец внутренней базы данных:

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

    Определение предикатов fruit и print имеет вид:
    fruit(1, apple).fruit(2, pear).print() :- fruit(_, X), write(X), nl, fruit(_, Y), write(Y), nl, fail.print(). 
    Напишите название фрукта, которое будет напечатано третьим в результате вызова цели print():

    Определение функции f имеет вид:
    f(1, R) = R:- !.f(X, C) = f(X - 3, C * C - 1). 
    Какое значение примет переменная Y в результате вызова цели Y = f(7, 2)?

    Логическое программирование в узком смысле это:

    Эрбранов универсум логической программы
    likes(bob, X) :- likes(ann, X).likes(ann, books). 
    выглядит следующим образом:

    Конкретизированная переменная – это переменная, которая

    Укажите все списки, с которыми унифицируется список [_, 2 | _]:

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

    Предикаты digit и triple определяются следующим образом:
    digit(0).digit(1).triple(t(X, Y, Z)) :- digit(X), digit(Y), digit(Z). 
    Цель имеет вид: findall(T, triple(T), L). Сколько элементов содержит список L?

    Определение предикатов 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:

    Определение предиката num имеет вид:
    num(X, X).num(X, Y) :- X < 2, X1 = X + 1, num(X1, Y). 
    Сколько решений имеет цель num(-1, X)?

    Определение предиката append имеет вид:
    append([], L, L).append([A | L1], L2, [A | L]) :- append(L1, L2, L). 
    Какое значение примет переменная L в результате вызова append([1, 2], [2, 3], L)?

    Определение предиката append имеет вид:
     append([], L, L).append([A | L1], L2, [A | L]) :- append(L1, L2, L).
    Найти предпоследний элемент списка L = [1, 2, 3, 4, 5] можно с помощью цели

    Сложность O(n log n) имеет алгоритм сортировки

    Определение предикатов arc, cont и path имеет вид:
    arc(1, 3).arc(3, 4).  cont([X | L], [Z, X | L]):- arc(X, Z), not(isMember(Z, L)).  path([[Y | L] | _], Y, [Y | L]).path([P | PL], Y, R):- findall(P1, cont(P, P1), L1), append(L1, PL, PL1),path(PL1, Y, R). 
    Предикат path реализует алгоритм

    Определение предикатов count и count1 имеет вид:
    count(t(X, []), X):- !.count(t(_, L), Y):- count1(L, Y).count1([], 0).count1([T | L], Z):- count(T, X), count1(L, Y), Z = X + Y. 
    Какое значение примет переменная S в результате вызова цели count(t(1, [t(2, [t(2, [])]), t(1, [])]), S) ?

    Выберите из списка терм и соответствующий ему домен:
  • t(1, [t(2, []), t(3, []), t(4, [])])
  • t(nil, 1, t(nil, 2, nil))
  • tree{A} = t(A, tree{A}*).
  • tree = t(integer, tree, tree); nil.
  • В результате вызова S = string::concatWithDelimiter(["1", "000", "000"], ".") переменная S примет значение:

    Пусть грамматика имеет вид: d ::= dd | [a]d[a] | [b], где в квадратных скобках написаны терминальные символы. Укажите те из перечисленных ниже слов, которые из нее выводятся:

    Вне имплементации класса b могут вызываться предикаты, объявленные:

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

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

    Отметьте все верные утверждения. В языке Visual Prolog

    Определение предикатов likes и male выглядит следующим образом:
    male(peter).male(bob).likes(peter, bycicle). 
    Напишите решение для цели male(Y), not(likes(Y, _)):

    Если для решения задачи используется граф пространства состояний, то решение является

    Какое значение примет переменная X в результате вызова цели X = math::restrict(3, 0, 1)?

    Вызов предиката fail

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

    Отношение likes определяется следующим образом:
    likes(ann, books).likes(tom, ann).likes(bob, X) :- likes(ann, X). 
    Укажите весь набор значений, которые примет переменная X в результате вычисления запроса likes(X, _)?

    Список [_, _] унифицируется:

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

    В результате вызова string::frontToken(" f(g( a ))", X, Y) переменные X и Y примут значения:

    Определение предиката member2 имеет вид:
    member2(H, [_, H | _]):- !.member2(H, [_, _ | T]) :- member2(H, T). 
    Сколько решений имеет цель member2(X, [1, 2, 3, 4])?

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

    Определение предикатов parent и anc имеет вид:
    parent(tom, ann).parent(ann, bob).anc(X, Y):- parent(X, Y).anc(X, Z):- parent(X, Z), anc(Z, Y). 
    Сколько решений имеет цель anc(X, ann)?

    Предикаты digit и tuple определяются следующим образом:
    digit(0).digit(1).digit(2).tuple(t(X, Y)) :- digit(X), Y = -X. 
    Цель имеет вид: findall(T, tuple(T), L). Сколько элементов содержит список L?

    Определение предиката go имеет вид:
    go(2):- write('a'), fail.go(N):- N > 1, write('a'), N1 = N - 1, go(N1).go(_).
    Сколько раз будет напечатан символ 'a' в результате вызова цели go(4)?

    Программа имеет вид:
    parent(ann, peter).parent(ann, mary).parent(tom, X) :- parent(ann, X). 
    Сколько решений имеет цель parent(tom, X)?

    Определение предикатов 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
  • Укажите все предикаты, которые используются для удаления фактов из внутренней базы данных:

    Определение предиката g имеет вид:
    g(0, R, R):- !.g(X, C, R):- X1 = X - 1, C1 = 2 * C + 1, g(X1, C1, R). 
    Какое значение примет переменная Y в результате вызова цели g(2, 2, Y)?

    Определение предикатов arc и conn имеет вид:
    arc(1, 2).arc(1, 3).arc(3, 4).conn(X, X).conn(X, Z):- arc(X, Y), conn(Y, Z). 
    Сколько решений имеет цель conn(X, 4) ?

    Определение предиката scan имеет вид:
    scan(S) = [Tok | scan(Rest)]:- string::frontToken(S, Tok, Rest), !.		scan(_) = []. 
    Какое значение примет переменная S в результате вызова S = scan(" The cat likes it. ")?

    Логическое программирование в широком смысле это:

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

    Программа имеет вид:
     		female(ann).		female(mary).		male(tom).		male(bob).
    Укажите порядок нахождения решений для цели
    male(X); female(X)		1) X = ann		2) X = mary		3) X = tom		4) X = bob 

    Определение предиката p имеет вид:
    p([parent(robert, jackson)]).p([parent(ann, smith), parent(thomas, smith)]).
    Напишите ответ на запрос p([_, parent(_, X)]):

    Определение предикатов male и parent имеет вид:
    	male(tom).male(bob).parent(tom, mary).parent(tom, ann). 
    Рассмотрим цели not(parent(X, _)), male(X) и male(X), not(parent(X, _)). Отметьте правильное утверждение:

    Определение предикатов fruit и print имеет вид:
    fruit(1, apple).fruit(2, pear).print() :- fruit(N, X), fruit(_, Y), write(X), nl, write(Y), nl, N = 2, !.print(). 
    Напишите название фрукта, которое будет напечатано последним в результате вызова цели print():

    Определение класса b с интерфейсом b имеет вид:
    	interface b			properties  a : integer.		end interface b		class b : b			predicates  counter : () -> integer.		end class b		implement b			facts  a : integer := 0.			class facts  n : integer := 0.			clauses  new():- n := n + 1.				counter() = n.end implement b 
    Какое число будет напечатано в результате вызова цели X = b::new(), X:a := 2, Y = b::new(), Y:a := X:a + 1, stdio::write(X:a+Y:a+b::counter())?

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

    Определение предиката reverse имеет вид:
    reverse([], L, L).reverse([A | L1], L2, L) :- reverse(L1, [A | L2], L). 
    В результате вызова reverse([1, 2, 2], [], L) переменная L примет значение

    Эрбранов базис логической программы
    animal(X) :- bird(X).animal(zebra).bird(swan). 
    выглядит следующим образом:

    Определение предиката append имеет вид:
    append([], L, L).append([A | L1], L2, [A | L]) :- append(L1, L2, L). 
    Какое значение примет переменная L в результате вызова append(L, [_, 2], [1, 2, 3])?

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

    Определение предиката go имеет вид:
    go(N):- N > 1, !, write('a'), N1 = N - 1, go(N1).go(_).
    Сколько раз будет напечатан символ 'a' в результате вызова цели go(5)?

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

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

    Определение предикатов lang и print имеет вид:
    lang(1, prolog).lang(2, python) :- !.lang(3, pascal).print() :- lang(N, L), write(L), nl, fail.print(). 
    Сколько названий языков будет напечатано при вызове цели print()?

    Выберите из списка терм и соответствующий ему домен:
  • t(nil, 1, t(nil, 2, nil))
  • t(1, [t(2, []), t(3, []), t(4, [])])
  • tree = t(string, tree*).
  • tree = t(tree, integer, tree); nil.