Экспертные системы 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)).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д