--- loncom/homework/caparesponse/caparesponse.pm 2003/04/08 03:54:22 1.90
+++ loncom/homework/caparesponse/caparesponse.pm 2003/04/08 04:00:23 1.91
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# caparesponse definition
#
-# $Id: caparesponse.pm,v 1.90 2003/04/08 03:54:22 albertel Exp $
+# $Id: caparesponse.pm,v 1.91 2003/04/08 04:00:23 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -187,7 +187,8 @@ sub end_numericalresponse {
my $unit=&Apache::lonxml::get_param_var('unit',$parstack,
$safeeval);
my @bubble_values=&make_numerical_bubbles($number_of_bubbles,
- @answers);
+ $target,$answers[0],
+ $formats[0]);
my @alphabet=('A'..'Z');
my $id=$Apache::inputtags::response[-1];
if ($target eq 'web') {
@@ -195,11 +196,10 @@ sub end_numericalresponse {
if ($unit=~/\S/) {$result.=' (in '.$unit.')
';}
$result.= '
';
} elsif ($$tagstack[-1] eq 'formularesponse') {
@@ -224,9 +224,7 @@ sub end_numericalresponse {
}
$result.='}';
for (my $ind=$cou;$ind<$cou+$table_range[$j];$ind++) {
- my $ans=&format_number($bubble_values[$ind],
- $formats[0],$target);
- $result.='\hskip -3 mm {\small \textbf{'.$alphabet[$ind].'}}$\bigcirc$\hskip -2 mm & {\small '.$ans.'} ';
+ $result.='\hskip -3 mm {\small \textbf{'.$alphabet[$ind].'}}$\bigcirc$\hskip -2 mm & {\small '.$bubble_values[$ind].'} ';
if ($ind != $cou+$table_range[$j]-1) {$result.=' & ';}
}
$cou += $table_range[$j];
@@ -392,8 +390,8 @@ sub format_number {
}
sub make_numerical_bubbles {
- my ($number_of_bubbles,@answers) =@_;
- my @bubbles_values = ();
+ my ($number_of_bubbles,$target,$answer,$format) =@_;
+ my @bubble_values = ();
my @factors = (1.13,1.17,1.25,1.33,1.45); #default values of factors
my @powers = (1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0); #default values for powers
&Apache::response::setrandomnumber();
@@ -402,9 +400,12 @@ sub make_numerical_bubbles {
$ind=&Math::Random::random_uniform_integer(1,0,$#factors);
my $factor = $factors[$ind];
for ($ind=0;$ind<$number_of_bubbles;$ind++) {
- $bubbles_values[$ind] = $answers[0]*($factor**($power-$powers[$#powers-$ind]));
+ $bubble_values[$ind] = $answer*($factor**($power-$powers[$#powers-$ind]));
+ $bubble_values[$ind] = &format_number($bubble_values[$ind],
+ $format,$target);
+
}
- return @bubbles_values;
+ return @bubble_values;
}
sub get_tolrange {