next up previous contents
Next: Graphs Up: WeBWorK Newbie Guide - Previous: Example   Contents

Multiple Choice Problems

Here is a simple multiple choice question: identify the interval containing $ \pi$. In this set up, we introduce a permutation so that even though the answers are fixed, the correct answer will not necessarily be the same for all students.

The snippet of code is below. This is a good deal simpler than the matching questions, and hopefully the code is clear. Once again we have to retrieve the answer from an ordered list. The correct answer is $answers[1] (the second answer!). The letters are listed with $ALPHABET[i] corresponding to $answers[$ \sigma$(i)], so $answers[1] corresponds to $ALPHABET[ $ \sigma^{-1}$(1)].

@answers = ("the interval \( [2, 3) \)",
            "the interval \( [3, 4) \)",
            "the interval \( [4, 5) \)",
            "the interval \( [5, 6) \)");

## A list consisting of 0, 1, 2, 3 in "random" order.
@permutation = NchooseK(4,4);

## Ok, we are ready to begin...
##

TEXT(beginproblem());

BEGIN_TEXT
$BR
    The real number \( \pi \) is which interval? \{ans_rule(10)\}
$BR
END_TEXT

TEXT(OL(@answers[@permutation]));

@inverted_alphabet = @ALPHABET[invert(@permutation)];

## The answer is $answers[1]
ANS(std_str_cmp($inverted_alphabet[1]));



Thomas R. Shemanske 2002-03-05