version 1.253, 2012/12/14 11:17:09
|
version 1.254, 2013/01/21 06:04:07
|
Line 1
|
Line 1
|
# The LearningOnline Network with CAPA |
# The LearningOnline Network with CAPA |
# caparesponse definition |
# caparesponse definition |
# |
# |
# caparesponse.pm,v 1.249.8.2 2012/02/04 20:40:15 foxr |
# $Id$ |
# |
# |
# Copyright Michigan State University Board of Trustees |
# Copyright Michigan State University Board of Trustees |
# |
# |
Line 446 sub check_submission {
|
Line 446 sub check_submission {
|
} |
} |
|
|
my (@final_awards,@final_msgs,@names); |
my (@final_awards,@final_msgs,@names); |
# $Apache::lonxml::debug = 1; # DEBUG |
|
foreach my $name (keys(%answer)) { |
foreach my $name (keys(%answer)) { |
&Apache::lonxml::debug(" doing $name with ".join(':',@{ $answer{$name}{'answers'} })); |
&Apache::lonxml::debug(" doing $name with ".join(':',@{ $answer{$name}{'answers'} })); |
|
|
Line 465 sub check_submission {
|
Line 464 sub check_submission {
|
push(@final_msgs,$msg); |
push(@final_msgs,$msg); |
push(@names,$name); |
push(@names,$name); |
} |
} |
# $Apache::lonxml::debug = 0; # DEBUG |
|
my ($ad, $msg, $name) = &Apache::inputtags::finalizeawards(\@final_awards, |
my ($ad, $msg, $name) = &Apache::inputtags::finalizeawards(\@final_awards, |
\@final_msgs, |
\@final_msgs, |
\@names,1); |
\@names,1); |
Line 785 sub end_numericalresponse {
|
Line 783 sub end_numericalresponse {
|
$ans.=" $cleanunit"; |
$ans.=" $cleanunit"; |
} |
} |
} |
} |
# |
|
# The computer's response must be cast in a form that |
|
# ensures it has sufficient significant figures. |
|
# the only way to do this is to sprintf it into scientific notation |
|
# due to the ambiguity of trailing zeros. |
|
# See Bug 6577 |
|
# |
|
my ($sigMax, $sigmin) = &get_sigrange($Apache::inputtags::params{'sig'}); |
|
my $sigfigs = $sigMax-1; |
|
|
|
for (my $i = 0; $i < scalar @$response; $i++) { |
|
$response->[$i] = sprintf('%.' . $sigfigs . 'e', $response->[$i]); |
|
} |
|
my ($ad,$msg)=&check_submission($response,$partid,$id,$tag, |
my ($ad,$msg)=&check_submission($response,$partid,$id,$tag, |
$parstack,$safeeval); |
$parstack,$safeeval); |
if ($ad ne 'EXACT_ANS' && $ad ne 'APPROX_ANS') { |
if ($ad ne 'EXACT_ANS' && $ad ne 'APPROX_ANS') { |