version 1.107, 2003/07/28 18:29:05
|
version 1.115, 2003/10/14 22:53:22
|
Line 114 sub end_numericalresponse {
|
Line 114 sub end_numericalresponse {
|
if ( $response =~ /[^\s]/) { |
if ( $response =~ /[^\s]/) { |
my $ad; |
my $ad; |
my %previous = &Apache::response::check_for_previous($response,$partid,$id); |
my %previous = &Apache::response::check_for_previous($response,$partid,$id); |
$Apache::lonhomework::results{"resource.$partid.$id.submission"}=$response; |
|
&Apache::lonxml::debug("submitted a $response<br>\n"); |
&Apache::lonxml::debug("submitted a $response<br>\n"); |
&Apache::lonxml::debug($$parstack[-1] . "\n<br>"); |
&Apache::lonxml::debug($$parstack[-1] . "\n<br>"); |
|
|
Line 131 sub end_numericalresponse {
|
Line 130 sub end_numericalresponse {
|
$response =~ s/\\/\\\\/g; |
$response =~ s/\\/\\\\/g; |
$response =~ s/\'/\\\'/g; |
$response =~ s/\'/\\\'/g; |
} |
} |
|
$Apache::lonhomework::results{"resource.$partid.$id.submission"}=$response; |
&Apache::lonxml::debug("current $response"); |
&Apache::lonxml::debug("current $response"); |
my $expression="&caparesponse_check_list('".$response."','". |
my $expression="&caparesponse_check_list('".$response."','". |
$$parstack[-1]; |
$$parstack[-1]; |
Line 169 sub end_numericalresponse {
|
Line 169 sub end_numericalresponse {
|
$safeeval); |
$safeeval); |
my $award = $Apache::lonhomework::history{"resource.$Apache::inputtags::part.solved"}; |
my $award = $Apache::lonhomework::history{"resource.$Apache::inputtags::part.solved"}; |
my $status = $Apache::inputtags::status['-1']; |
my $status = $Apache::inputtags::status['-1']; |
if ( ($award =~ /^correct/ |
if ( &Apache::response::show_answer() ) { |
&& lc($Apache::lonhomework::problemstatus) ne 'no') |
|
|| $status eq "SHOW_ANSWER" |
|
|| $ENV{'form.texaward'} eq 'SHOW_ANSWER') { |
|
my (@formats)=&Apache::lonxml::get_param_var('format',$parstack, |
my (@formats)=&Apache::lonxml::get_param_var('format',$parstack, |
$safeeval); |
$safeeval); |
my $unit=&Apache::lonxml::get_param_var('unit',$parstack, |
my $unit=&Apache::lonxml::get_param_var('unit',$parstack, |
$safeeval); |
$safeeval); |
if ($target eq 'web') { |
if ($target eq 'web') { |
$result="<br />The correct answer is "; |
$result="<br />The correct answer is "; |
} elsif ($target eq 'tex') { |
|
if ($ENV{'form.texaward'} eq 'SHOW_ANSWER') { |
|
$result='\vskip 0 mm The correct answer is \\texttt{ '; |
|
} |
|
} |
} |
for (my $i=0; $i <= $#answers; $i++) { |
for (my $i=0; $i <= $#answers; $i++) { |
my $answer=$answers[$i]; |
my $answer=$answers[$i]; |
Line 194 sub end_numericalresponse {
|
Line 187 sub end_numericalresponse {
|
} |
} |
my $formatted; |
my $formatted; |
if ((defined($format)) && ($format ne '')) { |
if ((defined($format)) && ($format ne '')) { |
|
$format=~s/e/E/g; |
&Apache::lonxml::debug("formatting with :$format: answer :$answer:"); |
&Apache::lonxml::debug("formatting with :$format: answer :$answer:"); |
$formatted=sprintf('%.'.$format,$answer).','; |
$formatted=sprintf('%.'.$format,$answer).','; |
} else { |
} else { |
&Apache::lonxml::debug("no format answer :$answer:"); |
&Apache::lonxml::debug("no format answer :$answer:"); |
$formatted="$answer,"; |
$formatted="$answer,"; |
} |
} |
if ($ENV{'form.texaward'} eq 'SHOW_ANSWER') { |
|
$result.=$formatted; |
|
} |
|
if ($target eq 'tex') { |
if ($target eq 'tex') { |
$formatted=''; |
$formatted=''; |
#$formatted=&Apache::lonxml::latex_special_symbols($formatted); |
#$formatted=&Apache::lonxml::latex_special_symbols($formatted); |
Line 212 sub end_numericalresponse {
|
Line 203 sub end_numericalresponse {
|
chop $result; |
chop $result; |
if ($target eq 'web') { |
if ($target eq 'web') { |
$result.=" $unit.<br />"; |
$result.=" $unit.<br />"; |
} elsif ($target eq 'tex') { |
|
if ($ENV{'form.texaward'} eq 'SHOW_ANSWER') { |
|
$result.=&Apache::lonxml::latex_special_symbols($unit); |
|
$result.="}. \\vskip 0 mm "; |
|
} |
|
} |
} |
} |
} |
if ($Apache::lonhomework::type eq 'exam') { |
if ($Apache::lonhomework::type eq 'exam') { |
Line 314 sub end_numericalresponse {
|
Line 300 sub end_numericalresponse {
|
($sighigh,$siglow)=&get_sigrange($Apache::inputtags::params{'sig'}); |
($sighigh,$siglow)=&get_sigrange($Apache::inputtags::params{'sig'}); |
} |
} |
if ($fmt && $$tagstack[-1] eq 'numericalresponse') { |
if ($fmt && $$tagstack[-1] eq 'numericalresponse') { |
|
$fmt=~s/e/E/g; |
$ans = sprintf('%.'.$fmt,$ans); |
$ans = sprintf('%.'.$fmt,$ans); |
if ($high) { |
if ($high) { |
$high=sprintf('%.'.$fmt,$high); |
$high=sprintf('%.'.$fmt,$high); |
Line 366 sub end_numericalresponse {
|
Line 353 sub end_numericalresponse {
|
if ($target eq 'answer') { |
if ($target eq 'answer') { |
if ($ENV{'form.answer_output_mode'} eq 'tex') { |
if ($ENV{'form.answer_output_mode'} eq 'tex') { |
$result.=&Apache::response::answer_part($$tagstack[-1], |
$result.=&Apache::response::answer_part($$tagstack[-1], |
"\\textbf{$string}"); |
"$string"); |
} else { |
} else { |
$result.=&Apache::response::answer_part($$tagstack[-1], |
$result.=&Apache::response::answer_part($$tagstack[-1], |
"<b>$string</b>"); |
"<b>$string</b>"); |
Line 416 sub format_number {
|
Line 403 sub format_number {
|
my ($number,$format,$target)=@_; |
my ($number,$format,$target)=@_; |
my $ans; |
my $ans; |
if ($format ne '') { |
if ($format ne '') { |
|
$format=~s/e/E/g; |
$ans = sprintf('%.'.$format,$number); |
$ans = sprintf('%.'.$format,$number); |
} else { |
} else { |
my $format = ''; |
my $format = ''; |
#What is the number? (integer,decimal,floating point) |
#What is the number? (integer,decimal,floating point) |
if ($number=~/^(\d*\.?\d*)(E|e)(\d*)$/) { |
if ($number=~/^(\d*\.?\d*)(E|e)(\d*)$/) { |
$format = 'e'.$2; |
$format = '3e'; |
} elsif ($number=~/^(\d*)\.(\d*)$/) { |
} elsif ($number=~/^(\d*)\.(\d*)$/) { |
$format = '4f'; |
$format = '4f'; |
} elsif ($number=~/^(\d*)$/) { |
} elsif ($number=~/^(\d*)$/) { |