Volume3

From WeBWorK
Jump to: navigation, search

A Question That Provides Credit Only When All Answers Are Correct

Click to enlarge

This PG code shows how to ask students to set up a volume of solids of revolution integral in which all parts must be correct for the student to receive any credit.


Templates by Subject Area

PG problem file Explanation

Problem tagging data

Problem tagging:

DOCUMENT();

loadMacros(
"PGstandard.pl",
"MathObjects.pl",
"PGunion.pl",
"answerHints.pl",
);

TEXT(beginproblem());

install_problem_grader(~~&std_problem_grader);

$showPartialCorrectAnswers = 1;

Initialization: We install the standard problem grader, which is an all-or-nothing grader.

Context("Numeric");
Context()->variables->are(
x=>"Real", dx=>"Real",
y=>"Real", dy=>"Real"
);

$f = Compute("x");
$g = Compute("x^2");

$upper = Real("1");
$lower = Real("0");
# answers below are intentionally wrong
$int = Compute("( pi x - pi x^2 ) dx");
$vol = Compute("pi"); 


#
#  Display the answer blanks properly in different modes
#
Context()->texStrings;
if ($displayMode eq 'TeX') {
   $integral =
   'Volume = \(\displaystyle' . 
     '\int_{'. 
     ans_rule(4). '}^{'. 
     ans_rule(4). '}'. 
     ans_rule(30). ' = '.
     ans_rule(10). 
   '\)';
  } else {
   $integral =
   BeginTable(center=>0).
     Row([
       'Volume = \(\displaystyle\int\)',
       ans_rule(4).$BR.$BR.
       ans_rule(4),
       ans_rule(30).$SPACE.' = '.$SPACE.
       ans_rule(10),
     ],separation=>2).
   EndTable();
}
Context()->normalStrings;

Setup: Notice that we use ans_rule(width) for all of the answer blanks.

Context()->texStrings;
BEGIN_TEXT
Set up and evaluate an integral for the volume
of the solid of revolution obtained by rotating
the region bounded by \( y = $f \) and \( y = $g \)
about the \(x\)-axis.
$BR
$BR
$integral
END_TEXT
Context()->normalStrings;

Main Text: The standard problem grader automatically provides a message to students that says the grading will be all or nothing.

ANS( $upper->cmp() );
ANS( $lower->cmp() );
ANS( $int->cmp()
->withPostFilter(AnswerHints( 
  Formula("pi x - pi x^2 dx") => "Don't forget to multiply every 
                                  term in the integrand by dx",
  Formula("pi x - pi x^2") => "Don't forget the differential dx", 
  Formula("(pi x^2 - pi x)*dx") => "Is the parabola above the line?",
  Formula("pi x^2 - pi x") => "Is the parabola above the line?",
))
);
ANS( $vol->cmp() );

Answer Evaluation:

Context()->texStrings;
BEGIN_SOLUTION
Solution explanation goes here.
END_SOLUTION
Context()->normalStrings;


COMMENT('MathObject version.  Gives full credit only 
if all answers are correct.');

ENDDOCUMENT();

Solution:

Templates by Subject Area

follow us