Difference between revisions of "AnswerOrderedList1"

From WeBWorK_wiki
Jump to navigation Jump to search
(PGML example link)
Line 6: Line 6:
 
</p>
 
</p>
 
* File location in OPL: [https://github.com/openwebwork/webwork-open-problem-library/blob/master/OpenProblemLibrary/FortLewis/Authoring/Templates/Sequences/AnswerOrderedList1.pg FortLewis/Authoring/Templates/Sequences/AnswerOrderedList.pg]
 
* File location in OPL: [https://github.com/openwebwork/webwork-open-problem-library/blob/master/OpenProblemLibrary/FortLewis/Authoring/Templates/Sequences/AnswerOrderedList1.pg FortLewis/Authoring/Templates/Sequences/AnswerOrderedList.pg]
  +
* PGML location in OPL: [https://github.com/openwebwork/webwork-open-problem-library/blob/master/OpenProblemLibrary/FortLewis/Authoring/Templates/Sequences/AnswerOrderedList1_PGML.pg FortLewis/Authoring/Templates/Sequences/AnswerOrderedList1_PGML.pg]
   
 
<br clear="all" />
 
<br clear="all" />

Revision as of 22:13, 13 June 2015

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.


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
Solution explanation goes here.
END_SOLUTION
Context()->normalStrings;

COMMENT('MathObject version.');

ENDDOCUMENT();

Solution:

Templates by Subject Area