This is an old revision of the document!
addResult(ident id, ident studentId, ident taskId, double points) { assume exists //exams/exam[id]/results/participant[studentId]; # can also be implicitly true in an OO language assume exists //exams/exam[id]/tasks/task[taskId]; assume not exists //exams/exam[id]/results/participant[studentId]/result[taskId]; assume points >= 0 && points < //exams/exam[id]/tasks/task[taskId]/maxPoints; insert //exams/exam[id]/results/participant[studentId] <result task=[taskId] points=[points] />; }