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