规则与乘法Prolog

时间:2014-05-13 15:26:32

标签: prolog

Prolog新手在这里。我有以下事实:

%marks(person, coursework_mark, exam_mark)
marks( julie, 77, 63).
marks( pete, 55, 21).
marks( chris, 69, 53).
marks( samantha, 68, 42).
marks( james, 79, 73).

如果coursework_mark占整体成绩的25%,其余75​​%的考试成绩计算,那么我想编写一条规则给我总人数。

我试过了:

got_perc(Person,Perc):-marks(Person((_X*0.25)+(_Y*0.75)).

请有人帮忙吗?谢谢。

1 个答案:

答案 0 :(得分:1)

正如潜伏者在评论中指出的那样,您需要使用is/2标准内置谓词来进行计算。类似的东西:

got_perc(Person, Perc) :-
    % get student work and exam grades
    marks(Person, Work, Exam),
    % calculate the student final grade  
    Perc is Work*0.25 + Exam*0.75.

is/2标准内置谓词(也定义为中缀运算符)将左操作数与将右操作数作为算术表达式求值的结果统一起来。