<!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>