Программирование на Турбо-Прологе


Программирование на Турбо-Прологе - стр. 16


     3.asserta(d) - обеспечивает запись в базу данных нового факта перед имеющимися фактами для заданного отношения;
     4.assertz(d) - обеспечивает запись в базу данных нового факта после всех имеющихся фактов для заданного отношения.
        Объявление динамической базы данных, в которую факты могут добавляться во время выполнения программы или выбираться из  файла  посредством предиката consult, осуществляется посредством ключевого слова
database.
     Пример 1.
     domains
        tip,fun=symbol
        x,kol=integer
     database
        ms(tip,fun,x,kol)
     /* tip - тип микросхемы;
fun - реализуемая функция;
        x   - число входов;   kol - число элементов */
     clauses
        ms(k155la3,i_ne,2,4). ms(k155la4,i_ne,3,3). ms(k155la1,i_ne,4,2).
        ms(k155ln1,ne,1,6). ms(k155le1,ili,2,4). ms(k155li3,i,3,3).
     Ввод строки  assertz(ms(k155ir1,rg,4,4))  приводит  к  добавлению
факта s(k155ir1,rg,4,4) в базу данных.

     Ввод строки  retract(ms(Q,i_ne,W,E))  приведет  к  удалению из БД всех объектов для элементов типа i_ne.
     Для сохранения  БД  на  диске  в заданном файле (например,  mybase.dba) необходимо ввести строку
                        save("mybase.dba").
     Затем в этой же или в другой программе на основе полученного файла можно создать новую БД. Для этого необходимо ввести строку
                        consult("mybase.dba").
     В результате существующая БД дополняется объектами из файла mybase.dba.
     Для сохранения поименованной БД используется предикат
                        save(DosFileName,DataBaseName).
     Для создания  поименованной БД из фактов,  расположенных в файле,
используем предикат
                        consult(DosFileName,DataBaseName).
4.2. Накопление в базе данных ответов на вопросы
     Одним из полезных применений предиката asserta является  накопление уже вычисленных ответов на вопросы.  Пусть,  например, в программе



- Начало -  - Назад -  - Вперед -



Книжный магазин