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

UptoLike

99
Проверка объектов и значений
Следующий модуль будет использоваться для проверки истинности пары "объект -
значение" (наличия ее в базе знаний). Сначала программа устанавливает, содержится ли имя
оговоренного объекта в списке объектов, а затем ищет имя значения. После оператора BEGIN
подпрограмма вызывает модуль find_object:
FUNCTION test(f_object
J
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".value_list; 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
curr_object:object_ptr;
value_list,
head:value_ptr;
                                   Проверка объектов и значений

        Следующий модуль будет использоваться для проверки истинности пары "объект -
 значение" (наличия ее в базе знаний). Сначала программа устанавливает, содержится ли имя
 оговоренного объекта в списке объектов, а затем ищет имя значения. После оператора BEGIN
 подпрограмма вызывает модуль find_object:
 FUNCTION test(f_objectJf_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".value_list; 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
curr_object:object_ptr;
value_list,
head:value_ptr;




                                                99