version 1.259, 2018/09/13 17:00:05
|
version 1.262, 2020/12/05 05:01:18
|
Line 760 sub end_numericalresponse {
|
Line 760 sub end_numericalresponse {
|
my $ans=$answers[$i]; |
my $ans=$answers[$i]; |
my $fmt=$formats[0]; |
my $fmt=$formats[0]; |
if (@formats && $#formats) {$fmt=$formats[$i];} |
if (@formats && $#formats) {$fmt=$formats[$i];} |
foreach my $element (@$ans) { |
my @answers; |
|
if (ref($ans) eq 'ARRAY') { |
|
@answers = (@{$ans}); |
|
} |
|
foreach my $element (@answers) { |
if ($fmt && $tag eq 'numericalresponse') { |
if ($fmt && $tag eq 'numericalresponse') { |
$fmt=~s/e/E/g; |
$fmt=~s/e/E/g; |
if ($unit=~/\$/) { $fmt="\$".$fmt; $unit=~s/\$//g; } |
if ($unit=~/\$/) { $fmt="\$".$fmt; $unit=~s/\$//g; } |
Line 770 sub end_numericalresponse {
|
Line 774 sub end_numericalresponse {
|
if ($fmt=~/\$/ && !$needsdollar) { $element=~s/\$//; } |
if ($fmt=~/\$/ && !$needsdollar) { $element=~s/\$//; } |
} |
} |
} |
} |
push(@fmt_ans,join(',',@$ans)); |
push(@fmt_ans,join(',',@answers)); |
} |
} |
my $response=\@fmt_ans; |
my $response=\@fmt_ans; |
|
|
Line 1061 sub make_numerical_bubbles {
|
Line 1065 sub make_numerical_bubbles {
|
&Math::Random::random_uniform_integer(1,1,10); |
&Math::Random::random_uniform_integer(1,1,10); |
} |
} |
for ($ind=0;$ind<$number_of_bubbles;$ind++) { |
for ($ind=0;$ind<$number_of_bubbles;$ind++) { |
$bubble_values[$ind] = $answerfactor*($factor**($power-$powers[$#powers-$ind])); |
my $exponent = $power-$powers[$#powers-$ind]; |
|
$bubble_values[$ind] = $answerfactor*($factor**$exponent); |
|
|
|
# If bubble is for correct answer (i.e., exponent = 0), and value |
|
# of $answerfactor * factor**$exponent is an integer with more than |
|
# 15 digits, assign $answerfactor itself as bubble value. |
|
# This prevents a "use fewer digits" issue on 64bit servers |
|
# when correct answer is >= 1e+16, and when correct bubble is A. |
|
|
|
if ($exponent == 0) { |
|
if ($bubble_values[$ind] =~ /^-?(\d+)$/) { |
|
if (length($1) > 15) { |
|
$bubble_values[$ind] = $answerfactor; |
|
} |
|
} |
|
} |
|
|
$bubble_display[$ind] = &format_number($bubble_values[$ind], |
$bubble_display[$ind] = &format_number($bubble_values[$ind], |
$format,$target,$safeeval); |
$format,$target,$safeeval); |
} |
} |