Difference between revisions of "PointAnswers1"

From WeBWorK_wiki
Jump to navigation Jump to search
(PGML example link)
(Removes the AnswerFormatHelp macro and some other cleanup.)
Line 16: Line 16:
   
 
<tr valign="top">
 
<tr valign="top">
<th> PG problem file </th>
+
<th style="width: 40%"> PG problem file </th>
 
<th> Explanation </th>
 
<th> Explanation </th>
 
</tr>
 
</tr>
Line 43: Line 43:
   
 
loadMacros(
 
loadMacros(
"PGstandard.pl",
+
'PGstandard.pl',
"MathObjects.pl",
+
'MathObjects.pl',
"AnswerFormatHelp.pl",
+
'contextLimitedPoint.pl',
"contextLimitedPoint.pl",
+
'PGML.pl',
  +
'PGcourse.pl'
 
);
 
);
   
Line 66: Line 66:
 
<td style="background-color:#ffffdd;border:black 1px dashed;">
 
<td style="background-color:#ffffdd;border:black 1px dashed;">
 
<pre>
 
<pre>
Context("LimitedPoint");
+
Context('LimitedPoint');
   
$f = Compute("x^2-1");
+
$f = Compute('x^2-1');
   
$xint = List( Point("(1,0)"), Point("(-1,0)") );
+
$xint = List( Point('(1,0)'), Point('(-1,0)') );
+
$yint = List( Point('(0,-1)') );
$yint = List( Point("(0,-1)") );
 
 
</pre>
 
</pre>
 
</td>
 
</td>
Line 94: Line 94:
 
<td style="background-color:#ffdddd;border:black 1px dashed;">
 
<td style="background-color:#ffdddd;border:black 1px dashed;">
 
<pre>
 
<pre>
Context()->texStrings;
 
  +
BEGIN_PGML
BEGIN_TEXT
 
  +
Enter the [`x`]-intercept(s) and [`y`]-intercept(s)
Enter the x-intercept(s) and y-intercept(s)
 
  +
of [` y = [$f] `]. Enter a point as [` (a,b) `],
of \( y = $f \). Enter a point as \( (a,b) \),
 
  +
including the parentheses. If there is more
including the parentheses. If there is more
 
  +
than one correct answer, enter a comma
than one correct answer, enter a comma
 
 
separated list of points.
 
separated list of points.
$BR
 
  +
$BR
 
  +
+ [`x`]-intercept(s): [_________________]{$xint}
x-intercept(s): \{ ans_rule(20) \}
 
  +
\{ AnswerFormatHelp("points") \}
 
  +
+ [`y`]-intercept(s): [_________________]{$yint}
$BR
 
  +
y-intercept(s): \{ ans_rule(20) \}
 
  +
[@ helpLink('points') @]*
\{ AnswerFormatHelp("points") \}
 
  +
END_PGML
END_TEXT
 
Context()->normalStrings;
 
 
</pre>
 
</pre>
 
<td style="background-color:#ffcccc;padding:7px;">
 
<td style="background-color:#ffcccc;padding:7px;">
Line 115: Line 112:
 
<b>Main Text:</b>
 
<b>Main Text:</b>
 
Be sure to tell students the proper syntax for how to enter their answers.
 
Be sure to tell students the proper syntax for how to enter their answers.
</p>
 
</td>
 
</tr>
 
 
<!-- Answer evaluation section -->
 
 
<tr valign="top">
 
<td style="background-color:#eeddff;border:black 1px dashed;">
 
<pre>
 
$showPartialCorrectAnswers = 1;
 
 
ANS( $xint->cmp() );
 
 
ANS( $yint->cmp() );
 
</pre>
 
<td style="background-color:#eeccff;padding:7px;">
 
<p>
 
<b>Answer Evaluation:</b>
 
 
</p>
 
</p>
 
</td>
 
</td>
Line 142: Line 121:
 
<td style="background-color:#ddddff;border:black 1px dashed;">
 
<td style="background-color:#ddddff;border:black 1px dashed;">
 
<pre>
 
<pre>
Context()->texStrings;
 
  +
BEGIN_PGML_SOLUTION
BEGIN_SOLUTION
 
${PAR}SOLUTION:${PAR}
 
 
Solution explanation goes here.
 
Solution explanation goes here.
END_SOLUTION
 
  +
END_PGML_SOLUTION
Context()->normalStrings;
 
 
COMMENT('MathObject version.');
 
 
 
ENDDOCUMENT();
 
ENDDOCUMENT();
 
</pre>
 
</pre>

Revision as of 14:04, 10 March 2023

Answer is a Point or a List of Points

Click to enlarge

This PG code shows how to evaluate answers that are points or lists of points.


Templates by Subject Area

PG problem file Explanation

Problem tagging data

Problem tagging:

DOCUMENT();

loadMacros(
  'PGstandard.pl',
  'MathObjects.pl',
  'contextLimitedPoint.pl',
  'PGML.pl',
  'PGcourse.pl'
);

TEXT(beginproblem());

Initialization: We only need to load contextLimitedPoint.pl if we want to prevent operations between points.

Context('LimitedPoint');

$f = Compute('x^2-1');

$xint = List( Point('(1,0)'), Point('(-1,0)') );
$yint = List( Point('(0,-1)') );

Setup: We could have used Context("Point"); instead, which would allow mathematical operations between points (such as adding points as if they were vectors). The x-intercepts are clearly a list of points. We used a list with only one element for the y-intercepts so that a student who mistakenly enters two points will be told their second point is incorrect. If we did not use a list for the y-intercepts, a student who enters two points would be given an error message instead.

BEGIN_PGML
Enter the [`x`]-intercept(s) and [`y`]-intercept(s)
of [` y = [$f] `].  Enter a point as [` (a,b) `],
including the parentheses.  If there is more
than one correct answer, enter a comma
separated list of points.

+ [`x`]-intercept(s): [_________________]{$xint}

+ [`y`]-intercept(s): [_________________]{$yint}

[@ helpLink('points') @]*
END_PGML

Main Text: Be sure to tell students the proper syntax for how to enter their answers.

BEGIN_PGML_SOLUTION
Solution explanation goes here.
END_PGML_SOLUTION
ENDDOCUMENT();

Solution:

Templates by Subject Area