Сертификат "Основы программирования на языке Visual Prolog"
  • Сертификат "Основы программирования на языке Visual Prolog"
  • Сертификат "Основы программирования на языке Visual Prolog"
Сертификат "Основы программирования на языке Visual Prolog"
  • Сертификат "Основы программирования на языке Visual Prolog"
  • Сертификат "Основы программирования на языке Visual Prolog"

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

700,00 руб.
В течение часа!
Экзамен "Основы программирования на языке Visual Prolog" для пользователей и системных администраторов.
Количество
Есть в наличии!

Форма сдачи теста: Экстерн
Количество вопросов: 30
Проходной балл: 90% и выше
Срок действия сертификата: неограничен

Сертификат появляется в профиле ресурса INTUIT, и Вы можете заказать его бумажную версию на сайте INTUIT.
12558 шт.
Внимание !
Вопросы к тесту выложены исключительно в ознакомительных целях: количество вопросов может не совпадать с действительным, актуальность не поддерживается,- за решением теста Welcome to the cashier!

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

Turbo Prolog
Planner
Visual Prolog
Edinburgh Prolog


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

программирование на хорновских дизъюнктах
описание задачи на некотором логическом языке и ее решение посредством вывода в некоторой формальной системе
набор инструкций определенного алгоритма из логики предикатов
набор инструкций определенного алгоритма из логики высказываний


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

набор инструкций определенного алгоритма из логики предикатов
набор инструкций определенного алгоритма из логики высказываний
описание задачи на некотором логическом языке и ее решение посредством вывода в некоторой формальной системе
программирование на хорновских дизъюнктах


Факт – это

правило без заголовка
любое логическое высказывание
любое правило программы
правило без тела


Запрос – это

любое правило программы
правило без тела
правило без заголовка
любой факт


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

правил
конъюнктов
запросов
логических высказываний


Программа имеет вид:

parent(bob, peter).
parent(ann, peter).
parent(peter, mary).
 

Напишите значение, которое примет переменная X при вызове parent(X, mary)?

mary
ann
peter
bob


Программа имеет вид:

likes(mary, books).
likes(bob, mary).
likes(bob, books).
 

Напишите решение, которое имеет цель likes(X, mary):

bob
books
mary


Программа имеет вид:

parent(bob, peter).
parent(ann, bob).
parent(peter, mary).
 

Напишите значение, примет переменная X при вызове parent(ann, X)?

bob
ann
mary


Программа имеет вид:

parent(bob, X):- parent(ann, X).
parent(ann, peter).
parent(peter, mary).
 

Сколько решений имеет цель parent(X, peter)?

1
0
3
2


Программа имеет вид:

parent(ann, peter).
parent(ann, mary).
parent(tom, X) :- parent(ann, X).
 

Сколько решений имеет цель parent(tom, X)?

2
3
1
0


Программа имеет вид:

parent(bob, peter).
parent(bob, X):- parent(ann, X).
parent(bob, mary).


Сколько решений имеет цель parent(bob, X)?

1
0
2
3


Определение предиката parent имеет вид:

        parent(tom, mary).
        parent(ann, tom).
 

Отметьте все решения для цели parent(X, _), parent(_, Y):

X = tom, Y = tom
X = ann, Y = tom
X = tom, Y = mary
X = ann, Y = ann
X = tom, Y = ann
X = ann, Y = mary


Отношение likes определяется следующим образом:

likes(ann, books).
likes(tom, ann).
likes(bob, X) :- likes(ann, X).
 

Укажите весь набор значений, которые примет переменная X в результате вычисления запроса likes(X, _)?

ann; tom; bob
ann; tom
ann; tom; bob; ann
ann


Отношение likes определяется следующим образом:

likes(bob, X) :- likes(ann, X).
likes(ann, books).
likes(tom, ann).
 

Укажите весь набор значений, которые примет переменная X в результате вычисления запроса likes(_, X)?

books; books; ann
books
bob; ann; tom
books; ann


