// Numbas version: exam_results_page_options {"name": "Q9 - Coordinate Geometry, Line and Parabola", "extensions": ["jsxgraph"], "custom_part_types": [], "resources": [], "navigation": {"allowregen": true, "showfrontpage": false, "preventleave": false}, "question_groups": [{"pickingStrategy": "all-ordered", "questions": [{"functions": {}, "ungrouped_variables": ["a", "c", "values", "v1", "m", "yc", "xval"], "name": "Q9 - Coordinate Geometry, Line and Parabola", "tags": ["graph", "interactive", "Jsxgraph", "jsxgraph", "plot", "quadratic"], "advice": "

This is the graph you should have obtained.

\n
", "rulesets": {"std": ["all", "fractionNumbers"]}, "parts": [{"prompt": "

What is the slope and the y-axis intercept of the line \$\\simplify{y={m}x+{yc}}\$ ?

\n

Slope =  [[0]]          y-intercept =  [[1]]

\n

What will the \$y\$-coordinate of the point on the line whose \$x\$-coordinate is \$\\var{xval}\$?

\n

( \$\\var{xval}\$ , [[2]] )

\n

\n

", "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "gaps": [{"allowFractions": true, "variableReplacements": [], "maxValue": "m", "minValue": "m", "variableReplacementStrategy": "originalfirst", "correctAnswerFraction": false, "showCorrectAnswer": false, "scripts": {}, "marks": "0.5", "type": "numberentry", "showPrecisionHint": false}, {"allowFractions": true, "variableReplacements": [], "maxValue": "yc", "minValue": "yc", "variableReplacementStrategy": "originalfirst", "correctAnswerFraction": false, "showCorrectAnswer": false, "scripts": {}, "marks": "0.5", "type": "numberentry", "showPrecisionHint": false}, {"vsetrangepoints": 5, "expectedvariablenames": [], "checkingaccuracy": 0.001, "type": "jme", "showpreview": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "showCorrectAnswer": false, "scripts": {}, "answer": "{xval}*{m}+{yc}", "marks": 1, "checkvariablenames": false, "checkingtype": "absdiff", "vsetrange": [0, 1]}], "showCorrectAnswer": true, "scripts": {}, "marks": 0, "type": "gapfill"}, {"prompt": "

Fill in the table of values for \$y=\\simplify[std]{{a}x^2+{c}}\$:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\$x\$\$-3\$\$-2\$\$-1\$\$0\$\$1\$\$2\$\$3\$
\$y\$[[0]][[1]][[2]][[3]][[4]][[5]][[6]]
\n

Slide the points to the correct \$y\$ values.

\n

You are given the quadratic formula

\n

\$y=\\simplify[std]{{a}x^2+{c}}\$

", "variable_groups": [], "variablesTest": {"maxRuns": 100, "condition": ""}, "preamble": {"css": "table#values th {\n background: none;\n text-align: center;\n}", "js": "\nfunction dragpoint_board() {\n\n var scope = question.scope; \n var a = scope.variables.a.value;\n\n var c = scope.variables.c.value;\n var maxy = Math.max(Math.abs(a*9+c),Math.abs(c));\n \n var div = Numbas.extensions.jsxgraph.makeBoard('250px','400px',{boundingBox:[-5,maxy+3,5,-maxy-3],grid:true});\n question.display.html.find('#dragpoint').append(div);\n \n var board = div.board;\n \n //shorthand to evaluate a mathematical expression to a number\n function evaluate(expression) {\n try {\n var val = Numbas.jme.evaluate(expression,question.scope);\n return Numbas.jme.unwrapValue(val);\n }\n catch(e) {\n // if there's an error, return no number\n return NaN;\n }\n }\n \n // set up points array\n var num_points = 7;\n var points = [];\n \n \n // this function sets up the i^th point\n function make_point(i) {\n \n // calculate initial coordinates\n var x = i-(num_points-1)/2;\n \n // create an invisible vertical line for the point to slide along\n var line = board.create('line',[[x,0],[x,1]],{visible: false});\n \n // create the point\n var point = points[i] = board.create(\n 'glider',\n [i-(num_points-1)/2,0,line],\n {\n name:'',\n size:2,\n snapSizeY: 0.1, // the point will snap to y-coordinates which are multiples of 0.1\n snapToGrid: true\n }\n );\n \n // the contents of the input box for this point\n var studentAnswer = question.parts[2].gaps[i].display.studentAnswer;\n \n //Here I have commented out the functions which connect the student input to the graph and the filling in of the answer fields\n //when the student drags the points on the graph.\n \n // watch the student's input and reposition the point when it changes. \n // ko.computed(function() {\n // y = evaluate(studentAnswer());\n //if(!(isNaN(y)) && board.mode!=board.BOARD_MODE_DRAG) {\n // point.moveTo([x,y],100);\n // }\n // });\n \n // when the student drags the point, update the gapfill input\n point.on('drag',function(){\n var y = Numbas.math.niceNumber(point.Y());\n studentAnswer(y);\n });\n \n }\n \n // create each point\n for(var i=0;iAdapted from a question written in Dutch by Carolijn Tacken.

\n

Disconnected the graph from the answer fields.

", "description": "

Compute a table of values for a quadratic function. The student input is now disconnected from the graph so that they slide the points on the graph after they input the values and the answer fields are not updated. Now includes a graph in advice.

", "licence": "Creative Commons Attribution 4.0 International"}, "type": "question", "showQuestionGroupNames": false, "question_groups": [{"name": "", "pickingStrategy": "all-ordered", "pickQuestions": 0, "questions": []}], "contributors": [{"name": "David Rickard", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/451/"}]}]}], "contributors": [{"name": "David Rickard", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/451/"}]}