Difference between revisions of "StringsInContext"
Line 39: | Line 39: | ||
</p> |
</p> |
||
<p> There are some shortcuts available if you need to add many allowable strings all at once. |
<p> There are some shortcuts available if you need to add many allowable strings all at once. |
||
− | [http://webwork.maa.org/doc/cvs/pg_CURRENT/macros/parserAutoStrings.pl.html parserAutoStrings.pl] |
+ | See [http://webwork.maa.org/doc/cvs/pg_CURRENT/macros/parserAutoStrings.pl.html parserAutoStrings.pl] |
</p> |
</p> |
||
</td> |
</td> |
Revision as of 22:48, 6 March 2009
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. See 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 |