Определение отношения father (отец) имеет вид:

        father(peter, tom).
        father(tom, bob).
 

Отношение grandfather (дедушка) можно определить следующим образом:

grandfather(X, Y) :- father(X, Z); father(Z, Y)
grandfather(X, Y) :- father(X, Y); father(Y, X)
grandfather(X, Y) :- father(X, Z), father(Z, Y)
grandfather(X, Y) :- father(X, _), father(_, Y)


Определение отношения parent имеет вид

        parent(ann, tom).
        parent(bob, ann).
 

Обратное отношение к отношению parent можно определить следующим образом:

child(X, Y) :- parent(X, Z), parent(Z, Y)
child(X, Y) :- parent(X, Y); parent(Y, X)
child(X, Y) :- parent(Y, X)
child(X, Y) :- parent(X, Y)


Отношение married определяется в виде:

married(tom, mary).
married(bob, ann).
 

Симметричное замыкание отношения married можно определить следующим образом:

spouses(X, Y) :- married(X, Z), married(Z, Y)
spouses(X, Y) :- married(X, Y); married(Y, X)
spouses(X, Y) :- married(X, Y), married(Y, X)
spouses(X, Y) :- married(X, Z); married(Y, Z)


Отношение likes определяется в виде:

likes(bob, X) :- likes(ann, X).
likes(ann, books).
likes(tom, ann).
 

Вариантом правила likes(bob, X) :- likes(ann, X) является правило

likes(tom, X) :- likes(ann, X)
likes(Z, X) :- likes(Y, X)
likes(bob, books) :- likes(ann, books)
likes(bob, Z) :- likes(ann, Z)


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

f(X, bob, X)
f(bob, ann, X)
f(bob, ann, bob)
f(X, ann, bob)


Отношение likes определяется в виде:

likes(bob, X) :- likes(ann, X).
likes(ann, books).
likes(tom, ann).
 

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

likes(ann, X) :- likes(bob, X)
likes(tom, X) :- likes(ann, X)
likes(bob, ann) :- likes(ann, books)
likes(bob, books) :- likes(ann, books)


Декларативное значение логической программы

animal(X) :- bird(X).
animal(zebra).
bird(swan).
 

Имеет вид:

{animal(swan), bird(swan), animal(zebra)}
{animal(X), bird(X), bird(swan), animal(zebra)}
{swan, zebra}
{animal(swan), bird(swan), animal(zebra), bird(zebra)}



Эрбранов базис логической программы

animal(X) :- bird(X).
animal(zebra).
bird(swan).

выглядит следующим образом:

{swan, zebra}
{animal(swan), bird(swan), animal(zebra), bird(zebra)}
{animal(X), bird(X), bird(swan), animal(zebra)}
{animal(swan), bird(swan), animal(zebra)}


Эрбранов универсум логической программы

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

{bob, ann, books}
{likes(bob, books), likes(ann, books)}
{bob, ann, books, likes(bob, books), likes(ann, books)}
{bob, ann, books, X}

Анонимная переменная
не принимает никакого значения
принимает любое значение
принимает определенное значение
принимает значение терма, с которым унифицируется


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

с любым предикатом
с любым термом
только с простым термом
только с другой свободной переменной


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

имеет какое-то значение
не имеет никакого значения
может иметь значение, может не иметь значения
получает значение при инициализации


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

X = a, Y = b
X = Z, Y = a
Y = a, X = b
X = Z, Y = T


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

t(a, b, k(c)) и t(a, b, k(a))
t(a, b, k(c)) и t(X, Y, Z)
t(a, b, k(c)) и t(a, b, _)
t(a, b, k(c)) и t(_, _, _)


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

t(a, r(b, c)) и t(X, p(b, c))
t(a, r(b, c)) и t(X, r(Y))
t(a, r(b, c)) и t(a, X)
t(a, r(b, c)) и t(a, b, c)


Программа имеет вид:

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
 
4. 2, 1, 4, 3
3, 4, 1, 2
4, 3, 2, 1
1, 2, 3, 4


