пролог программирование есть у кого? - PullRequest
0 голосов
/ 15 июля 2011

ведение переменной извините за мой английский

это мой код

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 диагноза, который теряется, когда я задаю вопрос о весео пациенте?

Мой вопрос требует меня, как только я нашел лекарство, основанное на весе, я должен выбрать правильное, как я делаю ??

Очевидно, что мне нужно много заботза каждые три решения

1 Ответ

0 голосов
/ 16 июля 2011

как мне сохранить значение X диагноза, который теряется при задании вопроса о весе пациента?

Очень просто. Следуйте принципу СУХОЙ, используйте выходной аргумент и перепишите

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 соответственно.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...