Основы построения и функционирования интеллектуальных информационных систем. Былкин В.Д - 200 стр.

UptoLike

200
Продолжение прил.
BEGIN
vyvod :=vyvod +curr_con^.objects+'=';
vyvod:=vyvod+cur_con^.value;
curr_con:=curr_con^.next;
IF (curr_con<>NIL) THEN vyvod:=
:
vyvod+' и '
ELSE vyvod:=vyvod+chr(10);
END;
ShowMessage(vyv
od) END;
procedure explain_why(f_object:word_string);
begin
ShowMessage(в БЗ отсутствует правило вывода значения для объекта '+f_objeet);
end;
{Является сердцем машины вывода программы. Процедура PURSUE обрабатывает полученное
имя объекта, пытаясь применять правила для присвоения ему значения.
Если ни одно из правил не позволяет сделать вывод об объекте, то его значение
запрашивается у пользователя.}
PROCEDURE pursue(f_object;word_string);
VAR
f_value;word_string;
curr_obj ect :object_ptr;
curr_value: value_ptr;
curr_rule :rule_ptr;
curr_prem: prem_ptr;
bad:boolean;
solved :boolean;
lowest: integer;
BEGIN
curr_object:=find_object(f_object);
IF curr_object=NIL THEN make_node(curr_object);
curr_obj ect^ .name: =f_object;
IF (curr_object
^
.sought<>TRUE) THEN
                                                                      Продолжение прил.
          BEGIN
          vyvod :=vyvod +curr_con^.objects+'=';
          vyvod:=vyvod+cur_con^.value;
          curr_con:=curr_con^.next;
          IF (curr_con<>NIL) THEN vyvod:=:vyvod+' и '
          ELSE vyvod:=vyvod+chr(10);
          END;
ShowMessage(vyv
od) END;
procedure explain_why(f_object:word_string);
begin
ShowMessage(в БЗ отсутствует правило вывода значения для объекта '+f_objeet);
end;
{Является сердцем машины вывода программы. Процедура PURSUE обрабатывает полученное
имя объекта, пытаясь применять правила для присвоения ему значения.
Если ни одно из правил не позволяет сделать вывод об объекте, то его значение
запрашивается у пользователя.}
PROCEDURE pursue(f_object;word_string);
VAR
f_value;word_string;
curr_obj ect :object_ptr;
curr_value: value_ptr;
curr_rule :rule_ptr;
curr_prem: prem_ptr;
bad:boolean;
solved :boolean;
lowest: integer;
BEGIN
curr_object:=find_object(f_object);
IF curr_object=NIL THEN make_node(curr_object);
curr_obj ect^ .name: =f_object;
IF (curr_object^.sought<>TRUE) THEN

                                                  200