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

UptoLike

199
Продолжение прил
BEGIN
add_object(curr_con^.objects,curr_con^.value);
cert:=(prem_cert*curr_con^.cert) DIV 100;
add_cf(curr_con^.objects,curr_con^.value,cert);
curr_con:=curr_con^.next
END
END;
{Следующий модуль позволяет бъяснить" вывод в ходе консультации.
При вызове процедуры EXPLAIN_HOW, на экран выводится надпись ―Так как‖
затем содержание текущей предпосылки в формате ОБЪЕКТ=ЗНАЧЕНИЕ. Если
в выводе участвует более одной предпосылки, программа продолжает выводить их на экран до
тех пор, пока указатель текущей предпосылки не примет значение nil
}
PROCEDURE explain_how(curr_rule:rule_ptr);
VAR
curr_prem :prem_ptr;
curr_con: con_ptr;
vyvod:string;
BEGIN
vyvod:= '';
vyvod:=vyvod+Taк как :
'
+chr(10);
curr_prem:= curr_rule^.prem;
WHILE (curr_prem<>NIL) DO
BEGIN
vyvod :=vyvod+curr_prem^.objects+'=';
vyvod: =vyvod+curr_prem^. value;
curr_prem:curr_prem^.next;
IF (curr_prem<>NIL) THEN vyvod:=vyvod+' и '
ELSE vyvod:=vyvod+chr(10)
END;
Vyvod:=vyvod+' Можно сделать вывод, что'+chr(10);
curr_con :=curr_rule^.con;
WHILE (curr ^<>NIL) DO
                                                                      Продолжение прил
       BEGIN
add_object(curr_con^.objects,curr_con^.value);
cert:=(prem_cert*curr_con^.cert) DIV 100;
add_cf(curr_con^.objects,curr_con^.value,cert);
curr_con:=curr_con^.next
END
END;
{Следующий модуль позволяет "объяснить" вывод в ходе консультации.
При вызове процедуры EXPLAIN_HOW, на экран выводится надпись ―Так как‖
затем — содержание текущей предпосылки в формате ОБЪЕКТ=ЗНАЧЕНИЕ. Если
в выводе участвует более одной предпосылки, программа продолжает выводить их на экран до
тех пор, пока указатель текущей предпосылки не примет значение nil}
PROCEDURE explain_how(curr_rule:rule_ptr);
VAR
curr_prem :prem_ptr;
curr_con: con_ptr;
vyvod:string;
BEGIN
vyvod:= '';
vyvod:=vyvod+Taк как : '+chr(10);
curr_prem:= curr_rule^.prem;
WHILE (curr_prem<>NIL) DO
        BEGIN
       vyvod :=vyvod+curr_prem^.objects+'=';
       vyvod: =vyvod+curr_prem^. value;
        curr_prem:curr_prem^.next;
        IF (curr_prem<>NIL) THEN vyvod:=vyvod+' и '
        ELSE vyvod:=vyvod+chr(10)
        END;
         Vyvod:=vyvod+' Можно сделать вывод, что'+chr(10);
        curr_con :=curr_rule^.con;
         WHILE (curr ^<>NIL) DO



                                                  199