Главная / Программирование /
Основы программирования на языке Visual Prolog / Тест 1
Основы программирования на языке Visual Prolog - тест 1
Упражнение 1:
Номер 1
Логическое программирование в широком смысле это:
Ответ:
 (1) программирование на хорновских дизъюнктах 
 (2) описание задачи на некотором логическом языке и ее решение посредством вывода в некоторой формальной системе 
 (3) набор инструкций определенного алгоритма из логики высказываний 
 (4) набор инструкций определенного алгоритма из логики предикатов 
Номер 2
Логическое программирование в узком смысле это:
Ответ:
 (1) программирование на хорновских дизъюнктах 
 (2) описание задачи на некотором логическом языке и ее решение посредством вывода в некоторой формальной системе 
 (3) набор инструкций определенного алгоритма из логики высказываний 
 (4) набор инструкций определенного алгоритма из логики предикатов 
Номер 3
В основу стандарта языка Пролог положен синтаксис
Ответ:
 (1) Visual Prolog 
 (2) Turbo Prolog 
 (3) Edinburgh Prolog 
 (4) Planner 
Упражнение 2:
Номер 1
Факт – это
Ответ:
 (1) правило без заголовка 
 (2) правило без тела 
 (3) любое правило программы 
 (4) любое логическое высказывание 
Номер 2
Запрос – это
Ответ:
 (1) любое правило программы 
 (2) любой факт 
 (3) правило без заголовка 
 (4) правило без тела 
Номер 3
Программа на языке Пролог – это последовательность
Ответ:
 (1) правил 
 (2) конъюнктов 
 (3) логических высказываний 
 (4) запросов 
Упражнение 3:
Номер 1
Программа имеет вид:
likes(mary, books).
likes(bob, mary).
likes(bob, books).
Напишите решение, которое имеет цель likes(X, mary)
:
Ответ:
 (1) mary 
 (2) bob 
 (3) books 
Номер 2
Программа имеет вид:
parent(bob, peter).
parent(ann, peter).
parent(peter, mary).
Напишите значение, которое примет переменная X
при вызове parent(X, mary)
?
Ответ:
 (1) bob 
 (2) peter 
 (3) ann 
 (4) mary 
Номер 3
Программа имеет вид:
parent(bob, peter).
parent(ann, bob).
parent(peter, mary).
Напишите значение, примет переменная X
при вызове parent(ann, X)
?
Ответ:
 (1) mary 
 (2) bob 
 (3) ann 
Упражнение 4:
Номер 1
Программа имеет вид:
parent(ann, peter).
parent(ann, mary).
parent(tom, X) :- parent(ann, X).
Сколько решений имеет цель parent(tom, X)
?
Ответ:
 (1) 0 
 (2) 1 
 (3) 2 
 (4) 3 
Номер 2
Программа имеет вид:
parent(bob, X):- parent(ann, X).
parent(ann, peter).
parent(peter, mary).
Сколько решений имеет цель parent(X, peter)
?
Ответ:
 (1) 0 
 (2) 1 
 (3) 2 
 (4) 3 
Номер 3
Программа имеет вид:
parent(bob, peter).
parent(bob, X):- parent(ann, X).
parent(bob, mary).
Сколько решений имеет цель parent(bob, X)
?
Ответ:
 (1) 0 
 (2) 1 
 (3) 2 
 (4) 3 
Упражнение 5:
Номер 1
Отношение likes определяется следующим образом:likes(bob, X) :- likes(ann, X).
likes(ann, books).
likes(tom, ann).
Укажите весь набор значений, которые примет переменная X
в результате вычисления запроса likes(_, X)
?
Ответ:
 (1) books
 
 (2) books; ann
 
 (3) books; books; ann
 
 (4) bob; ann; tom
 
Номер 2
Отношение likes определяется следующим образом:
likes(ann, books).
likes(tom, ann).
likes(bob, X) :- likes(ann, X).
Укажите весь набор значений, которые примет переменная X
в результате вычисления запроса likes(X, _)
?
Ответ:
 (1) ann; tom; bob; ann
 
 (2) ann; tom; bob
 
 (3) ann; tom
 
 (4) ann
 
