Экспертные системы Visual Prolog 5.2

Узнай цену своей работы

Формулировка задачи:

Привет всем, кто нибудь может подсказать какой предикат относится к базе правил, а какой к базе данных? Database - framedb%Описание фреймовой модели с помощью БД type(INTEGER,STRING,SLIST)%Описывает номер типа, название типа, список названий параметров classroom(STRING,INTEGER,ILIST)%Связывает номер дома, указатель на тип, список параметров ntype(INTEGER)%Содержит номер последнего добавленного типа

Решение задачи: «Экспертные системы Visual Prolog 5.2»

textual
Листинг программы
predicates
Database - framedb
type(INTEGER,STRING,SLIST)
classroom(STRING,INTEGER,ILIST)
ntype(INTEGER)
predicates
getname(SLIST)
checkanswer(INTEGER,SLIST)
getvalue(SLIST,ILIST)
allparam(SLIST,ILIST,STRING,STRING)
nondeterm init
  task_win_eh : EHANDLER
clauses
getname([NAME|L]):-
    NAME=dlg_GetStr("Имя параметра","Параметры имени:",""),
    NAME<>"",
    P=dlg_Ask("Хотите продолжить ввод имени параметра?",["Да","Нет" ]),
    checkanswer(P,L).
    checkanswer(0,L):-getname(L).
    checkanswer(1,[]).
    
    getvalue([],[]).
    getvalue([NAME|L1],[VALUE|L2]):-
        concat(NAME,":  ",STR),
        VALUESTR=dlg_GetStr("Значения параметров",STR,""),
        str_int(VALUESTR,VALUE),
        VALUE>=0,
        getvalue(L1,L2).
        
    allparam([],[],S,S).
    allparam([NAME|L1],[VALUE|L2],STR,S):-
        format(STRVALUE,"%",VALUE),
        concat(STR,NAME,STR2),
        concat(STR2,":  ",STR3),
        concat(STR3,STRVALUE,STR4),
        concat(STR4,"\n",STR5),
        allparam(L1,L2,STR5,S).
init:-ntype(_).     
init:-asserta(ntype(0)).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4 из 5
Похожие ответы