##sample problem

&DOCUMENT;

loadMacros(
"PG.pl",
"PGbasicmacros.pl",
"PGchoicemacros.pl",
"PGanswermacros.pl"
);
 
TEXT(beginproblem());
$showPartialCorrectAnswers = 1;

BEGIN_TEXT
This problem demonstrates various WeBWorK procedures for dealing with
numerical answers. In particular, by entering syntactically
incorrect answers, you can see the error messages generated by WeBWorK.
Note that exponentiation can be denoted by ** or \(  \hat{} \) .
See \{ htmlLink("/webwork_system_html/docs/techdescription/pglanguage/anseval.html","Answer Evaluators") \}  
for documentation on these procedures. $PAR

Enter the number 52.1 .
You are only allowed to enter a number (e.g. 52.1, 5.21E1, 521E-1, etc.)
$BR
This uses strict${US}num${US}cmp $BR
\{ANS_RULE(1,10) \}
$BR $BR
END_TEXT

$ans =52.1;
ANS(num_cmp($ans, mode=>"strict"));
## or
##ANS(num_cmp($ans, mode=>"strict", relTol=>.001));
## or
##ANS(num_cmp($ans, format=>"%1.10g", mode=>"strict", relTol=>.001));		## use "" for default format
## or
##ANS(num_cmp([$ans], format=>"%1.10g", mode=>"strict", relTol=>.001));		## use "" for default format
## or
##ANS(num_cmp($ans, tolType=>"absolute", mode=>"strict"));				## use absolue tolerance
## or
##ANS(num_cmp($ans, tolType=>"absolute", mode=>"strict", tol=>.001));
## or
##ANS(num_cmp($ans, format=>"%1.10g", tolType=>"absolute", mode=>"strict", tol=>.001));		## use "" for default formatTEXT(EV2(<"%1.10g", tolType=>"absolute", mode=>"strict", tol=>.001));		## use "" for default format

BEGIN_TEXT
Enter the number 52.1 again. This time you can enter a number or fraction
(e.g. 52.1, 521/10 5.21/.1 etc.)
$BR
This uses frac${US}num${US}cmp $BR
\{ANS_RULE(2,20) \}
$BR $BR
END_TEXT

$ans =52.1;
ANS(num_cmp($ans, mode=>"frac"));
## or
##ANS(num_cmp($ans, mode=>"frac", relTol=>.001));
## or
##ANS(num_cmp($ans, format=>"%0.10g", mode=>"frac", relTol=>.001));		## use "" for default format
## or
##ANS(num_cmp([$ans], format=>"%1.10g", mode=>"frac", relTol=>.001));		## use "" for default format
## or
##ANS(num_cmp($ans, tolType=>"absolute", mode=>"frac"));				## use absolue tolerance
## or
##ANS(num_cmp($ans, tolType=>"absolute", mode=>"frac", tol=>.001));
## or
##ANS(num_cmp($ans, format=>"%0.10g", tolType=>"absolute", mode=>"frac", tol=>.001));		## use "" for default format
## or
##ANS(num_cmp([$ans], format=>"%1.10g", tolType=>"absolute", mode=>"frac", tol=>.001));		## use "" for default format

BEGIN_TEXT
Enter the number 52.1 a third time. This time you can enter any arithmetic
expression equaling 52.1 (e.g. 52.1, 100/2+3-.9, (5*10**2+21)/10, etc.)
$BR
This uses arith${US}num${US}cmp $BR
\{ANS_RULE(3,20) \}
$BR $BR
END_TEXT

$ans =52.1;
ANS(num_cmp($ans, mode=>"arith"));
## or
##ANS(num_cmp($ans, mode=>"arith", relTol=>.001));
## or
##ANS(num_cmp($ans, format=>"%1.10g", mode=>"arith", relTol=>.001));		## use "" for default format
## or
##ANS(num_cmp([$ans], format=>"%1.10g", mode=>"arith", relTol=>.001));		## use "" for default format
## or
##ANS(num_cmp($ans, tolType=>"absolute", mode=>"arith"));				## use absolue tolerance
## or
##ANS(num_cmp($ans, tolType=>"absolute", mode=>"arith", tol=>.001));
## or
##ANS(num_cmp($ans, format=>"%1.10g", tolType=>"absolute", mode=>"arith", tol=>.001));		## use "" for default formatTEXT(EV2(<"%1.10g", tolType=>"absolute", mode=>"arith", tol=>.001));		## use "" for default format



BEGIN_TEXT
Finally enter the number 52.1 a fourth time.  Now you can enter any
expression involving elementary functions which equals 52.1 (e.g. 52.1,
50.1+ln(e**2),
tan(pi/4) + ln(exp(2)) + cosh(0) -1.9 + arcsin(0) + 5*sqrt(10**2), etc.).
See \{ htmlLink("/webwork_system_html/docs/techdescription/pglanguage/availableFunctions.html","Available Functions") \}  
for details on entering expressions involving elementary functions.
$BR
This uses std${US}num${US}cmp $BR
\{ANS_RULE(4,80) \}
$BR $BR

$PAR
You can view the \{ htmlLink(alias("sample_num_ans.html"),"source", q!TARGET="source"!)\} for this problem.

END_TEXT


$ans =52.1;
ANS(num_cmp($ans));
## or
##ANS(num_cmp($ans, relTol=>.001));
## or
##ANS(num_cmp($ans, format=>"%1.10g", relTol=>.001));		## use "" for default format
## or
##ANS(num_cmp([$ans], format=>"%1.10g", relTol=>.001));		## use "" for default format
## or
##ANS(num_cmp($ans, tolType=>"absolute"));				## use absolue tolerance
## or
##ANS(num_cmp($ans, tolType=>"absolute", tol=>.001));
## or
##ANS(num_cmp($ans, format=>"%1.10g", tolType=>"absolute", tol=>.001));		## use "" for default formatTEXT(EV2(<"%1.10g", tolType=>"absolute", tol=>.001));		## use "" for default format



&ENDDOCUMENT;