Программа имеет вид:
 
        female(ann).
        female(mary).
        male(tom).
        male(bob).

Укажите порядок нахождения решений для цели

male(X); female(X)
        1) X = ann
        2) X = mary
        3) X = tom
        4) X = bob
 
4, 3, 2, 1
1, 2, 3, 4
3, 4, 1, 2
2, 1, 4, 3


Программа имеет вид:

male(tom).
male(bob).
parent(ann, tom).


Укажите порядок нахождения решений для цели

parent(X, Y); male(Y)
    1) Y = tom
    2) Y = bob
    3) X = ann,Y = tom

1, 2, 3
3, 2, 1
2, 1, 3
3, 1, 2


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

kate
19
bob
person


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

kate
bob
19
person


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

kate
ann
person
bob


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

ann
robert
black
thomas


Определение предиката p имеет вид:

p([father(robert, jackson)]).
p([mother(ann, smith), father(thomas, smith)]).

Напишите ответ на запрос p([father(_, X) | _]):

smith
thomas
robert
jackson



Определение предиката p имеет вид:

p([parent(robert, jackson)]).
p([parent(ann, smith), parent(thomas, smith)]).

Напишите ответ на запрос p([_, parent(_, X)]):

robert
thomas
smith
jackson


Определение предикатов likes и male выглядит следующим образом:

male(peter).
male(bob).
likes(peter, bycicle).
 
Напишите решение для цели male(Y), not(likes(Y, _)):

bob
bycicle
peter


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

имеет хотя бы одно решение
не имеет решений
имеет ровно одно решение
имеет более одного решения


Определение предикатов married и female выглядит следующим образом:

married(tom, mary).
female(mary).
female(ann).


Напишите решение для цели female(X), not(married(_, X)):

ann
tom
mary


Определение предикатов male и parent имеет вид:
   
male(tom).
male(bob).
parent(tom, mary).
parent(tom, ann).
 

