ExplicitSequence1

From WeBWorK_wiki
Revision as of 19:13, 5 December 2010 by Pearson (talk | contribs) (moved Sequences2 to ExplicitSequence1)
Jump to navigation Jump to search

Sequences with Explicit Formulas

Click to enlarge

This PG code shows how to evaluate answers that are (possibly alternating) sequences with explicit formulas.

  • Download file: File:ExplicitSequence1.txt (change the file extension from txt to pg when you save it)
  • File location in NPL: FortLewis/Authoring/Templates/Sequences/ExplicitSequences.pg



Templates by Subject Area

PG problem file Explanation

Problem tagging data

Problem tagging:

DOCUMENT();

loadMacros(
"PGstandard.pl",
"MathObjects.pl",
"AnswerFormatHelp.pl",
);

TEXT(beginproblem());

Initialization:

Context("Numeric");
Context()->variables->are(n=>"Real");

$answer = Compute("(-1)^n / n!");
$answer->{test_points} = [[1],[2],[3],[4],[5],[6]];

@seq = (
"a_0 = 1",
"a_1 = -1",
"a_2 = \frac{1}{2}",
"a_3 = -\frac{1}{6}",
"a_4 = \frac{1}{24}",
"a_5 = -\frac{1}{120}",
"\ldots"
);

$sequence = join(", ", @seq);

Setup: We set the test points to be positive integers to avoid errors when evaluating the answer. Even if you expect students to enter answers such as cos(pi * n) / n!, you should still restrict the domain to positive integers, because some students may simplify this to (-1)^n / n! and receive errors because the answer checker is substituting things such as n=0.5 into their formula.

We create an array of strings @seq and use Perl's join function to paste the entries in this array together into one long string with entries separated by commas.

Context()->texStrings;
BEGIN_TEXT
Find a formula for \( n^{th} \) term of the sequence \( $sequence \).
$BR
$BR
\( a_n = \)
\{ ans_rule(20) \}
\{ AnswerFormatHelp("formulas") \}
END_TEXT
Context()->normalStrings;

Main Text:

$showPartialCorrectAnswers = 1;

ANS( $answer->cmp() );

Answer Evaluation:

Context()->texStrings;
BEGIN_SOLUTION
${PAR}SOLUTION:${PAR}
Solution explanation goes here.
END_SOLUTION
Context()->normalStrings;

COMMENT('MathObject version.');

ENDDOCUMENT();

Solution:

Templates by Subject Area