Номер 3
Определение предиката parent
имеет вид:
parent(tom, mary).
parent(ann, tom).
Отметьте все решения для цели parent(X, _), parent(_, Y)
:
Ответ:
 (1) X = tom, Y = mary
 
 (2) X = tom, Y = tom
 
 (3) X = tom, Y = ann
 
 (4) X = ann, Y = mary
 
 (5) X = ann, Y = ann
 
 (6) X = ann, Y = tom
 
Упражнение 6:
Номер 1
Определение отношения parent имеет вид
parent(ann, tom).
parent(bob, ann).
Обратное отношение к отношению parent можно определить следующим образом:
Ответ:
 (1) child(X, Y) :- parent(Y, X)
 
 (2) child(X, Y) :- parent(X, Z), parent(Z, Y)
 
 (3) child(X, Y) :- parent(X, Y)
 
 (4) child(X, Y) :- parent(X, Y); parent(Y, X)
 
Номер 2
Отношение married определяется в виде:
married(tom, mary).
married(bob, ann).
Симметричное замыкание отношения married можно определить следующим образом:
Ответ:
 (1) spouses(X, Y) :- married(X, Y), married(Y, X)
 
 (2) spouses(X, Y) :- married(X, Y); married(Y, X)
 
 (3) spouses(X, Y) :- married(X, Z), married(Z, Y)
 
 (4) spouses(X, Y) :- married(X, Z); married(Y, Z)
 
Номер 3
Определение отношения father (отец) имеет вид:
father(peter, tom).
father(tom, bob).
Отношение grandfather (дедушка) можно определить следующим образом:
Ответ:
 (1) grandfather(X, Y) :- father(X, Y); father(Y, X)
 
 (2) grandfather(X, Y) :- father(X, _), father(_, Y)
 
 (3) grandfather(X, Y) :- father(X, Z); father(Z, Y)
 
 (4) grandfather(X, Y) :- father(X, Z), father(Z, Y)
 
Упражнение 7:
Номер 1
Отношение likes определяется в виде:
likes(bob, X) :- likes(ann, X).
likes(ann, books).
likes(tom, ann).
Вариантом правила likes(bob, X) :- likes(ann, X)
является правило
Ответ:
 (1) likes(tom, X) :- likes(ann, X)
 
 (2) likes(bob, Z) :- likes(ann, Z)
 
 (3) likes(bob, books) :- likes(ann, books)
 
 (4) likes(Z, X) :- likes(Y, X)
 
Номер 2
Результат применения подстановки {X = bob}
к формуле f(X, ann, X)
равен
Ответ:
 (1) f(bob, ann, X)
 
 (2) f(X, bob, X)
 
 (3) f(X, ann, bob)
 
 (4) f(bob, ann, bob)
 
Номер 3
Отношение likes определяется в виде:
likes(bob, X) :- likes(ann, X).
likes(ann, books).
likes(tom, ann).
Основным примером правила likes(bob, X) :- likes(ann, X)
является правило
Ответ:
 (1) likes(bob, books) :- likes(ann, books)
 
 (2) likes(tom, X) :- likes(ann, X)
 
 (3) likes(ann, X) :- likes(bob, X)
 
 (4) likes(bob, ann) :- likes(ann, books)
 
Упражнение 8:
Номер 1
Эрбранов универсум логической программыlikes(bob, X) :- likes(ann, X).
likes(ann, books).
выглядит следующим образом:
Ответ:
 (1) {bob, ann, books, likes(bob, books), likes(ann, books)}
 
 (2) {bob, ann, books}
 
 (3) {likes(bob, books), likes(ann, books)}
 
 (4) {bob, ann, books, X}
 
Номер 2
Эрбранов базис логической программы
animal(X) :- bird(X).
animal(zebra).
bird(swan).
выглядит следующим образом:
Ответ:
 (1) {animal(swan), bird(swan), animal(zebra), bird(zebra)}
 
 (2) {swan, zebra}
 
 (3) {animal(X), bird(X), bird(swan), animal(zebra)}
 
 (4) {animal(swan), bird(swan), animal(zebra)}
 
Номер 3
Декларативное значение логической программы
animal(X) :- bird(X).
animal(zebra).
bird(swan).
Имеет вид:
Ответ:
 (1) {animal(swan), bird(swan), animal(zebra), bird(zebra)}
 
 (2) {swan, zebra}
 
 (3) {animal(X), bird(X), bird(swan), animal(zebra)}
 
 (4) {animal(swan), bird(swan), animal(zebra)}