Difference between revisions of "VectorParametric2"
Paultpearson (talk | contribs) m |
Paultpearson (talk | contribs) |
||
Line 5: | Line 5: | ||
This PG code shows how to construct a custom answer checker that extracts the component functions from the student's answer and makes some derivative calculations with them. |
This PG code shows how to construct a custom answer checker that extracts the component functions from the student's answer and makes some derivative calculations with them. |
||
</p> |
</p> |
||
− | * Download file: [[File:VectorParametric2.txt]] (change the file extension from txt to pg when you save it) |
||
+ | * File location in OPL: [https://github.com/openwebwork/webwork-open-problem-library/blob/master/OpenProblemLibrary/FortLewis/Authoring/Templates/Parametric/VectorParametric2.pg FortLewis/Authoring/Templates/Parametric/VectorParametric2.pg] |
||
− | * File location in NPL: <code>FortLewis/Authoring/Templates/Parametric/VectorParametric2.pg</code> |
||
<br clear="all" /> |
<br clear="all" /> |
||
Line 172: | Line 171: | ||
Context()->texStrings; |
Context()->texStrings; |
||
BEGIN_SOLUTION |
BEGIN_SOLUTION |
||
− | ${PAR}SOLUTION:${PAR} |
||
Solution explanation goes here. |
Solution explanation goes here. |
||
END_SOLUTION |
END_SOLUTION |
Revision as of 16:18, 16 June 2013
Motion and Velocity with a Parametric Curve
This PG code shows how to construct a custom answer checker that extracts the component functions from the student's answer and makes some derivative calculations with them.
- File location in OPL: FortLewis/Authoring/Templates/Parametric/VectorParametric2.pg
PG problem file | Explanation |
---|---|
Problem tagging: |
|
DOCUMENT(); loadMacros( "PGstandard.pl", "MathObjects.pl", "parserVectorUtils.pl", "AnswerFormatHelp.pl", ); TEXT(beginproblem()); |
Initialization:
Although not necessary for the code below, we load |
Context("Vector2D"); #Context("Vector"); # for 3D vectors Context()->variables->are(t=>"Real"); Context()->variables->set(t=>{limits=>[0,5]}); Context()->flags->set( ijk=>0 ); $answer = Vector("<2t,(2t)^2>"); |
Setup: We choose not to display the answer using ijk notation. |
Context()->texStrings; BEGIN_TEXT Find a vector parametric function \( \vec{r}(t) \) for a bug that moves along the parabola \( y = x^2 \) with velocity \( \vec{v}(t) = \langle 2, 8t \rangle \) for all \( t \). $BR $BR \( \vec{r}(t) = \) \{ ans_rule(20) \} \{ AnswerFormatHelp("vectors") \} END_TEXT Context()->normalStrings; |
Main Text: |
$showPartialCorrectAnswers = 1; sub components { my $V = shift; $V = $V->perl; if ( $V =~ m/Value/ ) { $V =~ s/Value::Vector->new~~(//g; $V = substr($V, 0, -1); $V =~ s/Value::Real->new//g; $V =~ s/~~$//g; $V =~ s/ //g; return split(',',$V); } else { $V =~ s/~~* i~~)/~~),/g; $V =~ s/~~* j~~)/~~),/g; $V =~ s/~~* k~~)/~~),/g; $V =~ s/~~$//g; $V =~ s/ //g; $V = substr($V, 0, -1); return split(',',$V); } } sub mycheck { my ($correct, $student, $ansHash) = @_; my @r = components($student); my $xstu = Formula("$r[0]"); my $ystu = Formula("$r[1]"); if ( ($xstu->D('t')==Formula("2")) && ($ystu->D('t')==Formula("8t")) ) { return 1; } else { return 0; } } ANS( $answer->cmp( checker=>~~&mycheck ) ); |
Answer Evaluation:
The subroutine components |
Context()->texStrings; BEGIN_SOLUTION Solution explanation goes here. END_SOLUTION Context()->normalStrings; COMMENT('MathObject version.'); ENDDOCUMENT(); |
Solution: |