StringsInContext
Allowing String Answers: PG Code Snippet
This code snippet shows the essential PG code to allow students to enter text as alternate answers in a question. 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 |
---|---|
Context()->strings->add(none=>{}); # or, if we wanted a case-sensitive string, # we would instead use # Context()->strings->add( # none=>{caseSensitive=>1}); |
No changes are necessary to the tagging and description or initialization sections of the problem file. In the problem set-up section, we add the strings that are to be allowed in answers to the Context. Note that the add call has the form Context()->strings->add(none=>{}, N=>{alias=>"none"}); (Which would allow "N" to be used instead of "none".) By default, strings are case-insensitive. To make them case sensitive, include this as an option in the Context call. There are some shortcuts available if you need to add many allowable strings all at once. parserAutoStrings.pl |
BEGIN_TEXT Enter the positive real value of \(x\) for which \(x^2 = -2\): $BR \(x = \) \{ ans_rule(15) \} $BR ${BITALIC}(Enter ${BBOLD}none$EBOLD if there are no values that satisfy the equation.)$EITALIC |
In the text section of the problem file, we include the problem as expected. It's usually a good idea to include some indication of what strings are expected or allowed in the answer. |
ANS( Compute("none")->cmp() ); |
And in the answer and solution section of the file, we evaluate the answer as expected. Note that if the problem had a solution, we could have used something like |