<!DOCTYPE html><html><head><title></title><style type="text/css">p.MsoNormal,p.MsoNoSpacing{margin:0}
p.MsoNormal,p.MsoNoSpacing{margin:0}</style></head><body><div style="font-family:Arial;">Hi<br></div><div style="font-family:Arial;"><br></div><div style="font-family:Arial;">I am trying to develop a custom response problem in which the student submission is a vector.<br></div><div style="font-family:Arial;">A minimal example is provided below.<br></div><div style="font-family:Arial;">Regardless of what I typed in the either of the two input fields I get the response:<br></div><div style="font-family:Arial;"> 'This question expects a numeric answer.'<br></div><div style="font-family:Arial;"><br></div><div style="font-family:Arial;">Please advise what am I doing wrong?<br></div><div style="font-family:Arial;"><br></div><div style="font-family:Arial;">Thanks in advance.<br></div><div style="font-family:Arial;">Itay<br></div><div style="font-family:Arial;"><br></div><div style="font-family:Arial;"><br></div><div style="font-family:Arial;"><problem> <!-- begin minimal --><br></div><div style="font-family:Arial;"> <script type="loncapa/perl"><br></div><div style="font-family:Arial;"> $ax = &random(1.0, 10, 0.1); # Coordinates of \vec{a}<br></div><div style="font-family:Arial;"> $ay = &random(1.0, 10, 0.1);<br></div><div style="font-family:Arial;"> </script><br></div><div style="font-family:Arial;"><br></div><div style="font-family:Arial;"> <startouttext /><br></div><div style="font-family:Arial;"> Consider a vector <m eval="on">\( \vec{a} = $ax\hat{x} + $ay\hat{y} \)</m>'.<br></div><div style="font-family:Arial;"> Provide a vector <m>\( \vec{b} \)</m>, orthogonal to <m>\( \vec{a} \)</m>.<br></div><div style="font-family:Arial;"> <br /><br></div><div style="font-family:Arial;"> <endouttext /><br></div><div style="font-family:Arial;"><br></div><div style="font-family:Arial;"> <customresponse id="dotProd"><br></div><div style="font-family:Arial;"> <answer type="loncapa/perl"><br></div><div style="font-family:Arial;"> for ($i=0; $i<2; $i++) { # Test input sanity.<br></div><div style="font-family:Arial;"> if ($submission[i] =~ /^\d+\s+\w+$/) { return 'UNIT_NOTNEEDED'; }<br></div><div style="font-family:Arial;"> if ($submission[i] !~ /^[\d\.]+$/) { return 'WANTED_NUMERIC'; }<br></div><div style="font-family:Arial;"> }<br></div><div style="font-family:Arial;"><br></div><div style="font-family:Arial;"> # Is submission correct?<br></div><div style="font-family:Arial;"> $dotProd = $ax * $submission[0] + $ay * $submission[1];<br></div><div style="font-family:Arial;"> if (abs($dotProd) < 1.0e-3) { return 'APPROX_ANS'; } # Can't expect EXACT_ANS.<br></div><div style="font-family:Arial;"> return 'INCORRECT';<br></div><div style="font-family:Arial;"> </answer><br></div><div style="font-family:Arial;"><br></div><div style="font-family:Arial;"> <startouttext /><m>\( b_x = \)</m><endouttext /><br></div><div style="font-family:Arial;"> <textline size="10" readonly="no" spellcheck="none" /><br></div><div style="font-family:Arial;"> <startouttext /><br /><endouttext /><br></div><div style="font-family:Arial;"><br></div><div style="font-family:Arial;"> <startouttext /><m>\( b_y = \)</m><endouttext /><br></div><div style="font-family:Arial;"> <textline size="10" readonly="no" spellcheck="none" /><br></div><div style="font-family:Arial;"> <startouttext /><br /><endouttext /><br></div><div style="font-family:Arial;"> </customresponse><br></div><div style="font-family:Arial;"></problem> <!-- end minimal --><br></div><div style="font-family:Arial;"><br></div><div style="font-family:Arial;"><br></div></body></html>