Рассмотрим цели not(parent(X, _)), male(X) и male(X), not(parent(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, _). Отметьте правильное утверждение:

одна из них имеет решение, а другая не имеет
они имеют одинаковый набор решений
одна из них имеет два решения, а другая одно решение
одна из них имеет два решения, а другая не имеет решений


Определение предикатов male и parent имеет вид:

male(tom).
male(bob).
parent(tom, mary).
parent(tom, ann).


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

одна из этих целей не имеет решений
одинаковое
не одинаковое
одна из этих целей не имеет смысла в Прологе


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

3
2
4
1


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

5
4
3
7


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

3
2
4
1


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

[5, 2]
[[1], [2]]
[1, 2, 3, 4]
[2]


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

с любым списком
с любым непустым списком
с пустым списком
со списком [1]


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

со списком [[1], [2]]
с любым непустым списком
с любым списком
с пустым списком


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

X = 1, Y = [2], Z = 3
X = 1, Y = 2, Z = 3
X = 1, Y = [2], Z = [3]
X = 1, Y = 2, Z = [3]


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

[]
[1, 2, 3]
[[1], [2], [3], [4]]
[1]
[1, 2]


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

[1, 2 | []]
[[1], [2]]
[1 | [2 | []]]
[1 | [2]]


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

для предотвращения отката при вычислении каждой подцели
для предотвращения отката при вычислении отдельных подцелей
так же, как и статическое
вместо статического


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

для предотвращения поиска всех решений
для запрета процедуры унификации
для предотвращения отката после достижения цели
для поиска всех альтернативных решений


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

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


Отсечение в программе

min(X, Y, X):- X < Y, !.
min(X, Y, Y):- X >= Y.

является зеленым
является динамическим
не используется при вычислениях
является красным


Отсечение в программе

min(X, Y, X):- Y > X, !.
min(_, Y, Y).

не используется при вычислениях
является красным
является зеленым
является динамическим


Программа имеет вид:

male(tom).
male(bob).
   
Отсечение в запросе male(X), !, male (Y)
не используется при вычислении этого запроса
является динамическим
является красным
является зеленым


Предикат likes определяется следующим образом:

likes(mary, books).
likes(peter, mary).
likes(mary, peter).


Цель likes(X, Y), !, likes(Y, Z) имеет следующее количество решений:

1
3
2
0


Предикат parent определяется следующим образом:

parent(peter, mary).
parent(mary, ann).
parent(mary, bob).
 

Цель parent(X, Y), !, parent(Y, Z) имеет следующее количество решений:

3
2
0
1


Предикат parent определяется следующим образом:

parent(peter, mary).
parent(mary, ann).
parent(mary, bob).


Цель !, parent(X, Y), parent(Y, Z) имеет следующее количество решений:

3
1
2
0


Определение предиката color имеет вид:

color(red):- !.
color(yellow).
color(green).
 

Сколько решений имеет цель color(X), !, color(Y)?

2
1
4
3


Определение предикатa digit имеет вид:

digit(0).
digit(1):- !.
digit(2).
 

Сколько решений имеет цель digit(X), digit(Y), !, digit(Z)?

3
0
1
2


Определение предиката color имеет вид:

color(red).
color(yellow) :- !.
color(green).


Сколько решений имеет цель color(X), color(Y)?

2
3
4
1


Определение предикатa color имеет вид:

color(red):- !.
color(yellow).
color(green).
 

Цель findall(X, color(X), L) имеет решение:

L = [red, yellow]
L = [red]
L = [red, yellow, green]
L = []


Определение предикатa color имеет вид:


color(red).
color(yellow).
color(yellow) :- !.
color(green).
 

Цель findall(X, color(X), L) имеет решение:

L = [red, yellow, yellow]
L = [red, yellow]
L = [red, yellow, green]
L = [red]


Определение предикатa color имеет вид:

color(red).
color(yellow).
color(green):- !.

Цель findall(X, color(X), L) имеет решение:

L = [red, yellow]
L = [red, yellow, green]
L = [green]
L = [red]


Предикаты digit и tuple определяются следующим образом:

digit(0).
digit(1).
digit(2).
tuple(t(X, Y)) :- digit(X), digit(Y).
 

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

2
8
9
3


Предикаты digit и triple определяются следующим образом:

digit(0).
digit(1).

triple(t(X, Y, Z)) :- digit(X), digit(Y), digit(Z).
 

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

9
2
3
8


Определение предикатов 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, 3, 2, 4
1, 2, 3, 4
1, 2, 4, 3
1, 3, 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

2, 4, 1, 3
2, 4, 3, 1
1, 2, 4, 3
1, 2, 3, 4


Определение предиката 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, 2, 4, 3
1, 2, 3, 4
1, 3, 4, 2
1, 3, 2, 4


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

min: (integer, integer, integer) determ anyflow.
min: (integer, integer, integer) determ.
min: (integer, integer, integer) nondeterm (i,i,o).
min: (integer, integer, integer [out]) determ.


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

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


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

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


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

конкретизированным переменным
связанным переменным
фактам-переменным
свободным переменным


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

всегда неуспешен
не может быть ни успешным, ни неуспешным
всегда успешен
может быть как успешным, так и неуспешным


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

всегда неуспешен
не может быть ни успешным, ни неуспешным
может быть как успешным, так и неуспешным
всегда успешен


Определение предикатов lang и print имеет вид:

lang(1, prolog).
lang(2, python).
lang(3, pascal).

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

3
1
2
6


Определение предикатов lang и print имеет вид:

lang(1, prolog).
lang(2, python) :- !.
lang(3, pascal).

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

4
1
2
3

Внимание !
Вопросы к тесту выложены исключительно в ознакомительных целях: количество вопросов может не совпадать с действительным, актуальность не поддерживается,- за решением теста Welcome to the cashier!

Определение предикатов lang и print имеет вид:

lang(1, prolog).
lang(2, python).
lang(3, pascal).

print() :- lang(N, L), write(L), nl, N = 2, !.
print().

Сколько названий языков будет напечатано при вызове цели print()?

0
3
2
1


Определение предикатов fruit и print имеет вид:

fruit(1, apple).
fruit(2, pear).

print() :- fruit(_, X), write(X), nl, fruit(_, Y), write(Y), nl, fail.
print().
 

Напишите название фрукта, которое будет напечатано третьим в результате вызова цели print():

pear
apple


Определение предикатов fruit и print имеет вид:

fruit(1, apple).
fruit(2, pear).

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

pear
apple


Определение предикатов fruit и print имеет вид:

fruit(1, apple).
fruit(2, pear).

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

apple
pear


Определение предиката print имеет вид:

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

более двух раз
два раза
ни одного раза
один раз


Определение предиката print имеет вид:

print() :- write('a'), repeat(), !.
print().
 

Сколько раз будет напечатан символ 'a' при вызове цели 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()?

3
5
4
2


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

2
4
3
1


Начальное значение факта-переменной n равно 0. Определение предикатов fruit и print имеет вид:

fruit(1, "apple").
fruit(2, "pear").

print() :- repeat(), fruit(_, X), write(X), nl, n := n + 1, n = 3, !.
print().
 

Напишите название фрукта, которое будет напечатано последним при вызове цели print():

pear
apple


Начальное значение факта-переменной n равно 0. Определение предикатов fruit и print имеет вид:

fruit(1, "apple").
fruit(2, "pear").

print() :- repeat(), fruit(_, X), n := n + 1, write(X), nl, n = 4, !.
print().
 

Напишите название фрукта, которое будет напечатано последним при вызове цели print():

pear
apple


Начальное значение факта-переменной n равно 0. Определение предикатов fruit и print имеет вид:

fruit(1, "apple").
fruit(2, "pear").

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

pear
apple


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

save
asserta
assert
assertz


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

assertz
assert
save
asserta


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

save
asserta
assertz
assert


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

retractFactDb
reconsult
retractAll
retract


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

reconsult
retractAll
retractFactDb
retract


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

retractAll
reconsult
retract
retractFactDb


Определение предиката go имеет вид:

go(N):- N > 1, !, write('a'), N1 = N - 1, go(N1).
go(_).

Сколько раз будет напечатан символ 'a' в результате вызова цели go(5)?

2
4
3
5


Определение предиката go имеет вид:

go(N):- write('a'), N > 3, !, N1 = N - 1, go(N1).
go(_).

Сколько раз будет напечатан символ 'a' в результате вызова цели go(5)?

3
2
5
4


Определение предиката go имеет вид:

go(2):- !.
go(N):- write('a'), N1 = N - 1, go(N1).

Сколько раз будет напечатан символ 'a' в результате вызова цели go(5)?

3
0
2
1


Определение предиката go имеет вид:

go(2):- fail.
go(N):- N > 1, write('a'), N1 = N - 1, go(N1).
go(_).

Сколько раз будет напечатан символ 'a' в результате вызова цели go(4)?

4
3
0
2


Определение предиката go имеет вид:

go(2):- write('a'), fail.
go(N):- N > 1, write('a'), N1 = N - 1, go(N1).
go(_).

Сколько раз будет напечатан символ 'a' в результате вызова цели go(4)?

5
3
4
6


Определение предиката go имеет вид:

go(0).
go(N):- N > 0, N1 = N - 1, go(N1), write('a').

Сколько раз будет напечатан символ 'a' в результате вызова цели go(2)?

1
3
0
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(X, ann)?

2
4
3
1


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

2
3
4
1


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

1
3
2
4


Определение предиката f имеет вид:

f(0, 3):- !.
f(X, R):- X1 = X - 1, f(X1, R1), R = R1 + 2.

Какое значение примет переменная Y в результате вызова цели f(2, Y)?

8
5
7
3


Определение предиката f имеет вид:

f(0, 1):- !.
f(X, R):- X1 = X - 1, f(X1, R1), R = 2 * R1 + 1.

Какое значение примет переменная Y в результате вызова цели f(2, Y)?

3
7
10
5


Определение предиката f имеет вид:

f(0, 2):- !.
f(X, R):- X1 = X - 1, f(X1, R1), R = R1 * 3.

Какое значение примет переменная Y в результате вызова цели f(2, Y)?

12
18
9
6


Определение предиката g имеет вид:

g(0, R, R):- !.
g(X, C, R):- X1 = X - 1, C1 = C * 2, g(X1, C1, R).

Какое значение примет переменная Y в результате вызова цели g(2, 3, Y)?

10
24
18
12


Определение функции f имеет вид:

f(0, R) = R:- !.
f(X, C) = f(X - 1, C * C - 2).

Какое значение примет переменная Y в результате вызова цели Y = f(2, 2)?

2
14
0
4


Определение предиката g имеет вид:

g(0, R, R):- !.
g(X, C, R):- X1 = X - 1, C1 = 3 * C, g(X1, C1, R).

Какое значение примет переменная Y в результате вызова цели g(2, 1, Y)?

5
6
10
9


Определение предиката 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)?
12
11
10
5


