From WeBWorK

Jump to: navigation


NAME

parserOneOf.pl - Implements a MathObject that allows students to entery any one of several possible right answers.

DESCRIPTION

This file implements a MathObject that allows the student to answer any one of several correct answers. The correct answer (when shown in the results table) will list all the possibilities.

To use it, load the macro file, and create a OneOf() object:

        loadMacros(
          "PGstandard.pl",
          "MathObjects.pl",
          "parserOneOf.pl",
        );
        
        $ans = OneOf(pi,"2x+1");

and create the answer checker as usual:

        ANS($ans->cmp);

If the student answers either "pi" or "2x+1" (or answers equivalent to those), the answer will be marked correct.

You can control the format of the correct answer string using the following flags on the OneOf object:

    separator => ", "             The string to use for the separator between
                                  choices in the correct answer string
    or => " or "                  The string to use before the final choice
    tex_separator => "\hbox{, }"  The string to use for the separator between
                                  choices for TeX output
    tex_or => "\hbox{ or }"       The string to use before the final choice in
                                  TeX output strings
    format => string or code      An sprintf-style format string to be used to
                                  format the choices, or a code reference to
                                  a subroutine that accepts the entries as input
                                  and returns the formatted string.
    tex_format => string or code  Same as format above, but for use in tex output.

You can set this using the with() method, or by setting the values explicitly. For example,

    $ans = OneOf(pi,"2x+1",34)->with(separator=>"; ",tex_separator=>";\,");

or

    $ans = OneOf(pi,"2x+1",34);
    $ans->{separator} = "; ";
    $ans->{tex_separator} = ";\, ";