![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву ![]() Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Встроенные предикаты VIsual Prolog для работы с внутренней базой данных
У стандартных предикатов баз данных Visual Prolog (assserta,assertz,retract, retactall, consult и save) может быть один или два аргумента. Необязательный второй аргумент - это имя внутренней базы данных. Consult(ИмяФайлаДос) (string) - (i) Consult(ИмяФайлаДос,ИмяВнутреннейБазыДанных) (string,InternalDatabaseName) - (i,i) Оба предиката consult предназначены для того, чтобы прочитать существующий файл ИмяФайлаДос и добавить его в конец текущей базы данных. Предикат consult с одним аргументом (без имени базы данных) позволяет считывать факты, объявленные в стандартном разделе database. При вызове предиката consult с двумя аргументами извлекаются факты только базы данных с именем ИмяВнутреннейБазыДанных. /*=========================================================== Примеры добавления фактов базы данных из файла с помощъю предиката consult с одним и двумя аргументами */ DOMAINS ILIST=INTEGER* FACTS p1(INTEGER,CHAR,REAL,STRING,SYMBOL,ILIST) p2(INTEGER) GOAL consult("dd.dat"), % чтение фактов р1 и р2 из файла dd.dat для текущей базы данных retract(p1(1,_,_,_,_,_)),% удаление факта р1 из теущей базы данных, описание предиката см.ниже save("dd. dat"). % сохранение фактов р1 и р2 текущей базы данных в файле dd. dat /*---------- Пусть содержимое файла dd. dat было:------------- p1(1,'a',44.44,"Turbo","Prolog",[1,2,3,4]) p1(2,'b',-4.444E-98,"---","++++",[]) p2(88) p2(99) Проверьте содержимое файла dd. dat после одноразового выполнения программы. /*=========================================================== Save(ИмяФайлаДос) (string) - (i) Save(ИмяФайлаДос,ИмяВнутреннейБазыДанных) (string,DatabaseName) - (i,i) Оба предиката служат для сохранения фактов внутренней базы данных в файле с именем ИмяФайлаДос. Предикат save с одним аргументом сохраняет все факты стандартной базы данных, описанные в программе, в указанный файл (см.пример выше для consult с одним аргументом). Предикат save с двумя аргументами сохраняет в файле ИмяФайлаДос все факты базы данных ИмяВнутреннейБазыДанных. /*=========================================================== Пример работы предиката save с одним аргументом */ DOMAINS LIST = INTEGER* DATABASE fact1(INTEGER,STRING,LIST) fact2(INTEGER,STRING) CLAUSES fact1(1,"факт1",[1,2,3]). fact1(2,"факт2",[1,3]). fact1(3,"факт2",[3,2,1]). fact2(1,"один"). fact2(1,"один ещё раз"). fact2(2,"два"). Goal save("fact. dat"). /* сохранение фактов fact1 и fact2 стандартной базы данных в файле fact. dat */ ===========================================================*/ Следующие три предиката предназначены для добавления факта в текущую базу данных.
Assert(Отношение) (InternalDatabaseDomain) - (i) Использование предиката assert в точности соответствует использованию предиката assertz. Asserta(Отношение) (InternalDatabaseDomain) - (i) Предикат asserta добавляет новый факт ОбъектВнутреннейБазыДанных к базе данных перед существующими фактами - в начало базы данных. Assertz(Отношение) (InternalDatabaseDomain) - (i) Предикат assertz добавляет новый факт ОбъектВнутреннейБазыДанных после существующих фактов - в конец базы данных.
/*=========================================================== Пример работы предиката asserta c двумя аргументами */ DOMAINS имя,адрес,название_города = STRING возраст,код = INTEGER FACTS - люди человек(имя,возраст,адрес,код) FACTS - города город(код,название_города) GOAL assertа(человек("Петр",26,"",8600),люди), % все факты будут assertа(человек("Лука",27,"",8600),люди), % добавляться в assertа(человек("Хома",23,"",9800),люди), % начало соответ- assertа(город(8600,"Жмеринка"),города), % ствующей базы assertа(city(6800,"Париж"),города). % данных - люди или города /*=========================================================*/ Предикат retract обеспечивает удаление первого факта базы данных (стандартной или соответствующей второму аргументу предиката - ИмяВнутреннейБазыДанных) соответствующего первому аргументу предиката Отношение. Предикат истинен, если удалось удалить что-либо из базы данных. Retract(Отношение) (InternalDatabaseDomain) - (_)
|
|||||
Последнее изменение этой страницы: 2016-12-30; просмотров: 886; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.118.226.157 (0.006 с.) |