2013-02-09 3 views
0

Я создаю экспертную систему для ремонта сотовых телефонов.Да Нет в Прологе, если нет (да/нет), тогда отобразить неверную команду (ввод)

Ответы должны быть только [да или нет], и все остальное отображает «недопустимый ввод». Как я могу поймать это в своем коде?

ask(Question) :- write('Question: '), 
     write(Question), 
     write('? '), 
     write('(yes or no) : '), 
     read(Response), 
     nl, 
     ((Response == yes ; Response == y) -> assert(yes(Question)) ; 
     (Response==no ; Response ==n) -> assert(no(Question)) ; 
     write('\nInvalid Input!!!\n'),fail). 

Я все еще не могу реализовать то, что я хочу отобразить, если введена неправильная орфография.

ответ

1

Ну ... Ваш код определенно работает. Просто не забудьте изменить assert с asserta или assertz, если вы используете gprolog.

| ?- [expert]. 
compiling *** for byte code... 
*** compiled, 7 lines read - 2111 bytes written, 14 ms 
(1 ms) yes 
| ?- ask(man). 
Question: man? (yes or no): y. 
yes 
| ?- ask(woman). 
Question: woman? (yes or no): no. 
(1 ms) yes 
| ?- ask(silly). 
Question: silly? (yes or no): dunno. 
Invalid Input!!! 
no 
| ?- yes(man). 
yes 
| ?- no(man). 
no 
| ?- yes(woman). 
no 
| ?- no(woman). 
(1 ms) yes 
+0

Спасибо ... что gprolog? Потому что я использую amzi слушатель, чтобы запустить свою программу .. есть ли способ автоматически запустить свою программу, так же, как вы, когда вы нажимаете приложение и он будет работать напрямую. . без использования прослушивателя? ... я слышал о .xml при компиляции в amzi, но я не знаю, как это сделать ... помогите мне пожалуйста ... tnx Aurélien ... –

+0

'gprolog'stands for [GNU proog ] (http://www.gprolog.org). Интерпретатор может быть запущен с [опциями для консультаций с файлом и выполнения предложения] (http://www.gprolog.org/manual/gprolog.html#htoc6). –

+0

@ Aurélien ... Большое спасибо. –