version 1.168, 2005/05/23 21:18:25
|
version 1.173, 2005/07/11 18:24:12
|
Line 121 sub start_numericalresponse {
|
Line 121 sub start_numericalresponse {
|
} |
} |
|
|
sub check_submission { |
sub check_submission { |
my ($response,$partid,$id,$tag,$parstack,$safeeval)=@_; |
my ($response,$partid,$id,$tag,$parstack,$safeeval,$ignore_sig)=@_; |
my $args_ref= \%{$safeeval->varglob('LONCAPA::CAPAresponse_args')}; |
my $args_ref= \%{$safeeval->varglob('LONCAPA::CAPAresponse_args')}; |
$$args_ref{'response'}=$response; |
$$args_ref{'response'}=$response; |
my $hideunit=&Apache::lonnet::EXT('resource.'.$partid.'_'.$id.'.turnoffunit'); |
my $hideunit=&Apache::lonnet::EXT('resource.'.$partid.'_'.$id.'.turnoffunit'); |
Line 142 sub check_submission {
|
Line 142 sub check_submission {
|
} |
} |
#sig fig don't make much sense either |
#sig fig don't make much sense either |
if (($Apache::lonhomework::type eq 'exam' || |
if (($Apache::lonhomework::type eq 'exam' || |
&Apache::response::submitted('scantron')) && |
&Apache::response::submitted('scantron') || |
|
$ignore_sig) && |
$tag eq 'numericalresponse') { |
$tag eq 'numericalresponse') { |
delete($$args_ref{'sig'}); |
delete($$args_ref{'sig'}); |
} |
} |
Line 352 sub end_numericalresponse {
|
Line 353 sub end_numericalresponse {
|
#} |
#} |
} |
} |
my $response=$ans; |
my $response=$ans; |
|
if ($unit) { |
|
my $cleanunit=$unit; |
|
$cleanunit=~s/\$\,//g; |
|
$response.=" $cleanunit"; |
|
} |
if ($target eq 'answer') { |
if ($target eq 'answer') { |
if ($high && $tag eq 'numericalresponse') { $ans.=' ['.$low.','.$high.']'; } |
if ($high && $tag eq 'numericalresponse') { $ans.=' ['.$low.','.$high.']'; } |
if (defined($sighigh) && $tag eq 'numericalresponse') { |
if (defined($sighigh) && $tag eq 'numericalresponse') { |
Line 376 sub end_numericalresponse {
|
Line 382 sub end_numericalresponse {
|
$parstack,$safeeval); |
$parstack,$safeeval); |
my ($ad,$msg) =&Apache::inputtags::finalizeawards($awards,$msgs); |
my ($ad,$msg) =&Apache::inputtags::finalizeawards($awards,$msgs); |
if ($ad ne 'EXACT_ANS' && $ad ne 'APPROX_ANS') { |
if ($ad ne 'EXACT_ANS' && $ad ne 'APPROX_ANS') { |
&Apache::lonxml::error(&mt('Computer\'s answer is incorrect ("[_1]"). It is likely that the tolerance range ("[_2]" to "[_3]") or significant figures ("[_4]" to "[_5]") needs to be adjusted',$response,$low,$high,$siglow,$sighigh)); |
# answer failed check if it is sig figs that is failing |
|
my ($awards,$msgs)=&check_submission($response,$partid,$id, |
|
$tag,$parstack,$safeeval, |
|
1); |
|
my ($ad,$msg)=&Apache::inputtags::finalizeawards($awards, |
|
$msgs); |
|
|
|
my $error; |
|
if ($siglow ne '' && $sighigh ne '') { |
|
$error=&mt('Computer\'s answer is incorrect ("[_1]"). It is likely that the tolerance range ("[_2]" to "[_3]") or significant figures ("[_4]" to "[_5]") need to be adjusted.',$response,$low,$high,$siglow,$sighigh); |
|
} else { |
|
$error=&mt('Computer\'s answer is incorrect ("[_1]"). It is likely that the tolerance range ("[_2]" to "[_3]") needs to be adjusted.',$response,$low,$high); |
|
} |
|
if ($ad ne 'EXACT_ANS' && $ad ne 'APPROX_ANS') { |
|
&Apache::lonxml::error($error); |
|
} else { |
|
&Apache::lonxml::warning($error); |
|
} |
} |
} |
} |
} |
if (defined($unit) and ($unit ne '') and |
if (defined($unit) and ($unit ne '') and |