带乘法Prolog的规则
序言新手在这里。我有以下事实:带乘法Prolog的规则,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). 如果课程成绩占总成绩的25%,考试成绩占总成绩的75%,我想写一条规则,给我一个人的总分 我试过: got_perc(Person,Perc):-
%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).
如果课程成绩占总成绩的25%,考试成绩占总成绩的75%,我想写一条规则,给我一个人的总分
我试过:
got_perc(Person,Perc):-marks(Person((_X*0.25)+(_Y*0.75)).
请问有人能帮忙吗?谢谢。正如潜伏者在他的评论中指出的那样,您需要使用
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
标准内置谓词也被定义为中缀运算符,它将左操作数与右操作数作为算术表达式求值的结果统一起来。到目前为止,您所掌握的内容毫无意义。您将变量Person
视为yorugot_perc
子句主体中的函子。不能在一个术语内进行表达式求值。使用is/2
进行数值计算,并用结果实例化变量。什么是\ux
和\uy
?