Parent Directory | Revision Log

Revision **5373** -
(**download**)
(**as text**)
(**annotate**)

*Sun Aug 19 02:01:57 2007 UTC*
(12 years, 5 months ago)
by *dpvc*

File size: 1557 byte(s)

File size: 1557 byte(s)

Normalized comments and headers to that they will format their POD documentation properly. (I know that the POD processing was supposed to strip off the initial #, but that doesn't seem to happen, so I've added a space throughout.)

1 loadMacros('MathObjects.pl'); 2 3 sub _contextIntegerFunctions_init {}; # don't reload this file 4 5 =head3 Context("IntegerFunctions") 6 7 ###################################################################### 8 # 9 # This is a Parser context that adds integer related functions C(n,r) 10 # and P(n,r). They can be used by the problem author and also by 11 # students if the answer checking is done by Parser. The latter is 12 # the main purpose of this file. 13 # 14 # Note: by default, webwork problems do not permit students to use 15 # C(n,r) and P(n,r) functions. Problems which do permit this 16 # should alert the student in their text. 17 # 18 # Usage examples: 19 # $b = random(2, 5); $a = $b+random(0, 5); 20 # $c = C($a, $b); 21 # ANS(Compute("P($a, $b)")->cmp); 22 # 23 # Note: If the context is set to something else, such as Numeric, it 24 # can be set back with Context("IntegerFunctions"). 25 26 =cut 27 28 $context{IntegerFunctions} = Parser::Context->getCopy("Numeric"); 29 30 package IntegerFunction2; 31 our @ISA = qw(Parser::Function::numeric2); # checks for 2 numeric inputs 32 33 sub C { 34 shift; my ($n,$r) = @_; my $C = 1; 35 return (0) if($r>$n); 36 $r = $n-$r if ($r > $n-$r); # find the smaller of the two 37 for (1..$r) {$C = ($C*($n-$_+1))/$_} 38 return $C 39 } 40 41 sub P { 42 shift; my ($n,$r) = @_; my $P = 1; 43 return (0) if($r>$n); 44 for (1..$r) {$P *= ($n-$_+1)} 45 return $P 46 } 47 48 package main; 49 50 $context{'IntegerFunctions'}->functions->add( 51 C => {class => 'IntegerFunction2'}, 52 P => {class => 'IntegerFunction2'}, 53 ); 54 55 Context("IntegerFunctions"); 56 57 1;

aubreyja at gmail dot com | ViewVC Help |

Powered by ViewVC 1.0.9 |