Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 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; просмотров: 913; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.135.208.189 (0.005 с.) |