// Numbas version: exam_results_page_options {"name": "CA2 (2018/19) Substitution 2 (custom feedback)", "extensions": [], "custom_part_types": [], "resources": [], "navigation": {"allowregen": true, "showfrontpage": false, "preventleave": false}, "question_groups": [{"pickingStrategy": "all-ordered", "questions": [{"variables": {"a": {"definition": "random(2..6)", "name": "a", "templateType": "anything", "description": "", "group": "Ungrouped variables"}, "b": {"definition": "random(1..8 except a)", "name": "b", "templateType": "anything", "description": "", "group": "Ungrouped variables"}, "c": {"definition": "random(1..9)", "name": "c", "templateType": "anything", "description": "", "group": "Ungrouped variables"}}, "statement": "

Find the following indefinite integral using the letter $C$ to represent any unknown constants.

$\\int\\frac{dx}{\\var{a}x+\\var{b}}$.
", "marks": "2", "unitTests": [], "answer": "1/{a}ln({a}x+{b})+C", "showFeedbackIcon": true, "customMarkingAlgorithm": "malrules:\n [\n [\"1/{a}ln({a}x+{b})\", \"Almost there! Did you forget to include the integration constant?\"],\n [\"ln({a}x+{b})\", \"Did you remember to divide by the number in front of $x$? If you used substitution, double check the relationship between $du$ and $dx$.\"],\n [\"ln({a}x+{b})+C\", \"Did you remember to divide by the number in front of $x$? If you used substitution, double check the relationship between $du$ and $dx$.\"],\n [\"{a}*ln({a}x+{b})\", \"You have multiplied by the number in front of $x$ rather than dividing by it. If you used substitution, double check the relationship between $du$ and $dx$.\"],\n [\"{a}*ln({a}x+{b})+C\", \"You have multiplied by the number in front of $x$ rather than dividing by it. If you used substitution, double check the relationship between $du$ and $dx$.\"]\n ]\n\n\nparsed_malrules: \n map(\n [\"expr\":parse(x[0]),\"feedback\":x[1]],\n x,\n malrules\n )\n\nagree_malrules (Do the student's answer and the expected answer agree on each of the sets of variable values?):\n map(\n len(filter(not x ,x,map(\n try(\n resultsEqual(unset(question_definitions,eval(studentexpr,vars)),unset(question_definitions,eval(malrule[\"expr\"],vars)),settings[\"checkingType\"],settings[\"checkingAccuracy\"]),\n message,\n false\n ),\n vars,\n vset\n )))