如果(KSO <20)然后在prolog中执行一个程序,我怎么写?

时间:2015-12-19 23:11:30

标签: syntax prolog

我想写:

 if (KSO<20) then {
                   printf( "Is there NO3 in the water (yes/no)");
                   scanf("%s",NUMKSOVALUE_value);
                   }
在prolog中。 到现在为止我写道:

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

但它不被接受。有人可以帮帮我吗?

1 个答案:

答案 0 :(得分: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