Difference between revisions of "AnswerOrderedList1"
Jump to navigation
Jump to search
Paultpearson (talk | contribs) |
(add historical tag and give links to newer problems.) |
||
(2 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
+ | {{historical}} |
||
+ | |||
+ | <p style="font-size: 120%;font-weight:bold">This problem has been replaced with [https://openwebwork.github.io/pg-docs/sample-problems/Sequences/AnswerOrderedList.html a newer version of this problem]</p> |
||
+ | |||
<h2>Answer is an Ordered List</h2> |
<h2>Answer is an Ordered List</h2> |
||
Line 5: | Line 9: | ||
This PG code shows how to write a question in which the answer is an ordered list, such as a sequence of numbers. |
This PG code shows how to write a question in which the answer is an ordered list, such as a sequence of numbers. |
||
</p> |
</p> |
||
− | * |
+ | * 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" /> |
||
Line 15: | Line 19: | ||
<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 42: | Line 46: | ||
loadMacros( |
loadMacros( |
||
− | + | 'PGstandard.pl', |
|
− | + | 'MathObjects.pl', |
|
− | + | 'PGML.pl', |
|
+ | 'PGcourse.pl' |
||
); |
); |
||
Line 72: | Line 76: | ||
} |
} |
||
− | $ |
+ | $answer_string = join(', ',@seq); |
− | $ |
+ | $answer_cmp = Compute("$answer_string")->cmp(ordered=>1); |
</pre> |
</pre> |
||
</td> |
</td> |
||
Line 80: | Line 84: | ||
<b>Setup:</b> |
<b>Setup:</b> |
||
We create an empty array <code>@seq</code> and then fill it with scalars using direct assignment and a foreach loop. Since the entries in the array <code>@seq</code> do not have commas between them, we create a Perl string <code>$answer</code> that joins the entries of the array <code>@seq</code> by a comma followed by a space <code>", "</code>. Then, we make this string a MathObject by putting <code>Compute()</code> around it. |
We create an empty array <code>@seq</code> and then fill it with scalars using direct assignment and a foreach loop. Since the entries in the array <code>@seq</code> do not have commas between them, we create a Perl string <code>$answer</code> that joins the entries of the array <code>@seq</code> by a comma followed by a space <code>", "</code>. Then, we make this string a MathObject by putting <code>Compute()</code> around it. |
||
+ | </p> |
||
+ | <p> |
||
+ | Since the answer is a MathObject List, which is by default unordered, we must specify that the answer checker use <code>ordered=>1</code> |
||
</p> |
</p> |
||
</td> |
</td> |
||
Line 89: | Line 96: | ||
<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 |
||
+ | If [` s_1 = [$seq[0]] `], [` s_2 = [$seq[1]] `], and |
||
− | If \( s_1 = $seq[0] \), \( s_2 = $seq[1] \), and |
||
+ | [` s_n = s_{n-1} + s_{n-2} `], find the first seven |
||
− | \( s_n = s_{n-1} + s_{n-2} \), find the first seven |
||
+ | terms of this sequence, including [` s_1 `] and |
||
− | terms of this sequence, including \( s_1 \) and |
||
+ | [` s_2 `]. Enter your answer as a comma separated |
||
− | \( s_2 \). Enter your answer as a comma separated |
||
list of numbers. |
list of numbers. |
||
− | $BR |
||
+ | |||
− | $BR |
||
+ | Sequence = [_____]{$answer_cmp} |
||
− | Sequence = \{ ans_rule(40) \} |
||
+ | |||
− | + | [@ helpLink('numbers') @]* |
|
− | + | END_PGML |
|
− | Context()->normalStrings; |
||
</pre> |
</pre> |
||
<td style="background-color:#ffcccc;padding:7px;"> |
<td style="background-color:#ffcccc;padding:7px;"> |
||
<p> |
<p> |
||
<b>Main Text:</b> |
<b>Main Text:</b> |
||
− | </p> |
||
− | </td> |
||
− | </tr> |
||
− | |||
− | <!-- Answer evaluation section --> |
||
− | |||
− | <tr valign="top"> |
||
− | <td style="background-color:#eeddff;border:black 1px dashed;"> |
||
− | <pre> |
||
− | $showPartialCorrectAnswers=1; |
||
− | |||
− | ANS( $answer->cmp(ordered=>1) ); |
||
− | </pre> |
||
− | <td style="background-color:#eeccff;padding:7px;"> |
||
− | <p> |
||
− | <b>Answer Evaluation:</b> |
||
− | Since the answer is a MathObject List, which is by default unordered, we must specify that the answer checker use <code>ordered=>1</code> |
||
</p> |
</p> |
||
</td> |
</td> |
Latest revision as of 07:43, 18 July 2023
This problem has been replaced with a newer version of this problem
Answer is an Ordered List
This PG code shows how to write a question in which the answer is an ordered list, such as a sequence of numbers.
- PGML location in OPL: FortLewis/Authoring/Templates/Sequences/AnswerOrderedList1_PGML.pg
PG problem file | Explanation |
---|---|
Problem tagging: |
|
DOCUMENT(); loadMacros( 'PGstandard.pl', 'MathObjects.pl', 'PGML.pl', 'PGcourse.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_string = join(', ',@seq); $answer_cmp = Compute("$answer_string")->cmp(ordered=>1); |
Setup:
We create an empty array
Since the answer is a MathObject List, which is by default unordered, we must specify that the answer checker use |
BEGIN_PGML 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. Sequence = [_____]{$answer_cmp} [@ helpLink('numbers') @]* END_PGML |
Main Text: |
Context()->texStrings; BEGIN_SOLUTION Solution explanation goes here. END_SOLUTION Context()->normalStrings; COMMENT('MathObject version.'); ENDDOCUMENT(); |
Solution: |