|
|
|
Aleksfoss |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 19.7.2015 Репутация: нет Всего: нет |
Всем привет. Кто нибудь может подсказать? В общем есть файл frame.dba это вроде как и есть база знаний в экспертной системе, но вот где там база данных, а где база правил?
Код программы: 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 constants %BEGIN Task Window, CreateParms, 07:41:39-6.6.2015, Code automatically updated! task_win_Flags = [wsf_SizeBorder,wsf_TitleBar,wsf_Close,wsf_Maximize,wsf_Minimize,wsf_ClipSiblings] task_win_Menu = res_menu(idr_task_menu) task_win_Title = "Экспертная система" task_win_Help = idh_contents %END Task Window, CreateParms 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)). %BEGIN Task Window, e_Create task_win_eh(_Win,e_Create(_),0):-!, consult("frame.dba",framedb), init, %BEGIN Task Window, InitControls, 07:41:39-6.6.2015, Code automatically updated! %END Task Window, InitControls %BEGIN Task Window, ToolbarCreate, 07:41:39-6.6.2015, Code automatically updated! tb_project_toolbar_Create(_Win), tb_help_line_Create(_Win), %END Task Window, ToolbarCreate ifdef use_message msg_Create(100), enddef !. %END Task Window, e_Create %MARK Task Window, new events %BEGIN Task Window, id_about task_win_eh(_Win,e_Menu(id_about,_ShiftCtlAlt),0):-!, !. %END Task Window, id_about %BEGIN Task Window, id_help task_win_eh(_Win,e_Menu(id_help,_ShiftCtlAlt),0):-!, !. %END Task Window, id_help %BEGIN Task Window, id_findclass task_win_eh(_Win,e_Menu(id_findclass,_ShiftCtlAlt),0):-!, dlg_findclass_Create(_Win), !. %END Task Window, id_findclass %BEGIN Task Window, id_Exit task_win_eh(_Win,e_Menu(id_Exit,_ShiftCtlAlt),0):-!, win_Destroy(_Win), !. %END Task Window, id_Exit %BEGIN Task Window, id_addtype task_win_eh(_Win,e_Menu(id_addtype,_ShiftCtlAlt),0):-!, dlg_addtype_Create(_Win), !. %END Task Window, id_addtype %BEGIN Task Window, id_addclass task_win_eh(_Win,e_Menu(id_addclass,_ShiftCtlAlt),0):-!, dlg_addclass_Create(_Win), !. %END Task Window, id_addclass %BEGIN Task Window, e_Destroy task_win_eh(_Win,e_Destroy,0):-!, save("frame.dba",framedb), !. %END Task Window, e_Destroy %BEGIN Task Window, id_help_contents task_win_eh(_Win,e_Menu(id_help_contents,_ShiftCtlAlt),0):-!, vpi_ShowHelp("пример эс.hlp"), !. %END Task Window, id_help_contents %BEGIN Task Window, id_help_about task_win_eh(_Win,e_Menu(id_help,_ShiftCtlAlt),0):-!, dlg_about_dialog_Create(_Win), !. %END Task Window, id_help_about %BEGIN Task Window, id_file_exit task_win_eh(_Win,e_Menu(id_exit,_ShiftCtlAlt),0):-!, win_Destroy(_Win), !. %END Task Window, id_file_exit %BEGIN Task Window, e_Size task_win_eh(_Win,e_Size(_Width,_Height),0):-!, ifdef use_tbar toolbar_Resize(_Win), enddef ifdef use_message msg_Resize(_Win), enddef !. %END Task Window, e_Size %END_WIN Task Window /*************************************************************************** Invoking on-line Help ***************************************************************************/ project_ShowHelpContext(HelpTopic):- vpi_ShowHelpContext("пример эс.hlp",HelpTopic). /*************************************************************************** Main Goal ***************************************************************************/ goal ifdef use_mdi vpi_SetAttrVal(attr_win_mdi,b_true), enddef ifdef ws_win ifdef use_3dctrl vpi_SetAttrVal(attr_win_3dcontrols,b_true), enddef enddef vpi_Init(task_win_Flags,task_win_eh,task_win_Menu,"пример эс",task_win_Title). %BEGIN_TLB Project toolbar, 12:09:49-4.6.2015, Code automatically updated! /************************************************************************** Creation of toolbar: Project toolbar **************************************************************************/ clauses tb_project_toolbar_Create(_Parent):- ifdef use_tbar toolbar_create(tb_top,0xC0C0C0,_Parent, [tb_ctrl(id_file_new,pushb,idb_new_up,idb_new_dn,idb_new_up,"New;New file",1,1), tb_ctrl(id_file_open,pushb,idb_open_up,idb_open_dn,idb_open_up,"Open;Open file",1,1), tb_ctrl(id_file_save,pushb,idb_save_up,idb_save_dn,idb_save_up,"Save;File save",1,1), separator, tb_ctrl(id_edit_undo,pushb,idb_undo_up,idb_undo_dn,idb_undo_up,"Undo;Undo",1,1), tb_ctrl(id_edit_redo,pushb,idb_redo_up,idb_redo_dn,idb_redo_up,"Redo;Redo",1,1), separator, tb_ctrl(id_edit_cut,pushb,idb_cut_up,idb_cut_dn,idb_cut_up,"Cut;Cut to clipboard",1,1), tb_ctrl(id_edit_copy,pushb,idb_copy_up,idb_copy_dn,idb_copy_up,"Copy;Copy to clipboard",1,1), tb_ctrl(id_edit_paste,pushb,idb_paste_up,idb_paste_dn,idb_paste_up,"Paste;Paste from clipboard",1,1), separator, separator, tb_ctrl(id_help_contents,pushb,idb_help_up,idb_help_down,idb_help_up,"Help;Help",1,1)]), enddef true. %END_TLB Project toolbar %BEGIN_TLB Help line, 12:09:49-4.6.2015, Code automatically updated! /************************************************************************** Creation of toolbar: Help line **************************************************************************/ clauses tb_help_line_Create(_Parent):- ifdef use_tbar toolbar_create(tb_bottom,0xC0C0C0,_Parent, [tb_text(idt_help_line,tb_context,452,0,4,10,0x0,"")]), enddef true. %END_TLB Help line %BEGIN_DLG About dialog /************************************************************************** Creation and event handling for dialog: About dialog **************************************************************************/ constants %BEGIN About dialog, CreateParms, 12:09:49-4.6.2015, Code automatically updated! dlg_about_dialog_ResID = idd_dlg_about dlg_about_dialog_DlgType = wd_Modal dlg_about_dialog_Help = idh_contents %END About dialog, CreateParms predicates dlg_about_dialog_eh : EHANDLER clauses dlg_about_dialog_Create(Parent):- win_CreateResDialog(Parent,dlg_about_dialog_DlgType,dlg_about_dialog_ResID,dlg_about_dialog_eh,0). %BEGIN About dialog, idc_ok _CtlInfo dlg_about_dialog_eh(_Win,e_Control(idc_ok,_CtrlType,_CtrlWin,_CtrlInfo),0):-!, win_Destroy(_Win), !. %END About dialog, idc_ok _CtlInfo %MARK About dialog, new events dlg_about_dialog_eh(_,_,_):-!,fail. %END_DLG About dialog %BEGIN_DLG addclass /************************************************************************** Creation and event handling for dialog: addclass **************************************************************************/ constants %BEGIN addclass, CreateParms, 10:58:53-6.6.2015, Code automatically updated! dlg_addclass_ResID = idd_addclass dlg_addclass_DlgType = wd_Modal dlg_addclass_Help = idh_contents %END addclass, CreateParms predicates dlg_addclass_eh : EHANDLER dlg_addclass_handle_answer(INTEGER EndButton,DIALOG_VAL_LIST) dlg_addclass_update(DIALOG_VAL_LIST) clauses dlg_addclass_Create(Parent):- %MARK addclass, new variables dialog_CreateModal(Parent,dlg_addclass_ResID,"", [ %BEGIN addclass, ControlList, 10:58:53-6.6.2015, Code automatically updated! df(nameclass,editstr("",[]),nopr), df(typelist,listbox([],[0]),nopr) %END addclass, ControlList ], dlg_addclass_eh,0,VALLIST,ANSWER), dlg_addclass_handle_answer(ANSWER,VALLIST). dlg_addclass_handle_answer(idc_ok,VALLIST):-!, dlg_addclass_update(VALLIST). dlg_addclass_handle_answer(idc_cancel,_):-!. % Handle Esc and Cancel here dlg_addclass_handle_answer(_,_):- errorexit(). dlg_addclass_update(_VALLIST):- %BEGIN addclass, Update controls, 10:58:53-6.6.2015, Code automatically updated! _NAMECLASS_VALUE = dialog_VLGetstr(nameclass,_VALLIST), dialog_VLGetListBox(typelist,_VALLIST,_TYPELIST_ITEMLIST,_TYPELIST_SELECT), %END addclass, Update controls true. %MARK addclass, new events %BEGIN addclass, e_Create dlg_addclass_eh(_Win,e_Create(_CreationData),0):-!, H=win_GetCtlHandle(_Win,typelist), retract(type(NTYPE,TYPE1,PLIST)), assertz(type(NTYPE,TYPE1,PLIST)), type(_,TYPE2,_), lbox_add(H,TYPE2), TYPE1=TYPE2, lbox_SetSel(H,0,b_true), !. %END addclass, e_Create %BEGIN addclass, setvalue _CtlInfo dlg_addclass_eh(_Win,e_Control(setvalue,_CtrlType,_CtrlWin,_CtlInfo),0):-!, H=win_GetCtlHandle(_Win,nameclass), NAMECLASS=win_GetText(H), NAMECLASS<>"", not(classroom(NAMECLASS,_,_)), LH=win_GetCtlHandle(_Win,typelist), lbox_GetSel(LH,S,_), S=[TYPE|_], type(NTYPE,TYPE,LPROP), getvalue(LPROP,LVALUE), asserta(classroom(NAMECLASS,NTYPE,LVALUE)), win_Destroy(_Win), dlg_note("Дом добавлен"), !. dlg_addclass_eh(_Win,e_Control(setvalue,_CtrlType,_CtrlWin,_CtlInfo),0):-!, dlg_error("Дом не добавлен"). %END addclass, setvalue _CtlInfo %BEGIN addclass, idc_cancel _CtlInfo dlg_addclass_eh(_Win,e_Control(idc_cancel,_CtrlType,_CtrlWin,_CtlInfo),0):-!, win_Destroy(_Win), !. %END addclass, idc_cancel _CtlInfo dlg_addclass_eh(_,_,_):-!,fail. %END_DLG addclass %BEGIN_DLG ADDTYPE /************************************************************************** Creation and event handling for dialog: ADDTYPE **************************************************************************/ constants %BEGIN ADDTYPE, CreateParms, 10:59:02-6.6.2015, Code automatically updated! dlg_addtype_ResID = idd_addtype dlg_addtype_DlgType = wd_Modal dlg_addtype_Help = idh_contents %END ADDTYPE, CreateParms predicates dlg_addtype_eh : EHANDLER dlg_addtype_handle_answer(INTEGER EndButton,DIALOG_VAL_LIST) dlg_addtype_update(DIALOG_VAL_LIST) clauses dlg_addtype_Create(Parent):- %MARK ADDTYPE, new variables dialog_CreateModal(Parent,dlg_addtype_ResID,"", [ %BEGIN ADDTYPE, ControlList, 10:59:02-6.6.2015, Code automatically updated! df(typename,editstr("",[]),nopr) %END ADDTYPE, ControlList ], dlg_addtype_eh,0,VALLIST,ANSWER), dlg_addtype_handle_answer(ANSWER,VALLIST). dlg_addtype_handle_answer(idc_ok,VALLIST):-!, dlg_addtype_update(VALLIST). dlg_addtype_handle_answer(idc_cancel,_):-!. % Handle Esc and Cancel here dlg_addtype_handle_answer(_,_):- errorexit(). dlg_addtype_update(_VALLIST):- %BEGIN ADDTYPE, Update controls, 10:59:02-6.6.2015, Code automatically updated! _TYPENAME_VALUE = dialog_VLGetstr(typename,_VALLIST), %END ADDTYPE, Update controls true. %BEGIN ADDTYPE, setparam _CtlInfo dlg_addtype_eh(_Win,e_Control(setparam,_CtrlType,_CtrlWin,_CtlInfo),0):-!, H1=win_GetCtlHandle(_win,typename), TYPE=win_GetText(H1),TYPE<>"",not(type(_,TYPE,_)), getname(L), retract(ntype(N)), N2=N+1, asserta(ntype(N2)), asserta(type(N2,TYPE,L)), win_Destroy(_win), dlg_note("Новый тип был добавлен."), !. dlg_addtype_eh(_Win,e_Control(setparam,_CtrlType,_CtrlWin,_CtlInfo),0):-!, dlg_error("Новый тип не был добавлен"). %END ADDTYPE, setparam _CtlInfo %BEGIN ADDTYPE, idc_cancel _CtlInfo dlg_addtype_eh(_Win,e_Control(idc_cancel,_CtrlType,_CtrlWin,_CtlInfo),0):-!, win_Destroy(_Win), !. %END ADDTYPE, idc_cancel _CtlInfo dlg_addtype_eh(_,_,_):-!,fail. %END_DLG ADDTYPE %BEGIN_DLG findclass /************************************************************************** Creation and event handling for dialog: findclass **************************************************************************/ constants %BEGIN findclass, CreateParms, 10:59:18-6.6.2015, Code automatically updated! dlg_findclass_ResID = idd_findclass dlg_findclass_DlgType = wd_Modal dlg_findclass_Help = idh_contents %END findclass, CreateParms predicates dlg_findclass_eh : EHANDLER dlg_findclass_handle_answer(INTEGER EndButton,DIALOG_VAL_LIST) dlg_findclass_update(DIALOG_VAL_LIST) clauses dlg_findclass_Create(Parent):- %MARK findclass, new variables dialog_CreateModal(Parent,dlg_findclass_ResID,"", [ %BEGIN findclass, ControlList, 10:59:18-6.6.2015, Code automatically updated! df(classlist,listbox([],[0]),nopr) %END findclass, ControlList ], dlg_findclass_eh,0,VALLIST,ANSWER), dlg_findclass_handle_answer(ANSWER,VALLIST). dlg_findclass_handle_answer(idc_ok,VALLIST):-!, dlg_findclass_update(VALLIST). dlg_findclass_handle_answer(idc_cancel,_):-!. % Handle Esc and Cancel here dlg_findclass_handle_answer(_,_):- errorexit(). dlg_findclass_update(_VALLIST):- %BEGIN findclass, Update controls, 10:59:18-6.6.2015, Code automatically updated! dialog_VLGetListBox(classlist,_VALLIST,_CLASSLIST_ITEMLIST,_CLASSLIST_SELECT), %END findclass, Update controls true. %MARK findclass, new events %BEGIN findclass, e_Create dlg_findclass_eh(_Win,e_Create(_CreationData),0):-!, H=win_GetCtlHandle(_Win,classlist), retract(classroom(CLASS1,NTYPE,LVALUE)), assertz(classroom(CLASS1,NTYPE,LVALUE)), classroom(CLASS2,_,_), lbox_add(H,CLASS2), CLASS1=CLASS2, lbox_SetSel(H,0,b_true), !. %END findclass, e_Create %BEGIN findclass, classlist _CtlInfo dlg_findclass_eh(_Win,e_Control(classlist,_CtrlType,_CtrlWin,_CtlInfo),0):-!, H=win_GetCtlHandle(_Win,classlist), lbox_GetSel(H,S,_), S=[CLASSROOM|_], classroom(CLASSROOM,NTYPE,LVALUE), type(NTYPE,TYPE,LPARAM), STR="Тип: ", concat(STR,TYPE,STR2), concat(STR2,"\n",STR3), allparam(LPARAM,LVALUE,STR3,STR4), H2=win_GetCtlHandle(_Win,textparam), win_SetText(H2,STR4), lbox_Clear(H), !. %END findclass, classlist _CtlInfo %BEGIN findclass, idc_cancel _CtlInfo dlg_findclass_eh(_Win,e_Control(idc_cancel,_CtrlType,_CtrlWin,_CtlInfo),0):-!, win_Destroy(_Win), !. %END findclass, idc_cancel _CtlInfo dlg_findclass_eh(_,_,_):-!,fail. %END_DLG findclass Присоединённый файл ( Кол-во скачиваний: 0 ) frame.dba 0,75 Kb |
|||
|
||||
cold95 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 7.10.2015 Репутация: нет Всего: нет |
Привет . Очень нужна помощь.
Преподаватель задал написать программу на прологе ... я а в ном ничего не понимаю . вот задача: описать в базе знаний фрагмент файлового каталога. Привести информацию об имени , расширение и размер файла. Написать правило для ассоциации расширений файлов с программами, которые создали . Обеспечить поиск файла по его имени . Помогите кто может ... очень надо !!! Пожалуйста !!!! |
|||
|
||||
Правила форума Prolog | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Prolog | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |