--- loncom/homework/default_homework.lcpm 2000/10/30 20:36:18 1.9 +++ loncom/homework/default_homework.lcpm 2000/11/21 18:36:37 1.10 @@ -5,10 +5,10 @@ $RANDOMINIT=0; sub caparesponse_check { - my $answer=''; - my $type=''; - my $tol_type=''; - my $tolerance=''; + my $answer=''; #done + my $type=''; #done + my $tol_type=''; # gets it's value from whether tol has a % or not done + my $tol=''; #done my $sig_lbound=''; my $sig_ubound=''; my $ans_fmt=''; @@ -16,8 +16,8 @@ sub caparesponse_check { my $calc=''; my ($response,$expr)=@_; - ($answer,$type,$tol_type,$tolerance,$sig_lbound,$sig_ubound,$ans_fmt, - $units,$calc) = eval $expr.'return $answer,$type,$tol_type,$tolerance,$sig_lbound,$sig_ubound,$ans_fmt,$units,$calc'; + ($answer,$type,$tol,$sig_lbound,$sig_ubound,$ans_fmt, + $units,$calc) = eval $expr.'return $answer,$type,$tol,$sig_lbound,$sig_ubound,$ans_fmt,$units,$calc'; #type's definitons come from capaParser.h if ($type eq '' ) { @@ -32,9 +32,19 @@ sub caparesponse_check { } else { return "ERROR: Unknown type of answer: $type" } } - + if ($tol eq '') { + $tol=0.0; + $tol_type=1; #TOL_ABSOLUTE + } else { + if ($tol =~ /%$/) { + $tol=chop($tol); + $tol_type=2; #TOL_PERCENTAGE + } else { + $tol_type=1; #TOL_ABSOLUTE + } + } my $result = &caparesponse_capa_check_answer($response,$answer,$type, - $tol_type,$tolerance, + $tol_type,$tol, $sig_lbound,$sig_ubound, $ans_fmt, $units,$calc); @@ -52,7 +62,7 @@ sub caparesponse_check { elsif ($result =='12') { $result='WANTED_NUMERIC'; } else {$result = "ERROR: Unknown Result: $result";} - return ":$result:$response:$answer:"; + return "$result:$tol:$tol_type"; } sub tex { @@ -116,6 +126,7 @@ sub floor {return int($_[0]); } sub format { my ($value,$fmt)=@_; $SCRIPT_RESULT.=sprintf('%.'.$fmt,$value); + return $SCRIPT_RESULT; } sub map {