Определение функции f имеет вид:

f(0, R) = R:- !.
f(X, C) = f(X - 2, C * C).

Какое значение примет переменная Y в результате вызова цели Y = f(4, 2)?

0
4
8
16


Определение функции f имеет вид:

f(1, R) = R:- !.
f(X, C) = f(X - 3, C * C - 1).

Какое значение примет переменная Y в результате вызова цели Y = f(7, 2)?

13
9
8
3


Определение предиката num имеет вид:

num(X, X).
num(X, Y) :- X > 0, X1 = X - 2, num(X1, Y).

Сколько решений имеет цель num(5, X)?

5
2
4
3


Определение предиката num имеет вид:

num(X, X).
num(X, Y) :- X < 2, X1 = X + 1, num(X1, Y).

Сколько решений имеет цель num(-1, X)?

2
3
5
4


Определение предиката num имеет вид:

num(X, X).
num(X, Y) :- X > 0, X1 = X - 1, num(X1, Y).

Сколько решений имеет цель num(4, X)?

3
4
5
2


Определение предиката num имеет вид:

num(X, _, _, X).
num(X, Z, S, Y) :- X > Z, X1 = X - S, num(X1, Z, S, Y).

Сколько решений имеет цель num(5, 3, 1, X)?

2
3
1
4


