Difference between revisions of "FactoredPolynomial1"

From WeBWorK_wiki
Jump to navigation Jump to search
(Add link to PGML version in OPL)
(switch to PGML and remove answerFormatHelp.pl macro)
Line 6: Line 6:
 
This PG code shows how to require students to factor a polynomial.
 
This PG code shows how to require students to factor a polynomial.
 
</p>
 
</p>
* File location in OPL: [https://github.com/openwebwork/webwork-open-problem-library/blob/master/OpenProblemLibrary/FortLewis/Authoring/Templates/Algebra/FactoredPolynomial1.pg FortLewis/Authoring/Templates/Algebra/FactoredPolynomial1.pg]
+
<!--* File location in OPL: [https://github.com/openwebwork/webwork-open-problem-library/blob/master/OpenProblemLibrary/FortLewis/Authoring/Templates/Algebra/FactoredPolynomial1.pg FortLewis/Authoring/Templates/Algebra/FactoredPolynomial1.pg]-->
 
* PGML location in OPL: [https://github.com/openwebwork/webwork-open-problem-library/blob/master/OpenProblemLibrary/FortLewis/Authoring/Templates/Algebra/FactoredPolynomial1_PGML.pg FortLewis/Authoring/Templates/Algebra/FactoredPolynomial1_PGML.pg]
 
* PGML location in OPL: [https://github.com/openwebwork/webwork-open-problem-library/blob/master/OpenProblemLibrary/FortLewis/Authoring/Templates/Algebra/FactoredPolynomial1_PGML.pg FortLewis/Authoring/Templates/Algebra/FactoredPolynomial1_PGML.pg]
   
Line 17: Line 17:
   
 
<tr valign="top">
 
<tr valign="top">
<th> PG problem file </th>
+
<th style="width: 50%"> PG problem file </th>
 
<th> Explanation </th>
 
<th> Explanation </th>
 
</tr>
 
</tr>
Line 43: Line 43:
 
DOCUMENT();
 
DOCUMENT();
   
loadMacros(
 
  +
loadMacros('PGstandard.pl','MathObjects.pl','PGML.pl','PGcourse.pl');
"PGstandard.pl",
 
"MathObjects.pl",
 
"contextPolynomialFactors.pl",
 
"contextLimitedPowers.pl",
 
);
 
   
 
TEXT(beginproblem());
 
TEXT(beginproblem());
Line 66: Line 61:
 
<td style="background-color:#ffffdd;border:black 1px dashed;">
 
<td style="background-color:#ffffdd;border:black 1px dashed;">
 
<pre>
 
<pre>
#
 
 
# Expanded form
 
# Expanded form
#
 
  +
Context('Numeric');
Context("Numeric");
 
  +
$poly = Compute('8x^2+28x+12');
$poly = Compute("8x^2+28x+12");
 
   
#
 
 
# Factored form
 
# Factored form
#
 
  +
Context('PolynomialFactors-Strict');
Context("PolynomialFactors-Strict");
 
 
Context()->flags->set(singleFactors=>0);
 
Context()->flags->set(singleFactors=>0);
 
LimitedPowers::OnlyIntegers(
 
LimitedPowers::OnlyIntegers(
minPower => 0, maxPower => 1,
+
minPower => 0, maxPower => 1,
message => "either 0 or 1",
+
message => 'either 0 or 1',
 
);
 
);
$factored = Compute("4(2x+1)(x+3)");
+
$factored = Compute('4(2x+1)(x+3)');
 
</pre>
 
</pre>
 
</td>
 
</td>
Line 97: Line 88:
 
<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
 
  +
Write the quadratic expression [` [$poly] `]
Write the quadratic expression \( $poly \)
 
 
in factored form
 
in factored form
\( k(ax+b)(cx+d) \).
+
[` k(ax+b)(cx+d) `].
$BR
+
$BR
+
[____________________]{$factored}
\{ ans_rule(30)\}
+
END_TEXT
+
[@ helpLink('formulas') @]*
Context()->normalStrings;
+
END_PGML
  +
 
</pre>
 
</pre>
 
<td style="background-color:#ffcccc;padding:7px;">
 
<td style="background-color:#ffcccc;padding:7px;">
Line 115: Line 105:
 
</td>
 
</td>
 
</tr>
 
</tr>
 
<!-- Answer section -->
 
 
<tr valign="top">
 
<td style="background-color:#eeddff;border:black 1px dashed;">
 
<pre>
 
$showPartialCorrectAnswers = 1;
 
 
ANS( $factored->cmp() );
 
 
</pre>
 
<td style="background-color:#eeccff;padding:7px;">
 
<p>
 
<b>Answer Evaluation:</b>
 
</p>
 
</td>
 
</tr>
 
 
   
 
<!-- Solution section -->
 
<!-- Solution section -->
Line 140: Line 112:
 
<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();

Revision as of 11:04, 4 April 2023

Polynomial Factoring


Click to enlarge

This PG code shows how to require students to factor a polynomial.


Templates by Subject Area

PG problem file Explanation

Problem tagging data

Problem tagging:

DOCUMENT();

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

TEXT(beginproblem()); 

Initialization: We require additional contexts provided by contextPolynomialFactors.pl and contextLimitedPowers.pl

#  Expanded form
Context('Numeric');
$poly = Compute('8x^2+28x+12');

#  Factored form
Context('PolynomialFactors-Strict');
Context()->flags->set(singleFactors=>0);
LimitedPowers::OnlyIntegers(
  minPower => 0, maxPower => 1,
  message => 'either 0 or 1',
);
$factored = Compute('4(2x+1)(x+3)');

Setup: For the factored form we need to change to the PolynomialFactors-Strict context and restrict the allowed powers to either 0 or 1 using the LimitedPowers::OnlyIntegers block of code. Note: restricting all exponents to 0 or 1 means that repeated factors will have to be entered in the form k(ax+b)(ax+b) instead of k(ax+b)^2. Also, restricting all exponents to 0 or 1 means that the polynomial must factor as a product of linear factors (no irreducible quadratic factors can appear). Of course, we could allow exponents to be 0, 1, or 2, but then students would be allowed to enter reducible quadratic factors. There are no restrictions on the coefficients, i.e., the quadratic could have any nonzero leading coefficient. We set singleFactors=>0 so that repeated, non-simplified factors do not generate errors.

BEGIN_PGML
Write the quadratic expression [` [$poly] `]
in factored form
[` k(ax+b)(cx+d) `].

[____________________]{$factored} 

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

Main Text: We should explicitly tell students to enter answers in the form k(ax+b)(cx+d).


BEGIN_PGML_SOLUTION
Solution explanation goes here.
END_PGML_SOLUTION

ENDDOCUMENT();

Solution:

Templates by Subject Area