Difference between revisions of "DigitsTolType"

From WeBWorK_wiki
Jump to navigation Jump to search
(first draft of page.)
Line 34: Line 34:
 
</pre>
 
</pre>
 
</td>
 
</td>
  +
 
<td style="background-color:#ccffcc;padding:7px;">
 
<td style="background-color:#ccffcc;padding:7px;">
 
<p>
 
<p>
 
<b>Initialization:</b>
 
<b>Initialization:</b>
This is built-in to MathObjects.
+
The <tt>tolType</tt> of type </tt>digits</tt> is built-in to MathObjects.
 
</p>
 
</p>
 
</td>
 
</td>
Line 47: Line 48:
 
<td style="background-color:#ffffdd;border:black 1px dashed;">
 
<td style="background-color:#ffffdd;border:black 1px dashed;">
 
<pre>
 
<pre>
Context("Numeric")->flags->set(tolType=>'digits',tolDigits => 3, tolerateTruncation=>0);
 
  +
Context("Numeric")
  +
Context()->flags->set(tolType=>'digits', tolerance=>3, tolTruncation=>1);
  +
$answer = Real("pi");
  +
 
</pre>
 
</pre>
 
</td>
 
</td>
  +
 
<td style="background-color:#ffffcc;padding:7px;">
 
<td style="background-color:#ffffcc;padding:7px;">
 
<p>
 
<p>
 
<b>Setup:</b>
 
<b>Setup:</b>
 
<ul>
 
<ul>
<li>The <pre>tolType=>'digits'</pre> switch to the digits tolerance. </li>
 
  +
<li>Ensure that the <code>Numeric</code> context is set. This only pertains to numbers. </li>
<li> The <pre>tolDigits=>3</pre> sets the number of digits to 3 (the default)</li>
+
<li>The <code>tolType=>'digits'</code> switch to the digits tolerance. </li>
<li> The <pre>tolerateTruncation</pre> parameter is either 1 (true) or 0 (false).
+
<li> The <code>tolerance=>3</code> sets the number of digits to 3 (the default). </li>
<li>
+
<li> The <code>tolTruncation</code> parameter is either 1 (true) or 0 (false). Details are explained below.</li>
  +
<li> The <code>tolExtraDigits</code> parameter sets the number of extra digits for checking answers. This is explained below. </li>
 
</ul>
 
</ul>
  +
</p>
  +
<p>
  +
In short, this will set the answer checked to see if the student answer matches the correct answer to <code>tolerance</code> digits. For the example of pi, this will be 3.14. If there are extra digits, there are a few other parameters to check:
  +
<ul><li> If <code>tolTruncation</code> is true (the default), the correct answer and student answer are both truncated to the number of digits + the extra digits (parameter <code>tolExtraDigits</code>). The result is that both 3.141 and 3.142 are accepted.
  +
</li>
  +
<li>If <code>tolTruncation</code> is false, then only the answer that matches the number of digits + extra digits is valid. In this example, only 3.141 will be accepted. </li>
  +
</ul>
  +
<p>
  +
The default value of <code>tolTruncation</code> is true.
 
</p>
 
</p>
 
</td>
 
</td>
 
</tr>
 
</tr>
   
<!-- Question text section -->
+
<!-- First Block text section -->
   
 
<tr valign="top">
 
<tr valign="top">
Line 69: Line 83:
 
<pre>
 
<pre>
 
BEGIN_PGML
 
BEGIN_PGML
Graph the circle given by the following equation.
 
   
[`[$circle_eq_lhs] = [$r ** 2]`]
 
  +
This section is with [|tolTruncation|] set to true (1). The exact answer is [`\pi`]. Enter 3.14, 3.15, 3.141, 3.142 to see if it accepts the answer.
   
[_]{$gt}
+
[`\pi=`][_]{$answer}
END_PGML
+
</pre>
+
END_PGML</pre>
  +
</td>
 
<td style="background-color:#ffcccc;padding:7px;">
 
<td style="background-color:#ffcccc;padding:7px;">
 
<p>
 
<p>
<b>Main Text:</b>
 
  +
<b>First Section:</b> This tests the default characteristic of this answer checker. It should accept 3.14, 3.141 and 3.142 as correct, but not 3.15.
This asks to graph the circle given by the equation. And the code:
 
  +
</p>
  +
</td>
  +
</tr>
  +
  +
<!-- Setup 2nd block -->
  +
<td style="background-color:#ffffdd;border:black 1px dashed;">
 
<pre>
 
<pre>
[_]{$gt}
 
  +
  +
Context("Numeric");
  +
Context()->flags->set(tolType=>'digits', tolerance=>3, tolTruncation=>0);
  +
$answer2 = Real("pi");
  +
 
</pre>
 
</pre>
inserts the GraphTool.
 
  +
</td>
  +
<td style="background-color:#ffffcc;padding:7px;">
  +
<p>
  +
<b>Second block explanation: </b> First, reset the context with <code>Context("Numeric")</code> and then the set flags are set except for <code>tolTruncation=>0</code>.
  +
</td>
  +
  +
<!-- Second Block text section -->
  +
  +
<tr valign="top">
  +
<td style="background-color:#ffdddd;border:black 1px dashed;">
  +
<pre>
  +
BEGIN_PGML
  +
This section is with [|tolTruncation|] set to false (0). The exact answer is [`\pi`]. Enter 3.14, 3.15, 3.141, 3.142 to see if it accepts the answer.
  +
  +
[`\pi=`][_]{$answer2}
  +
  +
END_PGML
  +
</pre>
  +
</td>
  +
<td style="background-color:#ffcccc;padding:7px;">
  +
<p>
  +
<b>Second Section:</b> This tests the default characteristic of this answer checker. It should accept 3.14, 3.142 as correct, but not 3.141 or 3.15.
 
