2015-12-19 56 views
-1

我想寫:我如何寫(KSO <20)然後在prolog中做一個程序?

if (KSO<20) then { 
        printf("Is there NO3 in the water (yes/no)"); 
        scanf("%s",NUMKSOVALUE_value); 
        } 
在序言

。 現在我寫道:

write('Is there NO3 in the water (yes/no)?'), 
      nl, read(NUMKSOVALUE_value), 
      member(NUMKSOVALUE_value,[yes,no]). :- (number(KSO_labvalue),KSO_labvalue < 20). 

但它沒有被接受。有人可以幫我請這個嗎?

+3

':-'用於定義謂詞子句。它將謂詞的頭部從身體中分離出來。你已經以一種不尋常的方式使用它。您是否閱讀過任何Prolog教程或者有Prolog書籍來學習一些基本的Prolog? – lurker

回答

0

一個很好的開始學習Prolog是:http://www.learnprolognow.org/

對於你的問題,下面的代碼將幫助你開始:

no3_present_in_water :- 
    write('Enter KSO value:'), nl, 
    read(V), 
    process_response(V,Outcome), 
    write('NO3 present: '), write(Outcome), nl. 

process_response(A,B) :- 
     A =< 20, 
     B = 'no'. 
process_response(A,B) :- 
     A > 20, 
     B = 'yes'. 

測試:

?- no3_present_in_water. 
Enter KSO value: 
|: 10. 
NO3 present: no 
yes 

?- no3_present_in_water. 
Enter KSO value: 
|: 30. 
NO3 present: yes 
yes 
相關問題