--- 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.= ''; for (my $ind=0;$ind<$number_of_bubbles;$ind++) { - my $ans=&format_number($bubble_values[$ind], - $formats[0]); $result.=''; + '" value="'.$bubble_values[$ind].'">'. + $alphabet[$ind].': '. + $bubble_values[$ind].''; } $result.='
'.$alphabet[$ind]. - ': '.$ans.'
'; } 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 {