</p>
 
</p>
 
</td>
 
</td>
 
</tr>
 
</tr>
   
<!-- Solution section -->
+
<!-- Setup 3rd block -->
  +
<td style="background-color:#ffffdd;border:black 1px dashed;">
  +
<pre>
  +
Context("Numeric");
  +
Context()->flags->set(tolType=>'digits', tolerance=>3, tolTruncation=>0,tolExtraDigits=>2);
  +
$answer3 = Real("3.14");
  +
</pre>
  +
</td>
  +
<td style="background-color:#ffffcc;padding:7px;">
  +
<p>
  +
<b>Second block explanation: </b> First, reset the context with <code>Context("Numeric")</code> and then the set flags are set except
  +
for <code>tolTruncation=>0</code> as well as the <code>tolExtraDigits=>2</code>.
  +
</td>
  +
  +
<!-- Third Block text section -->
   
 
<tr valign="top">
 
<tr valign="top">
<td style="background-color:#eeddff;border:black 1px dashed;">
+
<td style="background-color:#ffdddd;border:black 1px dashed;">
 
<pre>
 
<pre>
BEGIN_PGML_SOLUTION
 
  +
BEGIN_PGML
The equation of the circle of the form:
 
   
[`[$circle_eq_lhs] = [$r ** 2]`]
 
  +
If we want to consider only answers to some number to digits. Enter 3.14, 3.15, 3.141, 3.142 to see if it accepts the answer.
   
has a center at [`([$h],[$k])`] and radius [$r]. To enter the graph, click the circle tool, then click the center at [`([$h],[$k])`] and then click a second point that is [$r] units from the center. This is easist going left, right, up or down from the center.
 
  +
Enter [`\pi`] to the first 2 decimal places after the decimal point [_]{$answer3}
END_PGML_SOLUTION
 
  +
  +
END_PGML
   
ENDDOCUMENT();
 
 
</pre>
 
</pre>
<td style="background-color:#eeccff;padding:7px;">
 
  +
</td>
  +
<td style="background-color:#ffcccc;padding:7px;">
 
<p>
 
<p>
This is the solution.
 
  +
<b>Third Section:</b> This allows only to the given number of digits (3). It should accept only 3.14 as correct.
 
</p>
 
</p>
 
</td>
 
</td>
 
</tr>
 
</tr>
  +
  +
  +
 
</table>
 
</table>
   
Line 116: Line 162:
   
 
[[Category:Problem Techniques]]
 
[[Category:Problem Techniques]]
 
 
<ul>
 
<li>POD documentation: [https://webwork.maa.org/pod/pg/macros/parserGraphTool.html]</li>
 
</ul>
 

Revision as of 09:34, 30 April 2021

Construction.png This article is under construction. Use the information herein with caution until this message is removed.

Digits TolType


This describes an alternative way for determining the tolerance type based on the number of digits.

Problem Techniques Index

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

Initialization: The tolType of type digits is built-in to MathObjects.

Context("Numeric")
Context()->flags->set(tolType=>'digits', tolerance=>3, tolTruncation=>1);
$answer = Real("pi");

Setup:

  • Ensure that the Numeric context is set. This only pertains to numbers.
  • The tolType=>'digits' switch to the digits tolerance.
  • The tolerance=>3 sets the number of digits to 3 (the default).
  • The tolTruncation parameter is either 1 (true) or 0 (false). Details are explained below.
  • The tolExtraDigits parameter sets the number of extra digits for checking answers. This is explained below.

In short, this will set the answer checked to see if the student answer matches the correct answer to tolerance digits. For the example of pi, this will be 3.14. If there are extra digits, there are a few other parameters to check:

  • If tolTruncation is true (the default), the correct answer and student answer are both truncated to the number of digits + the extra digits (parameter tolExtraDigits). The result is that both 3.141 and 3.142 are accepted.
  • If tolTruncation is false, then only the answer that matches the number of digits + extra digits is valid. In this example, only 3.141 will be accepted.

The default value of tolTruncation is true.

BEGIN_PGML

This section is with [|tolTruncation|] set to true (1).  The exact answer is [`\pi`].   Enter 3.14, 3.15, 3.141, 3.142 to see if it accepts the answer.  

[`\pi=`][_]{$answer}

END_PGML

First Section: This tests the default characteristic of this answer checker. It should accept 3.14, 3.141 and 3.142 as correct, but not 3.15.


Context("Numeric");
Context()->flags->set(tolType=>'digits', tolerance=>3, tolTruncation=>0);
$answer2 = Real("pi");

Second block explanation: First, reset the context with Context("Numeric") and then the set flags are set except for tolTruncation=>0.

BEGIN_PGML
This section is with [|tolTruncation|] set to false (0).  The exact answer is [`\pi`].   Enter 3.14, 3.15, 3.141, 3.142 to see if it accepts the answer. 

[`\pi=`][_]{$answer2}

END_PGML

Second Section: This tests the default characteristic of this answer checker. It should accept 3.14, 3.142 as correct, but not 3.141 or 3.15.

Context("Numeric");
Context()->flags->set(tolType=>'digits', tolerance=>3, tolTruncation=>0,tolExtraDigits=>2);
$answer3 = Real("3.14");

Second block explanation: First, reset the context with Context("Numeric") and then the set flags are set except for tolTruncation=>0 as well as the tolExtraDigits=>2.

BEGIN_PGML

If we want to consider only answers to some number to digits. Enter 3.14, 3.15, 3.141, 3.142 to see if it accepts the answer. 

Enter [`\pi`] to the first 2 decimal places after the decimal point [_]{$answer3}

END_PGML

Third Section: This allows only to the given number of digits (3). It should accept only 3.14 as correct.

Problem Techniques Index