ConstantsInProblems: Difference between revisions
| mNo edit summary | No edit summary | ||
| Line 18: | Line 18: | ||
|    Context("Numeric"); |    Context("Numeric"); | ||
|    Context()->constants->add(k=>0.01); |    Context()->constants->add(k=>0.01); | ||
|   # this means that student answers are | |||
|   #    not reduced to the numerical value | |||
|   #    specified in the Context | |||
|   Context()->flags->set( | |||
|       formatStudentAnswer=>'parsed' | |||
|   ); | |||
| </pre> | </pre> | ||
| </td> | </td> | ||
| Line 26: | Line 33: | ||
| <p> | <p> | ||
| In this case we specified <code>constants->add()</code>, so that the constant k is added to existing constants in the problem.  If we had used <code>constants->are()</code>, we would also remove all predefined constants from the Context (in a manner similar to the use of <code>variables->add()</code> and <code>variables->are()</code> when [[VariablesOtherThanX|defining variables]] in a problem. | In this case we specified <code>constants->add()</code>, so that the constant k is added to existing constants in the problem.  If we had used <code>constants->are()</code>, we would also remove all predefined constants from the Context (in a manner similar to the use of <code>variables->add()</code> and <code>variables->are()</code> when [[VariablesOtherThanX|defining variables]] in a problem. | ||
| </p> | |||
| <p> | |||
| One other tweak that we might want to put in here is to reset a | |||
| [[Context_flags|Context flag]] so that students' answers are not reduced to numerical | |||
| values when they are previewed or submitted.  This is done by setting the <code>formatStudentAnswer</code> flag, as shown. | |||
| </p> | </p> | ||
| </td> | </td> | ||
Revision as of 20:59, 20 November 2008
Named Constants in Problems: PG Code Snippet
This code snippet shows the essential PG code to include named constants in a WeBWorK problem. 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("Numeric");
  Context()->constants->add(k=>0.01);
  # this means that student answers are
  #    not reduced to the numerical value
  #    specified in the Context
  Context()->flags->set(
      formatStudentAnswer=>'parsed'
  );
 | No changes are needed in the tagging and description or initialization sections of the problem file. In the problem set-up section, we add to the Context the constants we're going to use. Here we define a constant k, and assign it a value that will be used when expressions involving k are evaluated. 
In this case we specified  
One other tweak that we might want to put in here is to reset a
Context flag so that students' answers are not reduced to numerical
values when they are previewed or submitted.  This is done by setting the  | 
|   BEGIN_TEXT
  \(f(x) = x-k\) (where \(k>0\) is constant)
  is zero when $BR
  \(x = \)\{ ans_rule(15) \}
  END_TEXT
 | In the text section of the problem we then ask a question involving the constant. | 
|   ANS( Compute("k")->cmp() );
 | And in the answer and solution section of the file we can refer to the constant in the solution to the problem. |