Difference between revisions of "ErrorMessageCustomization"

From WeBWorK_wiki
Jump to navigation Jump to search
(added historical tag and gave updated problem link)
 
(6 intermediate revisions by 4 users not shown)
Line 1: Line 1:
  +
{{historical}}
  +
  +
<p style="font-size: 120%;font-weight:bold">This problem has been replaced with [https://openwebwork.github.io/pg-docs/sample-problems/problem-techniques/ErrorMessageCustomization.html a newer version of this problem]</p>
 
<h2>Error Message Customization</h2>
 
<h2>Error Message Customization</h2>
   
Line 7: Line 10:
 
<br />
 
<br />
 
<br />
 
<br />
You may also be interested in [AnswerHints|Answer Hints]
+
You may also be interested in [http://webwork.maa.org/wiki/AnswerHints AnswerHints]
 
</em>
 
</em>
 
</p>
 
</p>
Line 29: Line 32:
 
DOCUMENT();
 
DOCUMENT();
 
loadMacros(
 
loadMacros(
"PGstandard.pl",
+
"PGstandard.pl",
"MathObjects.pl",
+
"MathObjects.pl",
 
);
 
);
 
TEXT(beginproblem());
 
TEXT(beginproblem());
Line 50: Line 53:
 
Context("Numeric");
 
Context("Numeric");
 
Context()->{error}{msg}{"Missing operand after '-'"}
 
Context()->{error}{msg}{"Missing operand after '-'"}
= "Enter '-1' instead of '-'";
+
= "Enter '-1' instead of '-'";
   
$ans1 = Real("-1");
+
$ans1 = Real(-1);
 
$ans2 = Formula("x-2");
 
$ans2 = Formula("x-2");
 
</pre>
 
</pre>
Line 121: Line 124:
 
my $ans = shift;
 
my $ans = shift;
 
$ans->{ans_message} = "Enter '-1' instead of '-'"
 
$ans->{ans_message} = "Enter '-1' instead of '-'"
if $ans->{ans_message} eq
+
if $ans->{ans_message} eq "Missing operand after '-'";
"Missing operand after '-'"; return $ans;
+
return $ans;
 
}));
 
}));
 
</pre>
 
</pre>
Line 140: Line 143:
   
 
<ul>
 
<ul>
<li>POD documentation: [http://webwork.maa.org/doc/cvs/pg_CURRENT/macros/answerHints.pl.html answerHints.pl.html]</li>
+
<li>POD documentation: [http://webwork.maa.org/pod/pg/macros/answerHints.html answerHints.pl]</li>
<li>PG macro: [http://cvs.webwork.rochester.edu/viewcvs.cgi/pg/macros/answerHints.pl answerHints.pl]</li>
+
<li>PG macro: [http://webwork.maa.org/viewvc/system/trunk/pg/macros/answerHints.pl answerHints.pl]</li>
 
</ul>
 
</ul>

Latest revision as of 08:18, 28 June 2023

This article has been retained as a historical document. It is not up-to-date and the formatting may be lacking. Use the information herein with caution.

This problem has been replaced with a newer version of this problem

Error Message Customization


This PG code shows how to customize (remap) the error messages students receive after submitting an incorrect response or making a syntax error when entering their answer. This requires using MathObjects or a macro file that loads MathObjects, so that a Context is defined.

You may also be interested in AnswerHints

Problem Techniques Index

PG problem file Explanation
DOCUMENT();
loadMacros(
  "PGstandard.pl",
  "MathObjects.pl",
);
TEXT(beginproblem());

Initialization: To be able to customize the error messages students receive, we must be using MathObjects or a macro that loads MathObjects and has a Context.

Context("Numeric");
Context()->{error}{msg}{"Missing operand after '-'"} 
  = "Enter '-1' instead of '-'";

$ans1 = Real(-1);
$ans2 = Formula("x-2");

Setup: First, specify a Context. One way to remap the error message is through the context. In factoring -x+2 as -(x-2), students may enter - instead of -1 in the first answer box and receive the error message Missing operand after '-'. We can replace this error message with "Enter '-1' instead of '-'" via the Context()->{error}{msg}... code to the left. The replacement error message can be anything you like as long as it is nonempty. To generate a blank error message, use a quoted space " ", not "".

For another way to customize the error message, see the Answer Evaluation section below.

Context()->texStrings;
BEGIN_TEXT
Factor \( -1 \) from \( -x+2 \).
$BR
\( -x + 2 = \) 
\{ ans_rule(5) \} 
\( \cdot \big( \) 
\{ ans_rule(10) \} 
\( \big) \)
END_TEXT
Context()->normalStrings;

Main Text: The problem text section of the file is as we'd expect.

ANS( $ans1->cmp() );
ANS( $ans2->cmp() );

ENDDOCUMENT();

Answer Evaluation: Another way to customize the error message Missing operand after '-' would be to use a post-filter to remove the message after the answer has been graded. The answerHints.pl macro provides one way to do this, but it is probably just as easy to do it manually, as in:

ANS($ans1->cmp->withPostFilter(sub { 
  my $ans = shift; 
  $ans->{ans_message} = "Enter '-1' instead of '-'" 
    if $ans->{ans_message} eq "Missing operand after '-'";
  return $ans; 
}));

Problem Techniques Index