维护变量 抱歉我的英文
这是我的代码
stampa_diagnosi(X) :- gia_chiesto(S, 'si'), sintomo(S, M), not(sintomo(S, X)), M \= X,
nl, write('Una possibile diagnosi è: '), write(X), nl,
write('il paziente ha un peso minore di 65 KG? (1, 2, 3) '),nl,read(P),peso(P), nl.
peso(1) :- write('Possibile cura: '), cura1(X), nl, write(' ----- '), nl,spiegacome.
peso(2) :- write('Possibile cura: '), cura2(X), nl, write(' ----- '), nl,spiegacome.
peso(3) :- write('Possibile cura: '), cura3(X), nl, write(' ----- '), nl,spiegacome.
cura1(centaurea_minore) :- write('La cura è di 10 gocce .').
cura2(centaurea_minore) :- write('La cura è di 30 gocce .').
cura3(centaurea_minore) :- write('La cura è di 40 gocce .').
cura1(agnocasto) :- write('La cura è di 10 gocce .').
cura2(agnocasto) :- write('La cura è di 30 gocce .').
cura3(agnocasto) :- write('La cura è di 40 gocce .').
当我询问患者体重的问题时,如何保持诊断X的值?
我的问题需要我,一旦我找到基于体重的治疗,我必须选择正确的治疗方法吗?
显然,我对每三种解决方案都非常关心和关心
答案 0 :(得分:0)
当我询问患者体重的问题时,如何保持诊断X的值?
很简单。遵循DRY原则,使用输出参数并重写
peso(1) :- write('Possibile cura: '), cura1(X), nl, write(' ----- '), nl,spiegacome.
peso(2) :- write('Possibile cura: '), cura2(X), nl, write(' ----- '), nl,spiegacome.
peso(3) :- write('Possibile cura: '), cura3(X), nl, write(' ----- '), nl,spiegacome.
到
peso(N, X) :-
write('Possibile cura: '), cura1(X), nl, write(' ----- '), nl,spiegacome.
(并相应地更新stampa_diagnosi
。)