- •Общие сведения о Прологе, области применения, отличия Пролога от других языков программирования.
- •6. Утверждения программы Турбо-Пролога: факты и правила.
- •7. Раздел goal программы Visual Prolog.
- •8. Этапы программирования на Visual Prolog.
- •9.Декларативный и процедурный смысл программы на Прологе.
- •10.Сопоставление. Правила сопоставимости термов, структур.
- •12.Арифметика Visual Prolog. Арифметические функции.
- •13,14. Рекурсия в Visual Prolog. Пример рекурсивного правила (вычисление факториала, возведение числа в целую степень).
- •14.Рекурсия и эффективность рекурсивных правил на Visual Prolog .
- •15 Стандартные предикаты. Поточный шаблон стандартных предикатов.
- •16.Стандартные предикаты ввода-вывода в Прологе.
- •17.Отсечение в программах на Прологе.
- •18.Отрицание в правилах Visual Prolog.
- •19.Использование составных объектов в Visual Prolog. Простые и составные структуры.
- •20. Списки как основная структура данных в Visual Prolog. Описание списков. Голова и хвост списка .
- •23. Преобразование строки в список символов или атомов.
- •Преобразование строки в символ
- •24.Преобразование данных из одного типа в другой.
- •Преобразование строки в символ
- •25. Преобразование, определяемые пользователем. Пользователь может определить преобразование, не предусмотренные предикатами. Например: целые числа в действительные и наоборот.
- •26. Предикаты Visual Prolog для работы с файлами.
- •27. Описание файловых доменов, переадресация внешних устройств.
- •28. Запись данных в файл на Visual Prolog
- •29. Чтение данных из файла на Visual Prolog
- •30. Дозапись данных в конец существующего файла на Visual Prolog.
- •31.Создание меню средствами Visual Prolog.
- •32.Способы организации цикла в программах на Прологе.
- •33.Создание динамических баз данных средствами Visual Prolog.
- •34. Статические и динамические базы данных в программах на Visual Prolog.
- •35.Способы занесения информации в динамическую базу данных на Visual Prolog.
- •36.Предикаты Турбо-Пролога для работы с базой данных.
35.Способы занесения информации в динамическую базу данных на Visual Prolog.
«Пишите что-нибудь из 34 вопроса и плюс это=)»
В ДБД содержаться только факты, но не правила.
Правило для занесения в ДБД информации из утверждений предиката player служит:
assert_database:-
player (Name, Team, Number),
assertz (dplayer (Name, Team, Number)),
% Добавление указанного факта в ДБД
fail.
assert_database:-!.
36.Предикаты Турбо-Пролога для работы с базой данных.
Для работы с динамической БД могут использоваться встроенные предикаты:
asserta(<факт>) (dbasedom) : (i) - занесение нового факта в начало динамической БД;
assertz(<факт>) (dbasedom) : (i) - занесение нового факта в конец динамической БД;
retract(<факт>) (dbasedom) : (i) - - удаление утверждения (одного) из динамической БД;
retractall(<факт>) (dbasedom) : (i) - - удаление всех утверждений для указанного предиката (параметр <факт>) из динамической БД.
Домен динамической базы данных dbasedom объявляется автоматически для каждого предиката из раздела facts, поэтому описывать его в разделе domains не нужно.
save(ИмяФайла) (string) : (i) - запись на диск динамической БД;
consult(ИмяФайла) (string) : (i) - добавление текстового файла, сохраненного ранее предикатом save, к динамической базе данных.
findall(Переменная,Терм,Список) : (i,i,o) – сбор из БД объектов Переменная в список Список. Параметр Переменная должна являться одним из аргументов предиката Терм. Список должен быть описан в разделе domains. Например, подцель findall(Name,dplayer(Name,_,_),L) сформирует список L фамилий всех футболистов, описанных в динамической базе данных предикатом dplayer.
Иногда бывает предпочтительно иметь часть информации БД в виде утверждений статической БД. Сразу после активизации программы эти данные заносятся в динамическую БД (с помощью предикатов asserta и assertz). В общем предикаты статической БД имеют другое имя, но ту же форму представления данных, что и предикаты динамической БД.
Предикат статической БД, соответствующий предикату dplayer динамической БД, есть
predicates
player(name,team,number)
clauses
player(“Адамов”,”Динамо”,4).
player(“Сидоров”,”Торпедо”,8).
Правилом для занесения в динамическую БД информации из статической БД является:
assert_database:-player(Name,Team,Number),
assertz (dplayer(Name,Team,Number)),fail.
assert_database:-!.
Используемый в этом правиле предикат fail позволяет перебрать все утверждения предиката player.
Подобным образом можно записать правило для очистки динамической БД:
clear_database:-
retract(dplayer(_,_,_)),fail.
clear_database:-!.
Вместо обращения к этому правилу можно записать подцель retractall(_).
быть описан в domains.
Вопросы:
1.Общие сведения о Прологе, области применения, отличия Пролога от других языков.
2.Основные элементы Visual Prolog: имена объектов, имена отношений, атомы, термы, константы, переменные, структуры.
3.Структура программы Visual Prolog, разделы программы.
4.Способы объявления доменов (типов) в VP
5.Объявление предикатов в программах Visual Prolog.
6.Утверждения программы Visual Prolog: факты и правила.
7.Раздел goal программы Visual Prolog.
8.Этапы программирования на Visual Prolog.
9.Декларативный и процедурный смысл программ на Прологе.
10.Сопоставление. Правила сопоставимости термов, структур.
11.Согласование целевых утверждений. Поиск с возвратом.
12.Арифметика Visual Prolog. Арифметические функции.
13.Рекурсия в Visual Prolog. Пример рекурсивного правила (вычисление факториала, возведение числа в целую степень).
14.Рекурсия и эффективность рекурсивных правил на Visual Prolog .
15.Стандартные предикаты Visual Prolog. Поточный шаблон стандартных предикатов.
16.Стандартные предикаты ввода-вывода Visual Prolog.
17.Отсечение в программах на Visual Prolog .
18.Отрицание в правилах Visual Prolog.
19.Использование составных объектов в Visual Prolog. Простые и составные структуры.
20.Списки как основная структура данных в Visual Prolog. Описание списков. Голова и хвост списка.
21.Правило ввода списка (три варианта), вывод списка в Visual Prolog.
22.Стандартные предикаты для работы со строками в Visual Prolog.
23.Преобразование строк в список символов или атомов в Visual Prolog.
24.Преобразование данных из одного типа в другой в Visual Prolog.
25.Преобразования данных, определяемые пользователем, в Visual Prolog.
26.Предикаты Visual Prolog для работы с файлами.
27.Описание файловых доменов, переадресация внешних устройств.
28.Запись данных в файл на Visual Prolog.
29.Чтение данных из файла на Visual Prolog.
30.Дозапись данных в конец существующего файла на Visual Prolog.
31.Создание меню средствами Visual Prolog.
32.Способы организации цикла в программах на Прологе.
33.Создание динамических баз данных средствами Visual Prolog.
34.Статические и динамические базы данных в программах на Visual Prolog.
35.Способы занесения информации в динамическую базу данных на Visual Prolog.
36.Предикаты для работы с динамическими базами данных в Visual Prolog.