Определение предиката num имеет вид:

num(X, _, X).
num(X, C, Y) :- X > 0, X1 = X - C, num(X1, C, Y).

Сколько решений имеет цель num(3, 2, X)?

5
4
2
3


Определение предиката count имеет вид:

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

0
3
2
1


Определение предиката count имеет вид:

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

0
2
1
3


Определение предиката count имеет вид:

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

5
3
2
9


Определение предиката count имеет вид:

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

3
0
2
1


Определение предиката 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)?

6
1
9
2


Определение предиката count имеет вид:

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

2
3
1
6


Определение предиката member2 имеет вид:

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

3
4
2
1


Определение предиката member имеет вид:

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

3
4
1
2


Определение предиката member2 имеет вид:

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

2
1
3
4


Определение предиката append имеет вид:

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

[]
[1, 2, 3]
[1]
не примет никакого значения


Определение предиката append имеет вид:

append([], L, L).
append([A | L1], L2, [A | L]) :- append(L1, L2, L).

Сколько решений имеет цель append(L, [_], [1, 2, 3])?

0
3
2
1


Определение предиката num имеет вид:

num(X, _, _, X).
num(X, Z, S, Y) :- X < Z, X1 = X + S, num(X1, Z, S, Y).

Сколько решений имеет цель num(2, 3, 2, X)?

3
1
4
2


Определение предиката member1 имеет вид:

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

1
3
4
2


Определение предиката member1 имеет вид:

