Лабораторная работа

Prolog. Динамические базы данных

Категория:

Лабораторная работа

Дисциплина:

Функциональное и логическое программирование

Город:

Беларусь, Минск

Учебное заведение:

БНТУ, ФИТР

Тег:

#PROLOG

Стоимость работы:

6 руб.

Оценка: 10
Объем страниц: 8
Год сдачи: 2021
Дата публикации: 24.12.2021

Фрагменты для ознакомления

Отчет по лабораторной работе № 11

дисциплина: «Функциональное и логическое программирование»

ДИНАМИЧЕСКИЕ БАЗЫ ДАННЫХ

Цель работы: приобретение практических навыков составления и отладки программ, работающих с динамической базой данных

Задание общее по лабораторной работе:

Разработать самообучающийся англо-русский словарь, сущность которого в следующем. В программе имеется некоторый набор пар английских и соответствующих им русских слов. По введенному слову мы должны получить его перевод (с английского на русский или наоборот). Если нужного слова в словаре нет, должна быть предусмотрена возможность пополнения словаря этим словом с его переводом. В конце работы программы дополненная БД должна сохраняться в файле, а при новом запуске программы информация из файла заносится в динамическую БД, которая может опять пополняться. В программе предусмотреть возможность редактирования и удаления отдельных предложений БД. Выбор отдельных опций должен производиться из меню.

Дополнительные задачи к работе:

5.

Выбрать из словаря английские слова (вывод на экран по одному в строке), длина которых меньше заданной.

Код программы:

DOMAINS
russian, english = string  %русские и английские слова
file = f                          % file - стандартный тип домена (файловый),  datafile - логическое имя файла.
list = english*
CONSTANTS
PATCH="D:\\"
FACTS                                          %Ключевое слово facts (это синоним устаревшего слова database)
/*Раздел facts состоит из последовательностиобъявлений предикатов, описывающих соответствующую внутреннюю базу фактов.*/   
dictionary(russian,english).
PREDICATES
nondeterm russian_words_english(russian, english)
nondeterm english_words_russian(russian, english)
nondeterm search(list, integer)
result
nondeterm repeat
show_menu
nondeterm process(char)
CLAUSES
dictionary("Мама", "mom").
dictionary("Папа", "dad").
dictionary("Бабушка", "grandmother").
dictionary("Дедушка","grandfather").
result :- 
         disk(patch), 
         existfile("database.dba"),!,
         show_menu.
result :-                                           %если файл не существует
         disk(patch),
         openwrite(f,"database.dba"),             /*Если файл уже существует, то он уничтожается*/
         closefile(f),
         consult("database.dba"),          /*загружаем факты во внутреннюю базу данных */
         show_menu.
/*Правило повтора, обеспечивает циклическое выполнение расположенных после repeat под-целей*/
repeat.
repeat :- repeat.                               /*Цель repeat порождает новую ветвь вычислений. Для этого она должна быть */

Скриншоты результатов:

Меню
Меню

 

База данных
База данных

Контрольные вопросы:

1. Где располагается динамическая база данных?

2. Отличие статической базы данных от динамической базы данных.

3. Как можно статическую базу данных переслать в динамическую базу данных?

4. Где в программе объявляются предикаты статической и динамической баз данных?

5. Чем отличаются факты статической и динамической баз данных для одного и того же объекта?

6. Можно ли в разделе database объявить несколько предикатов динамической базы данных?

7. Может ли быть в программе несколько разделов database?

8. Могут ли факты динамической базы данных содержать переменные?

9. Можно ли в динамической базе данных разместить правила?

10. Как сохранить факты, размещенные в динамической базе данных, на диске?

11. Как можно удалить из динамической базы данных сразу несколько фактов?

12. Назначение стандартного предиката findall.

13. Способы занесения фактов в динамическую базу данных.

14. Можно ли изменить сохраненную в файл динамическую базу данных средствами обычного текстового редактора?

15. Требования к формату файла, в котором сохранена динамическая база данных.

 

Вывод: приобрели практические навыки в составлении и отладки программ, работающих с динамической базой данных.

142