External Answer Checkers - PGML
Jump to navigation
Jump to search
Using ANS() with PGML
Although it is customary to provide the correct answer right for an answer blank after the blank in the PGML code, it is also possible to provide the answer later using the ANS()
macro, as is done with BEGIN_TEXT/END_TEXT
blocks. To do this, simply don't put any braces after the answer blank.
loadMacros("contextLimitedNumeric.pl"); Context("LimitedNumeric"); $a = 3; $b = 5; $answer = Real($a+$b); BEGIN_PGML The value of [: [$a] + [$b] :] is [_______] END_PGML ANS($answer->cmp);
You can use all the traditional or MathObject based answer checkers this way.
If there is more than one answer blank, then the answer checkers are paired with them by order, as usual.
Context("Numeric"); Context()->functions->disable("sqrt"); Context()->operators->remove("^","**"); $a = 16; $b = 9; $ra = Real(sqrt($a)); $rb = Real(sqrt($b)); BEGIN_PGML The value of [: sqrt([$a]) :] is [___________] The value of [: sqrt([$b]) :] is [___________] END_PGML ANS( $ra->cmp, $rb->cmp );