
- •27. Управление программой. Внутренние подпрограммы унификации Пролога.
- •28. Структура программ на Прологе. Предикаты и утверждения.
- •29. Арифметика в Прологе.
- •30. Программирование повторяющихся операций. Повторение и откат.
- •31. Методы повторения. Методы организации рекурсии.
- •32. Списки в Прологе. Применение списков в программе.
- •34. Использование метода с разделением списка на голову и хвост. Компоновка данных в список.
- •34. Присваивание переменным строковых значений. Конкатенация строк. Преобразование данных.
- •35 Создание символьных префиксов. Преобразование строк в список символов.
- •38. Преобразование строк в списки атомов с функторами.
- •39.Предикаты Пролога для работы с файлами. Использование предикатов для работы с файлами.
- •40. Программы для обработки файлов.
- •41. Дозапись данных в файл
- •42. Использование файлов прямого доступа
- •43. Использование предикатов для работы с окнами. Использование окон для ввода вывода.
- •44. Использование графики в программе. Использование графики черепашки.
- •45.Использование звук и музыки.
- •46.Базы данных в Прологе. Предикаты динамической базы данных в Прологе.
- •47. Создание базы данных, располагающейся в оперативной памяти.
- •48. Создание базы данных, располагающейся на диске
- •49. Принципы построения экспертных систем
- •50.Методы вывода и система пользовательского интерфейса эс.
- •51.Экспертные системы, базирующиеся на правилах.
- •52.Экспертные системы, базирующиеся на логике.
45.Использование звук и музыки.
Предикаты генерации звука
Турбо-Пролог поддерживает два предиката генерации звука:
sound и beep. Предикат beep генерирует звук высокой тональнос-
ти.
Турбо-Пролог позволяет производить сигналы во всем диапазоне слышимых человеком звуков. Предикат sound имеет следующий вид:
sound(Duration,Frequency)
Значение параметра Duration задает длительность звукового
сигнала в сотых долях секунды. Значение параметра Frequency оп-
ределяет частоту генерируемого звука (высота звука).
46.Базы данных в Прологе. Предикаты динамической базы данных в Прологе.
Программы баз данных (БД) на Турбо-Прологе есть частный случай систем управления базами данных(СУБД).
Базы данных в Турбо-Прологе. В Турбо-Прологе имеются специальные средства для организации баз данных. Эти средства рассчитаны на работу с реляци-
онными базами данных
Раздел database в Турбо-Прологе предназначен для описания предикатов базы данных. Все различные утверждения этого предиката составляют динамическую базу данных Турбо-Пролога. База данных называется динамической, так во время работы программы из нее можно удалять любые содержащиеся в ней утверждения, а также добавлять новые. Другая важная особенность динамической базы данных состоит в том, что такая база может быть записана на диск, а также считана с диска в оперативную память.
В динамической базе данных могут содержаться только факты ( не правила).
База данных Турбо-Пролога Реляционная база данных
предикат БД отношение
объект атрибут
отдельное утверждение элемент отношения
количество утверждений мощность
* Предикаты для работы с утверждениями динамической базы дан-
ных
Предикаты asserta, assertz и retract позволяют занести
факт в заданное место динамической БД и удалить из нее уже
имеющийся факт.
Предикат asserta заносит новый факт в базу данных, рас-
полагающуюся в оперативной памяти компьютера. Новый факт помещается перед всеми уже внесенными утверждениями данного предиката.
Предикат assertz так же, как и asserta, заносит новые
утверждения в базу данных. Однако он помещает новое утвержде-
ние за всеми уже имеющимися в базе утверждениями того же пре-
диката.
Предикат retract удаляет утверждение из динамической БД
* Предикаты для работы с базой данных в целом
В данном разделе будут описаны предикаты для работы с БД
в целом. Предикаты save и consult применяются для записи ди-
намической БД в файл на диск и для загрузки содержимого файла
в динамическую БД.
save(DOS_file_name).
save("football.dba").
Предикат readterm используется для чтения из файла объ-
ектов, относящихся к определенному в программе домену. Син-
таксис этого предиката
readterm(Domain,Term).
где Domain задает имя домена, а Term - различные наборы зна-
чений объектов этого домена. Рассмотрим, к примеру, преди-
катное выражение
readterm(auto_record,auto(Name,Year,Price)).