// Numbas version: finer_feedback_settings {"name": "41. Standard Sections", "metadata": {"description": "
Homework set. Calculate Moment of Inertia for I beams, channels, angles, etc.
", "licence": "Creative Commons Attribution-ShareAlike 4.0 International"}, "duration": 0, "percentPass": 0, "showQuestionGroupNames": false, "shuffleQuestionGroups": false, "showstudentname": true, "question_groups": [{"name": "Group", "pickingStrategy": "all-ordered", "pickQuestions": 1, "questionNames": ["", "", ""], "variable_overrides": [[], [], []], "questions": [{"name": "Moment of inertia: 2 channels and 2 plates", "extensions": ["geogebra", "polynomials", "quantities"], "custom_part_types": [{"source": {"pk": 19, "author": {"name": "William Haynes", "pk": 2530}, "edit_page": "/part_type/19/edit"}, "name": "Engineering Accuracy with units", "short_name": "engineering-answer", "description": "A value with units marked right if within an adjustable % error of the correct value. Marked close if within a wider margin of error.
", "help_url": "", "input_widget": "string", "input_options": {"correctAnswer": "siground(settings['correctAnswer'],4)", "hint": {"static": true, "value": ""}, "allowEmpty": {"static": true, "value": true}}, "can_be_gap": true, "can_be_step": true, "marking_script": "mark:\nswitch( \n right and good_units and right_sign, add_credit(1.0,'Correct.'),\n right and good_units and not right_sign, add_credit(settings['C2'],'Wrong sign.'),\n right and right_sign and not good_units, add_credit(settings['C2'],'Correct value, but wrong or missing units.'),\n close and good_units, add_credit(settings['C1'],'Close.'),\n close and not good_units, add_credit(settings['C3'],'Answer is close, but wrong or missing units.'),\n incorrect('Wrong answer.')\n)\n\n\ninterpreted_answer:\nqty(student_scalar, student_units)\n\n\n\ncorrect_quantity:\nsettings[\"correctAnswer\"]\n\n\n\ncorrect_units:\nunits(correct_quantity)\n\n\nallowed_notation_styles:\n[\"plain\",\"en\"]\n\nmatch_student_number:\nmatchnumber(studentAnswer,allowed_notation_styles)\n\nstudent_scalar:\nmatch_student_number[1]\n\nstudent_units:\nreplace_regex('ohms','ohm',\n replace_regex('\u00b0', ' deg',\n replace_regex('-', ' ' ,\n studentAnswer[len(match_student_number[0])..len(studentAnswer)])),\"i\")\n\ngood_units:\ntry(\ncompatible(quantity(1, student_units),correct_units),\nmsg,\nfeedback(msg);false)\n\n\nstudent_quantity:\nswitch(not good_units, \n student_scalar * correct_units, \n not right_sign,\n -quantity(student_scalar, student_units),\n quantity(student_scalar,student_units)\n)\n \n\n\npercent_error:\ntry(\nscalar(abs((correct_quantity - student_quantity)/correct_quantity))*100 \n,msg,\nif(student_quantity=correct_quantity,0,100))\n \n\nright:\npercent_error <= settings['right']\n\n\nclose:\nright_sign and percent_error <= settings['close']\n\nright_sign:\nsign(student_scalar) = sign(correct_quantity)", "marking_notes": [{"name": "mark", "description": "This is the main marking note. It should award credit and provide feedback based on the student's answer.", "definition": "switch( \n right and good_units and right_sign, add_credit(1.0,'Correct.'),\n right and good_units and not right_sign, add_credit(settings['C2'],'Wrong sign.'),\n right and right_sign and not good_units, add_credit(settings['C2'],'Correct value, but wrong or missing units.'),\n close and good_units, add_credit(settings['C1'],'Close.'),\n close and not good_units, add_credit(settings['C3'],'Answer is close, but wrong or missing units.'),\n incorrect('Wrong answer.')\n)\n"}, {"name": "interpreted_answer", "description": "A value representing the student's answer to this part.", "definition": "qty(student_scalar, student_units)\n\n"}, {"name": "correct_quantity", "description": "", "definition": "settings[\"correctAnswer\"]\n\n"}, {"name": "correct_units", "description": "", "definition": "units(correct_quantity)\n"}, {"name": "allowed_notation_styles", "description": "", "definition": "[\"plain\",\"en\"]"}, {"name": "match_student_number", "description": "", "definition": "matchnumber(studentAnswer,allowed_notation_styles)"}, {"name": "student_scalar", "description": "", "definition": "match_student_number[1]"}, {"name": "student_units", "description": "Modify the unit portion of the student's answer by
\n1. replacing \"ohms\" with \"ohm\" case insensitive
\n2. replacing '-' with ' '
\n3. replacing '°' with ' deg'
\nto allow answers like 10 ft-lb and 30°
", "definition": "replace_regex('ohms','ohm',\n replace_regex('\u00b0', ' deg',\n replace_regex('-', ' ' ,\n studentAnswer[len(match_student_number[0])..len(studentAnswer)])),\"i\")"}, {"name": "good_units", "description": "", "definition": "try(\ncompatible(quantity(1, student_units),correct_units),\nmsg,\nfeedback(msg);false)\n"}, {"name": "student_quantity", "description": "This fixes the student answer for two common errors.
\nIf student_units are wrong - replace with correct units
\nIf student_scalar has the wrong sign - replace with right sign
\nIf student makes both errors, only one gets fixed.
", "definition": "switch(not good_units, \n student_scalar * correct_units, \n not right_sign,\n -quantity(student_scalar, student_units),\n quantity(student_scalar,student_units)\n)\n \n"}, {"name": "percent_error", "description": "", "definition": "try(\nscalar(abs((correct_quantity - student_quantity)/correct_quantity))*100 \n,msg,\nif(student_quantity=correct_quantity,0,100))\n "}, {"name": "right", "description": "", "definition": "percent_error <= settings['right']\n"}, {"name": "close", "description": "Only marked close if the student actually has the right sign.
", "definition": "right_sign and percent_error <= settings['close']"}, {"name": "right_sign", "description": "", "definition": "sign(student_scalar) = sign(correct_quantity) "}], "settings": [{"name": "correctAnswer", "label": "Correct Quantity.", "help_url": "", "hint": "The correct answer given as a JME quantity.", "input_type": "code", "default_value": "", "evaluate": true}, {"name": "right", "label": "% Accuracy for right.", "help_url": "", "hint": "Question will be considered correct if the scalar part of the student's answer is within this % of correct value.", "input_type": "code", "default_value": "0.2", "evaluate": true}, {"name": "close", "label": "% Accuracy for close.", "help_url": "", "hint": "Question will be considered close if the scalar part of the student's answer is within this % of correct value.", "input_type": "code", "default_value": "1.0", "evaluate": true}, {"name": "C1", "label": "Close with units.", "help_url": "", "hint": "Partial Credit for close value with appropriate units. if correct answer is 100 N and close is ±1%,Find moment of inertia and radius of gyration for a built-up beam made of two channels and two plates.
", "licence": "Creative Commons Attribution-NonCommercial 4.0 International"}, "statement": "A built-up beam is constructed by welding two channels separated by a distance $b = \\var{b}$ to two ({w} $\\times$ {h}) plates.
\n{geogebra_applet('rgft4vzy',[\"b\":ggb(b),'bf': ggb(bf),'w': ggb(w) ,'d': ggb(d),'t': ggb(t),'h': ggb(h)])} | \n\n \n \nChannel properties: \n$\\begin{align}\\var{desc}\\\\\\text{Area}&= \\var{A_C} \\\\D &= \\var{d} \\\\b_f &= \\var{bf}\\\\\\bar{x} &= \\var{xbar}\\\\\\bar{I}_{xx} &= \\var{Ibarx_C} \\\\\\bar{I}_{yy} &= \\var{Ibary_C}\\end{align}$ \n | \n
Determine moment of inertia with respect to the x-axis
\nFor the channel, since the x-axis passes through its centroid:
\n$(I_x)_C = \\bar{I}_{xx} = \\var{Ibarx_C} $
\nFor the plate, the x-axis does not pass through its centroid so the parallel axis theorem must be used.
\n$(I_x)_R = [\\bar{I} + A d^2] $ where,
\n$\\bar{I} = \\dfrac{b h^3}{12} = \\dfrac{(\\var{w})(\\var{h})^3}{12} = \\var{siground(Ibarx_R,4)}$
\n$A = b h = (\\var{w})\\,(\\var{h}) = \\var{A_r}$
\n$d = D/2 + h/2 = \\dfrac{\\var{d}+ \\var{h}}{2} = \\var{d_y} $
\n$(I_x)_R = \\var{disp(Ix_R)}$
\nFor the composite shape,
\n$A = 2 [A_C + A_R] = \\var{disp(A_T)}$
\n$I_x = 2 [ (I_x)_C + (I_x)_R ] = \\var{disp(Ix)}$, and $k_x = \\sqrt{\\dfrac{I_x}{A}} = \\var{disp(kx)}$
\n\nDetermine moment of inertia with respect to the y-axis
\nFor the rectangle, since the y-axis passes through its centroid:
\n$(I_y)_R = \\dfrac{h b^3}{12} = \\dfrac{(\\var{h}) (\\var{w})^3}{12} = \\var{disp(Ibary_r)}$
\nFor the channel, the y-axis does not pass through its centroid so the parallel axis theorem must be used.
\n$(I_y)_C = [\\bar{I} + A d^2] $ where,
\n$\\bar{I} = \\bar{I}_{yy} = \\var{Ibary_C}$
\n$A = A_C = \\var{A_C}$
\n$d = b/2 + \\bar{x} = \\dfrac{\\var{b}}{2} + \\var{xbar}= \\var{d_x} $
\n$(I_y)_C = \\var{disp(Iy_C)}$
\nFor the composite shape,
\n$A = 2 [A_C + A_R] = \\var{disp(A_T)}$
\n$I_y = 2 [ (I_y)_C + (I_y)_R ] = \\var{disp(Iy)}$, and $k_y = \\sqrt{\\dfrac{I_y}{A}} = \\var{disp(ky)}$
\n\n", "rulesets": {}, "variables": {"xbar": {"name": "xbar", "group": "Channel Properties", "definition": "qty(C_data['x'][unit], if(unit=0,'in','mm'))", "description": "
horizontal distance to centroid from flange
", "templateType": "anything"}, "A_t": {"name": "A_t", "group": "Solution", "definition": "2(A_r+A_C)", "description": "", "templateType": "anything"}, "Ibarx_c": {"name": "Ibarx_c", "group": "Channel Properties", "definition": "C_data['Ix'][unit] * if(unit=0,qty('in^4'),qty(10^6,'mm^4'))", "description": "", "templateType": "anything"}, "ky": {"name": "ky", "group": "Solution", "definition": "sqrt(scalar(Iy/A_t)) units", "description": "", "templateType": "anything"}, "d_y": {"name": "d_y", "group": "Solution", "definition": "d/2 + h/2", "description": "", "templateType": "anything"}, "index": {"name": "index", "group": "Ungrouped variables", "definition": "random(0..length(data)-1)", "description": "random channel index
", "templateType": "anything"}, "A_r": {"name": "A_r", "group": "Solution", "definition": "w h", "description": "", "templateType": "anything"}, "C_data": {"name": "C_data", "group": "Channel Properties", "definition": "data[index]", "description": "hash of data for selected channel
", "templateType": "anything"}, "kx": {"name": "kx", "group": "Solution", "definition": "sqrt(scalar(Ix/A_t)) units", "description": "", "templateType": "anything"}, "A_C": {"name": "A_C", "group": "Channel Properties", "definition": "qty(C_data['A'][unit], if(unit=0,'in^2','mm^2'))", "description": "area of channel
", "templateType": "anything"}, "unit": {"name": "unit", "group": "Ungrouped variables", "definition": "random(0,1)", "description": "0 = inches, 1 = mm
", "templateType": "anything"}, "Iy_C": {"name": "Iy_C", "group": "Solution", "definition": "Ibary_C + A_c d_x d_x", "description": "", "templateType": "anything"}, "Ix": {"name": "Ix", "group": "Solution", "definition": "2 (Ibarx_c + Ix_r)", "description": "", "templateType": "anything"}, "bf": {"name": "bf", "group": "Channel Properties", "definition": "qty(C_data['bf'][unit], if(unit=0,'in','mm'))", "description": "flange width
", "templateType": "anything"}, "Iy": {"name": "Iy", "group": "Solution", "definition": "2 (Iy_C + Ibary_R)", "description": "", "templateType": "anything"}, "w": {"name": "w", "group": "Ungrouped variables", "definition": "round ((b/2 + bf + t ) 2 , if(unit=0,'1 in', '10 mm'))", "description": "width of plate a little longer than necessary
", "templateType": "anything"}, "t": {"name": "t", "group": "Channel Properties", "definition": "qty(C_data['tf'][unit], if(unit=0,'in','mm'))", "description": "", "templateType": "anything"}, "d_x": {"name": "d_x", "group": "Solution", "definition": "b/2 + xbar", "description": "", "templateType": "anything"}, "d": {"name": "d", "group": "Channel Properties", "definition": "qty(C_data['d'][unit], if(unit=0,'in','mm'))", "description": "depth of channel
", "templateType": "anything"}, "Ibary_c": {"name": "Ibary_c", "group": "Channel Properties", "definition": "C_data['Iy'][unit] * if(unit=0,qty('in^4'),qty(10^6,'mm^4'))", "description": "centroidal momentof inertia
", "templateType": "anything"}, "Desc": {"name": "Desc", "group": "Channel Properties", "definition": "C_data['DESC'][unit] ", "description": "designation
", "templateType": "anything"}, "Ix_R": {"name": "Ix_R", "group": "Solution", "definition": "Ibarx_r + A_r d_y d_y", "description": "", "templateType": "anything"}, "h": {"name": "h", "group": "Ungrouped variables", "definition": "round(random(1..3#0.1)t,if(unit=0,'0.125 in', '5 mm'))", "description": "width of plate
", "templateType": "anything"}, "Ibarx_r": {"name": "Ibarx_r", "group": "Solution", "definition": "w h h h /12", "description": "", "templateType": "anything"}, "units": {"name": "units", "group": "Channel Properties", "definition": "qty(if(unit=0,'in','mm'))", "description": "", "templateType": "anything"}, "Ibary_R": {"name": "Ibary_R", "group": "Solution", "definition": "h w w w /12", "description": "", "templateType": "anything"}, "data": {"name": "data", "group": "Channel Properties", "definition": "json_decode(safe(\"[\\n {\\n \\\"DESC\\\": [\\n \\\"C15$\\\\\\\\times$50\\\",\\n \\\"C380$\\\\\\\\times$74\\\"\\n ],\\n \\\"W\\\": [\\n 50,\\n 74\\n ],\\n \\\"A\\\": [\\n 14.7,\\n 9480\\n ],\\n \\\"d\\\": [\\n 15,\\n 381\\n ],\\n \\\"bf\\\": [\\n 3.72,\\n 94.5\\n ],\\n \\\"tw\\\": [\\n 0.716,\\n 18.2\\n ],\\n \\\"tf\\\": [\\n 0.65,\\n 16.5\\n ],\\n \\\"x\\\": [\\n 0.799,\\n 20.3\\n ],\\n \\\"Ix\\\": [\\n 404,\\n 168\\n ],\\n \\\"Iy\\\": [\\n 11,\\n 4.58\\n ]\\n },\\n {\\n \\\"DESC\\\": [\\n \\\"C15$\\\\\\\\times$40\\\",\\n \\\"C380$\\\\\\\\times$60\\\"\\n ],\\n \\\"W\\\": [\\n 40,\\n 60\\n ],\\n \\\"A\\\": [\\n 11.8,\\n 7610\\n ],\\n \\\"d\\\": [\\n 15,\\n 381\\n ],\\n \\\"bf\\\": [\\n 3.52,\\n 89.4\\n ],\\n \\\"tw\\\": [\\n 0.52,\\n 13.2\\n ],\\n \\\"tf\\\": [\\n 0.65,\\n 16.5\\n ],\\n \\\"x\\\": [\\n 0.778,\\n 19.8\\n ],\\n \\\"Ix\\\": [\\n 348,\\n 145\\n ],\\n \\\"Iy\\\": [\\n 9.17,\\n 3.82\\n ]\\n },\\n {\\n \\\"DESC\\\": [\\n \\\"C15$\\\\\\\\times$33.9\\\",\\n \\\"C380$\\\\\\\\times$50.4\\\"\\n ],\\n \\\"W\\\": [\\n 33.9,\\n 50.4\\n ],\\n \\\"A\\\": [\\n 10,\\n 6450\\n ],\\n \\\"d\\\": [\\n 15,\\n 381\\n ],\\n \\\"bf\\\": [\\n 3.4,\\n 86.4\\n ],\\n \\\"tw\\\": [\\n 0.4,\\n 10.2\\n ],\\n \\\"tf\\\": [\\n 0.65,\\n 16.5\\n ],\\n \\\"x\\\": [\\n 0.788,\\n 20\\n ],\\n \\\"Ix\\\": [\\n 315,\\n 131\\n ],\\n \\\"Iy\\\": [\\n 8.07,\\n 3.36\\n ]\\n },\\n {\\n \\\"DESC\\\": [\\n \\\"C12$\\\\\\\\times$30\\\",\\n \\\"C310$\\\\\\\\times$45\\\"\\n ],\\n \\\"W\\\": [\\n 30,\\n 45\\n ],\\n \\\"A\\\": [\\n 8.81,\\n 5680\\n ],\\n \\\"d\\\": [\\n 12,\\n 305\\n ],\\n \\\"bf\\\": [\\n 3.17,\\n 80.5\\n ],\\n \\\"tw\\\": [\\n 0.51,\\n 13\\n ],\\n \\\"tf\\\": [\\n 0.501,\\n 12.7\\n ],\\n \\\"x\\\": [\\n 0.674,\\n 17.1\\n ],\\n \\\"Ix\\\": [\\n 162,\\n 67.4\\n ],\\n \\\"Iy\\\": [\\n 5.12,\\n 2.13\\n ]\\n },\\n {\\n \\\"DESC\\\": [\\n \\\"C12$\\\\\\\\times$25\\\",\\n \\\"C310$\\\\\\\\times$37\\\"\\n ],\\n \\\"W\\\": [\\n 25,\\n 37\\n ],\\n \\\"A\\\": [\\n 7.34,\\n 4740\\n ],\\n \\\"d\\\": [\\n 12,\\n 305\\n ],\\n \\\"bf\\\": [\\n 3.05,\\n 77.5\\n ],\\n \\\"tw\\\": [\\n 0.387,\\n 9.83\\n ],\\n \\\"tf\\\": [\\n 0.501,\\n 12.7\\n ],\\n \\\"x\\\": [\\n 0.674,\\n 17.1\\n ],\\n \\\"Ix\\\": [\\n 144,\\n 59.9\\n ],\\n \\\"Iy\\\": [\\n 4.45,\\n 1.85\\n ]\\n },\\n {\\n \\\"DESC\\\": [\\n \\\"C12$\\\\\\\\times$20.7\\\",\\n \\\"C310$\\\\\\\\times$30.8\\\"\\n ],\\n \\\"W\\\": [\\n 20.7,\\n 30.8\\n ],\\n \\\"A\\\": [\\n 6.08,\\n 3920\\n ],\\n \\\"d\\\": [\\n 12,\\n 305\\n ],\\n \\\"bf\\\": [\\n 2.94,\\n 74.7\\n ],\\n \\\"tw\\\": [\\n 0.282,\\n 7.16\\n ],\\n \\\"tf\\\": [\\n 0.501,\\n 12.7\\n ],\\n \\\"x\\\": [\\n 0.698,\\n 17.7\\n ],\\n \\\"Ix\\\": [\\n 129,\\n 53.7\\n ],\\n \\\"Iy\\\": [\\n 3.86,\\n 1.61\\n ]\\n },\\n {\\n \\\"DESC\\\": [\\n \\\"C10$\\\\\\\\times$30\\\",\\n \\\"C250$\\\\\\\\times$45\\\"\\n ],\\n \\\"W\\\": [\\n 30,\\n 45\\n ],\\n \\\"A\\\": [\\n 8.81,\\n 5680\\n ],\\n \\\"d\\\": [\\n 10,\\n 254\\n ],\\n \\\"bf\\\": [\\n 3.03,\\n 77\\n ],\\n \\\"tw\\\": [\\n 0.673,\\n 17.1\\n ],\\n \\\"tf\\\": [\\n 0.436,\\n 11.1\\n ],\\n \\\"x\\\": [\\n 0.649,\\n 16.5\\n ],\\n \\\"Ix\\\": [\\n 103,\\n 42.9\\n ],\\n \\\"Iy\\\": [\\n 3.93,\\n 1.64\\n ]\\n },\\n {\\n \\\"DESC\\\": [\\n \\\"C10$\\\\\\\\times$25\\\",\\n \\\"C250$\\\\\\\\times$37\\\"\\n ],\\n \\\"W\\\": [\\n 25,\\n 37\\n ],\\n \\\"A\\\": [\\n 7.35,\\n 4740\\n ],\\n \\\"d\\\": [\\n 10,\\n 254\\n ],\\n \\\"bf\\\": [\\n 2.89,\\n 73.4\\n ],\\n \\\"tw\\\": [\\n 0.526,\\n 13.4\\n ],\\n \\\"tf\\\": [\\n 0.436,\\n 11.1\\n ],\\n \\\"x\\\": [\\n 0.617,\\n 15.7\\n ],\\n \\\"Ix\\\": [\\n 91.1,\\n 37.9\\n ],\\n \\\"Iy\\\": [\\n 3.34,\\n 1.39\\n ]\\n },\\n {\\n \\\"DESC\\\": [\\n \\\"C10$\\\\\\\\times$20\\\",\\n \\\"C250$\\\\\\\\times$30\\\"\\n ],\\n \\\"W\\\": [\\n 20,\\n 30\\n ],\\n \\\"A\\\": [\\n 5.87,\\n 3790\\n ],\\n \\\"d\\\": [\\n 10,\\n 254\\n ],\\n \\\"bf\\\": [\\n 2.74,\\n 69.6\\n ],\\n \\\"tw\\\": [\\n 0.379,\\n 9.63\\n ],\\n \\\"tf\\\": [\\n 0.436,\\n 11.1\\n ],\\n \\\"x\\\": [\\n 0.606,\\n 15.4\\n ],\\n \\\"Ix\\\": [\\n 78.9,\\n 32.8\\n ],\\n \\\"Iy\\\": [\\n 2.8,\\n 1.17\\n ]\\n },\\n {\\n \\\"DESC\\\": [\\n \\\"C10$\\\\\\\\times$15.3\\\",\\n \\\"C250$\\\\\\\\times$22.8\\\"\\n ],\\n \\\"W\\\": [\\n 15.3,\\n 22.8\\n ],\\n \\\"A\\\": [\\n 4.48,\\n 2890\\n ],\\n \\\"d\\\": [\\n 10,\\n 254\\n ],\\n \\\"bf\\\": [\\n 2.6,\\n 66\\n ],\\n \\\"tw\\\": [\\n 0.24,\\n 6.1\\n ],\\n \\\"tf\\\": [\\n 0.436,\\n 11.1\\n ],\\n \\\"x\\\": [\\n 0.634,\\n 16.1\\n ],\\n \\\"Ix\\\": [\\n 67.3,\\n 28\\n ],\\n \\\"Iy\\\": [\\n 2.27,\\n 0.945\\n ]\\n },\\n {\\n \\\"DESC\\\": [\\n \\\"C9$\\\\\\\\times$20\\\",\\n \\\"C230$\\\\\\\\times$30\\\"\\n ],\\n \\\"W\\\": [\\n 20,\\n 30\\n ],\\n \\\"A\\\": [\\n 5.87,\\n 3790\\n ],\\n \\\"d\\\": [\\n 9,\\n 229\\n ],\\n \\\"bf\\\": [\\n 2.65,\\n 67.3\\n ],\\n \\\"tw\\\": [\\n 0.448,\\n 11.4\\n ],\\n \\\"tf\\\": [\\n 0.413,\\n 10.5\\n ],\\n \\\"x\\\": [\\n 0.583,\\n 14.8\\n ],\\n \\\"Ix\\\": [\\n 60.9,\\n 25.3\\n ],\\n \\\"Iy\\\": [\\n 2.41,\\n 1\\n ]\\n },\\n {\\n \\\"DESC\\\": [\\n \\\"C9$\\\\\\\\times$15\\\",\\n \\\"C230$\\\\\\\\times$22\\\"\\n ],\\n \\\"W\\\": [\\n 15,\\n 22\\n ],\\n \\\"A\\\": [\\n 4.4,\\n 2840\\n ],\\n \\\"d\\\": [\\n 9,\\n 229\\n ],\\n \\\"bf\\\": [\\n 2.49,\\n 63.2\\n ],\\n \\\"tw\\\": [\\n 0.285,\\n 7.24\\n ],\\n \\\"tf\\\": [\\n 0.413,\\n 10.5\\n ],\\n \\\"x\\\": [\\n 0.586,\\n 14.9\\n ],\\n \\\"Ix\\\": [\\n 51,\\n 21.2\\n ],\\n \\\"Iy\\\": [\\n 1.91,\\n 0.795\\n ]\\n },\\n {\\n \\\"DESC\\\": [\\n \\\"C9$\\\\\\\\times$13.4\\\",\\n \\\"C230$\\\\\\\\times$19.9\\\"\\n ],\\n \\\"W\\\": [\\n 13.4,\\n 19.9\\n ],\\n \\\"A\\\": [\\n 3.94,\\n 2540\\n ],\\n \\\"d\\\": [\\n 9,\\n 229\\n ],\\n \\\"bf\\\": [\\n 2.43,\\n 61.7\\n ],\\n \\\"tw\\\": [\\n 0.233,\\n 5.92\\n ],\\n \\\"tf\\\": [\\n 0.413,\\n 10.5\\n ],\\n \\\"x\\\": [\\n 0.601,\\n 15.3\\n ],\\n \\\"Ix\\\": [\\n 47.8,\\n 19.9\\n ],\\n \\\"Iy\\\": [\\n 1.75,\\n 0.728\\n ]\\n },\\n {\\n \\\"DESC\\\": [\\n \\\"C8$\\\\\\\\times$18.75\\\",\\n \\\"C200$\\\\\\\\times$27.9\\\"\\n ],\\n \\\"W\\\": [\\n 18.75,\\n 27.9\\n ],\\n \\\"A\\\": [\\n 5.51,\\n 3550\\n ],\\n \\\"d\\\": [\\n 8,\\n 203\\n ],\\n \\\"bf\\\": [\\n 2.53,\\n 64.3\\n ],\\n \\\"tw\\\": [\\n 0.487,\\n 12.4\\n ],\\n \\\"tf\\\": [\\n 0.39,\\n 9.91\\n ],\\n \\\"x\\\": [\\n 0.565,\\n 14.4\\n ],\\n \\\"Ix\\\": [\\n 43.9,\\n 18.3\\n ],\\n \\\"Iy\\\": [\\n 1.97,\\n 0.82\\n ]\\n },\\n {\\n \\\"DESC\\\": [\\n \\\"C8$\\\\\\\\times$13.75\\\",\\n \\\"C200$\\\\\\\\times$20.5\\\"\\n ],\\n \\\"W\\\": [\\n 13.75,\\n 20.5\\n ],\\n \\\"A\\\": [\\n 4.03,\\n 2600\\n ],\\n \\\"d\\\": [\\n 8,\\n 203\\n ],\\n \\\"bf\\\": [\\n 2.34,\\n 59.4\\n ],\\n \\\"tw\\\": [\\n 0.303,\\n 7.7\\n ],\\n \\\"tf\\\": [\\n 0.39,\\n 9.91\\n ],\\n \\\"x\\\": [\\n 0.554,\\n 14.1\\n ],\\n \\\"Ix\\\": [\\n 36.1,\\n 15\\n ],\\n \\\"Iy\\\": [\\n 1.52,\\n 0.633\\n ]\\n },\\n {\\n \\\"DESC\\\": [\\n \\\"C8$\\\\\\\\times$11.5\\\",\\n \\\"C200$\\\\\\\\times$17.1\\\"\\n ],\\n \\\"W\\\": [\\n 11.5,\\n 17.1\\n ],\\n \\\"A\\\": [\\n 3.37,\\n 2170\\n ],\\n \\\"d\\\": [\\n 8,\\n 203\\n ],\\n \\\"bf\\\": [\\n 2.26,\\n 57.4\\n ],\\n \\\"tw\\\": [\\n 0.22,\\n 5.59\\n ],\\n \\\"tf\\\": [\\n 0.39,\\n 9.91\\n ],\\n \\\"x\\\": [\\n 0.572,\\n 14.5\\n ],\\n \\\"Ix\\\": [\\n 32.5,\\n 13.5\\n ],\\n \\\"Iy\\\": [\\n 1.31,\\n 0.545\\n ]\\n },\\n {\\n \\\"DESC\\\": [\\n \\\"C7$\\\\\\\\times$14.75\\\",\\n \\\"C180$\\\\\\\\times$22\\\"\\n ],\\n \\\"W\\\": [\\n 14.75,\\n 22\\n ],\\n \\\"A\\\": [\\n 4.33,\\n 2790\\n ],\\n \\\"d\\\": [\\n 7,\\n 178\\n ],\\n \\\"bf\\\": [\\n 2.3,\\n 58.4\\n ],\\n \\\"tw\\\": [\\n 0.419,\\n 10.6\\n ],\\n \\\"tf\\\": [\\n 0.366,\\n 9.3\\n ],\\n \\\"x\\\": [\\n 0.532,\\n 13.5\\n ],\\n \\\"Ix\\\": [\\n 27.2,\\n 11.3\\n ],\\n \\\"Iy\\\": [\\n 1.37,\\n 0.57\\n ]\\n },\\n {\\n \\\"DESC\\\": [\\n \\\"C7$\\\\\\\\times$12.25\\\",\\n \\\"C180$\\\\\\\\times$18.2\\\"\\n ],\\n \\\"W\\\": [\\n 12.25,\\n 18.2\\n ],\\n \\\"A\\\": [\\n 3.59,\\n 2320\\n ],\\n \\\"d\\\": [\\n 7,\\n 178\\n ],\\n \\\"bf\\\": [\\n 2.19,\\n 55.6\\n ],\\n \\\"tw\\\": [\\n 0.314,\\n 7.98\\n ],\\n \\\"tf\\\": [\\n 0.366,\\n 9.3\\n ],\\n \\\"x\\\": [\\n 0.525,\\n 13.3\\n ],\\n \\\"Ix\\\": [\\n 24.2,\\n 10.1\\n ],\\n \\\"Iy\\\": [\\n 1.16,\\n 0.483\\n ]\\n },\\n {\\n \\\"DESC\\\": [\\n \\\"C7$\\\\\\\\times$9.8\\\",\\n \\\"C180$\\\\\\\\times$14.6\\\"\\n ],\\n \\\"W\\\": [\\n 9.8,\\n 14.6\\n ],\\n \\\"A\\\": [\\n 2.87,\\n 1850\\n ],\\n \\\"d\\\": [\\n 7,\\n 178\\n ],\\n \\\"bf\\\": [\\n 2.09,\\n 53.1\\n ],\\n \\\"tw\\\": [\\n 0.21,\\n 5.33\\n ],\\n \\\"tf\\\": [\\n 0.366,\\n 9.3\\n ],\\n \\\"x\\\": [\\n 0.541,\\n 13.7\\n ],\\n \\\"Ix\\\": [\\n 21.2,\\n 8.82\\n ],\\n \\\"Iy\\\": [\\n 0.957,\\n 0.398\\n ]\\n },\\n {\\n \\\"DESC\\\": [\\n \\\"C6$\\\\\\\\times$13\\\",\\n \\\"C150$\\\\\\\\times$19.3\\\"\\n ],\\n \\\"W\\\": [\\n 13,\\n 19.3\\n ],\\n \\\"A\\\": [\\n 3.82,\\n 2460\\n ],\\n \\\"d\\\": [\\n 6,\\n 152\\n ],\\n \\\"bf\\\": [\\n 2.16,\\n 54.9\\n ],\\n \\\"tw\\\": [\\n 0.437,\\n 11.1\\n ],\\n \\\"tf\\\": [\\n 0.343,\\n 8.71\\n ],\\n \\\"x\\\": [\\n 0.514,\\n 13.1\\n ],\\n \\\"Ix\\\": [\\n 17.3,\\n 7.2\\n ],\\n \\\"Iy\\\": [\\n 1.05,\\n 0.437\\n ]\\n },\\n {\\n \\\"DESC\\\": [\\n \\\"C6$\\\\\\\\times$10.5\\\",\\n \\\"C150$\\\\\\\\times$15.6\\\"\\n ],\\n \\\"W\\\": [\\n 10.5,\\n 15.6\\n ],\\n \\\"A\\\": [\\n 3.07,\\n 1980\\n ],\\n \\\"d\\\": [\\n 6,\\n 152\\n ],\\n \\\"bf\\\": [\\n 2.03,\\n 51.6\\n ],\\n \\\"tw\\\": [\\n 0.314,\\n 7.98\\n ],\\n \\\"tf\\\": [\\n 0.343,\\n 8.71\\n ],\\n \\\"x\\\": [\\n 0.5,\\n 12.7\\n ],\\n \\\"Ix\\\": [\\n 15.1,\\n 6.29\\n ],\\n \\\"Iy\\\": [\\n 0.86,\\n 0.358\\n ]\\n },\\n {\\n \\\"DESC\\\": [\\n \\\"C6$\\\\\\\\times$8.2\\\",\\n \\\"C150$\\\\\\\\times$12.2\\\"\\n ],\\n \\\"W\\\": [\\n 8.2,\\n 12.2\\n ],\\n \\\"A\\\": [\\n 2.39,\\n 1540\\n ],\\n \\\"d\\\": [\\n 6,\\n 152\\n ],\\n \\\"bf\\\": [\\n 1.92,\\n 48.8\\n ],\\n \\\"tw\\\": [\\n 0.2,\\n 5.08\\n ],\\n \\\"tf\\\": [\\n 0.343,\\n 8.71\\n ],\\n \\\"x\\\": [\\n 0.512,\\n 13\\n ],\\n \\\"Ix\\\": [\\n 13.1,\\n 5.45\\n ],\\n \\\"Iy\\\": [\\n 0.687,\\n 0.286\\n ]\\n },\\n {\\n \\\"DESC\\\": [\\n \\\"C5$\\\\\\\\times$9\\\",\\n \\\"C130$\\\\\\\\times$13\\\"\\n ],\\n \\\"W\\\": [\\n 9,\\n 13\\n ],\\n \\\"A\\\": [\\n 2.64,\\n 1700\\n ],\\n \\\"d\\\": [\\n 5,\\n 127\\n ],\\n \\\"bf\\\": [\\n 1.89,\\n 48\\n ],\\n \\\"tw\\\": [\\n 0.325,\\n 8.26\\n ],\\n \\\"tf\\\": [\\n 0.32,\\n 8.13\\n ],\\n \\\"x\\\": [\\n 0.478,\\n 12.1\\n ],\\n \\\"Ix\\\": [\\n 8.89,\\n 3.7\\n ],\\n \\\"Iy\\\": [\\n 0.624,\\n 0.26\\n ]\\n },\\n {\\n \\\"DESC\\\": [\\n \\\"C5$\\\\\\\\times$6.7\\\",\\n \\\"C130$\\\\\\\\times$10.4\\\"\\n ],\\n \\\"W\\\": [\\n 6.7,\\n 10.4\\n ],\\n \\\"A\\\": [\\n 1.97,\\n 1270\\n ],\\n \\\"d\\\": [\\n 5,\\n 127\\n ],\\n \\\"bf\\\": [\\n 1.75,\\n 44.5\\n ],\\n \\\"tw\\\": [\\n 0.19,\\n 4.83\\n ],\\n \\\"tf\\\": [\\n 0.32,\\n 8.13\\n ],\\n \\\"x\\\": [\\n 0.484,\\n 12.3\\n ],\\n \\\"Ix\\\": [\\n 7.48,\\n 3.11\\n ],\\n \\\"Iy\\\": [\\n 0.47,\\n 0.196\\n ]\\n },\\n {\\n \\\"DESC\\\": [\\n \\\"C4$\\\\\\\\times$7.25\\\",\\n \\\"C100$\\\\\\\\times$10.8\\\"\\n ],\\n \\\"W\\\": [\\n 7.25,\\n 10.8\\n ],\\n \\\"A\\\": [\\n 2.13,\\n 1370\\n ],\\n \\\"d\\\": [\\n 4,\\n 102\\n ],\\n \\\"bf\\\": [\\n 1.72,\\n 43.7\\n ],\\n \\\"tw\\\": [\\n 0.321,\\n 8.15\\n ],\\n \\\"tf\\\": [\\n 0.296,\\n 7.52\\n ],\\n \\\"x\\\": [\\n 0.459,\\n 11.7\\n ],\\n \\\"Ix\\\": [\\n 4.58,\\n 1.91\\n ],\\n \\\"Iy\\\": [\\n 0.425,\\n 0.177\\n ]\\n },\\n {\\n \\\"DESC\\\": [\\n \\\"C4$\\\\\\\\times$6.25\\\",\\n \\\"C100$\\\\\\\\times$9.3\\\"\\n ],\\n \\\"W\\\": [\\n 6.25,\\n 9.3\\n ],\\n \\\"A\\\": [\\n 1.84,\\n 1190\\n ],\\n \\\"d\\\": [\\n 4,\\n 102\\n ],\\n \\\"bf\\\": [\\n 1.65,\\n 41.9\\n ],\\n \\\"tw\\\": [\\n 0.247,\\n 6.27\\n ],\\n \\\"tf\\\": [\\n 0.296,\\n 7.52\\n ],\\n \\\"x\\\": [\\n 0.453,\\n 11.5\\n ],\\n \\\"Ix\\\": [\\n 4.19,\\n 1.74\\n ],\\n \\\"Iy\\\": [\\n 0.374,\\n 0.156\\n ]\\n },\\n {\\n \\\"DESC\\\": [\\n \\\"C4$\\\\\\\\times$5.4\\\",\\n \\\"C100$\\\\\\\\times$8\\\"\\n ],\\n \\\"W\\\": [\\n 5.4,\\n 8\\n ],\\n \\\"A\\\": [\\n 1.58,\\n 1020\\n ],\\n \\\"d\\\": [\\n 4,\\n 102\\n ],\\n \\\"bf\\\": [\\n 1.58,\\n 40.1\\n ],\\n \\\"tw\\\": [\\n 0.184,\\n 4.67\\n ],\\n \\\"tf\\\": [\\n 0.296,\\n 7.52\\n ],\\n \\\"x\\\": [\\n 0.457,\\n 11.6\\n ],\\n \\\"Ix\\\": [\\n 3.85,\\n 1.6\\n ],\\n \\\"Iy\\\": [\\n 0.312,\\n 0.13\\n ]\\n },\\n {\\n \\\"DESC\\\": [\\n \\\"C4$\\\\\\\\times$4.5\\\",\\n \\\"C100$\\\\\\\\times$6.7\\\"\\n ],\\n \\\"W\\\": [\\n 4.5,\\n 6.7\\n ],\\n \\\"A\\\": [\\n 1.34,\\n 865\\n ],\\n \\\"d\\\": [\\n 4,\\n 102\\n ],\\n \\\"bf\\\": [\\n 1.52,\\n 38.6\\n ],\\n \\\"tw\\\": [\\n 0.125,\\n 3.18\\n ],\\n \\\"tf\\\": [\\n 0.296,\\n 7.52\\n ],\\n \\\"x\\\": [\\n 0.473,\\n 12\\n ],\\n \\\"Ix\\\": [\\n 3.53,\\n 1.47\\n ],\\n \\\"Iy\\\": [\\n 0.265,\\n 0.11\\n ]\\n },\\n {\\n \\\"DESC\\\": [\\n \\\"C3$\\\\\\\\times$6\\\",\\n \\\"C75$\\\\\\\\times$8.9\\\"\\n ],\\n \\\"W\\\": [\\n 6,\\n 8.9\\n ],\\n \\\"A\\\": [\\n 1.76,\\n 1140\\n ],\\n \\\"d\\\": [\\n 3,\\n 76.2\\n ],\\n \\\"bf\\\": [\\n 1.6,\\n 40.6\\n ],\\n \\\"tw\\\": [\\n 0.356,\\n 9.04\\n ],\\n \\\"tf\\\": [\\n 0.273,\\n 6.93\\n ],\\n \\\"x\\\": [\\n 0.455,\\n 11.6\\n ],\\n \\\"Ix\\\": [\\n 2.07,\\n 0.862\\n ],\\n \\\"Iy\\\": [\\n 0.3,\\n 0.125\\n ]\\n },\\n {\\n \\\"DESC\\\": [\\n \\\"C3$\\\\\\\\times$5\\\",\\n \\\"C75$\\\\\\\\times$7.4\\\"\\n ],\\n \\\"W\\\": [\\n 5,\\n 7.4\\n ],\\n \\\"A\\\": [\\n 1.47,\\n 948\\n ],\\n \\\"d\\\": [\\n 3,\\n 76.2\\n ],\\n \\\"bf\\\": [\\n 1.5,\\n 38.1\\n ],\\n \\\"tw\\\": [\\n 0.258,\\n 6.55\\n ],\\n \\\"tf\\\": [\\n 0.273,\\n 6.93\\n ],\\n \\\"x\\\": [\\n 0.439,\\n 11.2\\n ],\\n \\\"Ix\\\": [\\n 1.85,\\n 0.77\\n ],\\n \\\"Iy\\\": [\\n 0.241,\\n 0.1\\n ]\\n },\\n {\\n \\\"DESC\\\": [\\n \\\"C3$\\\\\\\\times$4.1\\\",\\n \\\"C75$\\\\\\\\times$6.1\\\"\\n ],\\n \\\"W\\\": [\\n 4.1,\\n 6.1\\n ],\\n \\\"A\\\": [\\n 1.2,\\n 774\\n ],\\n \\\"d\\\": [\\n 3,\\n 76.2\\n ],\\n \\\"bf\\\": [\\n 1.41,\\n 35.8\\n ],\\n \\\"tw\\\": [\\n 0.17,\\n 4.32\\n ],\\n \\\"tf\\\": [\\n 0.273,\\n 6.93\\n ],\\n \\\"x\\\": [\\n 0.437,\\n 11.1\\n ],\\n \\\"Ix\\\": [\\n 1.65,\\n 0.687\\n ],\\n \\\"Iy\\\": [\\n 0.191,\\n 0.0795\\n ]\\n },\\n {\\n \\\"DESC\\\": [\\n \\\"C3$\\\\\\\\times$3.5\\\",\\n \\\"C75$\\\\\\\\times$5.2\\\"\\n ],\\n \\\"W\\\": [\\n 3.5,\\n 5.2\\n ],\\n \\\"A\\\": [\\n 1.09,\\n 703\\n ],\\n \\\"d\\\": [\\n 3,\\n 76.2\\n ],\\n \\\"bf\\\": [\\n 1.37,\\n 34.8\\n ],\\n \\\"tw\\\": [\\n 0.132,\\n 3.35\\n ],\\n \\\"tf\\\": [\\n 0.273,\\n 6.93\\n ],\\n \\\"x\\\": [\\n 0.443,\\n 11.3\\n ],\\n \\\"Ix\\\": [\\n 1.57,\\n 0.653\\n ],\\n \\\"Iy\\\": [\\n 0.169,\\n 0.0703\\n ]\\n }\\n]\"))", "description": "AISC data for channels
", "templateType": "json"}, "b": {"name": "b", "group": "Ungrouped variables", "definition": "round( random(0.4.. 1.2) d, if(unit=0,'0.25 in', '10 mm'))", "description": "distance between channels
", "templateType": "anything"}}, "variablesTest": {"condition": "", "maxRuns": 100}, "ungrouped_variables": ["unit", "index", "b", "w", "h"], "variable_groups": [{"name": "Channel Properties", "variables": ["data", "C_data", "Desc", "units", "Ibary_c", "Ibarx_c", "A_C", "xbar", "d", "bf", "t"]}, {"name": "Solution", "variables": ["Ibarx_r", "A_r", "d_y", "Ix_R", "Ix", "A_t", "kx", "Ibary_R", "d_x", "Iy_C", "Iy", "ky"]}], "functions": {"disp": {"parameters": [["q", "quantity"]], "type": "number", "language": "jme", "definition": "siground(q,4)"}, "ggb": {"parameters": [["q", "quantity"]], "type": "number", "language": "jme", "definition": "siground(scalar(q in 'in'),4)"}}, "preamble": {"js": "", "css": ""}, "parts": [{"type": "gapfill", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "Determine the moment of inertia and radii of gyration of the composite beam with respect to the $x$- and $y$-axes.
\n$I_x = $[[0]] $\\qquad k_x = $[[1]]
\n$I_y = $[[2]] $\\qquad k_y = $[[3]]
", "gaps": [{"type": "engineering-answer", "useCustomName": true, "customName": "Ix", "marks": "5", "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "settings": {"correctAnswer": "Ix", "right": "0.2", "close": "1.0", "C1": "75", "C2": "50", "C3": "25"}}, {"type": "engineering-answer", "useCustomName": true, "customName": "kx", "marks": "5", "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "settings": {"correctAnswer": "kx", "right": "0.2", "close": "1.0", "C1": "75", "C2": "50", "C3": "25"}}, {"type": "engineering-answer", "useCustomName": true, "customName": "Iy", "marks": "5", "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "settings": {"correctAnswer": "Iy", "right": "0.2", "close": "1.0", "C1": "75", "C2": "50", "C3": "25"}}, {"type": "engineering-answer", "useCustomName": true, "customName": "ky", "marks": "5", "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "settings": {"correctAnswer": "ky", "right": "0.2", "close": "1.0", "C1": "75", "C2": "50", "C3": "25"}}], "sortAnswers": false}], "partsMode": "all", "maxMarks": 0, "objectives": [], "penalties": [], "objectiveVisibility": "always", "penaltyVisibility": "always", "type": "question"}, {"name": "Moment of inertia: 2 angles forming box beam", "extensions": ["geogebra", "quantities"], "custom_part_types": [{"source": {"pk": 19, "author": {"name": "William Haynes", "pk": 2530}, "edit_page": "/part_type/19/edit"}, "name": "Engineering Accuracy with units", "short_name": "engineering-answer", "description": "A value with units marked right if within an adjustable % error of the correct value. Marked close if within a wider margin of error.
", "help_url": "", "input_widget": "string", "input_options": {"correctAnswer": "siground(settings['correctAnswer'],4)", "hint": {"static": true, "value": ""}, "allowEmpty": {"static": true, "value": true}}, "can_be_gap": true, "can_be_step": true, "marking_script": "mark:\nswitch( \n right and good_units and right_sign, add_credit(1.0,'Correct.'),\n right and good_units and not right_sign, add_credit(settings['C2'],'Wrong sign.'),\n right and right_sign and not good_units, add_credit(settings['C2'],'Correct value, but wrong or missing units.'),\n close and good_units, add_credit(settings['C1'],'Close.'),\n close and not good_units, add_credit(settings['C3'],'Answer is close, but wrong or missing units.'),\n incorrect('Wrong answer.')\n)\n\n\ninterpreted_answer:\nqty(student_scalar, student_units)\n\n\n\ncorrect_quantity:\nsettings[\"correctAnswer\"]\n\n\n\ncorrect_units:\nunits(correct_quantity)\n\n\nallowed_notation_styles:\n[\"plain\",\"en\"]\n\nmatch_student_number:\nmatchnumber(studentAnswer,allowed_notation_styles)\n\nstudent_scalar:\nmatch_student_number[1]\n\nstudent_units:\nreplace_regex('ohms','ohm',\n replace_regex('\u00b0', ' deg',\n replace_regex('-', ' ' ,\n studentAnswer[len(match_student_number[0])..len(studentAnswer)])),\"i\")\n\ngood_units:\ntry(\ncompatible(quantity(1, student_units),correct_units),\nmsg,\nfeedback(msg);false)\n\n\nstudent_quantity:\nswitch(not good_units, \n student_scalar * correct_units, \n not right_sign,\n -quantity(student_scalar, student_units),\n quantity(student_scalar,student_units)\n)\n \n\n\npercent_error:\ntry(\nscalar(abs((correct_quantity - student_quantity)/correct_quantity))*100 \n,msg,\nif(student_quantity=correct_quantity,0,100))\n \n\nright:\npercent_error <= settings['right']\n\n\nclose:\nright_sign and percent_error <= settings['close']\n\nright_sign:\nsign(student_scalar) = sign(correct_quantity)", "marking_notes": [{"name": "mark", "description": "This is the main marking note. It should award credit and provide feedback based on the student's answer.", "definition": "switch( \n right and good_units and right_sign, add_credit(1.0,'Correct.'),\n right and good_units and not right_sign, add_credit(settings['C2'],'Wrong sign.'),\n right and right_sign and not good_units, add_credit(settings['C2'],'Correct value, but wrong or missing units.'),\n close and good_units, add_credit(settings['C1'],'Close.'),\n close and not good_units, add_credit(settings['C3'],'Answer is close, but wrong or missing units.'),\n incorrect('Wrong answer.')\n)\n"}, {"name": "interpreted_answer", "description": "A value representing the student's answer to this part.", "definition": "qty(student_scalar, student_units)\n\n"}, {"name": "correct_quantity", "description": "", "definition": "settings[\"correctAnswer\"]\n\n"}, {"name": "correct_units", "description": "", "definition": "units(correct_quantity)\n"}, {"name": "allowed_notation_styles", "description": "", "definition": "[\"plain\",\"en\"]"}, {"name": "match_student_number", "description": "", "definition": "matchnumber(studentAnswer,allowed_notation_styles)"}, {"name": "student_scalar", "description": "", "definition": "match_student_number[1]"}, {"name": "student_units", "description": "Modify the unit portion of the student's answer by
\n1. replacing \"ohms\" with \"ohm\" case insensitive
\n2. replacing '-' with ' '
\n3. replacing '°' with ' deg'
\nto allow answers like 10 ft-lb and 30°
", "definition": "replace_regex('ohms','ohm',\n replace_regex('\u00b0', ' deg',\n replace_regex('-', ' ' ,\n studentAnswer[len(match_student_number[0])..len(studentAnswer)])),\"i\")"}, {"name": "good_units", "description": "", "definition": "try(\ncompatible(quantity(1, student_units),correct_units),\nmsg,\nfeedback(msg);false)\n"}, {"name": "student_quantity", "description": "This fixes the student answer for two common errors.
\nIf student_units are wrong - replace with correct units
\nIf student_scalar has the wrong sign - replace with right sign
\nIf student makes both errors, only one gets fixed.
", "definition": "switch(not good_units, \n student_scalar * correct_units, \n not right_sign,\n -quantity(student_scalar, student_units),\n quantity(student_scalar,student_units)\n)\n \n"}, {"name": "percent_error", "description": "", "definition": "try(\nscalar(abs((correct_quantity - student_quantity)/correct_quantity))*100 \n,msg,\nif(student_quantity=correct_quantity,0,100))\n "}, {"name": "right", "description": "", "definition": "percent_error <= settings['right']\n"}, {"name": "close", "description": "Only marked close if the student actually has the right sign.
", "definition": "right_sign and percent_error <= settings['close']"}, {"name": "right_sign", "description": "", "definition": "sign(student_scalar) = sign(correct_quantity) "}], "settings": [{"name": "correctAnswer", "label": "Correct Quantity.", "help_url": "", "hint": "The correct answer given as a JME quantity.", "input_type": "code", "default_value": "", "evaluate": true}, {"name": "right", "label": "% Accuracy for right.", "help_url": "", "hint": "Question will be considered correct if the scalar part of the student's answer is within this % of correct value.", "input_type": "code", "default_value": "0.2", "evaluate": true}, {"name": "close", "label": "% Accuracy for close.", "help_url": "", "hint": "Question will be considered close if the scalar part of the student's answer is within this % of correct value.", "input_type": "code", "default_value": "1.0", "evaluate": true}, {"name": "C1", "label": "Close with units.", "help_url": "", "hint": "Partial Credit for close value with appropriate units. if correct answer is 100 N and close is ±1%,Find centroidal moments of inertia and radius of gyration for a beam composed of two angle sections forming a box beam.
", "licence": "Creative Commons Attribution-NonCommercial 4.0 International"}, "statement": "{geogebra_applet('u9qngrny',[['h',h],['w',w],['t',t],['P',centroid]])}
\nA built-up beam is made up of two {name} angles welded together to form a box beam.
\nUse this table of properties for the angle sections.
", "advice": "Channel properties from table
\n$\\begin{align}\\text{Area:}& &A&= \\var{A_L}\\\\\\text{Centroid:} & &\\bar{x} &= \\var{xbar} & \\bar{y} &= \\var{ybar}\\\\\\text{MOI:} && \\bar{I}_{xx} &= \\var{ixx} & \\bar{I}_{yy} &= \\var{Iyy}\\end{align}$
\nThese properties are for angle sections oriented with the long side vertical.
\nFind moment of inertia
\n$\\bar{I}_y = 2 \\, [ \\bar{I} + A d^2]$ where,
\n$\\bar{I} = \\var{latex(if(rotated,safe('\\\\bar{I}_{xx}'),safe('\\\\bar{I}_{yy}')))} =\\var{Ibar_y'}$
\n$A =\\var{A_L}$, and
\n$d = \\left(\\dfrac{w+t}{2}-\\var{latex(if(rotated,safe('\\\\bar{y}'),safe('\\\\bar{x}')))} \\right)= \\var{d_x}$, so
\n$\\bar{I}_y = \\var{disp(Iy)}\\\\$
\n$\\bar{I}_x = 2 \\, [ \\bar{I} + A d^2]$ where,
\n$\\bar{I} = \\var{latex(if(rotated,safe('\\\\bar{I}_{yy}'),safe('\\\\bar{I}_{xx}')))} =\\var{Ibar_x'}$
\n$A =\\var{A_L}$, and
\n$d =\\left( \\dfrac{h}{2}-\\var{latex(if(rotated,safe('\\\\bar{x}'),safe('\\\\bar{y}')))}\\right) = \\var{d_y}$, so
\n$\\bar{I}_x = \\var{disp(Ix)}\\\\$
\nFind Radii of gyration
\n$k_x = \\sqrt{\\dfrac{\\bar{I}_x} {2 A}} = \\var{disp(kx)} \\qquad k_y = \\sqrt{\\dfrac{\\bar{I}_y} {2 A}} = \\var{disp(ky)}$
\n", "rulesets": {}, "variables": {"name": {"name": "name", "group": "angle properties", "definition": "[\"L9 $\\\\times$ 4 $\\\\times$ 1/2\",\"L8 $\\\\times$ 6 $\\\\times$ 5/8\",\"L8 $\\\\times$ 6 $\\\\times$ 1/2\",\"L8 $\\\\times$ 4 $\\\\times$ 3/4\",\"L8 $\\\\times$ 4 $\\\\times$ 1/2\",\"L7 $\\\\times$ 4 $\\\\times$ 3/4\",\"L7 $\\\\times$ 4 $\\\\times$ 5/8\",\"L7 $\\\\times$ 4 $\\\\times$ 1/2\",\"L7 $\\\\times$ 4 $\\\\times$ 3/8\",\"L6 $\\\\times$ 4 $\\\\times$ 7/8\",\"L6 $\\\\times$ 4 $\\\\times$ 3/4\",\"L6 $\\\\times$ 4 $\\\\times$ 1/2\",\"L6 $\\\\times$ 4 $\\\\times$ 3/8\",\"L5 $\\\\times$ 3 $\\\\times$ 5/8\",\"L5 $\\\\times$ 3 $\\\\times$ 1/2\"][index]", "description": "", "templateType": "anything"}, "centroid": {"name": "centroid", "group": "Setup values", "definition": "if(rotated,\n vector(scalar(ybar),scalar(xbar)), \n vector(scalar(xbar),scalar(ybar)))", "description": "true indicates long side is horizontal
", "templateType": "anything"}, "h": {"name": "h", "group": "Setup values", "definition": "dimensions[if(rotated,1,0)]", "description": "", "templateType": "anything"}, "t": {"name": "t", "group": "Setup values", "definition": "dimensions[2]", "description": "", "templateType": "anything"}, "kx": {"name": "kx", "group": "MOI", "definition": "qty(sqrt(scalar(Ix)/(2 scalar(A_L))),'in')", "description": "k
", "templateType": "anything"}, "w": {"name": "w", "group": "Setup values", "definition": "dimensions[if(rotated,0,1)]", "description": "w
", "templateType": "anything"}, "ybar": {"name": "ybar", "group": "angle properties", "definition": "qty([3.31,2.52,2.47,2.95,2.86,2.51,2.46,2.42,2.37,2.12,2.08,1.99,1.94,1.8,1.75][index],'in')", "description": "", "templateType": "anything"}, "ky": {"name": "ky", "group": "MOI", "definition": "qty(sqrt(scalar(Iy)/(2 scalar(A_L))),'in')", "description": "", "templateType": "anything"}, "A_L": {"name": "A_L", "group": "angle properties", "definition": "qty([6.25,8.36,6.75,8.44,5.75,7.69,6.48,5.25,3.98,7.98,6.94,4.75,3.61,4.61,3.75][index],'in^2')", "description": "", "templateType": "anything"}, "xbar": {"name": "xbar", "group": "angle properties", "definition": "qty([0.81,1.52,1.47,0.953,0.859,1.01,0.963,0.917,0.87,1.12,1.08,0.987,0.941,0.796,0.75][index],'in')", "description": "", "templateType": "anything"}, "debug": {"name": "debug", "group": "Setup values", "definition": "false", "description": "", "templateType": "anything"}, "Ixx": {"name": "Ixx", "group": "angle properties", "definition": "qty([53.2,54.1,44.3,54.9,38.5,37.8,32.4,26.7,20.6,27.7,24.5,17.4,13.5,11.4,9.45][index],'in^4')", "description": "", "templateType": "anything"}, "Ix": {"name": "Ix", "group": "MOI", "definition": "2 (Ibar_x'+A_L d_y d_y)", "description": "MOI of box around x axis
", "templateType": "anything"}, "rotated": {"name": "rotated", "group": "Setup values", "definition": " random(false,true)", "description": "", "templateType": "anything"}, "Iy": {"name": "Iy", "group": "MOI", "definition": "2(Ibar_y' + A_L d_x d_x)", "description": "MOI of box around y axis
", "templateType": "anything"}, "d_x": {"name": "d_x", "group": "MOI", "definition": "qty(w + t,'in')/2 - if(rotated,ybar,xbar)", "description": "horizontal distance from centroid of angle to y axis
", "templateType": "anything"}, "Ibar_x'": {"name": "Ibar_x'", "group": "MOI", "definition": "if(rotated,Iyy,Ixx)", "description": "centroidal MOI for angle about its centroid
", "templateType": "anything"}, "dimensions": {"name": "dimensions", "group": "angle properties", "definition": "[[9, 4, 1/2], [8, 6, 5/8], [8, 6, 1/2], [8, 4, 3/4], [8, 4, 1/2], [7, 4, 3/4], [7, 4, 5/8], [7, 4, 1/2], [7, 4, 3/8], [6, 4, 7/8], [6, 4, 3/4], [6, 4, 1/2], [6, 4, 3/8], [5, 3, 5/8], [5, 3, 1/2]][index]\n", "description": "", "templateType": "anything"}, "Ibar_y'": {"name": "Ibar_y'", "group": "MOI", "definition": "if(rotated,Ixx,Iyy)", "description": "centroidal MOI for angle about its centroid
", "templateType": "anything"}, "index": {"name": "index", "group": "Setup values", "definition": "random(0..14)", "description": "i
", "templateType": "anything"}, "d_y": {"name": "d_y", "group": "MOI", "definition": "qty(h/2,'in')- if(rotated,xbar,ybar)", "description": "vertical distance from centroid of angle to x axis
", "templateType": "anything"}, "Iyy": {"name": "Iyy", "group": "angle properties", "definition": "qty([6.92,26.3,21.7,9.36,6.74,9.05,7.84,6.53,5.1,9.75,8.68,6.27,4.9,3.06,2.58][index],'in^4')", "description": "", "templateType": "anything"}, "applet": {"name": "applet", "group": "angle properties", "definition": "geogebra_file('resources/question-resources/2boxbeams_aMoCPFM.ggb',[['h',h],['w',w],['t',t],['P',centroid]])", "description": "", "templateType": "anything"}}, "variablesTest": {"condition": "", "maxRuns": 100}, "ungrouped_variables": [], "variable_groups": [{"name": "angle properties", "variables": ["name", "A_L", "Ixx", "Iyy", "xbar", "ybar", "dimensions", "applet"]}, {"name": "MOI", "variables": ["Ibar_y'", "Ibar_x'", "d_x", "d_y", "Ix", "Iy", "kx", "ky"]}, {"name": "Setup values", "variables": ["index", "debug", "rotated", "centroid", "h", "w", "t"]}], "functions": {"disp": {"parameters": [["q", "quantity"]], "type": "quantity", "language": "jme", "definition": "siground(q,4)"}, "applet": {"parameters": [], "type": "ggbapplet", "language": "javascript", "definition": ""}}, "preamble": {"js": "", "css": ""}, "parts": [{"type": "gapfill", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "Find the moment of inertia and radius of gyration with respect to the x axis.
\n$\\bar{I}_x = $[[0]] $\\quad k_x = $[[1]]
\nFind the moment of inertial and radius of gyration with respect to the y axis.
\n$\\bar{I}_y = $[[2]] $\\quad k_y = $[[3]]
\n", "gaps": [{"type": "engineering-answer", "useCustomName": true, "customName": "$\\bar{I}_x$", "marks": "5", "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "settings": {"correctAnswer": "Ix", "right": "0.2", "close": "1.0", "C1": "75", "C2": "50", "C3": "25"}}, {"type": "engineering-answer", "useCustomName": true, "customName": "$k_x$", "marks": "5", "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "settings": {"correctAnswer": "kx", "right": "0.2", "close": "1.0", "C1": "75", "C2": "50", "C3": "25"}}, {"type": "engineering-answer", "useCustomName": true, "customName": "$\\bar{I}_y$", "marks": "5", "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "settings": {"correctAnswer": "Iy", "right": "0.2", "close": "1.0", "C1": "75", "C2": "50", "C3": "25"}}, {"type": "engineering-answer", "useCustomName": true, "customName": "$k_y$", "marks": "5", "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "settings": {"correctAnswer": "ky", "right": "0.2", "close": "1.0", "C1": "75", "C2": "50", "C3": "25"}}], "sortAnswers": false}], "partsMode": "all", "maxMarks": 0, "objectives": [], "penalties": [], "objectiveVisibility": "always", "penaltyVisibility": "always", "type": "question"}, {"name": "Moment of inertia: built-up beam with angles", "extensions": ["geogebra", "quantities", "weh"], "custom_part_types": [{"source": {"pk": 19, "author": {"name": "William Haynes", "pk": 2530}, "edit_page": "/part_type/19/edit"}, "name": "Engineering Accuracy with units", "short_name": "engineering-answer", "description": "A value with units marked right if within an adjustable % error of the correct value. Marked close if within a wider margin of error.
", "help_url": "", "input_widget": "string", "input_options": {"correctAnswer": "siground(settings['correctAnswer'],4)", "hint": {"static": true, "value": ""}, "allowEmpty": {"static": true, "value": true}}, "can_be_gap": true, "can_be_step": true, "marking_script": "mark:\nswitch( \n right and good_units and right_sign, add_credit(1.0,'Correct.'),\n right and good_units and not right_sign, add_credit(settings['C2'],'Wrong sign.'),\n right and right_sign and not good_units, add_credit(settings['C2'],'Correct value, but wrong or missing units.'),\n close and good_units, add_credit(settings['C1'],'Close.'),\n close and not good_units, add_credit(settings['C3'],'Answer is close, but wrong or missing units.'),\n incorrect('Wrong answer.')\n)\n\n\ninterpreted_answer:\nqty(student_scalar, student_units)\n\n\n\ncorrect_quantity:\nsettings[\"correctAnswer\"]\n\n\n\ncorrect_units:\nunits(correct_quantity)\n\n\nallowed_notation_styles:\n[\"plain\",\"en\"]\n\nmatch_student_number:\nmatchnumber(studentAnswer,allowed_notation_styles)\n\nstudent_scalar:\nmatch_student_number[1]\n\nstudent_units:\nreplace_regex('ohms','ohm',\n replace_regex('\u00b0', ' deg',\n replace_regex('-', ' ' ,\n studentAnswer[len(match_student_number[0])..len(studentAnswer)])),\"i\")\n\ngood_units:\ntry(\ncompatible(quantity(1, student_units),correct_units),\nmsg,\nfeedback(msg);false)\n\n\nstudent_quantity:\nswitch(not good_units, \n student_scalar * correct_units, \n not right_sign,\n -quantity(student_scalar, student_units),\n quantity(student_scalar,student_units)\n)\n \n\n\npercent_error:\ntry(\nscalar(abs((correct_quantity - student_quantity)/correct_quantity))*100 \n,msg,\nif(student_quantity=correct_quantity,0,100))\n \n\nright:\npercent_error <= settings['right']\n\n\nclose:\nright_sign and percent_error <= settings['close']\n\nright_sign:\nsign(student_scalar) = sign(correct_quantity)", "marking_notes": [{"name": "mark", "description": "This is the main marking note. It should award credit and provide feedback based on the student's answer.", "definition": "switch( \n right and good_units and right_sign, add_credit(1.0,'Correct.'),\n right and good_units and not right_sign, add_credit(settings['C2'],'Wrong sign.'),\n right and right_sign and not good_units, add_credit(settings['C2'],'Correct value, but wrong or missing units.'),\n close and good_units, add_credit(settings['C1'],'Close.'),\n close and not good_units, add_credit(settings['C3'],'Answer is close, but wrong or missing units.'),\n incorrect('Wrong answer.')\n)\n"}, {"name": "interpreted_answer", "description": "A value representing the student's answer to this part.", "definition": "qty(student_scalar, student_units)\n\n"}, {"name": "correct_quantity", "description": "", "definition": "settings[\"correctAnswer\"]\n\n"}, {"name": "correct_units", "description": "", "definition": "units(correct_quantity)\n"}, {"name": "allowed_notation_styles", "description": "", "definition": "[\"plain\",\"en\"]"}, {"name": "match_student_number", "description": "", "definition": "matchnumber(studentAnswer,allowed_notation_styles)"}, {"name": "student_scalar", "description": "", "definition": "match_student_number[1]"}, {"name": "student_units", "description": "Modify the unit portion of the student's answer by
\n1. replacing \"ohms\" with \"ohm\" case insensitive
\n2. replacing '-' with ' '
\n3. replacing '°' with ' deg'
\nto allow answers like 10 ft-lb and 30°
", "definition": "replace_regex('ohms','ohm',\n replace_regex('\u00b0', ' deg',\n replace_regex('-', ' ' ,\n studentAnswer[len(match_student_number[0])..len(studentAnswer)])),\"i\")"}, {"name": "good_units", "description": "", "definition": "try(\ncompatible(quantity(1, student_units),correct_units),\nmsg,\nfeedback(msg);false)\n"}, {"name": "student_quantity", "description": "This fixes the student answer for two common errors.
\nIf student_units are wrong - replace with correct units
\nIf student_scalar has the wrong sign - replace with right sign
\nIf student makes both errors, only one gets fixed.
", "definition": "switch(not good_units, \n student_scalar * correct_units, \n not right_sign,\n -quantity(student_scalar, student_units),\n quantity(student_scalar,student_units)\n)\n \n"}, {"name": "percent_error", "description": "", "definition": "try(\nscalar(abs((correct_quantity - student_quantity)/correct_quantity))*100 \n,msg,\nif(student_quantity=correct_quantity,0,100))\n "}, {"name": "right", "description": "", "definition": "percent_error <= settings['right']\n"}, {"name": "close", "description": "Only marked close if the student actually has the right sign.
", "definition": "right_sign and percent_error <= settings['close']"}, {"name": "right_sign", "description": "", "definition": "sign(student_scalar) = sign(correct_quantity) "}], "settings": [{"name": "correctAnswer", "label": "Correct Quantity.", "help_url": "", "hint": "The correct answer given as a JME quantity.", "input_type": "code", "default_value": "", "evaluate": true}, {"name": "right", "label": "% Accuracy for right.", "help_url": "", "hint": "Question will be considered correct if the scalar part of the student's answer is within this % of correct value.", "input_type": "code", "default_value": "0.2", "evaluate": true}, {"name": "close", "label": "% Accuracy for close.", "help_url": "", "hint": "Question will be considered close if the scalar part of the student's answer is within this % of correct value.", "input_type": "code", "default_value": "1.0", "evaluate": true}, {"name": "C1", "label": "Close with units.", "help_url": "", "hint": "Partial Credit for close value with appropriate units. if correct answer is 100 N and close is ±1%,Find the centroid and the centroidal moments of inertia for a beam composed of a flat plate and two angle sections.
", "licence": "Creative Commons Attribution-NonCommercial 4.0 International"}, "statement": "{geogebra_applet('vvcydmsb',['A': A,'d': scalar(depth),'C':[ definition: C, fixed: true]])}
\nA built-up beam is made up of two {name} angles welded to a {b} $\\times$ {h} plate, as shown in cross section below.
\n\nUse this table of properties for the angle sections.
", "advice": "Let the rectangle be designated by subscript $R$, the rectangle by $L$, and the total composite shape by $T$.
\nFind rectangle properties
\n$b = \\var{b}, h = \\var{h}$
\n$A_R = b \\cdot h = \\var{A_R}$
\n$\\bar{y}_R = h/2 = \\var{ybar_R}$
\nFind the angle properties
\nFrom the table:
\n$A_L= \\var{A_L}$,
\n$\\bar{x}=\\var{xbar}, \\bar{y} = \\var{ybar}$,
\n$I_{xx} = \\var{Ixx}, I_{yy} = \\var{Iyy}$
\nFind the centroid of the angle shapes
\nNote that the angle shape is rotated 90° from the table diagram.
\nMeasuring from the bottom center of the rectangle:
\n$\\bar{y}_L = h + \\bar{x} = \\var{ybar_L}$
\n$\\bar{x}_L = \\pm (b/2 - \\bar{y}) = \\pm \\var{xbar_L}$
\nFind the centroid of composite shape
\nMeasuring from the bottom center of the rectangle:
\n$\\begin{align}A_T &= A_R + 2\\, A_L \\\\&= \\var{A_R} + 2 \\,(\\var{A_L})\\\\ &=\\var{A_T}\\end{align}\\\\$
\n$\\bar{x}_T = 0$, by symmetry.
\n$\\\\\\begin{align} \\bar{y}_T &= \\dfrac{\\Sigma A_i \\bar{y}_i}{\\Sigma A_i}\\\\ &=\\dfrac{A_R \\bar{y}_R + 2\\, A_L \\bar{y}_L}{A_T}\\\\&= \\dfrac{(\\var{A_R}) (\\var{ybar_R}) + 2\\, (\\var{A_L}) (\\var{ybar_L})}{\\var{A_T} }\\\\&=\\var{disp(ybar_T)} = \\bar{y}\\end{align}$
\nFind the moment of inertia about the centroidal y- axis
\n$\\begin{align} \\bar{I}_y &= (I_y)_R + 2\\, (I_y)_L\\\\&= \\frac{h b^3}{12} + 2\\, [\\bar{I} + A d^2]_L\\\\ &=\\frac{h b^3}{12} + 2\\, [I_{xx} + A_L (\\bar{x}_L)^2]\\\\ &=\\frac{(\\var{h})(\\var{b})^3}{12} + 2\\, [\\var{Ixx} + (\\var{A_L}) (\\var{xbar_L})^2]\\\\&=\\var{disp(Iy_R)} + 2\\,[\\var{disp(Iy_L)}] \\\\&=\\var{disp(Iy_T)}\\end{align}$
\nFind the moment of inertia about the x-axis
\n$\\begin{align} I_x &= (I_x)_R + 2\\, (I_x)_L\\\\&= \\frac{b h^3}{3} + 2\\, [\\bar{I} + A d^2]_L\\\\ &=\\frac{b h^3}{3} + 2\\, [I_{yy} + A_L (\\bar{y}_L)^2]\\\\ &=\\frac{(\\var{b})(\\var{h})^3}{3} + 2\\, [\\var{Iyy} + (\\var{A_L}) (\\var{ybar_L})^2]\\\\&= \\var{disp(Ix_r)} + 2\\, [\\var{disp(Ix_L)}]\\\\&=\\var{disp(Ix_T)}\\end{align}$
\nUse the parallel axis theorem to find the moment of inertia about the centroidal x'-axis
\n$\\begin{align} I &= \\bar{I} + A d^2 \\\\ \\bar{I}_{x'} &= I_x - A d^2\\\\ &=I_x - A_T (\\bar{y}_T)^2\\\\ &=\\var{disp(Ix_T)} - (\\var{A_T}) (\\var{disp(ybar_T)})^2\\\\&=\\var{disp(Ibarx')}\\end{align}$
\nFind the radius of gyration with respect to the $x'$- axis.
\n$\\begin{align} k_{x'} &= \\sqrt{\\dfrac{\\bar{I}_{x'}}{A_T}} \\\\&=\\sqrt{\\dfrac{\\var{disp(Ibarx')}}{\\var{A_T}}} \\\\&=\\var{disp(kx')}\\end{align}$
", "rulesets": {}, "variables": {"debug": {"name": "debug", "group": "Setup values", "definition": "false", "description": "", "templateType": "anything"}, "A": {"name": "A", "group": "Setup values", "definition": "vector(scalar(b)/2,scalar(h))", "description": "coordinates of top right corner of rectangle
", "templateType": "anything"}, "Ibarx'": {"name": "Ibarx'", "group": "MOI", "definition": "Ix_T - A_T ybar_T ybar_T", "description": "", "templateType": "anything"}, "ybar_T": {"name": "ybar_T", "group": "centroid", "definition": "Qx/A_T", "description": "", "templateType": "anything"}, "index": {"name": "index", "group": "Setup values", "definition": "random(0..14)", "description": "i
", "templateType": "anything"}, "h": {"name": "h", "group": "Setup values", "definition": "qty(random(0.5..2#0.5),'in')", "description": "height of rectangle
", "templateType": "anything"}, "xbar_L": {"name": "xbar_L", "group": "centroid", "definition": "b/2 - ybar", "description": "", "templateType": "anything"}, "A_T": {"name": "A_T", "group": "centroid", "definition": "A_R + 2 A_L", "description": "", "templateType": "anything"}, "name": {"name": "name", "group": "angle properties", "definition": "[\"L9 $\\\\times$ 4 $\\\\times$ 1/2\",\"L8 $\\\\times$ 6 $\\\\times$ 5/8\",\"L8 $\\\\times$ 6 $\\\\times$ 1/2\",\"L8 $\\\\times$ 4 $\\\\times$ 3/4\",\"L8 $\\\\times$ 4 $\\\\times$ 1/2\",\"L7 $\\\\times$ 4 $\\\\times$ 3/4\",\"L7 $\\\\times$ 4 $\\\\times$ 5/8\",\"L7 $\\\\times$ 4 $\\\\times$ 1/2\",\"L7 $\\\\times$ 4 $\\\\times$ 3/8\",\"L6 $\\\\times$ 4 $\\\\times$ 7/8\",\"L6 $\\\\times$ 4 $\\\\times$ 3/4\",\"L6 $\\\\times$ 4 $\\\\times$ 1/2\",\"L6 $\\\\times$ 4 $\\\\times$ 3/8\",\"L5 $\\\\times$ 3 $\\\\times$ 5/8\",\"L5 $\\\\times$ 3 $\\\\times$ 1/2\"][index]", "description": "", "templateType": "anything"}, "Ix_L": {"name": "Ix_L", "group": "MOI", "definition": "Iyy + A_L ybar_L ybar_L", "description": "", "templateType": "anything"}, "C": {"name": "C", "group": "Setup values", "definition": "vector(0,scalar(ybar_T))", "description": "centroid of composite shape as a point for geogebra
", "templateType": "anything"}, "Iy_L": {"name": "Iy_L", "group": "MOI", "definition": "Ixx + A_L xbar_L xbar_L", "description": "", "templateType": "anything"}, "kx'": {"name": "kx'", "group": "MOI", "definition": "qty(sqrt(scalar(Ibarx'/A_T)),'in')", "description": "", "templateType": "anything"}, "ybar": {"name": "ybar", "group": "angle properties", "definition": "qty([3.31,2.52,2.47,2.95,2.86,2.51,2.46,2.42,2.37,2.12,2.08,1.99,1.94,1.8,1.75][index],'in')", "description": "", "templateType": "anything"}, "Ixx": {"name": "Ixx", "group": "angle properties", "definition": "qty([53.2,54.1,44.3,54.9,38.5,37.8,32.4,26.7,20.6,27.7,24.5,17.4,13.5,11.4,9.45][index],'in^4')", "description": "", "templateType": "anything"}, "b": {"name": "b", "group": "Setup values", "definition": "qty(random(2..4#0.5) scalar(depth),'in')", "description": "base width of rectangle
", "templateType": "anything"}, "Iy_T": {"name": "Iy_T", "group": "MOI", "definition": "Iy_R + 2 Iy_L", "description": "", "templateType": "anything"}, "ybar_R": {"name": "ybar_R", "group": "centroid", "definition": "h/2", "description": "", "templateType": "anything"}, "A_L": {"name": "A_L", "group": "angle properties", "definition": "qty([6.25,8.36,6.75,8.44,5.75,7.69,6.48,5.25,3.98,7.98,6.94,4.75,3.61,4.61,3.75][index],'in^2')", "description": "", "templateType": "anything"}, "Qx": {"name": "Qx", "group": "centroid", "definition": "A_R ybar_R + 2 A_L ybar_L", "description": "", "templateType": "anything"}, "Iy_R": {"name": "Iy_R", "group": "MOI", "definition": "h b b b/12", "description": "", "templateType": "anything"}, "depth": {"name": "depth", "group": "angle properties", "definition": "qty([9,8,8,8,8,7,7,7,7,6,6,6,6,5,5][index],'in')", "description": "", "templateType": "anything"}, "Ix_R": {"name": "Ix_R", "group": "MOI", "definition": "b h h h/3", "description": "", "templateType": "anything"}, "ybar_L": {"name": "ybar_L", "group": "centroid", "definition": "h + xbar", "description": "", "templateType": "anything"}, "Iyy": {"name": "Iyy", "group": "angle properties", "definition": "qty([6.92,26.3,21.7,9.36,6.74,9.05,7.84,6.53,5.1,9.75,8.68,6.27,4.9,3.06,2.58][index],'in^4')", "description": "", "templateType": "anything"}, "Ix_T": {"name": "Ix_T", "group": "MOI", "definition": "Ix_R + 2 Ix_L", "description": "", "templateType": "anything"}, "xbar": {"name": "xbar", "group": "angle properties", "definition": "qty([0.81,1.52,1.47,0.953,0.859,1.01,0.963,0.917,0.87,1.12,1.08,0.987,0.941,0.796,0.75][index],'in')", "description": "", "templateType": "anything"}, "A_R": {"name": "A_R", "group": "centroid", "definition": "b h", "description": "", "templateType": "anything"}, "applet": {"name": "applet", "group": "Setup values", "definition": "geogebra_file('resources/question-resources/plate-angles.ggb',[\n 'A': A,\n 'd': scalar(depth),\n 'C':[definition: C, fixed: true]\n ]\n)", "description": "", "templateType": "anything"}}, "variablesTest": {"condition": "", "maxRuns": 100}, "ungrouped_variables": [], "variable_groups": [{"name": "angle properties", "variables": ["name", "depth", "A_L", "Ixx", "ybar", "Iyy", "xbar"]}, {"name": "centroid", "variables": ["A_R", "A_T", "ybar_R", "ybar_L", "xbar_L", "Qx", "ybar_T"]}, {"name": "MOI", "variables": ["Ix_R", "Ix_L", "Ix_T", "Iy_R", "Iy_L", "Iy_T", "Ibarx'", "kx'"]}, {"name": "Setup values", "variables": ["index", "b", "h", "A", "C", "debug", "applet"]}], "functions": {"disp": {"parameters": [["q", "quantity"]], "type": "quantity", "language": "jme", "definition": "siground(q,4)"}}, "preamble": {"js": "", "css": ""}, "parts": [{"type": "gapfill", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "Find the area of the composite shape.
\n$A_T = $ [[0]] {A_T}
\nFind the distance between the $x$ axis at the bottom of the plate and the parallel $x'$ axis passing through the centroid of the composite shape.
\n$\\bar{y} = $ [[1]] {ybar_T}
\nFind the moment of inertia of the composite shape about the centroidal $y$ axis.
\n$\\bar{I}_y = $ [[2]] {Iy_T}
\nFind the moment of inertia of the composite shape about the $x$-axis
\n$I_x=$ [[3]] {Ix_T}
\nUse the parallel axis theorem to find the moment of inertia of the composite shape about the centroidal $x'$-axis.
\n$\\bar{I}_{x'}= $ [[4]] {Ibarx'}
\nFind the corresponding radius of gyration
\n$k_{x'} = $ [[5]] {kx'}
", "gaps": [{"type": "engineering-answer", "useCustomName": true, "customName": "$A$", "marks": "5", "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "settings": {"correctAnswer": "A_T", "right": "0.2", "close": "1.0", "C1": "75", "C2": "50", "C3": "25"}}, {"type": "engineering-answer", "useCustomName": true, "customName": "$\\bar{y}$", "marks": "5", "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "settings": {"correctAnswer": "ybar_T", "right": "0.2", "close": "1.0", "C1": "75", "C2": "50", "C3": "25"}}, {"type": "engineering-answer", "useCustomName": true, "customName": "$\\bar{I}_y$", "marks": "5", "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "settings": {"correctAnswer": "Iy_T", "right": "0.2", "close": "1.0", "C1": "75", "C2": "50", "C3": "25"}}, {"type": "engineering-answer", "useCustomName": true, "customName": "$\\bar{I}_x$", "marks": "5", "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "settings": {"correctAnswer": "Ix_T", "right": "0.2", "close": "1.0", "C1": "75", "C2": "50", "C3": "25"}}, {"type": "engineering-answer", "useCustomName": true, "customName": "$\\bar{I}_{x'}$", "marks": "5", "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "settings": {"correctAnswer": "Ibarx'", "right": "0.2", "close": "1.0", "C1": "75", "C2": "50", "C3": "25"}}, {"type": "engineering-answer", "useCustomName": true, "customName": "$k_{x'}$", "marks": "5", "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "settings": {"correctAnswer": "kx'", "right": "0.2", "close": "1.0", "C1": "75", "C2": "50", "C3": "25"}}], "sortAnswers": false}], "partsMode": "all", "maxMarks": 0, "objectives": [], "penalties": [], "objectiveVisibility": "always", "penaltyVisibility": "always", "type": "question"}]}], "allowPrinting": true, "navigation": {"allowregen": true, "reverse": true, "browse": true, "allowsteps": true, "showfrontpage": false, "showresultspage": "oncompletion", "navigatemode": "sequence", "onleave": {"action": "none", "message": ""}, "preventleave": true, "startpassword": ""}, "timing": {"allowPause": true, "timeout": {"action": "none", "message": ""}, "timedwarning": {"action": "none", "message": ""}}, "feedback": {"showactualmark": true, "showtotalmark": true, "showanswerstate": true, "allowrevealanswer": true, "advicethreshold": 0, "intro": "", "reviewshowscore": true, "reviewshowfeedback": true, "reviewshowexpectedanswer": true, "reviewshowadvice": true, "feedbackmessages": [], "enterreviewmodeimmediately": true, "showexpectedanswerswhen": "inreview", "showpartfeedbackmessageswhen": "always", "showactualmarkwhen": "always", "showtotalmarkwhen": "always", "showanswerstatewhen": "always", "showadvicewhen": "inreview"}, "diagnostic": {"knowledge_graph": {"topics": [], "learning_objectives": []}, "script": "diagnosys", "customScript": ""}, "type": "exam", "contributors": [{"name": "William Haynes", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/2530/"}], "extensions": ["geogebra", "polynomials", "quantities", "weh"], "custom_part_types": [{"source": {"pk": 19, "author": {"name": "William Haynes", "pk": 2530}, "edit_page": "/part_type/19/edit"}, "name": "Engineering Accuracy with units", "short_name": "engineering-answer", "description": "A value with units marked right if within an adjustable % error of the correct value. Marked close if within a wider margin of error.
", "help_url": "", "input_widget": "string", "input_options": {"correctAnswer": "siground(settings['correctAnswer'],4)", "hint": {"static": true, "value": ""}, "allowEmpty": {"static": true, "value": true}}, "can_be_gap": true, "can_be_step": true, "marking_script": "mark:\nswitch( \n right and good_units and right_sign, add_credit(1.0,'Correct.'),\n right and good_units and not right_sign, add_credit(settings['C2'],'Wrong sign.'),\n right and right_sign and not good_units, add_credit(settings['C2'],'Correct value, but wrong or missing units.'),\n close and good_units, add_credit(settings['C1'],'Close.'),\n close and not good_units, add_credit(settings['C3'],'Answer is close, but wrong or missing units.'),\n incorrect('Wrong answer.')\n)\n\n\ninterpreted_answer:\nqty(student_scalar, student_units)\n\n\n\ncorrect_quantity:\nsettings[\"correctAnswer\"]\n\n\n\ncorrect_units:\nunits(correct_quantity)\n\n\nallowed_notation_styles:\n[\"plain\",\"en\"]\n\nmatch_student_number:\nmatchnumber(studentAnswer,allowed_notation_styles)\n\nstudent_scalar:\nmatch_student_number[1]\n\nstudent_units:\nreplace_regex('ohms','ohm',\n replace_regex('\u00b0', ' deg',\n replace_regex('-', ' ' ,\n studentAnswer[len(match_student_number[0])..len(studentAnswer)])),\"i\")\n\ngood_units:\ntry(\ncompatible(quantity(1, student_units),correct_units),\nmsg,\nfeedback(msg);false)\n\n\nstudent_quantity:\nswitch(not good_units, \n student_scalar * correct_units, \n not right_sign,\n -quantity(student_scalar, student_units),\n quantity(student_scalar,student_units)\n)\n \n\n\npercent_error:\ntry(\nscalar(abs((correct_quantity - student_quantity)/correct_quantity))*100 \n,msg,\nif(student_quantity=correct_quantity,0,100))\n \n\nright:\npercent_error <= settings['right']\n\n\nclose:\nright_sign and percent_error <= settings['close']\n\nright_sign:\nsign(student_scalar) = sign(correct_quantity)", "marking_notes": [{"name": "mark", "description": "This is the main marking note. It should award credit and provide feedback based on the student's answer.", "definition": "switch( \n right and good_units and right_sign, add_credit(1.0,'Correct.'),\n right and good_units and not right_sign, add_credit(settings['C2'],'Wrong sign.'),\n right and right_sign and not good_units, add_credit(settings['C2'],'Correct value, but wrong or missing units.'),\n close and good_units, add_credit(settings['C1'],'Close.'),\n close and not good_units, add_credit(settings['C3'],'Answer is close, but wrong or missing units.'),\n incorrect('Wrong answer.')\n)\n"}, {"name": "interpreted_answer", "description": "A value representing the student's answer to this part.", "definition": "qty(student_scalar, student_units)\n\n"}, {"name": "correct_quantity", "description": "", "definition": "settings[\"correctAnswer\"]\n\n"}, {"name": "correct_units", "description": "", "definition": "units(correct_quantity)\n"}, {"name": "allowed_notation_styles", "description": "", "definition": "[\"plain\",\"en\"]"}, {"name": "match_student_number", "description": "", "definition": "matchnumber(studentAnswer,allowed_notation_styles)"}, {"name": "student_scalar", "description": "", "definition": "match_student_number[1]"}, {"name": "student_units", "description": "Modify the unit portion of the student's answer by
\n1. replacing \"ohms\" with \"ohm\" case insensitive
\n2. replacing '-' with ' '
\n3. replacing '°' with ' deg'
\nto allow answers like 10 ft-lb and 30°
", "definition": "replace_regex('ohms','ohm',\n replace_regex('\u00b0', ' deg',\n replace_regex('-', ' ' ,\n studentAnswer[len(match_student_number[0])..len(studentAnswer)])),\"i\")"}, {"name": "good_units", "description": "", "definition": "try(\ncompatible(quantity(1, student_units),correct_units),\nmsg,\nfeedback(msg);false)\n"}, {"name": "student_quantity", "description": "This fixes the student answer for two common errors.
\nIf student_units are wrong - replace with correct units
\nIf student_scalar has the wrong sign - replace with right sign
\nIf student makes both errors, only one gets fixed.
", "definition": "switch(not good_units, \n student_scalar * correct_units, \n not right_sign,\n -quantity(student_scalar, student_units),\n quantity(student_scalar,student_units)\n)\n \n"}, {"name": "percent_error", "description": "", "definition": "try(\nscalar(abs((correct_quantity - student_quantity)/correct_quantity))*100 \n,msg,\nif(student_quantity=correct_quantity,0,100))\n "}, {"name": "right", "description": "", "definition": "percent_error <= settings['right']\n"}, {"name": "close", "description": "Only marked close if the student actually has the right sign.
", "definition": "right_sign and percent_error <= settings['close']"}, {"name": "right_sign", "description": "", "definition": "sign(student_scalar) = sign(correct_quantity) "}], "settings": [{"name": "correctAnswer", "label": "Correct Quantity.", "help_url": "", "hint": "The correct answer given as a JME quantity.", "input_type": "code", "default_value": "", "evaluate": true}, {"name": "right", "label": "% Accuracy for right.", "help_url": "", "hint": "Question will be considered correct if the scalar part of the student's answer is within this % of correct value.", "input_type": "code", "default_value": "0.2", "evaluate": true}, {"name": "close", "label": "% Accuracy for close.", "help_url": "", "hint": "Question will be considered close if the scalar part of the student's answer is within this % of correct value.", "input_type": "code", "default_value": "1.0", "evaluate": true}, {"name": "C1", "label": "Close with units.", "help_url": "", "hint": "Partial Credit for close value with appropriate units. if correct answer is 100 N and close is ±1%,