AnswerOrderedList1

From WeBWorK_wiki
Revision as of 18:23, 5 December 2010 by Pearson (talk | contribs) (Created page with '<h2>Answer is an Ordered List</h2> 300px|thumb|right|Click to enlarge <p style="background-color:#f9f9f9;border:black solid 1px;padding:3px;"> Th…')
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Answer is an Ordered List

Click to enlarge

This PG code shows how to write a question in which the answer is an ordered list, such as a sequence of numbers.

  • Download file: File:AnswerOrderedList1.txt (change the file extension from txt to pg when you save it)
  • File location in NPL: FortLewis/Authoring/Templates/Sequences/AnswerOrderedList.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");

@seq = ();
$seq[0] = 1;
$seq[1] = 1;
foreach my $i (2..6) {
  $seq[$i] = $seq[$i-1] + $seq[$i-2];
}

$answer = join(", ",@seq);
$answer = Compute("$answer");

Setup: We create an empty array @seq and then fill it with scalars using direct assignment and a foreach loop. Since the entries in the array @seq do not have commas between them, we create a Perl string $answer that joins the entries of the array @seq by a comma followed by a space ", ". Then, we make this string a MathObject by putting Compute() around it.

Context()->texStrings;
BEGIN_TEXT
If \( s_1 = $seq[0] \), \( s_2 = $seq[1] \), and
\( s_n = s_{n-1} + s_{n-2} \), find the first seven
terms of this sequence, including \( s_1 \) and 
\( s_2 \).  Enter your answer as a comma separated
list of numbers.
$BR
$BR
Sequence = \{ ans_rule(40) \}
\{ AnswerFormatHelp("numbers") \} 
END_TEXT
Context()->normalStrings;

Main Text:

$showPartialCorrectAnswers=1;

ANS( $answer->cmp(ordered=>1) );

Answer Evaluation: Since the answer is a MathObject List, which is by default unordered, we must specify that the answer checker use ordered=>1

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

COMMENT('MathObject version.');

ENDDOCUMENT();

Solution:

Templates by Subject Area