[LON-CAPA-users] exponent in formula response

Todd Ruskell lon-capa-users@mail.lon-capa.org
Sat, 30 Jan 2010 20:51:11 -0700


James,

Not sure of a work-around, but I suspect I know *why* this is happening:

The expression 400/3*10^3 is ambiguous.   It appears your instructor
would like it to obey the apparent order of operations and evaluate to
400/3*1000.  However, I believe the parser is interpreting this as
400/(3*1000), or 400/3e3, which clearly puts the factor of 1000 in the
denominator.  That is, the parser is too smart for its own good, and
is treating 3*10^3 as a single number written in exponential notation.
 One could argue over whether or not this is a "good thing"  but
changing the behavior of the parser at this time would undoubtedly
break many other "working" problems.   So the only fix I really see is
to make sure the students understand that although order of operations
is obeyed, a quantity like 6*10^3 is processed as a single
mathematical entity.

Todd
--
Todd Ruskell, Ph.D.                   Phone: 303-384-2080
Senior Lecturer in Physics          Fax:  303-273-3919
Colorado School of Mines
Golden, CO 80401



On Fri, Jan 29, 2010 at 11:35 AM, James Mueller <mueller@pitt.edu> wrote:
> A faculty member has a math problem that uses formula response with samples
> so that students can enter their final expression without having to plug it
> into a calculator.
>
> /res/athanas/c2-volume-1.problem
>
> an acceptable answer  (depending on the randomization) might be
> 3.14159*(400/3*19^3-80/4*19^4+4/5*19^5
>
> She has noticed an issue when the end-point of the integration is 10. A
> submission such as
> 3.14159*(400/3*10^3-80/4*10^4+4/5*10^5)
> is evaluated as incorrect, whereas if the student explicitly adds
> parenthesis,
> 3.14159*(400/3*(10^3)-80/4*(10^4)+4/5*(10^5))
> everything works as expected.
>
> So for 10, and only 10, there seems to be a problem.
>
> Any ideas as to How she might fix this problem?
> (other than the one I came up with,which is choose random numbers such that
> 10 is never the endpoint of the integration in x)
>
>
> <problem>
>    <script type="loncapa/perl">
> $n=1.123; while ($n !=&roundto($n,1) ){
> $a=&random(1,5,1); $b=&random(1,20,1); $n=$b/$a;}
> for ($x = 0; $x<=$n; $x+= 0.001) {
>     push @X1, $x;
>     push @Y1, $b*$x-$a*$x**2;   }
> $p=($a**2)/5*($n**5)-$a*$b/2*($n**4)+($b**2)/3*($n**3);
> $pi=3.14159;
> $volume1="$pi*$p";
> $example=3.14159*(7**3/3+(7/2)**2-14*exp(2));
>  </script>
>  <startouttext />
> <br />
> Determine the volume of the solid formed by rotating about the
> <m>$x$</m>-axis, the region above the <m>$x$</m>-axis and below the curve <m
> eval="on">$\;\;  y = $b x - $a x^2\,$</m>. <p />
> <endouttext />
> <gnuplot width="400" grid="on" align="center" font="medium" height="300"
> border="on" bgcolor="xffffff" fgcolor="x000000" alttag="dynamically
> generated plot" transparent="off">
>     <xlabel>x</xlabel>
>     <curve linestyle="lines" name="" color="x8B0000" pointtype="1"
> pointsize="1">
>         <data>@X1</data>
>         <data>@Y1</data>
>     </curve>
>  </gnuplot>
> <p />
> <startouttext />Volume of the solid is
> <formularesponse answer="$volume1" samples="x@1:4#2" id="11">
> <responseparam name="tol" default="0.001" description="Numerical Tolerance"
> type="tolerance" />
>        <textline size="55" readonly="no" />
>    </formularesponse>
>  <m> units $^3$.</m>
> <br />Use <m>$\pi=3.14159$</m> and round your answer to 3 decimal places.
> <br />
> You do not need to do calculations. For example <m eval="on">$example </m>
> can be given as  3.14159(7^3/3+(7/2)^2-14exp(2)). <endouttext />
> </problem>
>
> _______________________________________________
> LON-CAPA-users mailing list
> LON-CAPA-users@mail.lon-capa.org
> http://mail.lon-capa.org/mailman/listinfo/lon-capa-users
>