MultipleSelectProblems: Difference between revisions
No edit summary |
No edit summary |
||
Line 47: | Line 47: | ||
# Insert a question and matching answers in the q/a list | # Insert a question and matching answers in the q/a list | ||
$cmc -> qa ( | $cmc -> qa ( | ||
"Please select all | "Please select all expressions that are equivalent to \(e^{x^2 + 1/x}\).", # question | ||
"\( | "\( e^{x^2} e^{1/x} \)", # a correct answer | ||
"\( | "\( e^{x^2} e^{x^{-1}} \)", # another correct answer | ||
"\( | "\( e^{(x^3+1)/x} \)", # Use " ... " to enter a string and \( \) for math | ||
# "All of the above", | |||
# "None of the above", | # "None of the above", | ||
); | ); | ||
# If the only correct answer is "None of the above", | # If the only correct answer is "All of the above" | ||
# | # or "None of the above", uncomment the | ||
# "All of the above" or "None of the above" string | |||
# above and remove all other correct answers from the list | |||
# Insert some incorrect answers | # Insert some incorrect answers | ||
$cmc -> extra( | $cmc -> extra( | ||
"\(\ | "\( e^{(x^2+1)/x \)", | ||
"\(\ | "\( e^{x^2} e^{-x} \)", | ||
"\( e^{x^2} e^{-x} \)", | |||
"\( \displaystyle \frac{e^{x^2}}{e^x} \)", | |||
); | ); | ||
# The next line can be | # The next line can be uncommented. | ||
$cmc->makeLast(" | # $cmc->makeLast("All of the above"); | ||
# Note that unlike match lists and select lists, you cannot call qa() again | # Note that unlike match lists and select lists, you cannot call qa() again |
Revision as of 21:57, 13 October 2009
Multiple Select Problems (or Checkbox Multiple Choice or Select All That Apply): PG Code Snippet
This code snippet shows the essential PG code to include multiple select question (or checkbox multiple choice or select all that apply) in a problem. A multiple choice question has only one correct answer, whereas a checkbox multiple choice question may require several items to be selected at the same time to be correct. 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.
Note that in this example we use old-style checkbox multiple choice answer objects. The new-style MathObjects do not yet have a checkbox multiple choice answer object yet.
PG problem file | Explanation |
---|---|
DOCUMENT(); loadMacros( "PG.pl", "PGbasicmacros.pl", "PGchoicemacros.pl", "PGanswermacros.pl" ); # Do not show which answers are incorrect. $showPartialCorrectAnswers = 0; |
In the initialization section of the file we need to include |
# Make a new checkbox multiple choice $cmc = new_checkbox_multiple_choice(); # $cmc now "contains" the checkbox multiple choice object. # Insert a question and matching answers in the q/a list $cmc -> qa ( "Please select all expressions that are equivalent to \(e^{x^2 + 1/x}\).", # question "\( e^{x^2} e^{1/x} \)", # a correct answer "\( e^{x^2} e^{x^{-1}} \)", # another correct answer "\( e^{(x^3+1)/x} \)", # Use " ... " to enter a string and \( \) for math # "All of the above", # "None of the above", ); # If the only correct answer is "All of the above" # or "None of the above", uncomment the # "All of the above" or "None of the above" string # above and remove all other correct answers from the list # Insert some incorrect answers $cmc -> extra( "\( e^{(x^2+1)/x \)", "\( e^{x^2} e^{-x} \)", "\( e^{x^2} e^{-x} \)", "\( \displaystyle \frac{e^{x^2}}{e^x} \)", ); # The next line can be uncommented. # $cmc->makeLast("All of the above"); # Note that unlike match lists and select lists, you cannot call qa() again |
In the problem set-up, we create a new checkbox multiple choice object with |
TEXT(beginproblem()); # Print the text using $cmc->print_q() for the questions and # $cmc->print_a() to print the answers. BEGIN_TEXT This is a place to insert additional text if you wish. $PAR \{ $cmc -> print_q() \} $PAR \{ $cmc -> print_a() \} END_TEXT |
In the text section we print the question and answers. |
# Enter the correct answers to be checked against the answers to the students. ANS(checkbox_cmp($cmc->correct_ans)); ENDDOCUMENT(); |
And we grade the problem with |