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

UptoLike

183
Продолжение при л .
{проверяет истинность отдельного факта}
FUNCTION test(f_object,f_value;word_string) :value_ptr; VAR
curr_object
:object_ptr;
curr_value:value_ptr;
BEGIN
curr_object: =find_object(f_object);
test:=NIL;
IF (curr_object<>NIL) THEN BEGIN
curr_value:=curr_object^.vaIue_Iist;
WHILE (curr_value<>NIL) DO BEGIN
IF (curr_value.name=f_value) THEN
test:=curr_value;
curr_value:=curr_value^.next END
END
END;
{позволяет добавлять в базу знаний имена объекта и значения}
PROCEDURE add_object(f_object,f_value:word_string);
VAR
cur r_object: object_ptr;
value_list,
head:value_ptr;
BEGIN
curr_object:=find_object(f_object);
IF (curr_object=NIL) THEN
make_node(curr__object);
curr_object^/name:=f_object;
cur_object^.sought:=TRUE;
value_list:=test(f_object f_value);
IF(value_list=NIL) THEN BEGIN
head :=curr__object^. value_list;
new(value_list);
WITH value_list DO BEGIN
next:=head;
                                                               Продолжение при л .
{проверяет истинность отдельного факта}
FUNCTION test(f_object,f_value;word_string) :value_ptr; VAR
curr_object
:object_ptr;
curr_value:value_ptr;
BEGIN
curr_object: =find_object(f_object);
test:=NIL;
IF (curr_object<>NIL) THEN BEGIN
  curr_value:=curr_object^.vaIue_Iist;
WHILE (curr_value<>NIL) DO BEGIN
IF (curr_value.name=f_value) THEN
   test:=curr_value;
curr_value:=curr_value^.next END
  END
  END;
{позволяет добавлять в базу знаний имена объекта и значения}
PROCEDURE add_object(f_object,f_value:word_string);
VAR
cur r_object: object_ptr;
value_list,
head:value_ptr;
BEGIN
curr_object:=find_object(f_object);
IF (curr_object=NIL) THEN
  make_node(curr__object);
curr_object^/name:=f_object;
cur_object^.sought:=TRUE;
  value_list:=test(f_object f_value);
IF(value_list=NIL) THEN BEGIN
   head :=curr__object^. value_list;
   new(value_list);
   WITH value_list DO BEGIN
      next:=head;



                                             183