[LON-CAPA-users] Simple math advice
Gerd Kortemeyer
korte at lite.msu.edu
Wed Jun 27 15:26:48 EDT 2012
Hi,
On Jun 27, 2012, at 3:24 PM, Lucas, Mark wrote:
> I've got a colleague who wants to write a formularesponse problem such as the
> following:
>
> Simplify -18(v+44)
>
> The problem is that the student should not be able to just type the question in and
> have it come right. He wants it reduced.
>
> Is there a simple way to require this using maxima?
Simple: unfortunately no
MAXIMA: yes
See attached. It uses customresponse to first check for unwanted stuff like parenthesis, and then compares the terms using MAXIMA.
-Gerd.
<problem>
<script type="loncapa/perl">
($t1,$t2,$t3,$t4)=&random_permutation(&random(0,1000,1),(
'a+b^2',
'a+2*b',
'a-4*b',
'3*a^2+b',
'a^2+2*c',
'a^2+3*c^2',
'2*c-a'));
$res1=&cas('maxima',"expand(($t1)*($t2))");
$res2=&cas('maxima',"expand(($t3)*($t4))");
</script>
<startouttext />
<h1>Multiplying Terms</h1>
<endouttext />
<part id="11">
<startouttext />
<p>What is
<algebra>($t1)*($t2)</algebra>
</p>
<endouttext />
<customresponse id="12">
<textline readonly="no" size="70" />
<answer type="loncapa/perl">if ($submission=~/\,/) { return 'EXTRA_ANSWER'; }
if ($submission=~/\)/) { return 'WRONG_FORMAT'; }
if ($submission=~/\(/) { return 'WRONG_FORMAT'; }
$diff=&cas('maxima',"trigsimp(trigreduce(($t1)*($t2)-($submission)))");
if ($diff=~/^Error/) { return 'BAD_FORMULA'; }
if ($diff eq '0') { return 'EXACT_ANS'; }
return 'INCORRECT';</answer>
</customresponse>
<preduedate><solved><startouttext /><algebra>$res1</algebra><endouttext /></solved></preduedate>
<postanswerdate><startouttext /><algebra>$res1</algebra><endouttext /></postanswerdate>
</part>
<part id="13">
<startouttext />
<p>What is
<algebra>($t3)*($t4)</algebra>
</p>
<endouttext />
<customresponse id="14">
<textline readonly="no" size="70" />
<answer type="loncapa/perl">if ($submission=~/\,/) { return 'EXTRA_ANSWER'; }
if ($submission=~/\)/) { return 'WRONG_FORMAT'; }
if ($submission=~/\(/) { return 'WRONG_FORMAT'; }
$diff=&cas('maxima',"trigsimp(trigreduce(($t3)*($t4)-($submission)))");
if ($diff=~/^Error/) { return 'BAD_FORMULA'; }
if ($diff eq '0') { return 'EXACT_ANS'; }
return 'INCORRECT';</answer>
</customresponse>
<preduedate><solved><startouttext /><algebra>$res2</algebra><endouttext /></solved></preduedate>
<postanswerdate><startouttext /><algebra>$res2</algebra><endouttext /></postanswerdate>
</part>
</problem>
More information about the LON-CAPA-users
mailing list