Difference between revisions of "PopUpListsLong"
Line 1: | Line 1: | ||
− | <h2>Pop-Up Lists |
+ | <h2>Pop-Up Lists For Many Questions With Common Answers: PG Code Snippet</h2> |
+ | <p> |
||
+ | Often you may have many questions that have the same set of answers, such as a list of true or false questions, or a list of multiple choice questions in which the choices are the same for each question. This PG code allows takes the hassle out of creating such a PG problem by requiring only that you modify an array of questions and answers, the instructions for the student, and the list of choices for each question. |
||
+ | </p> |
||
<p style="background-color:#eeeeee;border:black solid 1px;padding:3px;"> |
<p style="background-color:#eeeeee;border:black solid 1px;padding:3px;"> |
Revision as of 11:15, 19 October 2009
Pop-Up Lists For Many Questions With Common Answers: PG Code Snippet
Often you may have many questions that have the same set of answers, such as a list of true or false questions, or a list of multiple choice questions in which the choices are the same for each question. This PG code allows takes the hassle out of creating such a PG problem by requiring only that you modify an array of questions and answers, the instructions for the student, and the list of choices for each question.
This code snippet shows the PG code to create lengthy pop-up lists in a WeBWorK problem. Note that these are insertions, not a complete PG file. This code will have to be incorporated into the problem file on which you are working.
PG problem file | Explanation |
---|---|
DOCUMENT(); loadMacros( "PG.pl", "PGstandard.pl", "PGcourse.pl", "PGchoicemacros.pl", ); TEXT(beginproblem); |
Initialization: We need to include the |
@questions_and_answers = ( "Larry is one of the three stooges.","True", "\(\pi\) is rational","False", "Gandalf is one of the three stooges.","False" ); |
Set-up: An array in which questions alternate with answers. This is the only part of this example that needs to be modified. Answers may be any string. |
BEGIN_TEXT Are the following statements true or false? $PAR END_TEXT |
Instructions and Question for all parts: Modify the instructions if you want. You should give what the possible answers are here so that students who have a pdf hardcopy / paper-copy can work directly from it. |
$n = scalar(@questions_and_answers)/2; @shuffle = shuffle($n); @abc = (a..z); for $jj (0..$n-1) { $j = $shuffle[$jj]; BEGIN_TEXT @abc[$jj]. \{ pop_up_list(['?', 'True', 'False']) \} $SPACE $questions_and_answers[2*$j] $BR$BR END_TEXT ANS(str_cmp($questions_and_answers[2*$j+1], filters=>["trim_whitespace","compress_whitespace"])); } ENDDOCUMENT(); |
Main Text and Answer Evaluation: Shuffle the order of the questions and use a for loop to generate one question and one answer evaluator for each pair in the array @questions_and_answers. You can change the pop-up list options ['?','True','False'] to any number of strings you want. |