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

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

Категория:

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

Дисциплина:

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

Город:

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

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

БНТУ, ФИТР

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

4 руб.

Оценка: 10
Объем страниц: 8
Год сдачи: 2021
Дата публикации: 09.09.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. Требования к формату файла, в котором сохранена динамическая база данных

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

75