member1(H, [H | _]).
member1(H, [_, _ | T]) :- member1(H, T).

Сколько решений имеет цель member1(X, [1, 2, 3, 4, 5])?

2
4
1
3


Определение предиката member имеет вид:

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

2
1
4
3


Определение предиката append имеет вид:

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

[1, 2, 2, 3]
[]
[1, 2, 3]
[1, 3]


Определение предиката append имеет вид:

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

1
2
3
0


Определение предиката append имеет вид:

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

[1]
[1, 2]
[3]
не примет никакого значения


Определение предиката append имеет вид:

append([], L, L).
append([A | L1], L2, [A | L]) :- append(L1, L2, L).

Найти предпоследний элемент списка L = [1, 2, 3, 4, 5] можно с помощью цели

append([X, _], _, L)
append(_, [_, X], L)
append([_, X], _, L)
append(_, [X, _], L)

Определение предиката reverse имеет вид:

reverse([], L, L).
reverse([A | L1], L2, L) :- reverse(L1, [A | L2], L).
 

В результате вызова reverse([1, 2], [3], L) переменная L примет значение

не примет никакого значения
[2, 1, 3]
[3, 2, 1]
[1, 2, 3]



Определение предиката prefix имеет вид:

prefix(_, []).
prefix([A | L1], [A | L2]) :- prefix(L1, L2).

Сколько решений имеется для цели refix([1, 2], L)?

0
2
1
3


Определение предиката reverse имеет вид:

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

[2, 1, 3, 4]
не примет никакого значения
[2, 1, 4, 3]
[4, 3, 2, 1]


Определение предиката reverse имеет вид:

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

[2, 1, 2]
[2, 2, 1]
[1, 2, 2]
[1, 2, 2]


Определение предиката suffix имеет вид:

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

2
0
3
1


Определение предиката prefix имеет вид:

prefix(_, []).
prefix([A | L1], [A | L2]) :- prefix(L1, L2).
 

Сколько решений имеется для цели prefix([1], L)?

2
1
3
0


Определение предиката select имеет вид:

select(A, [A | L], L).
select(A, [B | L], [B | L1]):- select(A, L, L1), A <> B.

Сколько решений имеет цель select(X, [2, 1, 2], L) ?

3
1
0
2


Определение предиката select имеет вид:

select(A, [A | L], L).
select(A, [B | L], [B | L1]):- select(A, L, L1).

Сколько решений имеет цель select(0, L, [1, 2, 3]) ?

2
1
3
4


Определение предиката select имеет вид:

select(A, [A | L], L).
select(A, [B | L], [B | L1]):- select(A, L, L1).

Сколько решений имеет цель select(X, [1, 2, 2], L) ?

3
1
0
2


Определение предиката 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) ?

8
1
7
3


Определение предиката 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) ?

0
8
3
7


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

[3, 1]
[2, 4]
[4, 2]
[1, 3]


Определение предиката subset имеет вид:

subset([], []).
subset([A | L], [A | S]):- subset(L, S).
subset([_ | L], S):- subset(L, S).

Сколько решений имеет цель subset([1, 2, 3], X) ?

0
7
8
3


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

[4, 3, 2, 1, 5]
[4, 3, 2, 1, 1, 3, 5]
[4, 2, 1, 3, 5]
[4, 2, 5]


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

пузырьком
слиянием
вставками
быстрой


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

вставками
пузырьком
быстрой
слиянием


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

слиянием
вставками
быстрой
пузырьком


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

[1, -2, 3]
[-1, -2, -3]
[-1, -3]
[2]


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

-4
-2
6
0


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

[2]
[-1, -3]
[-1, -2, -3]
[1, -2, 3]


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

1
4
2
3


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

2
4
3
1

Вы можете обратится к нам напрямую, через:

skype По Skype: molodoyberkut
telegram По Telegram: @MolodoyBerkut
icq По ICQ: 657089516

Или через форму обратной связи на нашем сайте
Пока сочиняется...
4.png