Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ контр раб ПЗ и ИС.doc
Скачиваний:
3
Добавлен:
24.11.2019
Размер:
5.41 Mб
Скачать
    1. Организация запросов на языке Пролог

Следующим элементом программы на языке Пролог являют­ся вопросы. Вопросы можно сформулировать в теле программы в разделе Goal, который вводится после раздела Clauses. Например:

Goal

дед(Х,анна). /*кто дед Анны?*/

Сформулированный так запрос называется внутренней целью.

Но можно формулировать вопрос после нажатия Run в открываю­щемся при этом окне goal

goal: дед(Х,анна).

В этом случае цель называется внешней.

Пример. Построить базу знаний из следующих фактов: Карл у Клары украл кораллы. Клара у Карла украла кларнет.

Построить вопросы: Кто украл кларнет? Кто украл кораллы? Что украл Карл? Что было украдено?

Решение:

Domains

X,Y,Z=symbol.

Predicates

украл(Х,Х,Х). Clauses

украл(карл,кораллы,клара).

украл(клара,кларнет,карл).

/*вопросы могут быть заданы так:*/

Goal: украл(X,кларнет,Y).

ответ: Х=клара У=карл

Goal: украл(X,кораллы,Y).

ответ: Х=карл У=клара

Goal: украл(карл,X,Y).

ответ: Х=кораллы Y=клара

Goal: украл(X,Y,Z).

ответ: Х=карл Y=кораллы Z=клара

Х=клара Y=кларнет Z=карл

Варианты задания 2

1. Построить базу данных своих родственников мужского пола с фактами «отец» и «сын» и правилами «дед», «внук», «брат».

2. Построить базу данных «отец», «сын», «брат», «дядя», «племянник», «дед», «внучатый племянник».

3. Построить базу данных «студент» с полями «фамилия», «балл 1», «балл 2» и правило «стипендия» с полями «фамилия», «сумма».

4. Построить базу данных о родственниках «мать», «дочь», «сестра» и пра­вила «тетя», «племянница», «бабушка», «внучатая племянница».

5. Построить базу данных «телефонная книга» с полями «фами­лия», «номер», «адрес».

6. Построить базу данных «родитель» (имя родителя, имя ребенка) и правила «мать», «отец».

7. Построить базу данных фактов «мальчик» (имя), «девочка» (имя), «дружит» (имя, имя) с правилами «приятели»(X, Y), «приятель­ницы»(X, Y).

8. Построить базу данных из фактов, кто на чем играет (имя, инструмент) и правило «квартет»(Х, Y, Z, Т).

9. Построить базу данных из фактов «мужчина» (имя, возраст), «женщина» (имя, возраст) и правило «подлежит призыву» (имя).

10. Построить базу данных из фактов «ученик» (фамилия, класс, школа) и правило «одноклассники»(X, Y).

11. Построить базу данных «знакомства» из следующих фактов и правил: Мери прелестна; Джон добрый; Джон мужественный; Джон сильный; некто счастлив, если богат и нравится женщинам; мужчина нравится женщине, если женщина нравится мужчине и он добрый, либо мужчина добрый и сильный; мужчине нравится женщина, если она прелестна.

12. Построить базу данных своих родственников мужского пола с фактами «отец» и «сын» и правилами «дед», «внук», «брат».

13. Построить базу данных «отец», «сын», «брат», «дядя», «племянник», «дед», «внучатый племянник».

14. Построить базу данных «студент» с полями «фамилия», «балл 1», «балл 2» и правило «стипендия» с полями «фамилия», «сумма».

15. Построить базу данных о родственниках «мать», «дочь», «сестра» и пра­вила «тетя», «племянница», «бабушка», «внучатая племянница».

16. Построить базу данных «телефонная книга» с полями «фами­лия», «номер», «адрес».

17. Построить базу данных «родитель» (имя родителя, имя ребенка) и правила «мать», «отец».

18. Построить базу данных фактов «мальчик» (имя), «девочка» (имя), «дружит» (имя, имя) с правилами «приятели»(X, Y), «приятель­ницы»(X, Y).

19. Построить базу данных из фактов, кто на чем играет (имя, инструмент) и правило «квартет»(Х, Y, Z, Т).

20. Построить базу данных из фактов «мужчина» (имя, возраст), «женщина» (имя, возраст) и правило «подлежит призыву» (имя).